<?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>21330</bug_id>
          
          <creation_ts>2008-10-03 01:10:51 -0700</creation_ts>
          <short_desc>Fix Gtk adjustments in ScrollView</short_desc>
          <delta_ts>2008-10-03 01:50:41 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>93867</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 01:10:51 -0700</bug_when>
    <thetext>Fix Gtk adjustments in ScrollView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93868</commentid>
    <comment_count>1</comment_count>
      <attachid>24042</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 01:11:13 -0700</bug_when>
    <thetext>Created attachment 24042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93870</commentid>
    <comment_count>2</comment_count>
      <attachid>24042</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-03 01:14:39 -0700</bug_when>
    <thetext>Comment on attachment 24042
Patch

r=me, this looks sane in as much as i can follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93873</commentid>
    <comment_count>3</comment_count>
      <attachid>24043</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 01:17:32 -0700</bug_when>
    <thetext>Created attachment 24043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93874</commentid>
    <comment_count>4</comment_count>
      <attachid>24044</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 01:40:34 -0700</bug_when>
    <thetext>Created attachment 24044
Patch #3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93875</commentid>
    <comment_count>5</comment_count>
      <attachid>24045</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 01:46:16 -0700</bug_when>
    <thetext>Created attachment 24045
Patch #4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93876</commentid>
    <comment_count>6</comment_count>
      <attachid>24045</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-10-03 01:48:45 -0700</bug_when>
    <thetext>Comment on attachment 24045
Patch #4

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93877</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 01:50:41 -0700</bug_when>
    <thetext>Fixed in r37232.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24042</attachid>
            <date>2008-10-03 01:11:13 -0700</date>
            <delta_ts>2008-10-03 01:17:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>11692</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MjMw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMTAt
MDMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBHdGsgYWRq
dXN0bWVudHMgc28gdGhhdCB0aGV5IGFyZSBwcm9wZXJseSBjaGVja2VkIGFnYWluIGJlZm9yZSBj
cmVhdGluZyBob3Jpem9udGFsL3ZlcnRpY2FsCisgICAgICAgIHNjcm9sbGJhcnMuCisJCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRIYXNWZXJ0aWNhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc0hvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFzVmVydGljYWxBZGp1c3RtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6YWRqdXN0bWVudENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp+
U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFuZGxlVmVydGljYWxBZGp1c3RtZW50KToKKwogMjAwOC0xMC0wMyAgRGF2aWQgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlc2VydmUgUXQncyBkaXNhYmxpbmcgb2YgYmxp
dHRpbmcgd2hlbiBhbnkgbmF0aXZlIHdpZGdldHMgYXJlIHByZXNlbnQgYW55d2hlcmUgb24gdGhl
IHBhZ2UgKGljaykuCkluZGV4OiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMzcyMjQpCisrKyBwbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCogY2hpCiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0SGFz
SG9yaXpvbnRhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYmICFt
X2hvcml6b250YWxTY3JvbGxiYXIpIHsKKyAgICBpZiAoaGFzQmFyICYmICFtX2hvcml6b250YWxT
Y3JvbGxiYXIgJiYgIXBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKSkgewogICAgICAg
ICBtX2hvcml6b250YWxTY3JvbGxiYXIgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJh
cih0aGlzLCBIb3Jpem9udGFsU2Nyb2xsYmFyLCBSZWd1bGFyU2Nyb2xsYmFyKTsKICAgICAgICAg
YWRkQ2hpbGQobV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFo
YXNCYXIgJiYgbV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGIKIAogdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYm
ICFtX3ZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAgaWYgKGhhc0JhciAmJiAhbV92ZXJ0aWNhbFNj
cm9sbGJhciAmJiAhcGxhdGZvcm1IYXNWZXJ0aWNhbEFkanVzdG1lbnQoKSkgewogICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIodGhp
cywgVmVydGljYWxTY3JvbGxiYXIsIFJlZ3VsYXJTY3JvbGxiYXIpOwogICAgICAgICBhZGRDaGls
ZChtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFoYXNCYXIgJiYg
bV92ZXJ0aWNhbFNjcm9sbGJhcikgewpAQCAtODIwLDYgKzgyMCwxNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtSGFuZGxlVmVydGljYWxBCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiti
b29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc1ZlcnRpY2Fs
QWRqdXN0bWVudCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjZW5kaWYKIAogfQpJbmRl
eDogcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuaAkocmV2aXNpb24gMzcyMjYpCisrKyBwbGF0Zm9ybS9TY3JvbGxWaWV3LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2Niw2ICsyNjYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc09m
ZnNjcmVlbigpIGNvbnN0OwogICAgIGJvb2wgcGxhdGZvcm1IYW5kbGVIb3Jpem9udGFsQWRqdXN0
bWVudChjb25zdCBJbnRTaXplJik7CiAgICAgYm9vbCBwbGF0Zm9ybUhhbmRsZVZlcnRpY2FsQWRq
dXN0bWVudChjb25zdCBJbnRTaXplJik7CisgICAgYm9vbCBwbGF0Zm9ybUhhc0hvcml6b250YWxB
ZGp1c3RtZW50KCk7CisgICAgYm9vbCBwbGF0Zm9ybUhhc1ZlcnRpY2FsQWRqdXN0bWVudCgpOwog
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkIF9fT0JKQ19fCiBwdWJsaWM6CkBAIC0yNzUs
NyArMjc3LDcgQEAgcHJpdmF0ZToKICAgICBOU1Njcm9sbFZpZXc8V2ViQ29yZUZyYW1lU2Nyb2xs
Vmlldz4qIHNjcm9sbFZpZXcoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFFUKQorI2lmICFQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShXSU4pICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEdUSykKIC8vIEZJ
WE1FOiBTY3JvbGxWaWV3UHJpdmF0ZSB3aWxsIGV2ZW50dWFsbHkgYmUgY29tcGxldGVseSBnb25l
LgogICAgIGNsYXNzIFNjcm9sbFZpZXdQcml2YXRlOwogICAgIFNjcm9sbFZpZXdQcml2YXRlKiBt
X2RhdGE7CkBAIC0yOTksNiArMzAxLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShHVEspCiBw
dWJsaWM6CiAgICAgdm9pZCBzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBH
dGtBZGp1c3RtZW50KiB2YWRqKTsKKyAgICBzdGF0aWMgdm9pZCBhZGp1c3RtZW50Q2hhbmdlZChH
dGtBZGp1c3RtZW50KiwgZ3BvaW50ZXIpOworICAgIEd0a0FkanVzdG1lbnQqIG1faG9yaXpvbnRh
bEFkanVzdG1lbnQ7CisgICAgR3RrQWRqdXN0bWVudCogbV92ZXJ0aWNhbEFkanVzdG1lbnQ7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdYKQpJbmRleDogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdH
dGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNwcAkocmV2
aXNpb24gMzcyMTQpCisrKyBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDYxICs1MiwyOSBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlCit2b2lk
IFNjcm9sbFZpZXc6OmFkanVzdG1lbnRDaGFuZ2VkKEd0a0FkanVzdG1lbnQqIGFkanVzdG1lbnQs
IGdwb2ludGVyIF90aGF0KQogewotcHVibGljOgotICAgIFNjcm9sbFZpZXdQcml2YXRlKFNjcm9s
bFZpZXcqIF92aWV3KQotICAgICAgICA6IHZpZXcoX3ZpZXcpCi0gICAgICAgICwgaG9yaXpvbnRh
bEFkanVzdG1lbnQoMCkKLSAgICAgICAgLCB2ZXJ0aWNhbEFkanVzdG1lbnQoMCkKLSAgICB7fQot
Ci0gICAgflNjcm9sbFZpZXdQcml2YXRlKCkKLSAgICB7Ci0gICAgICAgIGlmIChob3Jpem9udGFs
QWRqdXN0bWVudCkgewotICAgICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9i
eV9mdW5jKEdfT0JKRUNUKGhvcml6b250YWxBZGp1c3RtZW50KSwgKGdwb2ludGVyKVNjcm9sbFZp
ZXdQcml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAgICBnX29iamVj
dF91bnJlZihob3Jpem9udGFsQWRqdXN0bWVudCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
dmVydGljYWxBZGp1c3RtZW50KSB7Ci0gICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNj
b25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QodmVydGljYWxBZGp1c3RtZW50KSwgKGdwb2ludGVyKVNj
cm9sbFZpZXdQcml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgICAgICBn
X29iamVjdF91bnJlZih2ZXJ0aWNhbEFkanVzdG1lbnQpOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgc3RhdGljIHZvaWQgYWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0bWVudCosIGdwb2ludGVy
KTsKLQotICAgIFNjcm9sbFZpZXcqIHZpZXc7Ci0gICAgSW50U2l6ZSB2aWV3UG9ydFNpemU7Ci0g
ICAgR3RrQWRqdXN0bWVudCogaG9yaXpvbnRhbEFkanVzdG1lbnQ7Ci0gICAgR3RrQWRqdXN0bWVu
dCogdmVydGljYWxBZGp1c3RtZW50OwotfTsKLQotdm9pZCBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3
UHJpdmF0ZTo6YWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCwgZ3Bv
aW50ZXIgX3RoYXQpCi17Ci0gICAgU2Nyb2xsVmlld1ByaXZhdGUqIHRoYXQgPSByZWludGVycHJl
dF9jYXN0PFNjcm9sbFZpZXdQcml2YXRlKj4oX3RoYXQpOworICAgIFNjcm9sbFZpZXcqIHRoYXQg
PSByZWludGVycHJldF9jYXN0PFNjcm9sbFZpZXcqPihfdGhhdCk7CiAKICAgICAvLyBGaWd1cmUg
b3V0IGlmIHdlIHJlYWxseSBtb3ZlZC4KICAgICBJbnRTaXplIG5ld09mZnNldCA9IHRoYXQtPnZp
ZXctPm1fc2Nyb2xsT2Zmc2V0OwotICAgIGlmIChhZGp1c3RtZW50ID09IHRoYXQtPmhvcml6b250
YWxBZGp1c3RtZW50KQorICAgIGlmIChhZGp1c3RtZW50ID09IHRoYXQtPm1faG9yaXpvbnRhbEFk
anVzdG1lbnQpCiAgICAgICAgIG5ld09mZnNldC5zZXRXaWR0aChzdGF0aWNfY2FzdDxpbnQ+KGd0
a19hZGp1c3RtZW50X2dldF92YWx1ZShhZGp1c3RtZW50KSkpOwotICAgIGVsc2UgaWYgKGFkanVz
dG1lbnQgPT0gdGhhdC0+dmVydGljYWxBZGp1c3RtZW50KQorICAgIGVsc2UgaWYgKGFkanVzdG1l
bnQgPT0gdGhhdC0+bV92ZXJ0aWNhbEFkanVzdG1lbnQpCiAgICAgICAgIG5ld09mZnNldC5zZXRI
ZWlnaHQoc3RhdGljX2Nhc3Q8aW50PihndGtfYWRqdXN0bWVudF9nZXRfdmFsdWUoYWRqdXN0bWVu
dCkpKTsKIAotICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBuZXdPZmZzZXQgLSB0aGF0LT52aWV3
LT5tX3Njcm9sbE9mZnNldDsKKyAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gbmV3T2Zmc2V0IC0g
dGhhdC0+bV9zY3JvbGxPZmZzZXQ7CiAgICAgaWYgKHNjcm9sbERlbHRhID09IEludFNpemUoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIHRoYXQtPnZpZXctPm1fc2Nyb2xsT2Zmc2V0ID0gbmV3T2Zm
c2V0OworICAgIHRoYXQtPm1fc2Nyb2xsT2Zmc2V0ID0gbmV3T2Zmc2V0OwogCi0gICAgaWYgKHRo
YXQtPnZpZXctPnNjcm9sbGJhcnNTdXBwcmVzc2VkKCkpCisgICAgaWYgKHRoYXQtPnNjcm9sbGJh
cnNTdXBwcmVzc2VkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHRoYXQtPnZpZXctPnNjcm9s
bENvbnRlbnRzKHNjcm9sbERlbHRhKTsKLSAgICBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih0aGF0
LT52aWV3KS0+ZnJhbWUoKS0+c2VuZFNjcm9sbEV2ZW50KCk7CisgICAgdGhhdC0+c2Nyb2xsQ29u
dGVudHMoc2Nyb2xsRGVsdGEpOwogfQogCiBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkKLSAgICA6
IG1fZGF0YShuZXcgU2Nyb2xsVmlld1ByaXZhdGUodGhpcykpCiB7CiAgICAgaW5pdCgpOwogfQpA
QCAtMTE0LDcgKzgyLDE1IEBAIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXcoKQogU2Nyb2xsVmlldzo6
flNjcm9sbFZpZXcoKQogewogICAgIGRlc3Ryb3koKTsKLSAgICBkZWxldGUgbV9kYXRhOworICAg
IGlmIChtX2hvcml6b250YWxBZGp1c3RtZW50KSB7CisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVChtX2hvcml6b250YWxBZGp1c3RtZW50KSwgKGdw
b2ludGVyKVNjcm9sbFZpZXc6OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgZ19v
YmplY3RfdW5yZWYobV9ob3Jpem9udGFsQWRqdXN0bWVudCk7CisgICAgfQorCisgICAgaWYgKG1f
dmVydGljYWxBZGp1c3RtZW50KSB7CisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l
Y3RfYnlfZnVuYyhHX09CSkVDVChtX3ZlcnRpY2FsQWRqdXN0bWVudCksIChncG9pbnRlcilTY3Jv
bGxWaWV3OjphZGp1c3RtZW50Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIGdfb2JqZWN0X3VucmVm
KG1fdmVydGljYWxBZGp1c3RtZW50KTsKKyAgICB9CiB9CiAKIC8qCkBAIC0xMjUsMTkgKzEwMSwx
OSBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldEd0a0FkanVzdG1lbnRzKEd0a0FkCiB7CiAgICAgQVNT
RVJUKCFoYWRqID09ICF2YWRqKTsKIAotICAgIGlmIChtX2RhdGEtPmhvcml6b250YWxBZGp1c3Rt
ZW50KSB7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09C
SkVDVChtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50KSwgKGdwb2ludGVyKVNjcm9sbFZpZXdQ
cml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZCwgbV9kYXRhKTsKLSAgICAgICAgZ19zaWduYWxfaGFu
ZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKEdfT0JKRUNUKG1fZGF0YS0+dmVydGljYWxBZGp1c3Rt
ZW50KSwgKGdwb2ludGVyKVNjcm9sbFZpZXdQcml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZCwgbV9k
YXRhKTsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVu
dCk7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50KTsK
KyAgICBpZiAobV9ob3Jpem9udGFsQWRqdXN0bWVudCkgeworICAgICAgICBnX3NpZ25hbF9oYW5k
bGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV9ob3Jpem9udGFsQWRqdXN0bWVudCks
IChncG9pbnRlcilTY3JvbGxWaWV3OjphZGp1c3RtZW50Q2hhbmdlZCwgdGhpcyk7CisgICAgICAg
IGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVChtX3ZlcnRpY2Fs
QWRqdXN0bWVudCksIChncG9pbnRlcilTY3JvbGxWaWV3OjphZGp1c3RtZW50Q2hhbmdlZCwgdGhp
cyk7CisgICAgICAgIGdfb2JqZWN0X3VucmVmKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpOworICAg
ICAgICBnX29iamVjdF91bnJlZihtX3ZlcnRpY2FsQWRqdXN0bWVudCk7CiAgICAgfQogCi0gICAg
bV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCA9IGhhZGo7Ci0gICAgbV9kYXRhLT52ZXJ0aWNh
bEFkanVzdG1lbnQgPSB2YWRqOworICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQgPSBoYWRqOwor
ICAgIG1fdmVydGljYWxBZGp1c3RtZW50ID0gdmFkajsKIAotICAgIGlmIChtX2RhdGEtPmhvcml6
b250YWxBZGp1c3RtZW50KSB7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9kYXRhLT5ob3Jp
em9udGFsQWRqdXN0bWVudCwgInZhbHVlLWNoYW5nZWQiLCBHX0NBTExCQUNLKFNjcm9sbFZpZXdQ
cml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZCksIG1fZGF0YSk7Ci0gICAgICAgIGdfc2lnbmFsX2Nv
bm5lY3QobV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQsICJ2YWx1ZS1jaGFuZ2VkIiwgR19DQUxM
QkFDSyhTY3JvbGxWaWV3UHJpdmF0ZTo6YWRqdXN0bWVudENoYW5nZWQpLCBtX2RhdGEpOworICAg
IGlmIChtX2hvcml6b250YWxBZGp1c3RtZW50KSB7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
bV9ob3Jpem9udGFsQWRqdXN0bWVudCwgInZhbHVlLWNoYW5nZWQiLCBHX0NBTExCQUNLKFNjcm9s
bFZpZXc6OmFkanVzdG1lbnRDaGFuZ2VkKSwgdGhpcyk7CisgICAgICAgIGdfc2lnbmFsX2Nvbm5l
Y3QobV92ZXJ0aWNhbEFkanVzdG1lbnQsICJ2YWx1ZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyhTY3Jv
bGxWaWV3OjphZGp1c3RtZW50Q2hhbmdlZCksIHRoaXMpOwogCiAgICAgICAgIC8qCiAgICAgICAg
ICAqIGRpc2FibGUgdGhlIHNjcm9sbGJhcnMgKGlmIHdlIGhhdmUgYW55KSBhcyB0aGUgR3RrQWRq
dXN0bWVudCBvdmVyCkBAIC0xNDUsOCArMTIxLDggQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRHdGtB
ZGp1c3RtZW50cyhHdGtBZAogICAgICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxzZSk7
CiAgICAgICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoZmFsc2UpOwogCi0gICAgICAgIGdf
b2JqZWN0X3JlZihtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50KTsKLSAgICAgICAgZ19vYmpl
Y3RfcmVmKG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50KTsKKyAgICAgICAgZ19vYmplY3RfcmVm
KG1faG9yaXpvbnRhbEFkanVzdG1lbnQpOworICAgICAgICBnX29iamVjdF9yZWYobV92ZXJ0aWNh
bEFkanVzdG1lbnQpOwogICAgIH0KIAogICAgIHVwZGF0ZVNjcm9sbGJhcnMobV9zY3JvbGxPZmZz
ZXQpOwpAQCAtMTY2LDE3ICsxNDIsMTcgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92
ZUNoaWxkKFdpZAogCiBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFuZGxlSG9yaXpvbnRhbEFk
anVzdG1lbnQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsKQogewotICAgIGlmIChtX2RhdGEtPmhvcml6
b250YWxBZGp1c3RtZW50KSB7Ci0gICAgICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQt
PnBhZ2Vfc2l6ZSA9IHZpc2libGVXaWR0aCgpOwotICAgICAgICBtX2RhdGEtPmhvcml6b250YWxB
ZGp1c3RtZW50LT5zdGVwX2luY3JlbWVudCA9IHZpc2libGVXaWR0aCgpIC8gMTAuMDsKLSAgICAg
ICAgbV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+cGFnZV9pbmNyZW1lbnQgPSB2aXNpYmxl
V2lkdGgoKSAqIDAuOTsKLSAgICAgICAgbV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+bG93
ZXIgPSAwOwotICAgICAgICBtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50LT51cHBlciA9IGNv
bnRlbnRzV2lkdGgoKTsKLSAgICAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX2RhdGEtPmhv
cml6b250YWxBZGp1c3RtZW50KTsKKyAgICBpZiAobV9ob3Jpem9udGFsQWRqdXN0bWVudCkgewor
ICAgICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50LT5wYWdlX3NpemUgPSB2aXNpYmxlV2lkdGgo
KTsKKyAgICAgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+c3RlcF9pbmNyZW1lbnQgPSB2aXNp
YmxlV2lkdGgoKSAvIDEwLjA7CisgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPnBhZ2Vf
aW5jcmVtZW50ID0gdmlzaWJsZVdpZHRoKCkgKiAwLjk7CisgICAgICAgIG1faG9yaXpvbnRhbEFk
anVzdG1lbnQtPmxvd2VyID0gMDsKKyAgICAgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+dXBw
ZXIgPSBjb250ZW50c1dpZHRoKCk7CisgICAgICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9o
b3Jpem9udGFsQWRqdXN0bWVudCk7CiAKICAgICAgICAgaWYgKG1fc2Nyb2xsT2Zmc2V0LndpZHRo
KCkgIT0gc2Nyb2xsLndpZHRoKCkpIHsKLSAgICAgICAgICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFk
anVzdG1lbnQtPnZhbHVlID0gc2Nyb2xsLndpZHRoKCk7Ci0gICAgICAgICAgICBndGtfYWRqdXN0
bWVudF92YWx1ZV9jaGFuZ2VkKG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQpOworICAgICAg
ICAgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+dmFsdWUgPSBzY3JvbGwud2lkdGgoKTsKKyAg
ICAgICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9ob3Jpem9udGFsQWRqdXN0
bWVudCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTg1LDE3
ICsxNjEsMTcgQEAgYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6b250YQogCiBi
b29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFuZGxlVmVydGljYWxBZGp1c3RtZW50KGNvbnN0IElu
dFNpemUmIHNjcm9sbCkKIHsKLSAgICBpZiAobV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQpIHsK
LSAgICAgICAgbV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQtPnBhZ2Vfc2l6ZSA9IHZpc2libGVI
ZWlnaHQoKTsKLSAgICAgICAgbV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQtPnN0ZXBfaW5jcmVt
ZW50ID0gdmlzaWJsZUhlaWdodCgpIC8gMTAuMDsKLSAgICAgICAgbV9kYXRhLT52ZXJ0aWNhbEFk
anVzdG1lbnQtPnBhZ2VfaW5jcmVtZW50ID0gdmlzaWJsZUhlaWdodCgpICogMC45OwotICAgICAg
ICBtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudC0+bG93ZXIgPSAwOwotICAgICAgICBtX2RhdGEt
PnZlcnRpY2FsQWRqdXN0bWVudC0+dXBwZXIgPSBjb250ZW50c0hlaWdodCgpOwotICAgICAgICBn
dGtfYWRqdXN0bWVudF9jaGFuZ2VkKG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50KTsKKyAgICBp
ZiAobV92ZXJ0aWNhbEFkanVzdG1lbnQpIHsKKyAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQt
PnBhZ2Vfc2l6ZSA9IHZpc2libGVIZWlnaHQoKTsKKyAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1l
bnQtPnN0ZXBfaW5jcmVtZW50ID0gdmlzaWJsZUhlaWdodCgpIC8gMTAuMDsKKyAgICAgICAgbV92
ZXJ0aWNhbEFkanVzdG1lbnQtPnBhZ2VfaW5jcmVtZW50ID0gdmlzaWJsZUhlaWdodCgpICogMC45
OworICAgICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+bG93ZXIgPSAwOworICAgICAgICBtX3Zl
cnRpY2FsQWRqdXN0bWVudC0+dXBwZXIgPSBjb250ZW50c0hlaWdodCgpOworICAgICAgICBndGtf
YWRqdXN0bWVudF9jaGFuZ2VkKG1fdmVydGljYWxBZGp1c3RtZW50KTsKIAogICAgICAgICBpZiAo
bV9zY3JvbGxPZmZzZXQuaGVpZ2h0KCkgIT0gc2Nyb2xsLmhlaWdodCgpKSB7Ci0gICAgICAgICAg
ICBtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudC0+dmFsdWUgPSBzY3JvbGwuaGVpZ2h0KCk7Ci0g
ICAgICAgICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1fZGF0YS0+dmVydGljYWxB
ZGp1c3RtZW50KTsKKyAgICAgICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50LT52YWx1ZSA9IHNj
cm9sbC5oZWlnaHQoKTsKKyAgICAgICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQo
bV92ZXJ0aWNhbEFkanVzdG1lbnQpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0gCg==
</data>
<flag name="review"
          id="10881"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24043</attachid>
            <date>2008-10-03 01:17:32 -0700</date>
            <delta_ts>2008-10-03 01:40:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>11553</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MjMw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMTAt
MDMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBHdGsgYWRq
dXN0bWVudHMgc28gdGhhdCB0aGV5IGFyZSBwcm9wZXJseSBjaGVja2VkIGFnYWluIGJlZm9yZSBj
cmVhdGluZyBob3Jpem9udGFsL3ZlcnRpY2FsCisgICAgICAgIHNjcm9sbGJhcnMuCisJCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRIYXNWZXJ0aWNhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc0hvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFzVmVydGljYWxBZGp1c3RtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6YWRqdXN0bWVudENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp+
U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFuZGxlVmVydGljYWxBZGp1c3RtZW50KToKKwogMjAwOC0xMC0wMyAgRGF2aWQgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlc2VydmUgUXQncyBkaXNhYmxpbmcgb2YgYmxp
dHRpbmcgd2hlbiBhbnkgbmF0aXZlIHdpZGdldHMgYXJlIHByZXNlbnQgYW55d2hlcmUgb24gdGhl
IHBhZ2UgKGljaykuCkluZGV4OiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMzcyMjQpCisrKyBwbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCogY2hpCiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0SGFz
SG9yaXpvbnRhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYmICFt
X2hvcml6b250YWxTY3JvbGxiYXIpIHsKKyAgICBpZiAoaGFzQmFyICYmICFtX2hvcml6b250YWxT
Y3JvbGxiYXIgJiYgIXBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKSkgewogICAgICAg
ICBtX2hvcml6b250YWxTY3JvbGxiYXIgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJh
cih0aGlzLCBIb3Jpem9udGFsU2Nyb2xsYmFyLCBSZWd1bGFyU2Nyb2xsYmFyKTsKICAgICAgICAg
YWRkQ2hpbGQobV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFo
YXNCYXIgJiYgbV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGIKIAogdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYm
ICFtX3ZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAgaWYgKGhhc0JhciAmJiAhbV92ZXJ0aWNhbFNj
cm9sbGJhciAmJiAhcGxhdGZvcm1IYXNWZXJ0aWNhbEFkanVzdG1lbnQoKSkgewogICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIodGhp
cywgVmVydGljYWxTY3JvbGxiYXIsIFJlZ3VsYXJTY3JvbGxiYXIpOwogICAgICAgICBhZGRDaGls
ZChtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFoYXNCYXIgJiYg
bV92ZXJ0aWNhbFNjcm9sbGJhcikgewpAQCAtODIwLDYgKzgyMCwxNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtSGFuZGxlVmVydGljYWxBCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiti
b29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc1ZlcnRpY2Fs
QWRqdXN0bWVudCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjZW5kaWYKIAogfQpJbmRl
eDogcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuaAkocmV2aXNpb24gMzcyMjYpCisrKyBwbGF0Zm9ybS9TY3JvbGxWaWV3LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2Niw2ICsyNjYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc09m
ZnNjcmVlbigpIGNvbnN0OwogICAgIGJvb2wgcGxhdGZvcm1IYW5kbGVIb3Jpem9udGFsQWRqdXN0
bWVudChjb25zdCBJbnRTaXplJik7CiAgICAgYm9vbCBwbGF0Zm9ybUhhbmRsZVZlcnRpY2FsQWRq
dXN0bWVudChjb25zdCBJbnRTaXplJik7CisgICAgYm9vbCBwbGF0Zm9ybUhhc0hvcml6b250YWxB
ZGp1c3RtZW50KCk7CisgICAgYm9vbCBwbGF0Zm9ybUhhc1ZlcnRpY2FsQWRqdXN0bWVudCgpOwog
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkIF9fT0JKQ19fCiBwdWJsaWM6CkBAIC0yNzUs
NyArMjc3LDcgQEAgcHJpdmF0ZToKICAgICBOU1Njcm9sbFZpZXc8V2ViQ29yZUZyYW1lU2Nyb2xs
Vmlldz4qIHNjcm9sbFZpZXcoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFFUKQorI2lmICFQTEFURk9STShNQUMpICYm
ICFQTEFURk9STShXSU4pICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEdUSykKIC8vIEZJ
WE1FOiBTY3JvbGxWaWV3UHJpdmF0ZSB3aWxsIGV2ZW50dWFsbHkgYmUgY29tcGxldGVseSBnb25l
LgogICAgIGNsYXNzIFNjcm9sbFZpZXdQcml2YXRlOwogICAgIFNjcm9sbFZpZXdQcml2YXRlKiBt
X2RhdGE7CkBAIC0yOTksNiArMzAxLDggQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShHVEspCiBw
dWJsaWM6CiAgICAgdm9pZCBzZXRHdGtBZGp1c3RtZW50cyhHdGtBZGp1c3RtZW50KiBoYWRqLCBH
dGtBZGp1c3RtZW50KiB2YWRqKTsKKyAgICBHdGtBZGp1c3RtZW50KiBtX2hvcml6b250YWxBZGp1
c3RtZW50OworICAgIEd0a0FkanVzdG1lbnQqIG1fdmVydGljYWxBZGp1c3RtZW50OwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShXWCkKSW5kZXg6IHBsYXRmb3JtL2d0ay9TY3JvbGxWaWV3R3RrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0ay5jcHAJKHJldmlzaW9u
IDM3MjE0KQorKysgcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw2MSArNTIsMjkgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3UHJpdmF0ZQorc3RhdGljIHZv
aWQgYWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCwgZ3BvaW50ZXIg
X3RoYXQpCiB7Ci1wdWJsaWM6Ci0gICAgU2Nyb2xsVmlld1ByaXZhdGUoU2Nyb2xsVmlldyogX3Zp
ZXcpCi0gICAgICAgIDogdmlldyhfdmlldykKLSAgICAgICAgLCBob3Jpem9udGFsQWRqdXN0bWVu
dCgwKQotICAgICAgICAsIHZlcnRpY2FsQWRqdXN0bWVudCgwKQotICAgIHt9Ci0KLSAgICB+U2Ny
b2xsVmlld1ByaXZhdGUoKQotICAgIHsKLSAgICAgICAgaWYgKGhvcml6b250YWxBZGp1c3RtZW50
KSB7Ci0gICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19P
QkpFQ1QoaG9yaXpvbnRhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpU2Nyb2xsVmlld1ByaXZhdGU6
OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmKGhv
cml6b250YWxBZGp1c3RtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJ0aWNhbEFk
anVzdG1lbnQpIHsKLSAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlf
ZnVuYyhHX09CSkVDVCh2ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpU2Nyb2xsVmlld1By
aXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3Vu
cmVmKHZlcnRpY2FsQWRqdXN0bWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0aWMg
dm9pZCBhZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiwgZ3BvaW50ZXIpOwotCi0gICAg
U2Nyb2xsVmlldyogdmlldzsKLSAgICBJbnRTaXplIHZpZXdQb3J0U2l6ZTsKLSAgICBHdGtBZGp1
c3RtZW50KiBob3Jpem9udGFsQWRqdXN0bWVudDsKLSAgICBHdGtBZGp1c3RtZW50KiB2ZXJ0aWNh
bEFkanVzdG1lbnQ7Ci19OwotCi12b2lkIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjph
ZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50LCBncG9pbnRlciBfdGhh
dCkKLXsKLSAgICBTY3JvbGxWaWV3UHJpdmF0ZSogdGhhdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2Ny
b2xsVmlld1ByaXZhdGUqPihfdGhhdCk7CisgICAgU2Nyb2xsVmlldyogdGhhdCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8U2Nyb2xsVmlldyo+KF90aGF0KTsKIAogICAgIC8vIEZpZ3VyZSBvdXQgaWYgd2Ug
cmVhbGx5IG1vdmVkLgogICAgIEludFNpemUgbmV3T2Zmc2V0ID0gdGhhdC0+dmlldy0+bV9zY3Jv
bGxPZmZzZXQ7Ci0gICAgaWYgKGFkanVzdG1lbnQgPT0gdGhhdC0+aG9yaXpvbnRhbEFkanVzdG1l
bnQpCisgICAgaWYgKGFkanVzdG1lbnQgPT0gdGhhdC0+bV9ob3Jpem9udGFsQWRqdXN0bWVudCkK
ICAgICAgICAgbmV3T2Zmc2V0LnNldFdpZHRoKHN0YXRpY19jYXN0PGludD4oZ3RrX2FkanVzdG1l
bnRfZ2V0X3ZhbHVlKGFkanVzdG1lbnQpKSk7Ci0gICAgZWxzZSBpZiAoYWRqdXN0bWVudCA9PSB0
aGF0LT52ZXJ0aWNhbEFkanVzdG1lbnQpCisgICAgZWxzZSBpZiAoYWRqdXN0bWVudCA9PSB0aGF0
LT5tX3ZlcnRpY2FsQWRqdXN0bWVudCkKICAgICAgICAgbmV3T2Zmc2V0LnNldEhlaWdodChzdGF0
aWNfY2FzdDxpbnQ+KGd0a19hZGp1c3RtZW50X2dldF92YWx1ZShhZGp1c3RtZW50KSkpOwogCi0g
ICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IG5ld09mZnNldCAtIHRoYXQtPnZpZXctPm1fc2Nyb2xs
T2Zmc2V0OworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBuZXdPZmZzZXQgLSB0aGF0LT5tX3Nj
cm9sbE9mZnNldDsKICAgICBpZiAoc2Nyb2xsRGVsdGEgPT0gSW50U2l6ZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgdGhhdC0+dmlldy0+bV9zY3JvbGxPZmZzZXQgPSBuZXdPZmZzZXQ7CisgICAg
dGhhdC0+bV9zY3JvbGxPZmZzZXQgPSBuZXdPZmZzZXQ7CiAKLSAgICBpZiAodGhhdC0+dmlldy0+
c2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkKKyAgICBpZiAodGhhdC0+c2Nyb2xsYmFyc1N1cHByZXNz
ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGhhdC0+dmlldy0+c2Nyb2xsQ29udGVudHMo
c2Nyb2xsRGVsdGEpOwotICAgIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHRoYXQtPnZpZXcpLT5m
cmFtZSgpLT5zZW5kU2Nyb2xsRXZlbnQoKTsKKyAgICB0aGF0LT5zY3JvbGxDb250ZW50cyhzY3Jv
bGxEZWx0YSk7CiB9CiAKIFNjcm9sbFZpZXc6OlNjcm9sbFZpZXcoKQotICAgIDogbV9kYXRhKG5l
dyBTY3JvbGxWaWV3UHJpdmF0ZSh0aGlzKSkKIHsKICAgICBpbml0KCk7CiB9CkBAIC0xMTQsNyAr
ODIsMTUgQEAgU2Nyb2xsVmlldzo6U2Nyb2xsVmlldygpCiBTY3JvbGxWaWV3Ojp+U2Nyb2xsVmll
dygpCiB7CiAgICAgZGVzdHJveSgpOwotICAgIGRlbGV0ZSBtX2RhdGE7CisgICAgaWYgKG1faG9y
aXpvbnRhbEFkanVzdG1lbnQpIHsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVj
dF9ieV9mdW5jKEdfT0JKRUNUKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpYWRq
dXN0bWVudENoYW5nZWQsIHRoaXMpOworICAgICAgICBnX29iamVjdF91bnJlZihtX2hvcml6b250
YWxBZGp1c3RtZW50KTsKKyAgICB9CisKKyAgICBpZiAobV92ZXJ0aWNhbEFkanVzdG1lbnQpIHsK
KyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKEdfT0JKRUNUKG1f
dmVydGljYWxBZGp1c3RtZW50KSwgKGdwb2ludGVyKWFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsK
KyAgICAgICAgZ19vYmplY3RfdW5yZWYobV92ZXJ0aWNhbEFkanVzdG1lbnQpOworICAgIH0KIH0K
IAogLyoKQEAgLTEyNSwxOSArMTAxLDE5IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0
bWVudHMoR3RrQWQKIHsKICAgICBBU1NFUlQoIWhhZGogPT0gIXZhZGopOwogCi0gICAgaWYgKG1f
ZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQpIHsKLSAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNf
ZGlzY29ubmVjdF9ieV9mdW5jKEdfT0JKRUNUKG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQp
LCAoZ3BvaW50ZXIpU2Nyb2xsVmlld1ByaXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkLCBtX2RhdGEp
OwotICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19PQkpFQ1Qo
bV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpU2Nyb2xsVmlld1ByaXZhdGU6
OmFkanVzdG1lbnRDaGFuZ2VkLCBtX2RhdGEpOwotICAgICAgICBnX29iamVjdF91bnJlZihtX2Rh
dGEtPmhvcml6b250YWxBZGp1c3RtZW50KTsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9kYXRh
LT52ZXJ0aWNhbEFkanVzdG1lbnQpOworICAgIGlmIChtX2hvcml6b250YWxBZGp1c3RtZW50KSB7
CisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVCht
X2hvcml6b250YWxBZGp1c3RtZW50KSwgKGdwb2ludGVyKWFkanVzdG1lbnRDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKEdfT0JKRUNU
KG1fdmVydGljYWxBZGp1c3RtZW50KSwgKGdwb2ludGVyKWFkanVzdG1lbnRDaGFuZ2VkLCB0aGlz
KTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYobV9ob3Jpem9udGFsQWRqdXN0bWVudCk7CisgICAg
ICAgIGdfb2JqZWN0X3VucmVmKG1fdmVydGljYWxBZGp1c3RtZW50KTsKICAgICB9CiAKLSAgICBt
X2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50ID0gaGFkajsKLSAgICBtX2RhdGEtPnZlcnRpY2Fs
QWRqdXN0bWVudCA9IHZhZGo7CisgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudCA9IGhhZGo7Cisg
ICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQgPSB2YWRqOwogCi0gICAgaWYgKG1fZGF0YS0+aG9yaXpv
bnRhbEFkanVzdG1lbnQpIHsKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX2RhdGEtPmhvcml6
b250YWxBZGp1c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soU2Nyb2xsVmlld1By
aXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkKSwgbV9kYXRhKTsKLSAgICAgICAgZ19zaWduYWxfY29u
bmVjdChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCwgInZhbHVlLWNoYW5nZWQiLCBHX0NBTExC
QUNLKFNjcm9sbFZpZXdQcml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZCksIG1fZGF0YSk7CisgICAg
aWYgKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdCht
X2hvcml6b250YWxBZGp1c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soYWRqdXN0
bWVudENoYW5nZWQpLCB0aGlzKTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3ZlcnRpY2Fs
QWRqdXN0bWVudCwgInZhbHVlLWNoYW5nZWQiLCBHX0NBTExCQUNLKGFkanVzdG1lbnRDaGFuZ2Vk
KSwgdGhpcyk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogZGlzYWJsZSB0aGUgc2Nyb2xsYmFy
cyAoaWYgd2UgaGF2ZSBhbnkpIGFzIHRoZSBHdGtBZGp1c3RtZW50IG92ZXIKQEAgLTE0NSw4ICsx
MjEsOCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldEd0a0FkanVzdG1lbnRzKEd0a0FkCiAgICAgICAg
IHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKICAgICAgICAgc2V0SGFzSG9yaXpvbnRh
bFNjcm9sbGJhcihmYWxzZSk7CiAKLSAgICAgICAgZ19vYmplY3RfcmVmKG1fZGF0YS0+aG9yaXpv
bnRhbEFkanVzdG1lbnQpOwotICAgICAgICBnX29iamVjdF9yZWYobV9kYXRhLT52ZXJ0aWNhbEFk
anVzdG1lbnQpOworICAgICAgICBnX29iamVjdF9yZWYobV9ob3Jpem9udGFsQWRqdXN0bWVudCk7
CisgICAgICAgIGdfb2JqZWN0X3JlZihtX3ZlcnRpY2FsQWRqdXN0bWVudCk7CiAgICAgfQogCiAg
ICAgdXBkYXRlU2Nyb2xsYmFycyhtX3Njcm9sbE9mZnNldCk7CkBAIC0xNjYsMTcgKzE0MiwxNyBA
QCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkCiAKIGJvb2wgU2Nyb2xs
Vmlldzo6cGxhdGZvcm1IYW5kbGVIb3Jpem9udGFsQWRqdXN0bWVudChjb25zdCBJbnRTaXplJiBz
Y3JvbGwpCiB7Ci0gICAgaWYgKG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQpIHsKLSAgICAg
ICAgbV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+cGFnZV9zaXplID0gdmlzaWJsZVdpZHRo
KCk7Ci0gICAgICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQtPnN0ZXBfaW5jcmVtZW50
ID0gdmlzaWJsZVdpZHRoKCkgLyAxMC4wOwotICAgICAgICBtX2RhdGEtPmhvcml6b250YWxBZGp1
c3RtZW50LT5wYWdlX2luY3JlbWVudCA9IHZpc2libGVXaWR0aCgpICogMC45OwotICAgICAgICBt
X2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50LT5sb3dlciA9IDA7Ci0gICAgICAgIG1fZGF0YS0+
aG9yaXpvbnRhbEFkanVzdG1lbnQtPnVwcGVyID0gY29udGVudHNXaWR0aCgpOwotICAgICAgICBn
dGtfYWRqdXN0bWVudF9jaGFuZ2VkKG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQpOworICAg
IGlmIChtX2hvcml6b250YWxBZGp1c3RtZW50KSB7CisgICAgICAgIG1faG9yaXpvbnRhbEFkanVz
dG1lbnQtPnBhZ2Vfc2l6ZSA9IHZpc2libGVXaWR0aCgpOworICAgICAgICBtX2hvcml6b250YWxB
ZGp1c3RtZW50LT5zdGVwX2luY3JlbWVudCA9IHZpc2libGVXaWR0aCgpIC8gMTAuMDsKKyAgICAg
ICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+cGFnZV9pbmNyZW1lbnQgPSB2aXNpYmxlV2lkdGgo
KSAqIDAuOTsKKyAgICAgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+bG93ZXIgPSAwOworICAg
ICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50LT51cHBlciA9IGNvbnRlbnRzV2lkdGgoKTsKKyAg
ICAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX2hvcml6b250YWxBZGp1c3RtZW50KTsKIAog
ICAgICAgICBpZiAobV9zY3JvbGxPZmZzZXQud2lkdGgoKSAhPSBzY3JvbGwud2lkdGgoKSkgewot
ICAgICAgICAgICAgbV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+dmFsdWUgPSBzY3JvbGwu
d2lkdGgoKTsKLSAgICAgICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9kYXRh
LT5ob3Jpem9udGFsQWRqdXN0bWVudCk7CisgICAgICAgICAgICBtX2hvcml6b250YWxBZGp1c3Rt
ZW50LT52YWx1ZSA9IHNjcm9sbC53aWR0aCgpOworICAgICAgICAgICAgZ3RrX2FkanVzdG1lbnRf
dmFsdWVfY2hhbmdlZChtX2hvcml6b250YWxBZGp1c3RtZW50KTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xODUsMTcgKzE2MSwxNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtSGFuZGxlSG9yaXpvbnRhCiAKIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1I
YW5kbGVWZXJ0aWNhbEFkanVzdG1lbnQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsKQogewotICAgIGlm
IChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCkgewotICAgICAgICBtX2RhdGEtPnZlcnRpY2Fs
QWRqdXN0bWVudC0+cGFnZV9zaXplID0gdmlzaWJsZUhlaWdodCgpOwotICAgICAgICBtX2RhdGEt
PnZlcnRpY2FsQWRqdXN0bWVudC0+c3RlcF9pbmNyZW1lbnQgPSB2aXNpYmxlSGVpZ2h0KCkgLyAx
MC4wOwotICAgICAgICBtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudC0+cGFnZV9pbmNyZW1lbnQg
PSB2aXNpYmxlSGVpZ2h0KCkgKiAwLjk7Ci0gICAgICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3Rt
ZW50LT5sb3dlciA9IDA7Ci0gICAgICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50LT51cHBl
ciA9IGNvbnRlbnRzSGVpZ2h0KCk7Ci0gICAgICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9k
YXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQpOworICAgIGlmIChtX3ZlcnRpY2FsQWRqdXN0bWVudCkg
eworICAgICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+cGFnZV9zaXplID0gdmlzaWJsZUhlaWdo
dCgpOworICAgICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+c3RlcF9pbmNyZW1lbnQgPSB2aXNp
YmxlSGVpZ2h0KCkgLyAxMC4wOworICAgICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+cGFnZV9p
bmNyZW1lbnQgPSB2aXNpYmxlSGVpZ2h0KCkgKiAwLjk7CisgICAgICAgIG1fdmVydGljYWxBZGp1
c3RtZW50LT5sb3dlciA9IDA7CisgICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50LT51cHBlciA9
IGNvbnRlbnRzSGVpZ2h0KCk7CisgICAgICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV92ZXJ0
aWNhbEFkanVzdG1lbnQpOwogCiAgICAgICAgIGlmIChtX3Njcm9sbE9mZnNldC5oZWlnaHQoKSAh
PSBzY3JvbGwuaGVpZ2h0KCkpIHsKLSAgICAgICAgICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3Rt
ZW50LT52YWx1ZSA9IHNjcm9sbC5oZWlnaHQoKTsKLSAgICAgICAgICAgIGd0a19hZGp1c3RtZW50
X3ZhbHVlX2NoYW5nZWQobV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQpOworICAgICAgICAgICAg
bV92ZXJ0aWNhbEFkanVzdG1lbnQtPnZhbHVlID0gc2Nyb2xsLmhlaWdodCgpOworICAgICAgICAg
ICAgZ3RrX2FkanVzdG1lbnRfdmFsdWVfY2hhbmdlZChtX3ZlcnRpY2FsQWRqdXN0bWVudCk7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24044</attachid>
            <date>2008-10-03 01:40:34 -0700</date>
            <delta_ts>2008-10-03 01:46:16 -0700</delta_ts>
            <desc>Patch #3</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13377</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MjMw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMTAt
MDMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBHdGsgYWRq
dXN0bWVudHMgc28gdGhhdCB0aGV5IGFyZSBwcm9wZXJseSBjaGVja2VkIGFnYWluIGJlZm9yZSBj
cmVhdGluZyBob3Jpem9udGFsL3ZlcnRpY2FsCisgICAgICAgIHNjcm9sbGJhcnMuCisJCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRIYXNWZXJ0aWNhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc0hvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFzVmVydGljYWxBZGp1c3RtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6YWRqdXN0bWVudENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp+
U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFuZGxlVmVydGljYWxBZGp1c3RtZW50KToKKwogMjAwOC0xMC0wMyAgRGF2aWQgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlc2VydmUgUXQncyBkaXNhYmxpbmcgb2YgYmxp
dHRpbmcgd2hlbiBhbnkgbmF0aXZlIHdpZGdldHMgYXJlIHByZXNlbnQgYW55d2hlcmUgb24gdGhl
IHBhZ2UgKGljaykuCkluZGV4OiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMzcyMjQpCisrKyBwbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCogY2hpCiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0SGFz
SG9yaXpvbnRhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYmICFt
X2hvcml6b250YWxTY3JvbGxiYXIpIHsKKyAgICBpZiAoaGFzQmFyICYmICFtX2hvcml6b250YWxT
Y3JvbGxiYXIgJiYgIXBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKSkgewogICAgICAg
ICBtX2hvcml6b250YWxTY3JvbGxiYXIgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJh
cih0aGlzLCBIb3Jpem9udGFsU2Nyb2xsYmFyLCBSZWd1bGFyU2Nyb2xsYmFyKTsKICAgICAgICAg
YWRkQ2hpbGQobV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFo
YXNCYXIgJiYgbV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGIKIAogdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYm
ICFtX3ZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAgaWYgKGhhc0JhciAmJiAhbV92ZXJ0aWNhbFNj
cm9sbGJhciAmJiAhcGxhdGZvcm1IYXNWZXJ0aWNhbEFkanVzdG1lbnQoKSkgewogICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIodGhp
cywgVmVydGljYWxTY3JvbGxiYXIsIFJlZ3VsYXJTY3JvbGxiYXIpOwogICAgICAgICBhZGRDaGls
ZChtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFoYXNCYXIgJiYg
bV92ZXJ0aWNhbFNjcm9sbGJhcikgewpAQCAtODIwLDYgKzgyMCwxNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtSGFuZGxlVmVydGljYWxBCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiti
b29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKSBjb25zdAor
eworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc1Zl
cnRpY2FsQWRqdXN0bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjZW5k
aWYKIAogfQpJbmRleDogcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRm
b3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gMzcyMjYpCisrKyBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw3ICsxMzcsMTAgQEAgcHVibGljOgogICAgIAogICAg
IC8vIFRoaXMgbWV0aG9kIHNjcm9sbHMgYnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KICAgICBi
b29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5KTsKLSAgICAKKyAg
ICAgICAgCisgICAgLy8gU2Nyb2xsIHRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIHZpZXcgKGVp
dGhlciBibGl0dGluZyBvciBpbnZhbGlkYXRpbmcgYXMgbmVlZGVkKS4KKyAgICB2b2lkIHNjcm9s
bENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKTsKKwogICAgIC8vIFRoaXMgZ2l2
ZXMgdXMgYSBtZWFucyBvZiBibG9ja2luZyBwYWludGluZyBvbiBvdXIgc2Nyb2xsYmFycyB1bnRp
bCB0aGUgZmlyc3QgbGF5b3V0IGhhcyBvY2N1cnJlZC4KICAgICB2b2lkIHNldFNjcm9sbGJhcnNT
dXBwcmVzc2VkKGJvb2wgc3VwcHJlc3NlZCwgYm9vbCByZXBhaW50T25VbnN1cHByZXNzID0gZmFs
c2UpOwogICAgIGJvb2wgc2Nyb2xsYmFyc1N1cHByZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGJhcnNTdXBwcmVzc2VkOyB9CkBAIC0yNDIsOSArMjQ1LDYgQEAgcHJpdmF0ZToKICAgICAv
LyBDYWxsZWQgdG8gdXBkYXRlIHRoZSBzY3JvbGxiYXJzIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB0
aGUgc3RhdGUgb2YgdGhlIHZpZXcuCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IElu
dFNpemUmIGRlc2lyZWRPZmZzZXQpOwogCi0gICAgLy8gU2Nyb2xsIHRoZSBhY3R1YWwgY29udGVu
dHMgb2YgdGhlIHZpZXcgKGVpdGhlciBibGl0dGluZyBvciBpbnZhbGlkYXRpbmcgYXMgbmVlZGVk
KS4KLSAgICB2b2lkIHNjcm9sbENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKTsK
LQogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gY3JlYXRlL2Rlc3Ryb3kgc2Nyb2xs
YmFycy4KICAgICB2b2lkIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoYm9vbCk7CiAgICAgdm9p
ZCBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sKTsKQEAgLTI2Niw2ICsyNjYsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc09mZnNjcmVlbigpIGNvbnN0OwogICAgIGJvb2wgcGxh
dGZvcm1IYW5kbGVIb3Jpem9udGFsQWRqdXN0bWVudChjb25zdCBJbnRTaXplJik7CiAgICAgYm9v
bCBwbGF0Zm9ybUhhbmRsZVZlcnRpY2FsQWRqdXN0bWVudChjb25zdCBJbnRTaXplJik7CisgICAg
Ym9vbCBwbGF0Zm9ybUhhc0hvcml6b250YWxBZGp1c3RtZW50KCkgY29uc3Q7CisgICAgYm9vbCBw
bGF0Zm9ybUhhc1ZlcnRpY2FsQWRqdXN0bWVudCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBkZWZpbmVkIF9fT0JKQ19fCiBwdWJsaWM6CkBAIC0yNzUsMTQgKzI3Nyw2IEBAIHByaXZh
dGU6CiAgICAgTlNTY3JvbGxWaWV3PFdlYkNvcmVGcmFtZVNjcm9sbFZpZXc+KiBzY3JvbGxWaWV3
KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShXSU4p
ICYmICFQTEFURk9STShRVCkKLS8vIEZJWE1FOiBTY3JvbGxWaWV3UHJpdmF0ZSB3aWxsIGV2ZW50
dWFsbHkgYmUgY29tcGxldGVseSBnb25lLgotICAgIGNsYXNzIFNjcm9sbFZpZXdQcml2YXRlOwot
ICAgIFNjcm9sbFZpZXdQcml2YXRlKiBtX2RhdGE7Ci0KLSAgICBmcmllbmQgY2xhc3MgU2Nyb2xs
Vmlld1ByaXZhdGU7IC8vIEZJWE1FOiBUZW1wb3JhcnkuCi0jZW5kaWYKLQogI2lmICFQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShXWCkKIHB1YmxpYzoKICAgICB2b2lkIGFkZFRvRGlydHlSZWdp
b24oY29uc3QgSW50UmVjdCYpOwpAQCAtMjk5LDYgKzI5Myw5IEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oR1RLKQogcHVibGljOgogICAgIHZvaWQgc2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0
bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaik7CisgICAgR3RrQWRqdXN0bWVudCogbV9o
b3Jpem9udGFsQWRqdXN0bWVudDsKKyAgICBHdGtBZGp1c3RtZW50KiBtX3ZlcnRpY2FsQWRqdXN0
bWVudDsKKyAgICB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJiBvZmZzZXQpIHsg
bV9zY3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV1gpCkBA
IC0zMDcsNiArMzA0LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0U2Ny
b2xsYmFycyhpbnQgeCA9IC0xLCBpbnQgeSA9IC0xLCBib29sIHJlZnJlc2ggPSB0cnVlKTsKKyAg
ICBjbGFzcyBTY3JvbGxWaWV3UHJpdmF0ZTsKKyAgICBTY3JvbGxWaWV3UHJpdmF0ZSogbV9kYXRh
OwogI2VuZGlmCiAKIH07IC8vIGNsYXNzIFNjcm9sbFZpZXcKSW5kZXg6IHBsYXRmb3JtL2d0ay9T
Y3JvbGxWaWV3R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0
ay5jcHAJKHJldmlzaW9uIDM3MjE0KQorKysgcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2MSArNTIsMjkgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3UHJp
dmF0ZQorc3RhdGljIHZvaWQgYWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0bWVudCogYWRqdXN0
bWVudCwgZ3BvaW50ZXIgX3RoYXQpCiB7Ci1wdWJsaWM6Ci0gICAgU2Nyb2xsVmlld1ByaXZhdGUo
U2Nyb2xsVmlldyogX3ZpZXcpCi0gICAgICAgIDogdmlldyhfdmlldykKLSAgICAgICAgLCBob3Jp
em9udGFsQWRqdXN0bWVudCgwKQotICAgICAgICAsIHZlcnRpY2FsQWRqdXN0bWVudCgwKQotICAg
IHt9Ci0KLSAgICB+U2Nyb2xsVmlld1ByaXZhdGUoKQotICAgIHsKLSAgICAgICAgaWYgKGhvcml6
b250YWxBZGp1c3RtZW50KSB7Ci0gICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25u
ZWN0X2J5X2Z1bmMoR19PQkpFQ1QoaG9yaXpvbnRhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpU2Ny
b2xsVmlld1ByaXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgICAgIGdf
b2JqZWN0X3VucmVmKGhvcml6b250YWxBZGp1c3RtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAg
IGlmICh2ZXJ0aWNhbEFkanVzdG1lbnQpIHsKLSAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVCh2ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50
ZXIpU2Nyb2xsVmlld1ByaXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAg
ICAgIGdfb2JqZWN0X3VucmVmKHZlcnRpY2FsQWRqdXN0bWVudCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBzdGF0aWMgdm9pZCBhZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiwgZ3Bv
aW50ZXIpOwotCi0gICAgU2Nyb2xsVmlldyogdmlldzsKLSAgICBJbnRTaXplIHZpZXdQb3J0U2l6
ZTsKLSAgICBHdGtBZGp1c3RtZW50KiBob3Jpem9udGFsQWRqdXN0bWVudDsKLSAgICBHdGtBZGp1
c3RtZW50KiB2ZXJ0aWNhbEFkanVzdG1lbnQ7Ci19OwotCi12b2lkIFNjcm9sbFZpZXc6OlNjcm9s
bFZpZXdQcml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50
LCBncG9pbnRlciBfdGhhdCkKLXsKLSAgICBTY3JvbGxWaWV3UHJpdmF0ZSogdGhhdCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8U2Nyb2xsVmlld1ByaXZhdGUqPihfdGhhdCk7CisgICAgU2Nyb2xsVmlldyog
dGhhdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2Nyb2xsVmlldyo+KF90aGF0KTsKIAogICAgIC8vIEZp
Z3VyZSBvdXQgaWYgd2UgcmVhbGx5IG1vdmVkLgotICAgIEludFNpemUgbmV3T2Zmc2V0ID0gdGhh
dC0+dmlldy0+bV9zY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGFkanVzdG1lbnQgPT0gdGhhdC0+aG9y
aXpvbnRhbEFkanVzdG1lbnQpCisgICAgSW50U2l6ZSBuZXdPZmZzZXQgPSB0aGF0LT5zY3JvbGxP
ZmZzZXQoKTsKKyAgICBpZiAoYWRqdXN0bWVudCA9PSB0aGF0LT5tX2hvcml6b250YWxBZGp1c3Rt
ZW50KQogICAgICAgICBuZXdPZmZzZXQuc2V0V2lkdGgoc3RhdGljX2Nhc3Q8aW50PihndGtfYWRq
dXN0bWVudF9nZXRfdmFsdWUoYWRqdXN0bWVudCkpKTsKLSAgICBlbHNlIGlmIChhZGp1c3RtZW50
ID09IHRoYXQtPnZlcnRpY2FsQWRqdXN0bWVudCkKKyAgICBlbHNlIGlmIChhZGp1c3RtZW50ID09
IHRoYXQtPm1fdmVydGljYWxBZGp1c3RtZW50KQogICAgICAgICBuZXdPZmZzZXQuc2V0SGVpZ2h0
KHN0YXRpY19jYXN0PGludD4oZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKGFkanVzdG1lbnQpKSk7
CiAKLSAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gbmV3T2Zmc2V0IC0gdGhhdC0+dmlldy0+bV9z
Y3JvbGxPZmZzZXQ7CisgICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IG5ld09mZnNldCAtIHRoYXQt
PnNjcm9sbE9mZnNldCgpOwogICAgIGlmIChzY3JvbGxEZWx0YSA9PSBJbnRTaXplKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICB0aGF0LT52aWV3LT5tX3Njcm9sbE9mZnNldCA9IG5ld09mZnNldDsK
KyAgICB0aGF0LT5zZXRTY3JvbGxPZmZzZXQobmV3T2Zmc2V0KTsKIAotICAgIGlmICh0aGF0LT52
aWV3LT5zY3JvbGxiYXJzU3VwcHJlc3NlZCgpKQorICAgIGlmICh0aGF0LT5zY3JvbGxiYXJzU3Vw
cHJlc3NlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB0aGF0LT52aWV3LT5zY3JvbGxDb250
ZW50cyhzY3JvbGxEZWx0YSk7Ci0gICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4odGhhdC0+dmll
dyktPmZyYW1lKCktPnNlbmRTY3JvbGxFdmVudCgpOworICAgIHRoYXQtPnNjcm9sbENvbnRlbnRz
KHNjcm9sbERlbHRhKTsKIH0KIAogU2Nyb2xsVmlldzo6U2Nyb2xsVmlldygpCi0gICAgOiBtX2Rh
dGEobmV3IFNjcm9sbFZpZXdQcml2YXRlKHRoaXMpKQogewogICAgIGluaXQoKTsKIH0KQEAgLTEx
NCw3ICs4MiwxNSBAQCBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3KCkKIFNjcm9sbFZpZXc6On5TY3Jv
bGxWaWV3KCkKIHsKICAgICBkZXN0cm95KCk7Ci0gICAgZGVsZXRlIG1fZGF0YTsKKyAgICBpZiAo
bV9ob3Jpem9udGFsQWRqdXN0bWVudCkgeworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNj
b25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV9ob3Jpem9udGFsQWRqdXN0bWVudCksIChncG9pbnRl
cilhZGp1c3RtZW50Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIGdfb2JqZWN0X3VucmVmKG1faG9y
aXpvbnRhbEFkanVzdG1lbnQpOworICAgIH0KKworICAgIGlmIChtX3ZlcnRpY2FsQWRqdXN0bWVu
dCkgeworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19PQkpF
Q1QobV92ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpYWRqdXN0bWVudENoYW5nZWQsIHRo
aXMpOworICAgICAgICBnX29iamVjdF91bnJlZihtX3ZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAg
fQogfQogCiAvKgpAQCAtMTI1LDE5ICsxMDEsMTkgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRHdGtB
ZGp1c3RtZW50cyhHdGtBZAogewogICAgIEFTU0VSVCghaGFkaiA9PSAhdmFkaik7CiAKLSAgICBp
ZiAobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCkgewotICAgICAgICBnX3NpZ25hbF9oYW5k
bGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0
bWVudCksIChncG9pbnRlcilTY3JvbGxWaWV3UHJpdmF0ZTo6YWRqdXN0bWVudENoYW5nZWQsIG1f
ZGF0YSk7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09C
SkVDVChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCksIChncG9pbnRlcilTY3JvbGxWaWV3UHJp
dmF0ZTo6YWRqdXN0bWVudENoYW5nZWQsIG1fZGF0YSk7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVm
KG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQpOwotICAgICAgICBnX29iamVjdF91bnJlZiht
X2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAgaWYgKG1faG9yaXpvbnRhbEFkanVzdG1l
bnQpIHsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKEdfT0JK
RUNUKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpYWRqdXN0bWVudENoYW5nZWQs
IHRoaXMpOworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19P
QkpFQ1QobV92ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpYWRqdXN0bWVudENoYW5nZWQs
IHRoaXMpOworICAgICAgICBnX29iamVjdF91bnJlZihtX2hvcml6b250YWxBZGp1c3RtZW50KTsK
KyAgICAgICAgZ19vYmplY3RfdW5yZWYobV92ZXJ0aWNhbEFkanVzdG1lbnQpOwogICAgIH0KIAot
ICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQgPSBoYWRqOwotICAgIG1fZGF0YS0+dmVy
dGljYWxBZGp1c3RtZW50ID0gdmFkajsKKyAgICBtX2hvcml6b250YWxBZGp1c3RtZW50ID0gaGFk
ajsKKyAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudCA9IHZhZGo7CiAKLSAgICBpZiAobV9kYXRhLT5o
b3Jpem9udGFsQWRqdXN0bWVudCkgewotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1fZGF0YS0+
aG9yaXpvbnRhbEFkanVzdG1lbnQsICJ2YWx1ZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyhTY3JvbGxW
aWV3UHJpdmF0ZTo6YWRqdXN0bWVudENoYW5nZWQpLCBtX2RhdGEpOwotICAgICAgICBnX3NpZ25h
bF9jb25uZWN0KG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdf
Q0FMTEJBQ0soU2Nyb2xsVmlld1ByaXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkKSwgbV9kYXRhKTsK
KyAgICBpZiAobV9ob3Jpem9udGFsQWRqdXN0bWVudCkgeworICAgICAgICBnX3NpZ25hbF9jb25u
ZWN0KG1faG9yaXpvbnRhbEFkanVzdG1lbnQsICJ2YWx1ZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyhh
ZGp1c3RtZW50Q2hhbmdlZCksIHRoaXMpOworICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1fdmVy
dGljYWxBZGp1c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soYWRqdXN0bWVudENo
YW5nZWQpLCB0aGlzKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBkaXNhYmxlIHRoZSBzY3Jv
bGxiYXJzIChpZiB3ZSBoYXZlIGFueSkgYXMgdGhlIEd0a0FkanVzdG1lbnQgb3ZlcgpAQCAtMTQ1
LDggKzEyMSw4IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3RrQWRqdXN0bWVudHMoR3RrQWQKICAg
ICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoZmFsc2UpOwogICAgICAgICBzZXRIYXNIb3Jp
em9udGFsU2Nyb2xsYmFyKGZhbHNlKTsKIAotICAgICAgICBnX29iamVjdF9yZWYobV9kYXRhLT5o
b3Jpem9udGFsQWRqdXN0bWVudCk7Ci0gICAgICAgIGdfb2JqZWN0X3JlZihtX2RhdGEtPnZlcnRp
Y2FsQWRqdXN0bWVudCk7CisgICAgICAgIGdfb2JqZWN0X3JlZihtX2hvcml6b250YWxBZGp1c3Rt
ZW50KTsKKyAgICAgICAgZ19vYmplY3RfcmVmKG1fdmVydGljYWxBZGp1c3RtZW50KTsKICAgICB9
CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG1fc2Nyb2xsT2Zmc2V0KTsKQEAgLTE2NiwxNyArMTQy
LDE3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1SZW1vdmVDaGlsZChXaWQKIAogYm9vbCBT
Y3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6b250YWxBZGp1c3RtZW50KGNvbnN0IEludFNp
emUmIHNjcm9sbCkKIHsKLSAgICBpZiAobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCkgewot
ICAgICAgICBtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50LT5wYWdlX3NpemUgPSB2aXNpYmxl
V2lkdGgoKTsKLSAgICAgICAgbV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+c3RlcF9pbmNy
ZW1lbnQgPSB2aXNpYmxlV2lkdGgoKSAvIDEwLjA7Ci0gICAgICAgIG1fZGF0YS0+aG9yaXpvbnRh
bEFkanVzdG1lbnQtPnBhZ2VfaW5jcmVtZW50ID0gdmlzaWJsZVdpZHRoKCkgKiAwLjk7Ci0gICAg
ICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQtPmxvd2VyID0gMDsKLSAgICAgICAgbV9k
YXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+dXBwZXIgPSBjb250ZW50c1dpZHRoKCk7Ci0gICAg
ICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCk7
CisgICAgaWYgKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsKKyAgICAgICAgbV9ob3Jpem9udGFs
QWRqdXN0bWVudC0+cGFnZV9zaXplID0gdmlzaWJsZVdpZHRoKCk7CisgICAgICAgIG1faG9yaXpv
bnRhbEFkanVzdG1lbnQtPnN0ZXBfaW5jcmVtZW50ID0gdmlzaWJsZVdpZHRoKCkgLyAxMC4wOwor
ICAgICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50LT5wYWdlX2luY3JlbWVudCA9IHZpc2libGVX
aWR0aCgpICogMC45OworICAgICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50LT5sb3dlciA9IDA7
CisgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPnVwcGVyID0gY29udGVudHNXaWR0aCgp
OworICAgICAgICBndGtfYWRqdXN0bWVudF9jaGFuZ2VkKG1faG9yaXpvbnRhbEFkanVzdG1lbnQp
OwogCiAgICAgICAgIGlmIChtX3Njcm9sbE9mZnNldC53aWR0aCgpICE9IHNjcm9sbC53aWR0aCgp
KSB7Ci0gICAgICAgICAgICBtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50LT52YWx1ZSA9IHNj
cm9sbC53aWR0aCgpOwotICAgICAgICAgICAgZ3RrX2FkanVzdG1lbnRfdmFsdWVfY2hhbmdlZCht
X2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50KTsKKyAgICAgICAgICAgIG1faG9yaXpvbnRhbEFk
anVzdG1lbnQtPnZhbHVlID0gc2Nyb2xsLndpZHRoKCk7CisgICAgICAgICAgICBndGtfYWRqdXN0
bWVudF92YWx1ZV9jaGFuZ2VkKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTE4NSwyMyArMTYxLDMzIEBAIGJvb2wgU2Ny
b2xsVmlldzo6cGxhdGZvcm1IYW5kbGVIb3Jpem9udGEKIAogYm9vbCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybUhhbmRsZVZlcnRpY2FsQWRqdXN0bWVudChjb25zdCBJbnRTaXplJiBzY3JvbGwpCiB7Ci0g
ICAgaWYgKG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50KSB7Ci0gICAgICAgIG1fZGF0YS0+dmVy
dGljYWxBZGp1c3RtZW50LT5wYWdlX3NpemUgPSB2aXNpYmxlSGVpZ2h0KCk7Ci0gICAgICAgIG1f
ZGF0YS0+dmVydGljYWxBZGp1c3RtZW50LT5zdGVwX2luY3JlbWVudCA9IHZpc2libGVIZWlnaHQo
KSAvIDEwLjA7Ci0gICAgICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50LT5wYWdlX2luY3Jl
bWVudCA9IHZpc2libGVIZWlnaHQoKSAqIDAuOTsKLSAgICAgICAgbV9kYXRhLT52ZXJ0aWNhbEFk
anVzdG1lbnQtPmxvd2VyID0gMDsKLSAgICAgICAgbV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQt
PnVwcGVyID0gY29udGVudHNIZWlnaHQoKTsKLSAgICAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdl
ZChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAgaWYgKG1fdmVydGljYWxBZGp1c3Rt
ZW50KSB7CisgICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50LT5wYWdlX3NpemUgPSB2aXNpYmxl
SGVpZ2h0KCk7CisgICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50LT5zdGVwX2luY3JlbWVudCA9
IHZpc2libGVIZWlnaHQoKSAvIDEwLjA7CisgICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50LT5w
YWdlX2luY3JlbWVudCA9IHZpc2libGVIZWlnaHQoKSAqIDAuOTsKKyAgICAgICAgbV92ZXJ0aWNh
bEFkanVzdG1lbnQtPmxvd2VyID0gMDsKKyAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQtPnVw
cGVyID0gY29udGVudHNIZWlnaHQoKTsKKyAgICAgICAgZ3RrX2FkanVzdG1lbnRfY2hhbmdlZCht
X3ZlcnRpY2FsQWRqdXN0bWVudCk7CiAKICAgICAgICAgaWYgKG1fc2Nyb2xsT2Zmc2V0LmhlaWdo
dCgpICE9IHNjcm9sbC5oZWlnaHQoKSkgewotICAgICAgICAgICAgbV9kYXRhLT52ZXJ0aWNhbEFk
anVzdG1lbnQtPnZhbHVlID0gc2Nyb2xsLmhlaWdodCgpOwotICAgICAgICAgICAgZ3RrX2FkanVz
dG1lbnRfdmFsdWVfY2hhbmdlZChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAgICAg
ICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+dmFsdWUgPSBzY3JvbGwuaGVpZ2h0KCk7CisgICAg
ICAgICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1fdmVydGljYWxBZGp1c3RtZW50
KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc0hvcml6b250YWxBZGp1c3Rt
ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ob3Jpem9udGFsQWRqdXN0bWVudCAhPSAwOwor
fQorCitib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFzVmVydGljYWxBZGp1c3RtZW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV92ZXJ0aWNhbEFkanVzdG1lbnQgIT0gMDsKK30KKwogdm9pZCBT
Y3JvbGxWaWV3OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IEludFJlY3QmIGNvbnRhaW5pbmdXaW5k
b3dSZWN0KQogewogICAgIEFTU0VSVChpc0ZyYW1lVmlldygpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24045</attachid>
            <date>2008-10-03 01:46:16 -0700</date>
            <delta_ts>2008-10-03 01:48:45 -0700</delta_ts>
            <desc>Patch #4</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13398</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3MjMw
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMTAt
MDMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBHdGsgYWRq
dXN0bWVudHMgc28gdGhhdCB0aGV5IGFyZSBwcm9wZXJseSBjaGVja2VkIGFnYWluIGJlZm9yZSBj
cmVhdGluZyBob3Jpem9udGFsL3ZlcnRpY2FsCisgICAgICAgIHNjcm9sbGJhcnMuCisJCisgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRIYXNWZXJ0aWNhbFNj
cm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc0hvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFzVmVydGljYWxBZGp1c3RtZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsVmlldzo6YWRqdXN0bWVudENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp+
U2Nyb2xsVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3Rt
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6
b250YWxBZGp1c3RtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3Jt
SGFuZGxlVmVydGljYWxBZGp1c3RtZW50KToKKwogMjAwOC0xMC0wMyAgRGF2aWQgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlc2VydmUgUXQncyBkaXNhYmxpbmcgb2YgYmxp
dHRpbmcgd2hlbiBhbnkgbmF0aXZlIHdpZGdldHMgYXJlIHByZXNlbnQgYW55d2hlcmUgb24gdGhl
IHBhZ2UgKGljaykuCkluZGV4OiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkocmV2aXNpb24gMzcyMjQpCisrKyBwbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCogY2hpCiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0SGFz
SG9yaXpvbnRhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYmICFt
X2hvcml6b250YWxTY3JvbGxiYXIpIHsKKyAgICBpZiAoaGFzQmFyICYmICFtX2hvcml6b250YWxT
Y3JvbGxiYXIgJiYgIXBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKSkgewogICAgICAg
ICBtX2hvcml6b250YWxTY3JvbGxiYXIgPSBTY3JvbGxiYXI6OmNyZWF0ZU5hdGl2ZVNjcm9sbGJh
cih0aGlzLCBIb3Jpem9udGFsU2Nyb2xsYmFyLCBSZWd1bGFyU2Nyb2xsYmFyKTsKICAgICAgICAg
YWRkQ2hpbGQobV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFo
YXNCYXIgJiYgbV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
U2Nyb2xsVmlldzo6c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGIKIAogdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sIGhhc0JhcikKIHsKLSAgICBpZiAoaGFzQmFyICYm
ICFtX3ZlcnRpY2FsU2Nyb2xsYmFyKSB7CisgICAgaWYgKGhhc0JhciAmJiAhbV92ZXJ0aWNhbFNj
cm9sbGJhciAmJiAhcGxhdGZvcm1IYXNWZXJ0aWNhbEFkanVzdG1lbnQoKSkgewogICAgICAgICBt
X3ZlcnRpY2FsU2Nyb2xsYmFyID0gU2Nyb2xsYmFyOjpjcmVhdGVOYXRpdmVTY3JvbGxiYXIodGhp
cywgVmVydGljYWxTY3JvbGxiYXIsIFJlZ3VsYXJTY3JvbGxiYXIpOwogICAgICAgICBhZGRDaGls
ZChtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpKTsKICAgICB9IGVsc2UgaWYgKCFoYXNCYXIgJiYg
bV92ZXJ0aWNhbFNjcm9sbGJhcikgewpAQCAtODIwLDYgKzgyMCwxNyBAQCBib29sIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtSGFuZGxlVmVydGljYWxBCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCiti
b29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFzSG9yaXpvbnRhbEFkanVzdG1lbnQoKSBjb25zdAor
eworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhc1Zl
cnRpY2FsQWRqdXN0bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjZW5k
aWYKIAogfQpJbmRleDogcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRm
b3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gMzcyMjYpCisrKyBwbGF0Zm9ybS9TY3JvbGxWaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw3ICsxMzcsMTAgQEAgcHVibGljOgogICAgIAogICAg
IC8vIFRoaXMgbWV0aG9kIHNjcm9sbHMgYnkgbGluZXMsIHBhZ2VzIG9yIHBpeGVscy4KICAgICBi
b29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5KTsKLSAgICAKKyAg
ICAgICAgCisgICAgLy8gU2Nyb2xsIHRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIHZpZXcgKGVp
dGhlciBibGl0dGluZyBvciBpbnZhbGlkYXRpbmcgYXMgbmVlZGVkKS4KKyAgICB2b2lkIHNjcm9s
bENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKTsKKwogICAgIC8vIFRoaXMgZ2l2
ZXMgdXMgYSBtZWFucyBvZiBibG9ja2luZyBwYWludGluZyBvbiBvdXIgc2Nyb2xsYmFycyB1bnRp
bCB0aGUgZmlyc3QgbGF5b3V0IGhhcyBvY2N1cnJlZC4KICAgICB2b2lkIHNldFNjcm9sbGJhcnNT
dXBwcmVzc2VkKGJvb2wgc3VwcHJlc3NlZCwgYm9vbCByZXBhaW50T25VbnN1cHByZXNzID0gZmFs
c2UpOwogICAgIGJvb2wgc2Nyb2xsYmFyc1N1cHByZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGJhcnNTdXBwcmVzc2VkOyB9CkBAIC0yNDIsOSArMjQ1LDYgQEAgcHJpdmF0ZToKICAgICAv
LyBDYWxsZWQgdG8gdXBkYXRlIHRoZSBzY3JvbGxiYXJzIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB0
aGUgc3RhdGUgb2YgdGhlIHZpZXcuCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IElu
dFNpemUmIGRlc2lyZWRPZmZzZXQpOwogCi0gICAgLy8gU2Nyb2xsIHRoZSBhY3R1YWwgY29udGVu
dHMgb2YgdGhlIHZpZXcgKGVpdGhlciBibGl0dGluZyBvciBpbnZhbGlkYXRpbmcgYXMgbmVlZGVk
KS4KLSAgICB2b2lkIHNjcm9sbENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKTsK
LQogICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gY3JlYXRlL2Rlc3Ryb3kgc2Nyb2xs
YmFycy4KICAgICB2b2lkIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoYm9vbCk7CiAgICAgdm9p
ZCBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sKTsKQEAgLTI2Niw2ICsyNjYsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc09mZnNjcmVlbigpIGNvbnN0OwogICAgIGJvb2wgcGxh
dGZvcm1IYW5kbGVIb3Jpem9udGFsQWRqdXN0bWVudChjb25zdCBJbnRTaXplJik7CiAgICAgYm9v
bCBwbGF0Zm9ybUhhbmRsZVZlcnRpY2FsQWRqdXN0bWVudChjb25zdCBJbnRTaXplJik7CisgICAg
Ym9vbCBwbGF0Zm9ybUhhc0hvcml6b250YWxBZGp1c3RtZW50KCkgY29uc3Q7CisgICAgYm9vbCBw
bGF0Zm9ybUhhc1ZlcnRpY2FsQWRqdXN0bWVudCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBkZWZpbmVkIF9fT0JKQ19fCiBwdWJsaWM6CkBAIC0yNzUsMTQgKzI3Nyw2IEBAIHByaXZh
dGU6CiAgICAgTlNTY3JvbGxWaWV3PFdlYkNvcmVGcmFtZVNjcm9sbFZpZXc+KiBzY3JvbGxWaWV3
KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShXSU4p
ICYmICFQTEFURk9STShRVCkKLS8vIEZJWE1FOiBTY3JvbGxWaWV3UHJpdmF0ZSB3aWxsIGV2ZW50
dWFsbHkgYmUgY29tcGxldGVseSBnb25lLgotICAgIGNsYXNzIFNjcm9sbFZpZXdQcml2YXRlOwot
ICAgIFNjcm9sbFZpZXdQcml2YXRlKiBtX2RhdGE7Ci0KLSAgICBmcmllbmQgY2xhc3MgU2Nyb2xs
Vmlld1ByaXZhdGU7IC8vIEZJWE1FOiBUZW1wb3JhcnkuCi0jZW5kaWYKLQogI2lmICFQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShXWCkKIHB1YmxpYzoKICAgICB2b2lkIGFkZFRvRGlydHlSZWdp
b24oY29uc3QgSW50UmVjdCYpOwpAQCAtMjk5LDYgKzI5Myw5IEBAIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oR1RLKQogcHVibGljOgogICAgIHZvaWQgc2V0R3RrQWRqdXN0bWVudHMoR3RrQWRqdXN0
bWVudCogaGFkaiwgR3RrQWRqdXN0bWVudCogdmFkaik7CisgICAgR3RrQWRqdXN0bWVudCogbV9o
b3Jpem9udGFsQWRqdXN0bWVudDsKKyAgICBHdGtBZGp1c3RtZW50KiBtX3ZlcnRpY2FsQWRqdXN0
bWVudDsKKyAgICB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJiBvZmZzZXQpIHsg
bV9zY3JvbGxPZmZzZXQgPSBvZmZzZXQ7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV1gpCkBA
IC0zMDcsNiArMzA0LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0U2Ny
b2xsYmFycyhpbnQgeCA9IC0xLCBpbnQgeSA9IC0xLCBib29sIHJlZnJlc2ggPSB0cnVlKTsKKyAg
ICBjbGFzcyBTY3JvbGxWaWV3UHJpdmF0ZTsKKyAgICBTY3JvbGxWaWV3UHJpdmF0ZSogbV9kYXRh
OwogI2VuZGlmCiAKIH07IC8vIGNsYXNzIFNjcm9sbFZpZXcKSW5kZXg6IHBsYXRmb3JtL2d0ay9T
Y3JvbGxWaWV3R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9ndGsvU2Nyb2xsVmlld0d0
ay5jcHAJKHJldmlzaW9uIDM3MjE0KQorKysgcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2OSArNTIsNDcgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxWaWV3OjpTY3JvbGxWaWV3UHJp
dmF0ZQorc3RhdGljIHZvaWQgYWRqdXN0bWVudENoYW5nZWQoR3RrQWRqdXN0bWVudCogYWRqdXN0
bWVudCwgZ3BvaW50ZXIgX3RoYXQpCiB7Ci1wdWJsaWM6Ci0gICAgU2Nyb2xsVmlld1ByaXZhdGUo
U2Nyb2xsVmlldyogX3ZpZXcpCi0gICAgICAgIDogdmlldyhfdmlldykKLSAgICAgICAgLCBob3Jp
em9udGFsQWRqdXN0bWVudCgwKQotICAgICAgICAsIHZlcnRpY2FsQWRqdXN0bWVudCgwKQotICAg
IHt9Ci0KLSAgICB+U2Nyb2xsVmlld1ByaXZhdGUoKQotICAgIHsKLSAgICAgICAgaWYgKGhvcml6
b250YWxBZGp1c3RtZW50KSB7Ci0gICAgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25u
ZWN0X2J5X2Z1bmMoR19PQkpFQ1QoaG9yaXpvbnRhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIpU2Ny
b2xsVmlld1ByaXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgICAgIGdf
b2JqZWN0X3VucmVmKGhvcml6b250YWxBZGp1c3RtZW50KTsKLSAgICAgICAgfQotCi0gICAgICAg
IGlmICh2ZXJ0aWNhbEFkanVzdG1lbnQpIHsKLSAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVCh2ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50
ZXIpU2Nyb2xsVmlld1ByaXZhdGU6OmFkanVzdG1lbnRDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAg
ICAgIGdfb2JqZWN0X3VucmVmKHZlcnRpY2FsQWRqdXN0bWVudCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICBzdGF0aWMgdm9pZCBhZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiwgZ3Bv
aW50ZXIpOwotCi0gICAgU2Nyb2xsVmlldyogdmlldzsKLSAgICBJbnRTaXplIHZpZXdQb3J0U2l6
ZTsKLSAgICBHdGtBZGp1c3RtZW50KiBob3Jpem9udGFsQWRqdXN0bWVudDsKLSAgICBHdGtBZGp1
c3RtZW50KiB2ZXJ0aWNhbEFkanVzdG1lbnQ7Ci19OwotCi12b2lkIFNjcm9sbFZpZXc6OlNjcm9s
bFZpZXdQcml2YXRlOjphZGp1c3RtZW50Q2hhbmdlZChHdGtBZGp1c3RtZW50KiBhZGp1c3RtZW50
LCBncG9pbnRlciBfdGhhdCkKLXsKLSAgICBTY3JvbGxWaWV3UHJpdmF0ZSogdGhhdCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8U2Nyb2xsVmlld1ByaXZhdGUqPihfdGhhdCk7CisgICAgU2Nyb2xsVmlldyog
dGhhdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2Nyb2xsVmlldyo+KF90aGF0KTsKIAogICAgIC8vIEZp
Z3VyZSBvdXQgaWYgd2UgcmVhbGx5IG1vdmVkLgotICAgIEludFNpemUgbmV3T2Zmc2V0ID0gdGhh
dC0+dmlldy0+bV9zY3JvbGxPZmZzZXQ7Ci0gICAgaWYgKGFkanVzdG1lbnQgPT0gdGhhdC0+aG9y
aXpvbnRhbEFkanVzdG1lbnQpCisgICAgSW50U2l6ZSBuZXdPZmZzZXQgPSB0aGF0LT5zY3JvbGxP
ZmZzZXQoKTsKKyAgICBpZiAoYWRqdXN0bWVudCA9PSB0aGF0LT5tX2hvcml6b250YWxBZGp1c3Rt
ZW50KQogICAgICAgICBuZXdPZmZzZXQuc2V0V2lkdGgoc3RhdGljX2Nhc3Q8aW50PihndGtfYWRq
dXN0bWVudF9nZXRfdmFsdWUoYWRqdXN0bWVudCkpKTsKLSAgICBlbHNlIGlmIChhZGp1c3RtZW50
ID09IHRoYXQtPnZlcnRpY2FsQWRqdXN0bWVudCkKKyAgICBlbHNlIGlmIChhZGp1c3RtZW50ID09
IHRoYXQtPm1fdmVydGljYWxBZGp1c3RtZW50KQogICAgICAgICBuZXdPZmZzZXQuc2V0SGVpZ2h0
KHN0YXRpY19jYXN0PGludD4oZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKGFkanVzdG1lbnQpKSk7
CiAKLSAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gbmV3T2Zmc2V0IC0gdGhhdC0+dmlldy0+bV9z
Y3JvbGxPZmZzZXQ7CisgICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IG5ld09mZnNldCAtIHRoYXQt
PnNjcm9sbE9mZnNldCgpOwogICAgIGlmIChzY3JvbGxEZWx0YSA9PSBJbnRTaXplKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICB0aGF0LT52aWV3LT5tX3Njcm9sbE9mZnNldCA9IG5ld09mZnNldDsK
KyAgICB0aGF0LT5zZXRTY3JvbGxPZmZzZXQobmV3T2Zmc2V0KTsKIAotICAgIGlmICh0aGF0LT52
aWV3LT5zY3JvbGxiYXJzU3VwcHJlc3NlZCgpKQorICAgIGlmICh0aGF0LT5zY3JvbGxiYXJzU3Vw
cHJlc3NlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB0aGF0LT52aWV3LT5zY3JvbGxDb250
ZW50cyhzY3JvbGxEZWx0YSk7Ci0gICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4odGhhdC0+dmll
dyktPmZyYW1lKCktPnNlbmRTY3JvbGxFdmVudCgpOworICAgIHRoYXQtPnNjcm9sbENvbnRlbnRz
KHNjcm9sbERlbHRhKTsKIH0KIAogU2Nyb2xsVmlldzo6U2Nyb2xsVmlldygpCi0gICAgOiBtX2Rh
dGEobmV3IFNjcm9sbFZpZXdQcml2YXRlKHRoaXMpKQogewogICAgIGluaXQoKTsKKyAgICBtX2hv
cml6b250YWxBZGp1c3RtZW50ID0gMDsKKyAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudCA9IDA7CiB9
CiAKIFNjcm9sbFZpZXc6On5TY3JvbGxWaWV3KCkKIHsKICAgICBkZXN0cm95KCk7Ci0gICAgZGVs
ZXRlIG1fZGF0YTsKKyAgICBpZiAobV9ob3Jpem9udGFsQWRqdXN0bWVudCkgeworICAgICAgICBn
X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV9ob3Jpem9udGFs
QWRqdXN0bWVudCksIChncG9pbnRlcilhZGp1c3RtZW50Q2hhbmdlZCwgdGhpcyk7CisgICAgICAg
IGdfb2JqZWN0X3VucmVmKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpOworICAgIH0KKworICAgIGlm
IChtX3ZlcnRpY2FsQWRqdXN0bWVudCkgeworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNj
b25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV92ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50ZXIp
YWRqdXN0bWVudENoYW5nZWQsIHRoaXMpOworICAgICAgICBnX29iamVjdF91bnJlZihtX3ZlcnRp
Y2FsQWRqdXN0bWVudCk7CisgICAgfQogfQogCiAvKgpAQCAtMTI1LDE5ICsxMDMsMTkgQEAgdm9p
ZCBTY3JvbGxWaWV3OjpzZXRHdGtBZGp1c3RtZW50cyhHdGtBZAogewogICAgIEFTU0VSVCghaGFk
aiA9PSAhdmFkaik7CiAKLSAgICBpZiAobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCkgewot
ICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV9k
YXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCksIChncG9pbnRlcilTY3JvbGxWaWV3UHJpdmF0ZTo6
YWRqdXN0bWVudENoYW5nZWQsIG1fZGF0YSk7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rp
c2Nvbm5lY3RfYnlfZnVuYyhHX09CSkVDVChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCksIChn
cG9pbnRlcilTY3JvbGxWaWV3UHJpdmF0ZTo6YWRqdXN0bWVudENoYW5nZWQsIG1fZGF0YSk7Ci0g
ICAgICAgIGdfb2JqZWN0X3VucmVmKG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQpOwotICAg
ICAgICBnX29iamVjdF91bnJlZihtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAgaWYg
KG1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlz
Y29ubmVjdF9ieV9mdW5jKEdfT0JKRUNUKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpLCAoZ3BvaW50
ZXIpYWRqdXN0bWVudENoYW5nZWQsIHRoaXMpOworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19k
aXNjb25uZWN0X2J5X2Z1bmMoR19PQkpFQ1QobV92ZXJ0aWNhbEFkanVzdG1lbnQpLCAoZ3BvaW50
ZXIpYWRqdXN0bWVudENoYW5nZWQsIHRoaXMpOworICAgICAgICBnX29iamVjdF91bnJlZihtX2hv
cml6b250YWxBZGp1c3RtZW50KTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYobV92ZXJ0aWNhbEFk
anVzdG1lbnQpOwogICAgIH0KIAotICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQgPSBo
YWRqOwotICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50ID0gdmFkajsKKyAgICBtX2hvcml6
b250YWxBZGp1c3RtZW50ID0gaGFkajsKKyAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudCA9IHZhZGo7
CiAKLSAgICBpZiAobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCkgewotICAgICAgICBnX3Np
Z25hbF9jb25uZWN0KG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQsICJ2YWx1ZS1jaGFuZ2Vk
IiwgR19DQUxMQkFDSyhTY3JvbGxWaWV3UHJpdmF0ZTo6YWRqdXN0bWVudENoYW5nZWQpLCBtX2Rh
dGEpOwotICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50
LCAidmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soU2Nyb2xsVmlld1ByaXZhdGU6OmFkanVzdG1l
bnRDaGFuZ2VkKSwgbV9kYXRhKTsKKyAgICBpZiAobV9ob3Jpem9udGFsQWRqdXN0bWVudCkgewor
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0KG1faG9yaXpvbnRhbEFkanVzdG1lbnQsICJ2YWx1ZS1j
aGFuZ2VkIiwgR19DQUxMQkFDSyhhZGp1c3RtZW50Q2hhbmdlZCksIHRoaXMpOworICAgICAgICBn
X3NpZ25hbF9jb25uZWN0KG1fdmVydGljYWxBZGp1c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdf
Q0FMTEJBQ0soYWRqdXN0bWVudENoYW5nZWQpLCB0aGlzKTsKIAogICAgICAgICAvKgogICAgICAg
ICAgKiBkaXNhYmxlIHRoZSBzY3JvbGxiYXJzIChpZiB3ZSBoYXZlIGFueSkgYXMgdGhlIEd0a0Fk
anVzdG1lbnQgb3ZlcgpAQCAtMTQ1LDggKzEyMyw4IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0R3Rr
QWRqdXN0bWVudHMoR3RrQWQKICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoZmFsc2Up
OwogICAgICAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKGZhbHNlKTsKIAotICAgICAgICBn
X29iamVjdF9yZWYobV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudCk7Ci0gICAgICAgIGdfb2Jq
ZWN0X3JlZihtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAgICAgIGdfb2JqZWN0X3Jl
ZihtX2hvcml6b250YWxBZGp1c3RtZW50KTsKKyAgICAgICAgZ19vYmplY3RfcmVmKG1fdmVydGlj
YWxBZGp1c3RtZW50KTsKICAgICB9CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzKG1fc2Nyb2xsT2Zm
c2V0KTsKQEAgLTE2NiwxNyArMTQ0LDE3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1SZW1v
dmVDaGlsZChXaWQKIAogYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZUhvcml6b250YWxB
ZGp1c3RtZW50KGNvbnN0IEludFNpemUmIHNjcm9sbCkKIHsKLSAgICBpZiAobV9kYXRhLT5ob3Jp
em9udGFsQWRqdXN0bWVudCkgewotICAgICAgICBtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50
LT5wYWdlX3NpemUgPSB2aXNpYmxlV2lkdGgoKTsKLSAgICAgICAgbV9kYXRhLT5ob3Jpem9udGFs
QWRqdXN0bWVudC0+c3RlcF9pbmNyZW1lbnQgPSB2aXNpYmxlV2lkdGgoKSAvIDEwLjA7Ci0gICAg
ICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQtPnBhZ2VfaW5jcmVtZW50ID0gdmlzaWJs
ZVdpZHRoKCkgKiAwLjk7Ci0gICAgICAgIG1fZGF0YS0+aG9yaXpvbnRhbEFkanVzdG1lbnQtPmxv
d2VyID0gMDsKLSAgICAgICAgbV9kYXRhLT5ob3Jpem9udGFsQWRqdXN0bWVudC0+dXBwZXIgPSBj
b250ZW50c1dpZHRoKCk7Ci0gICAgICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQobV9kYXRhLT5o
b3Jpem9udGFsQWRqdXN0bWVudCk7CisgICAgaWYgKG1faG9yaXpvbnRhbEFkanVzdG1lbnQpIHsK
KyAgICAgICAgbV9ob3Jpem9udGFsQWRqdXN0bWVudC0+cGFnZV9zaXplID0gdmlzaWJsZVdpZHRo
KCk7CisgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPnN0ZXBfaW5jcmVtZW50ID0gdmlz
aWJsZVdpZHRoKCkgLyAxMC4wOworICAgICAgICBtX2hvcml6b250YWxBZGp1c3RtZW50LT5wYWdl
X2luY3JlbWVudCA9IHZpc2libGVXaWR0aCgpICogMC45OworICAgICAgICBtX2hvcml6b250YWxB
ZGp1c3RtZW50LT5sb3dlciA9IDA7CisgICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPnVw
cGVyID0gY29udGVudHNXaWR0aCgpOworICAgICAgICBndGtfYWRqdXN0bWVudF9jaGFuZ2VkKG1f
aG9yaXpvbnRhbEFkanVzdG1lbnQpOwogCiAgICAgICAgIGlmIChtX3Njcm9sbE9mZnNldC53aWR0
aCgpICE9IHNjcm9sbC53aWR0aCgpKSB7Ci0gICAgICAgICAgICBtX2RhdGEtPmhvcml6b250YWxB
ZGp1c3RtZW50LT52YWx1ZSA9IHNjcm9sbC53aWR0aCgpOwotICAgICAgICAgICAgZ3RrX2FkanVz
dG1lbnRfdmFsdWVfY2hhbmdlZChtX2RhdGEtPmhvcml6b250YWxBZGp1c3RtZW50KTsKKyAgICAg
ICAgICAgIG1faG9yaXpvbnRhbEFkanVzdG1lbnQtPnZhbHVlID0gc2Nyb2xsLndpZHRoKCk7Cisg
ICAgICAgICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2VkKG1faG9yaXpvbnRhbEFkanVz
dG1lbnQpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTE4NSwy
MyArMTYzLDMzIEBAIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1IYW5kbGVIb3Jpem9udGEKIAog
Ym9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUhhbmRsZVZlcnRpY2FsQWRqdXN0bWVudChjb25zdCBJ
bnRTaXplJiBzY3JvbGwpCiB7Ci0gICAgaWYgKG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50KSB7
Ci0gICAgICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50LT5wYWdlX3NpemUgPSB2aXNpYmxl
SGVpZ2h0KCk7Ci0gICAgICAgIG1fZGF0YS0+dmVydGljYWxBZGp1c3RtZW50LT5zdGVwX2luY3Jl
bWVudCA9IHZpc2libGVIZWlnaHQoKSAvIDEwLjA7Ci0gICAgICAgIG1fZGF0YS0+dmVydGljYWxB
ZGp1c3RtZW50LT5wYWdlX2luY3JlbWVudCA9IHZpc2libGVIZWlnaHQoKSAqIDAuOTsKLSAgICAg
ICAgbV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQtPmxvd2VyID0gMDsKLSAgICAgICAgbV9kYXRh
LT52ZXJ0aWNhbEFkanVzdG1lbnQtPnVwcGVyID0gY29udGVudHNIZWlnaHQoKTsKLSAgICAgICAg
Z3RrX2FkanVzdG1lbnRfY2hhbmdlZChtX2RhdGEtPnZlcnRpY2FsQWRqdXN0bWVudCk7CisgICAg
aWYgKG1fdmVydGljYWxBZGp1c3RtZW50KSB7CisgICAgICAgIG1fdmVydGljYWxBZGp1c3RtZW50
LT5wYWdlX3NpemUgPSB2aXNpYmxlSGVpZ2h0KCk7CisgICAgICAgIG1fdmVydGljYWxBZGp1c3Rt
ZW50LT5zdGVwX2luY3JlbWVudCA9IHZpc2libGVIZWlnaHQoKSAvIDEwLjA7CisgICAgICAgIG1f
dmVydGljYWxBZGp1c3RtZW50LT5wYWdlX2luY3JlbWVudCA9IHZpc2libGVIZWlnaHQoKSAqIDAu
OTsKKyAgICAgICAgbV92ZXJ0aWNhbEFkanVzdG1lbnQtPmxvd2VyID0gMDsKKyAgICAgICAgbV92
ZXJ0aWNhbEFkanVzdG1lbnQtPnVwcGVyID0gY29udGVudHNIZWlnaHQoKTsKKyAgICAgICAgZ3Rr
X2FkanVzdG1lbnRfY2hhbmdlZChtX3ZlcnRpY2FsQWRqdXN0bWVudCk7CiAKICAgICAgICAgaWYg
KG1fc2Nyb2xsT2Zmc2V0LmhlaWdodCgpICE9IHNjcm9sbC5oZWlnaHQoKSkgewotICAgICAgICAg
ICAgbV9kYXRhLT52ZXJ0aWNhbEFkanVzdG1lbnQtPnZhbHVlID0gc2Nyb2xsLmhlaWdodCgpOwot
ICAgICAgICAgICAgZ3RrX2FkanVzdG1lbnRfdmFsdWVfY2hhbmdlZChtX2RhdGEtPnZlcnRpY2Fs
QWRqdXN0bWVudCk7CisgICAgICAgICAgICBtX3ZlcnRpY2FsQWRqdXN0bWVudC0+dmFsdWUgPSBz
Y3JvbGwuaGVpZ2h0KCk7CisgICAgICAgICAgICBndGtfYWRqdXN0bWVudF92YWx1ZV9jaGFuZ2Vk
KG1fdmVydGljYWxBZGp1c3RtZW50KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9IAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9y
bUhhc0hvcml6b250YWxBZGp1c3RtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ob3Jpem9u
dGFsQWRqdXN0bWVudCAhPSAwOworfQorCitib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtSGFzVmVy
dGljYWxBZGp1c3RtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92ZXJ0aWNhbEFkanVzdG1l
bnQgIT0gMDsKK30KKwogdm9pZCBTY3JvbGxWaWV3OjphZGRUb0RpcnR5UmVnaW9uKGNvbnN0IElu
dFJlY3QmIGNvbnRhaW5pbmdXaW5kb3dSZWN0KQogewogICAgIEFTU0VSVChpc0ZyYW1lVmlldygp
KTsK
</data>
<flag name="review"
          id="10884"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>