<?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>38006</bug_id>
          
          <creation_ts>2010-04-22 14:00:59 -0700</creation_ts>
          <short_desc>Change lifetime of JSC::IdentifierTables used by WebCores to match AtomicStringTable</short_desc>
          <delta_ts>2010-04-22 17:12:01 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>216065</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 14:00:59 -0700</bug_when>
    <thetext>Presently JSC&apos;s IdentifierTables are owned by the JSGlobalData.  For JSGlobalData objects created via the API this should continue to be the case, but for the JSGlobalData objects used by WebCore (the main thread&apos;s common global data, and those for workers) use a IdentifierTable provided (and owned) by wtfThreadData.  This allow the lifetime of these IdentifierTable to match those of the corresponding AtomicStringTables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216066</commentid>
    <comment_count>1</comment_count>
      <attachid>54093</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 14:02:32 -0700</bug_when>
    <thetext>Created attachment 54093
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216069</commentid>
    <comment_count>2</comment_count>
      <attachid>54094</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 14:08:00 -0700</bug_when>
    <thetext>Created attachment 54094
Fix erroneous svn merge resolution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216071</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-22 14:10:45 -0700</bug_when>
    <thetext>Attachment 54093 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/1882003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216086</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-22 14:33:11 -0700</bug_when>
    <thetext>Attachment 54094 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1840035</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216088</commentid>
    <comment_count>5</comment_count>
      <attachid>54098</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 14:36:49 -0700</bug_when>
    <thetext>Created attachment 54098
Chromium build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216101</commentid>
    <comment_count>6</comment_count>
      <attachid>54098</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-04-22 15:17:56 -0700</bug_when>
    <thetext>Comment on attachment 54098
Chromium build fix

r=me?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216102</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-04-22 15:18:16 -0700</bug_when>
    <thetext>Please run testjsglue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216170</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-04-22 17:12:01 -0700</bug_when>
    <thetext>fixed in r58133</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54093</attachid>
            <date>2010-04-22 14:02:32 -0700</date>
            <delta_ts>2010-04-22 14:08:00 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>patch.wtfidt.txt</filename>
            <type>text/plain</type>
            <size>11824</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4MTE0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDQtMjIgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODAwNgorICAgICAgICBDaGFuZ2UgbGlmZXRpbWUgb2YgSlNDOjpJZGVudGlm
aWVyVGFibGVzIHVzZWQgYnkgV2ViQ29yZXMgdG8gbWF0Y2ggQXRvbWljU3RyaW5nVGFibGUKKwor
ICAgICAgICBQcmVzZW50bHkgSlNDJ3MgSWRlbnRpZmllclRhYmxlcyBhcmUgb3duZWQgYnkgdGhl
IEpTR2xvYmFsRGF0YS4gIEZvcgorICAgICAgICBKU0dsb2JhbERhdGEgb2JqZWN0cyBjcmVhdGVk
IHZpYSB0aGUgQVBJIHRoaXMgc2hvdWxkIGNvbnRpbnVlIHRvIGJlIHRoZSBjYXNlLAorICAgICAg
ICBidXQgZm9yIHRoZSBKU0dsb2JhbERhdGEgb2JqZWN0cyB1c2VkIGJ5IFdlYkNvcmUgKHRoZSBt
YWluIHRocmVhZCdzIGNvbW1vbgorICAgICAgICBnbG9iYWwgZGF0YSwgYW5kIHRob3NlIGZvciB3
b3JrZXJzKSB1c2UgYSBJZGVudGlmaWVyVGFibGUgcHJvdmlkZWQgKGFuZCBvd25lZCkKKyAgICAg
ICAgYnkgd3RmVGhyZWFkRGF0YS4gIFRoaXMgYWxsb3cgdGhlIGxpZmV0aW1lIG9mIHRoZXNlIElk
ZW50aWZpZXJUYWJsZSB0byBtYXRjaAorICAgICAgICB0aG9zZSBvZiB0aGUgY29ycmVzcG9uZGlu
ZyBBdG9taWNTdHJpbmdUYWJsZXMuCisKKyAgICAgICAgKiBBUEkvQVBJU2hpbXMuaDoKKyAgICAg
ICAgKEpTQzo6QVBJRW50cnlTaGltOjpBUElFbnRyeVNoaW0pOgorICAgICAgICAqIEFQSS9KU0Nv
bnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0R3JvdXBDcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cHJvdGVjdCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OnVucHJvdGVjdCk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtS
b290cyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0
YTo6fkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6Y3JlYXRlQ29u
dGV4dEdyb3VwKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbERhdGE6OnNoYXJlZEluc3RhbmNlKToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6Oik6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsRGF0YTo6aXNTaGFyZWRJbnN0YW5jZSk6CisgICAgICAgICogcnVudGlt
ZS9KU0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OkpTTG9jayk6CisgICAgICAgIChK
U0M6OkpTTG9jazo6bG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6dW5sb2NrKToKKyAgICAg
ICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAgICog
d3RmL1dURlRocmVhZERhdGEuY3BwOgorICAgICAgICAoV1RGOjpXVEZUaHJlYWREYXRhOjpXVEZU
aHJlYWREYXRhKToKKyAgICAgICAgKFdURjo6V1RGVGhyZWFkRGF0YTo6fldURlRocmVhZERhdGEp
OgorCiAyMDEwLTA0LTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0FQSS9BUElTaGltcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9BUElT
aGltcy5oCShyZXZpc2lvbiA1ODExNCkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9BUElTaGltcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAvLyBKU1Byb3Bl
cnR5TmFtZUFjY3VtdWxhdG9yIG9ubHkgaGFzIGEgZ2xvYmFsRGF0YS4KICAgICBBUElFbnRyeVNo
aW0oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIHJlZ2lzdGVyVGhyZWFkID0gdHJ1ZSkK
ICAgICAgICAgOiBBUElFbnRyeVNoaW1XaXRob3V0TG9jayhnbG9iYWxEYXRhLCByZWdpc3RlclRo
cmVhZCkKLSAgICAgICAgLCBtX2xvY2soZ2xvYmFsRGF0YS0+aXNTaGFyZWRJbnN0YW5jZSA/IExv
Y2tGb3JSZWFsIDogU2lsZW5jZUFzc2VydGlvbnNPbmx5KQorICAgICAgICAsIG1fbG9jayhnbG9i
YWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRp
b25zT25seSkKICAgICB7CiAgICAgfQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250
ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUoKQogewogICAgIGluaXRp
YWxpemVUaHJlYWRpbmcoKTsKLSAgICByZXR1cm4gdG9SZWYoSlNHbG9iYWxEYXRhOjpjcmVhdGVO
b25EZWZhdWx0KFRocmVhZFN0YWNrVHlwZVNtYWxsKS5yZWxlYXNlUmVmKCkpOworICAgIHJldHVy
biB0b1JlZihKU0dsb2JhbERhdGE6OmNyZWF0ZUNvbnRleHRHcm91cChUaHJlYWRTdGFja1R5cGVT
bWFsbCkucmVsZWFzZVJlZigpKTsKIH0KIAogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3Jv
dXBSZXRhaW4oSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApCkBAIC04NCw3ICs4NCw3IEBAIEpTR2xv
YmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGUKICAgICBpbml0aWFsaXplVGhyZWFk
aW5nKCk7CiAKICAgICBKU0xvY2sgbG9jayhMb2NrRm9yUmVhbCk7Ci0gICAgUmVmUHRyPEpTR2xv
YmFsRGF0YT4gZ2xvYmFsRGF0YSA9IGdyb3VwID8gUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+KHRv
SlMoZ3JvdXApKSA6IEpTR2xvYmFsRGF0YTo6Y3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5
cGVTbWFsbCk7CisgICAgUmVmUHRyPEpTR2xvYmFsRGF0YT4gZ2xvYmFsRGF0YSA9IGdyb3VwID8g
UGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+KHRvSlMoZ3JvdXApKSA6IEpTR2xvYmFsRGF0YTo6Y3Jl
YXRlQ29udGV4dEdyb3VwKFRocmVhZFN0YWNrVHlwZVNtYWxsKTsKIAogICAgIEFQSUVudHJ5U2hp
bSBlbnRyeVNoaW0oZ2xvYmFsRGF0YS5nZXQoKSwgZmFsc2UpOwogCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db2xsZWN0b3IuY3BwCShyZXZpc2lvbiA1ODExNCkKKysrIEphdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29sbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcyLDcgKzk3Miw3IEBA
IHZvaWQgSGVhcDo6bWFya1N0YWNrT2JqZWN0c0NvbnNlcnZhdGl2ZWwKIHZvaWQgSGVhcDo6cHJv
dGVjdChKU1ZhbHVlIGspCiB7CiAgICAgQVNTRVJUKGspOwotICAgIEFTU0VSVChKU0xvY2s6OmN1
cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkgfHwgIW1fZ2xvYmFsRGF0YS0+aXNTaGFyZWRJbnN0
YW5jZSk7CisgICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSB8
fCAhbV9nbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKCkpOwogCiAgICAgaWYgKCFrLmlzQ2Vs
bCgpKQogICAgICAgICByZXR1cm47CkBAIC05ODMsNyArOTgzLDcgQEAgdm9pZCBIZWFwOjpwcm90
ZWN0KEpTVmFsdWUgaykKIGJvb2wgSGVhcDo6dW5wcm90ZWN0KEpTVmFsdWUgaykKIHsKICAgICBB
U1NFUlQoayk7Ci0gICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2so
KSB8fCAhbV9nbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKTsKKyAgICBBU1NFUlQoSlNMb2Nr
OjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpIHx8ICFtX2dsb2JhbERhdGEtPmlzU2hhcmVk
SW5zdGFuY2UoKSk7CiAKICAgICBpZiAoIWsuaXNDZWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwNjQsNyArMTA2NCw3IEBAIHZvaWQgSGVhcDo6c3dlZXAoKQogdm9pZCBIZWFwOjpt
YXJrUm9vdHMoKQogewogI2lmbmRlZiBOREVCVUcKLSAgICBpZiAobV9nbG9iYWxEYXRhLT5pc1No
YXJlZEluc3RhbmNlKSB7CisgICAgaWYgKG1fZ2xvYmFsRGF0YS0+aXNTaGFyZWRJbnN0YW5jZSgp
KSB7CiAgICAgICAgIEFTU0VSVChKU0xvY2s6OmxvY2tDb3VudCgpID4gMCk7CiAgICAgICAgIEFT
U0VSVChKU0xvY2s6OmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkpOwogICAgIH0KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDU4MTE0KQor
KysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDMsOCArMTAzLDggQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMoKQogICAg
IGpzRnVuY3Rpb24tPn5KU0NlbGwoKTsKIH0KIAotSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEo
Ym9vbCBpc1NoYXJlZCwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZFN0YWNrVHlwZSkKLSAgICA6IGlz
U2hhcmVkSW5zdGFuY2UoaXNTaGFyZWQpCitKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9i
YWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZFN0YWNrVHlw
ZSkKKyAgICA6IGdsb2JhbERhdGFUeXBlKGdsb2JhbERhdGFUeXBlKQogICAgICwgY2xpZW50RGF0
YSgwKQogICAgICwgYXJyYXlUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjphcnJheVRhYmxl
KSkKICAgICAsIGRhdGVUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpkYXRlVGFibGUpKQpA
QCAtMTI4LDcgKzEyOCw4IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKGJvb2wgaXNTaGFy
ZWQKICNpZiBVU0UoSlNWQUxVRTMyKQogICAgICwgbnVtYmVyU3RydWN0dXJlKEpTTnVtYmVyQ2Vs
bDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKICNlbmRpZgotICAgICwgaWRlbnRpZmllclRh
YmxlKGNyZWF0ZUlkZW50aWZpZXJUYWJsZSgpKQorICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2Jh
bERhdGFUeXBlID09IERlZmF1bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJU
YWJsZSgpIDogY3JlYXRlSWRlbnRpZmllclRhYmxlKCkpCisgICAgLCBsaXRlcmFsVGFibGUoY3Jl
YXRlTGl0ZXJhbFRhYmxlKCkpCiAgICAgLCBsaXRlcmFsVGFibGUoY3JlYXRlTGl0ZXJhbFRhYmxl
KCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlmaWVycyh0aGlzKSkKICAg
ICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCkBAIC0xOTMsMjIgKzE5NCwy
MiBAQCBKU0dsb2JhbERhdGE6On5KU0dsb2JhbERhdGEoKQogICAgIGRlbGV0ZSBlbXB0eUxpc3Q7
CiAKICAgICBkZWxldGUgcHJvcGVydHlOYW1lczsKLSAgICBkZWxldGVJZGVudGlmaWVyVGFibGUo
aWRlbnRpZmllclRhYmxlKTsKKyAgICBpZiAoZ2xvYmFsRGF0YVR5cGUgIT0gRGVmYXVsdCkKKyAg
ICAgICAgZGVsZXRlSWRlbnRpZmllclRhYmxlKGlkZW50aWZpZXJUYWJsZSk7CisgICAgZGVsZXRl
TGl0ZXJhbFRhYmxlKGxpdGVyYWxUYWJsZSk7CiAgICAgZGVsZXRlTGl0ZXJhbFRhYmxlKGxpdGVy
YWxUYWJsZSk7CiAKICAgICBkZWxldGUgY2xpZW50RGF0YTsKIH0KIAotUGFzc1JlZlB0cjxKU0ds
b2JhbERhdGE+IEpTR2xvYmFsRGF0YTo6Y3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5cGUg
dHlwZSkKK1Bhc3NSZWZQdHI8SlNHbG9iYWxEYXRhPiBKU0dsb2JhbERhdGE6OmNyZWF0ZUNvbnRl
eHRHcm91cChUaHJlYWRTdGFja1R5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEpTR2xvYmFsRGF0YShmYWxzZSwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNH
bG9iYWxEYXRhKEFQSUNvbnRleHRHcm91cCwgdHlwZSkpOwogfQogCiBQYXNzUmVmUHRyPEpTR2xv
YmFsRGF0YT4gSlNHbG9iYWxEYXRhOjpjcmVhdGUoVGhyZWFkU3RhY2tUeXBlIHR5cGUpCiB7Ci0g
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gbmV3IEpTR2xvYmFsRGF0YShmYWxzZSwgdHlw
ZSk7Ci0gICAgd3RmVGhyZWFkRGF0YSgpLmluaXRpYWxpemVJZGVudGlmaWVyVGFibGUoZ2xvYmFs
RGF0YS0+aWRlbnRpZmllclRhYmxlKTsKLSAgICByZXR1cm4gYWRvcHRSZWYoZ2xvYmFsRGF0YSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU0dsb2JhbERhdGEoRGVmYXVsdCwgdHlwZSkpOwog
fQogCiBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4gSlNHbG9iYWxEYXRhOjpjcmVhdGVMZWFrZWQo
VGhyZWFkU3RhY2tUeXBlIHR5cGUpCkBAIC0yMjgsNyArMjI5LDcgQEAgSlNHbG9iYWxEYXRhJiBK
U0dsb2JhbERhdGE6OnNoYXJlZEluc3RhbgogewogICAgIEpTR2xvYmFsRGF0YSomIGluc3RhbmNl
ID0gc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgIGlmICghaW5zdGFuY2UpIHsKLSAgICAg
ICAgaW5zdGFuY2UgPSBuZXcgSlNHbG9iYWxEYXRhKHRydWUsIFRocmVhZFN0YWNrVHlwZVNtYWxs
KTsKKyAgICAgICAgaW5zdGFuY2UgPSBuZXcgSlNHbG9iYWxEYXRhKEFQSVNoYXJlZCwgVGhyZWFk
U3RhY2tUeXBlU21hbGwpOwogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAg
ICAgaW5zdGFuY2UtPm1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7CiAjZW5kaWYKSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gNTgxMTQpCisr
KyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05MiwxNiArOTIsMjcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBKU0dsb2JhbERh
dGEgOiBwdWJsaWMgUmVmQ291bnRlZDxKU0dsb2JhbERhdGE+IHsKICAgICBwdWJsaWM6CisgICAg
ICAgIC8vIFdlYkNvcmUgaGFzIGEgb25lLXRvLW9uZSBtYXBwaW5nIG9mIHRocmVhZHMgdG8gSlNH
bG9iYWxEYXRhczsKKyAgICAgICAgLy8gZWl0aGVyIGNyZWF0ZSgpIG9yIGNyZWF0ZUxlYWtlZCgp
IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlCisgICAgICAgIC8vIG9uIGEgdGhyZWFkLCB0aGlz
IGlzIHRoZSAnZGVmYXVsdCcgSlNHbG9iYWxEYXRhIChpdCB1c2VzIHRoZQorICAgICAgICAvLyB0
aHJlYWQncyBkZWZhdWx0IHN0cmluZyB1bmlxdWluZyB0YWJsZSBmcm9tIHd0ZlRocmVhZERhdGEp
LgorICAgICAgICAvLyBBUEkgY29udGV4dHMgY3JlYXRlZCB1c2luZyB0aGUgbmV3IGNvbnRleHQg
Z3JvdXAgYXdhcmUgaW50ZXJmYWNlCisgICAgICAgIC8vIGNyZWF0ZSBBUElDb250ZXh0R3JvdXAg
b2JqZWN0cyB3aGljaCByZXF1aXJlIGxlc3MgbG9ja2luZyBvZiBKU0MKKyAgICAgICAgLy8gdGhh
biB0aGUgb2xkIHNpbmdsZXRvbiBBUElTaGFyZWQgSlNHbG9iYWxEYXRhIGNyZWF0ZWQgZm9yIHVz
ZSBieQorICAgICAgICAvLyB0aGUgb3JpZ2luYWwgQVBJLgorICAgICAgICBlbnVtIEdsb2JhbERh
dGFUeXBlIHsgRGVmYXVsdCwgQVBJQ29udGV4dEdyb3VwLCBBUElTaGFyZWQgfTsKKwogICAgICAg
ICBzdHJ1Y3QgQ2xpZW50RGF0YSB7CiAgICAgICAgICAgICB2aXJ0dWFsIH5DbGllbnREYXRhKCkg
PSAwOwogICAgICAgICB9OwogCisgICAgICAgIGJvb2wgaXNTaGFyZWRJbnN0YW5jZSgpIHsgcmV0
dXJuIGdsb2JhbERhdGFUeXBlID09IEFQSVNoYXJlZDsgfQogICAgICAgICBzdGF0aWMgYm9vbCBz
aGFyZWRJbnN0YW5jZUV4aXN0cygpOwogICAgICAgICBzdGF0aWMgSlNHbG9iYWxEYXRhJiBzaGFy
ZWRJbnN0YW5jZSgpOwogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4g
Y3JlYXRlKFRocmVhZFN0YWNrVHlwZSk7CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xv
YmFsRGF0YT4gY3JlYXRlTGVha2VkKFRocmVhZFN0YWNrVHlwZSk7Ci0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4gY3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5cGUp
OworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+IGNyZWF0ZUNvbnRleHRH
cm91cChUaHJlYWRTdGFja1R5cGUpOwogICAgICAgICB+SlNHbG9iYWxEYXRhKCk7CiAKICNpZiBF
TkFCTEUoSlNDX01VTFRJUExFX1RIUkVBRFMpCkBAIC0xMDksNyArMTIwLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKSB7IGhl
YXAubWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsgfQogI2VuZGlmCiAKLSAgICAgICAg
Ym9vbCBpc1NoYXJlZEluc3RhbmNlOworICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRh
VHlwZTsKICAgICAgICAgQ2xpZW50RGF0YSogY2xpZW50RGF0YTsKIAogICAgICAgICBjb25zdCBI
YXNoVGFibGUqIGFycmF5VGFibGU7CkBAIC0yMDUsNyArMjE2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgc3RvcFNhbXBsaW5nKCk7CiAgICAgICAgIHZvaWQgZHVtcFNhbXBsZURh
dGEoRXhlY1N0YXRlKiBleGVjKTsKICAgICBwcml2YXRlOgotICAgICAgICBKU0dsb2JhbERhdGEo
Ym9vbCBpc1NoYXJlZCwgVGhyZWFkU3RhY2tUeXBlKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKEds
b2JhbERhdGFUeXBlLCBUaHJlYWRTdGFja1R5cGUpOwogICAgICAgICBzdGF0aWMgSlNHbG9iYWxE
YXRhKiYgc2hhcmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAgICB2b2lkIGNyZWF0ZU5hdGl2
ZVRodW5rKCk7CiAgICAgfTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlz
aW9uIDU4MTE0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldExvY2tDb3VudChpbnRwdHJf
dCBjb3VudCkKIH0KIAogSlNMb2NrOjpKU0xvY2soRXhlY1N0YXRlKiBleGVjKQotICAgIDogbV9s
b2NrQmVoYXZpb3IoZXhlYy0+Z2xvYmFsRGF0YSgpLmlzU2hhcmVkSW5zdGFuY2UgPyBMb2NrRm9y
UmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSkKKyAgICA6IG1fbG9ja0JlaGF2aW9yKGV4ZWMt
Pmdsb2JhbERhdGEoKS5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VB
c3NlcnRpb25zT25seSkKIHsKICAgICBsb2NrKG1fbG9ja0JlaGF2aW9yKTsKIH0KQEAgLTEwNSwx
MiArMTA1LDEyIEBAIHZvaWQgSlNMb2NrOjp1bmxvY2soSlNMb2NrQmVoYXZpb3IgbG9ja0IKIAog
dm9pZCBKU0xvY2s6OmxvY2soRXhlY1N0YXRlKiBleGVjKQogewotICAgIGxvY2soZXhlYy0+Z2xv
YmFsRGF0YSgpLmlzU2hhcmVkSW5zdGFuY2UgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRp
b25zT25seSk7CisgICAgbG9jayhleGVjLT5nbG9iYWxEYXRhKCkuaXNTaGFyZWRJbnN0YW5jZSgp
ID8gTG9ja0ZvclJlYWwgOiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogfQogCiB2b2lkIEpTTG9j
azo6dW5sb2NrKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICB1bmxvY2soZXhlYy0+Z2xvYmFsRGF0
YSgpLmlzU2hhcmVkSW5zdGFuY2UgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25s
eSk7CisgICAgdW5sb2NrKGV4ZWMtPmdsb2JhbERhdGEoKS5pc1NoYXJlZEluc3RhbmNlKCkgPyBM
b2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiB9CiAKIGJvb2wgSlNMb2NrOjpj
dXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpCkBAIC0xNjIsNyArMTYyLDcgQEAgYm9vbCBKU0xv
Y2s6OmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKAogc3RhdGljIHVuc2lnbmVkIGxvY2tEcm9w
RGVwdGggPSAwOwogCiBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTdGF0
ZSogZXhlYykKLSAgICA6IG1fbG9ja0JlaGF2aW9yKGV4ZWMtPmdsb2JhbERhdGEoKS5pc1NoYXJl
ZEluc3RhbmNlID8gTG9ja0ZvclJlYWwgOiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpCisgICAgOiBt
X2xvY2tCZWhhdmlvcihleGVjLT5nbG9iYWxEYXRhKCkuaXNTaGFyZWRJbnN0YW5jZSgpID8gTG9j
a0ZvclJlYWwgOiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpCiB7CiAgICAgcHRocmVhZF9vbmNlKCZj
cmVhdGVKU0xvY2tDb3VudE9uY2UsIGNyZWF0ZUpTTG9ja0NvdW50KTsKIApJbmRleDogSmF2YVNj
cmlwdENvcmUvd3RmL1dURlRocmVhZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3d0Zi9XVEZUaHJlYWREYXRhLmNwcAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2NyaXB0
Q29yZS93dGYvV1RGVGhyZWFkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5LDgg
QEAgV1RGVGhyZWFkRGF0YSogV1RGVGhyZWFkRGF0YTo6c3RhdGljRGF0YQogV1RGVGhyZWFkRGF0
YTo6V1RGVGhyZWFkRGF0YSgpCiAgICAgOiBtX2F0b21pY1N0cmluZ1RhYmxlKG5ldyBXZWJDb3Jl
OjpBdG9taWNTdHJpbmdUYWJsZSgpKQogI2lmIFVTRShKU0MpCi0gICAgLCBtX2RlZmF1bHRJZGVu
dGlmaWVyVGFibGUoMCkKLSAgICAsIG1fY3VycmVudElkZW50aWZpZXJUYWJsZSgwKQorICAgICwg
bV9kZWZhdWx0SWRlbnRpZmllclRhYmxlKG5ldyBKU0M6OklkZW50aWZpZXJUYWJsZSgpKQorICAg
ICwgbV9jdXJyZW50SWRlbnRpZmllclRhYmxlKG1fZGVmYXVsdElkZW50aWZpZXJUYWJsZSkKICNl
bmRpZgogewogfQpAQCAtNDgsNiArNDgsNyBAQCBXVEZUaHJlYWREYXRhOjpXVEZUaHJlYWREYXRh
KCkKIFdURlRocmVhZERhdGE6On5XVEZUaHJlYWREYXRhKCkKIHsKICAgICBkZWxldGUgbV9hdG9t
aWNTdHJpbmdUYWJsZTsKKyAgICBkZWxldGUgbV9kZWZhdWx0SWRlbnRpZmllclRhYmxlOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54094</attachid>
            <date>2010-04-22 14:08:00 -0700</date>
            <delta_ts>2010-04-22 14:36:49 -0700</delta_ts>
            <desc>Fix erroneous svn merge resolution</desc>
            <filename>patch.wtfidt.2.txt</filename>
            <type>text/plain</type>
            <size>11743</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4MTE0KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDQtMjIgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODAwNgorICAgICAgICBDaGFuZ2UgbGlmZXRpbWUgb2YgSlNDOjpJZGVudGlm
aWVyVGFibGVzIHVzZWQgYnkgV2ViQ29yZXMgdG8gbWF0Y2ggQXRvbWljU3RyaW5nVGFibGUKKwor
ICAgICAgICBQcmVzZW50bHkgSlNDJ3MgSWRlbnRpZmllclRhYmxlcyBhcmUgb3duZWQgYnkgdGhl
IEpTR2xvYmFsRGF0YS4gIEZvcgorICAgICAgICBKU0dsb2JhbERhdGEgb2JqZWN0cyBjcmVhdGVk
IHZpYSB0aGUgQVBJIHRoaXMgc2hvdWxkIGNvbnRpbnVlIHRvIGJlIHRoZSBjYXNlLAorICAgICAg
ICBidXQgZm9yIHRoZSBKU0dsb2JhbERhdGEgb2JqZWN0cyB1c2VkIGJ5IFdlYkNvcmUgKHRoZSBt
YWluIHRocmVhZCdzIGNvbW1vbgorICAgICAgICBnbG9iYWwgZGF0YSwgYW5kIHRob3NlIGZvciB3
b3JrZXJzKSB1c2UgYSBJZGVudGlmaWVyVGFibGUgcHJvdmlkZWQgKGFuZCBvd25lZCkKKyAgICAg
ICAgYnkgd3RmVGhyZWFkRGF0YS4gIFRoaXMgYWxsb3cgdGhlIGxpZmV0aW1lIG9mIHRoZXNlIElk
ZW50aWZpZXJUYWJsZSB0byBtYXRjaAorICAgICAgICB0aG9zZSBvZiB0aGUgY29ycmVzcG9uZGlu
ZyBBdG9taWNTdHJpbmdUYWJsZXMuCisKKyAgICAgICAgKiBBUEkvQVBJU2hpbXMuaDoKKyAgICAg
ICAgKEpTQzo6QVBJRW50cnlTaGltOjpBUElFbnRyeVNoaW0pOgorICAgICAgICAqIEFQSS9KU0Nv
bnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0R3JvdXBDcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cHJvdGVjdCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OnVucHJvdGVjdCk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtS
b290cyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0
YTo6fkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6Y3JlYXRlQ29u
dGV4dEdyb3VwKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbERhdGE6OnNoYXJlZEluc3RhbmNlKToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6Oik6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsRGF0YTo6aXNTaGFyZWRJbnN0YW5jZSk6CisgICAgICAgICogcnVudGlt
ZS9KU0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OkpTTG9jayk6CisgICAgICAgIChK
U0M6OkpTTG9jazo6bG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6dW5sb2NrKToKKyAgICAg
ICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAgICog
d3RmL1dURlRocmVhZERhdGEuY3BwOgorICAgICAgICAoV1RGOjpXVEZUaHJlYWREYXRhOjpXVEZU
aHJlYWREYXRhKToKKyAgICAgICAgKFdURjo6V1RGVGhyZWFkRGF0YTo6fldURlRocmVhZERhdGEp
OgorCiAyMDEwLTA0LTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0FQSS9BUElTaGltcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0FQSS9BUElT
aGltcy5oCShyZXZpc2lvbiA1ODExNCkKKysrIEphdmFTY3JpcHRDb3JlL0FQSS9BUElTaGltcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAvLyBKU1Byb3Bl
cnR5TmFtZUFjY3VtdWxhdG9yIG9ubHkgaGFzIGEgZ2xvYmFsRGF0YS4KICAgICBBUElFbnRyeVNo
aW0oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIHJlZ2lzdGVyVGhyZWFkID0gdHJ1ZSkK
ICAgICAgICAgOiBBUElFbnRyeVNoaW1XaXRob3V0TG9jayhnbG9iYWxEYXRhLCByZWdpc3RlclRo
cmVhZCkKLSAgICAgICAgLCBtX2xvY2soZ2xvYmFsRGF0YS0+aXNTaGFyZWRJbnN0YW5jZSA/IExv
Y2tGb3JSZWFsIDogU2lsZW5jZUFzc2VydGlvbnNPbmx5KQorICAgICAgICAsIG1fbG9jayhnbG9i
YWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRp
b25zT25seSkKICAgICB7CiAgICAgfQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250
ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2NyaXB0Q29yZS9BUEkvSlNDb250ZXh0UmVm
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUoKQogewogICAgIGluaXRp
YWxpemVUaHJlYWRpbmcoKTsKLSAgICByZXR1cm4gdG9SZWYoSlNHbG9iYWxEYXRhOjpjcmVhdGVO
b25EZWZhdWx0KFRocmVhZFN0YWNrVHlwZVNtYWxsKS5yZWxlYXNlUmVmKCkpOworICAgIHJldHVy
biB0b1JlZihKU0dsb2JhbERhdGE6OmNyZWF0ZUNvbnRleHRHcm91cChUaHJlYWRTdGFja1R5cGVT
bWFsbCkucmVsZWFzZVJlZigpKTsKIH0KIAogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3Jv
dXBSZXRhaW4oSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApCkBAIC04NCw3ICs4NCw3IEBAIEpTR2xv
YmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGUKICAgICBpbml0aWFsaXplVGhyZWFk
aW5nKCk7CiAKICAgICBKU0xvY2sgbG9jayhMb2NrRm9yUmVhbCk7Ci0gICAgUmVmUHRyPEpTR2xv
YmFsRGF0YT4gZ2xvYmFsRGF0YSA9IGdyb3VwID8gUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+KHRv
SlMoZ3JvdXApKSA6IEpTR2xvYmFsRGF0YTo6Y3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5
cGVTbWFsbCk7CisgICAgUmVmUHRyPEpTR2xvYmFsRGF0YT4gZ2xvYmFsRGF0YSA9IGdyb3VwID8g
UGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+KHRvSlMoZ3JvdXApKSA6IEpTR2xvYmFsRGF0YTo6Y3Jl
YXRlQ29udGV4dEdyb3VwKFRocmVhZFN0YWNrVHlwZVNtYWxsKTsKIAogICAgIEFQSUVudHJ5U2hp
bSBlbnRyeVNoaW0oZ2xvYmFsRGF0YS5nZXQoKSwgZmFsc2UpOwogCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db2xsZWN0b3IuY3BwCShyZXZpc2lvbiA1ODExNCkKKysrIEphdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29sbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcyLDcgKzk3Miw3IEBA
IHZvaWQgSGVhcDo6bWFya1N0YWNrT2JqZWN0c0NvbnNlcnZhdGl2ZWwKIHZvaWQgSGVhcDo6cHJv
dGVjdChKU1ZhbHVlIGspCiB7CiAgICAgQVNTRVJUKGspOwotICAgIEFTU0VSVChKU0xvY2s6OmN1
cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkgfHwgIW1fZ2xvYmFsRGF0YS0+aXNTaGFyZWRJbnN0
YW5jZSk7CisgICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2soKSB8
fCAhbV9nbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKCkpOwogCiAgICAgaWYgKCFrLmlzQ2Vs
bCgpKQogICAgICAgICByZXR1cm47CkBAIC05ODMsNyArOTgzLDcgQEAgdm9pZCBIZWFwOjpwcm90
ZWN0KEpTVmFsdWUgaykKIGJvb2wgSGVhcDo6dW5wcm90ZWN0KEpTVmFsdWUgaykKIHsKICAgICBB
U1NFUlQoayk7Ci0gICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElzSG9sZGluZ0xvY2so
KSB8fCAhbV9nbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKTsKKyAgICBBU1NFUlQoSlNMb2Nr
OjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpIHx8ICFtX2dsb2JhbERhdGEtPmlzU2hhcmVk
SW5zdGFuY2UoKSk7CiAKICAgICBpZiAoIWsuaXNDZWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTEwNjQsNyArMTA2NCw3IEBAIHZvaWQgSGVhcDo6c3dlZXAoKQogdm9pZCBIZWFwOjpt
YXJrUm9vdHMoKQogewogI2lmbmRlZiBOREVCVUcKLSAgICBpZiAobV9nbG9iYWxEYXRhLT5pc1No
YXJlZEluc3RhbmNlKSB7CisgICAgaWYgKG1fZ2xvYmFsRGF0YS0+aXNTaGFyZWRJbnN0YW5jZSgp
KSB7CiAgICAgICAgIEFTU0VSVChKU0xvY2s6OmxvY2tDb3VudCgpID4gMCk7CiAgICAgICAgIEFT
U0VSVChKU0xvY2s6OmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkpOwogICAgIH0KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJldmlzaW9uIDU4MTE0KQor
KysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDMsOCArMTAzLDggQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMoKQogICAg
IGpzRnVuY3Rpb24tPn5KU0NlbGwoKTsKIH0KIAotSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEo
Ym9vbCBpc1NoYXJlZCwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZFN0YWNrVHlwZSkKLSAgICA6IGlz
U2hhcmVkSW5zdGFuY2UoaXNTaGFyZWQpCitKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YShHbG9i
YWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZFN0YWNrVHlw
ZSkKKyAgICA6IGdsb2JhbERhdGFUeXBlKGdsb2JhbERhdGFUeXBlKQogICAgICwgY2xpZW50RGF0
YSgwKQogICAgICwgYXJyYXlUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjphcnJheVRhYmxl
KSkKICAgICAsIGRhdGVUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpkYXRlVGFibGUpKQpA
QCAtMTI4LDcgKzEyOCw3IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKGJvb2wgaXNTaGFy
ZWQKICNpZiBVU0UoSlNWQUxVRTMyKQogICAgICwgbnVtYmVyU3RydWN0dXJlKEpTTnVtYmVyQ2Vs
bDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKICNlbmRpZgotICAgICwgaWRlbnRpZmllclRh
YmxlKGNyZWF0ZUlkZW50aWZpZXJUYWJsZSgpKQorICAgICwgaWRlbnRpZmllclRhYmxlKGdsb2Jh
bERhdGFUeXBlID09IERlZmF1bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVudElkZW50aWZpZXJU
YWJsZSgpIDogY3JlYXRlSWRlbnRpZmllclRhYmxlKCkpCiAgICAgLCBsaXRlcmFsVGFibGUoY3Jl
YXRlTGl0ZXJhbFRhYmxlKCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlm
aWVycyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCkBA
IC0xOTMsMjIgKzE5MywyMSBAQCBKU0dsb2JhbERhdGE6On5KU0dsb2JhbERhdGEoKQogICAgIGRl
bGV0ZSBlbXB0eUxpc3Q7CiAKICAgICBkZWxldGUgcHJvcGVydHlOYW1lczsKLSAgICBkZWxldGVJ
ZGVudGlmaWVyVGFibGUoaWRlbnRpZmllclRhYmxlKTsKKyAgICBpZiAoZ2xvYmFsRGF0YVR5cGUg
IT0gRGVmYXVsdCkKKyAgICAgICAgZGVsZXRlSWRlbnRpZmllclRhYmxlKGlkZW50aWZpZXJUYWJs
ZSk7CiAgICAgZGVsZXRlTGl0ZXJhbFRhYmxlKGxpdGVyYWxUYWJsZSk7CiAKICAgICBkZWxldGUg
Y2xpZW50RGF0YTsKIH0KIAotUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+IEpTR2xvYmFsRGF0YTo6
Y3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5cGUgdHlwZSkKK1Bhc3NSZWZQdHI8SlNHbG9i
YWxEYXRhPiBKU0dsb2JhbERhdGE6OmNyZWF0ZUNvbnRleHRHcm91cChUaHJlYWRTdGFja1R5cGUg
dHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTR2xvYmFsRGF0YShmYWxzZSwgdHlw
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNHbG9iYWxEYXRhKEFQSUNvbnRleHRHcm91
cCwgdHlwZSkpOwogfQogCiBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4gSlNHbG9iYWxEYXRhOjpj
cmVhdGUoVGhyZWFkU3RhY2tUeXBlIHR5cGUpCiB7Ci0gICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhID0gbmV3IEpTR2xvYmFsRGF0YShmYWxzZSwgdHlwZSk7Ci0gICAgd3RmVGhyZWFkRGF0YSgp
LmluaXRpYWxpemVJZGVudGlmaWVyVGFibGUoZ2xvYmFsRGF0YS0+aWRlbnRpZmllclRhYmxlKTsK
LSAgICByZXR1cm4gYWRvcHRSZWYoZ2xvYmFsRGF0YSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBKU0dsb2JhbERhdGEoRGVmYXVsdCwgdHlwZSkpOwogfQogCiBQYXNzUmVmUHRyPEpTR2xvYmFs
RGF0YT4gSlNHbG9iYWxEYXRhOjpjcmVhdGVMZWFrZWQoVGhyZWFkU3RhY2tUeXBlIHR5cGUpCkBA
IC0yMjgsNyArMjI3LDcgQEAgSlNHbG9iYWxEYXRhJiBKU0dsb2JhbERhdGE6OnNoYXJlZEluc3Rh
bgogewogICAgIEpTR2xvYmFsRGF0YSomIGluc3RhbmNlID0gc2hhcmVkSW5zdGFuY2VJbnRlcm5h
bCgpOwogICAgIGlmICghaW5zdGFuY2UpIHsKLSAgICAgICAgaW5zdGFuY2UgPSBuZXcgSlNHbG9i
YWxEYXRhKHRydWUsIFRocmVhZFN0YWNrVHlwZVNtYWxsKTsKKyAgICAgICAgaW5zdGFuY2UgPSBu
ZXcgSlNHbG9iYWxEYXRhKEFQSVNoYXJlZCwgVGhyZWFkU3RhY2tUeXBlU21hbGwpOwogI2lmIEVO
QUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgaW5zdGFuY2UtPm1ha2VVc2FibGVG
cm9tTXVsdGlwbGVUaHJlYWRzKCk7CiAjZW5kaWYKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbERhdGEuaAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MiwxNiArOTIsMjcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICBjbGFzcyBKU0dsb2JhbERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxK
U0dsb2JhbERhdGE+IHsKICAgICBwdWJsaWM6CisgICAgICAgIC8vIFdlYkNvcmUgaGFzIGEgb25l
LXRvLW9uZSBtYXBwaW5nIG9mIHRocmVhZHMgdG8gSlNHbG9iYWxEYXRhczsKKyAgICAgICAgLy8g
ZWl0aGVyIGNyZWF0ZSgpIG9yIGNyZWF0ZUxlYWtlZCgpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBv
bmNlCisgICAgICAgIC8vIG9uIGEgdGhyZWFkLCB0aGlzIGlzIHRoZSAnZGVmYXVsdCcgSlNHbG9i
YWxEYXRhIChpdCB1c2VzIHRoZQorICAgICAgICAvLyB0aHJlYWQncyBkZWZhdWx0IHN0cmluZyB1
bmlxdWluZyB0YWJsZSBmcm9tIHd0ZlRocmVhZERhdGEpLgorICAgICAgICAvLyBBUEkgY29udGV4
dHMgY3JlYXRlZCB1c2luZyB0aGUgbmV3IGNvbnRleHQgZ3JvdXAgYXdhcmUgaW50ZXJmYWNlCisg
ICAgICAgIC8vIGNyZWF0ZSBBUElDb250ZXh0R3JvdXAgb2JqZWN0cyB3aGljaCByZXF1aXJlIGxl
c3MgbG9ja2luZyBvZiBKU0MKKyAgICAgICAgLy8gdGhhbiB0aGUgb2xkIHNpbmdsZXRvbiBBUElT
aGFyZWQgSlNHbG9iYWxEYXRhIGNyZWF0ZWQgZm9yIHVzZSBieQorICAgICAgICAvLyB0aGUgb3Jp
Z2luYWwgQVBJLgorICAgICAgICBlbnVtIEdsb2JhbERhdGFUeXBlIHsgRGVmYXVsdCwgQVBJQ29u
dGV4dEdyb3VwLCBBUElTaGFyZWQgfTsKKwogICAgICAgICBzdHJ1Y3QgQ2xpZW50RGF0YSB7CiAg
ICAgICAgICAgICB2aXJ0dWFsIH5DbGllbnREYXRhKCkgPSAwOwogICAgICAgICB9OwogCisgICAg
ICAgIGJvb2wgaXNTaGFyZWRJbnN0YW5jZSgpIHsgcmV0dXJuIGdsb2JhbERhdGFUeXBlID09IEFQ
SVNoYXJlZDsgfQogICAgICAgICBzdGF0aWMgYm9vbCBzaGFyZWRJbnN0YW5jZUV4aXN0cygpOwog
ICAgICAgICBzdGF0aWMgSlNHbG9iYWxEYXRhJiBzaGFyZWRJbnN0YW5jZSgpOwogCiAgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4gY3JlYXRlKFRocmVhZFN0YWNrVHlwZSk7
CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4gY3JlYXRlTGVha2VkKFRo
cmVhZFN0YWNrVHlwZSk7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4g
Y3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5cGUpOworICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxKU0dsb2JhbERhdGE+IGNyZWF0ZUNvbnRleHRHcm91cChUaHJlYWRTdGFja1R5cGUpOwog
ICAgICAgICB+SlNHbG9iYWxEYXRhKCk7CiAKICNpZiBFTkFCTEUoSlNDX01VTFRJUExFX1RIUkVB
RFMpCkBAIC0xMDksNyArMTIwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgbWFr
ZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKSB7IGhlYXAubWFrZVVzYWJsZUZyb21NdWx0aXBs
ZVRocmVhZHMoKTsgfQogI2VuZGlmCiAKLSAgICAgICAgYm9vbCBpc1NoYXJlZEluc3RhbmNlOwor
ICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAgICAgICAgQ2xpZW50RGF0
YSogY2xpZW50RGF0YTsKIAogICAgICAgICBjb25zdCBIYXNoVGFibGUqIGFycmF5VGFibGU7CkBA
IC0yMDUsNyArMjE2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc3RvcFNhbXBs
aW5nKCk7CiAgICAgICAgIHZvaWQgZHVtcFNhbXBsZURhdGEoRXhlY1N0YXRlKiBleGVjKTsKICAg
ICBwcml2YXRlOgotICAgICAgICBKU0dsb2JhbERhdGEoYm9vbCBpc1NoYXJlZCwgVGhyZWFkU3Rh
Y2tUeXBlKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKEdsb2JhbERhdGFUeXBlLCBUaHJlYWRTdGFj
a1R5cGUpOwogICAgICAgICBzdGF0aWMgSlNHbG9iYWxEYXRhKiYgc2hhcmVkSW5zdGFuY2VJbnRl
cm5hbCgpOwogICAgICAgICB2b2lkIGNyZWF0ZU5hdGl2ZVRodW5rKCk7CiAgICAgfTsKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDU4MTE0KQorKysgSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBA
IHN0YXRpYyB2b2lkIHNldExvY2tDb3VudChpbnRwdHJfdCBjb3VudCkKIH0KIAogSlNMb2NrOjpK
U0xvY2soRXhlY1N0YXRlKiBleGVjKQotICAgIDogbV9sb2NrQmVoYXZpb3IoZXhlYy0+Z2xvYmFs
RGF0YSgpLmlzU2hhcmVkSW5zdGFuY2UgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25z
T25seSkKKyAgICA6IG1fbG9ja0JlaGF2aW9yKGV4ZWMtPmdsb2JhbERhdGEoKS5pc1NoYXJlZElu
c3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSkKIHsKICAgICBs
b2NrKG1fbG9ja0JlaGF2aW9yKTsKIH0KQEAgLTEwNSwxMiArMTA1LDEyIEBAIHZvaWQgSlNMb2Nr
Ojp1bmxvY2soSlNMb2NrQmVoYXZpb3IgbG9ja0IKIAogdm9pZCBKU0xvY2s6OmxvY2soRXhlY1N0
YXRlKiBleGVjKQogewotICAgIGxvY2soZXhlYy0+Z2xvYmFsRGF0YSgpLmlzU2hhcmVkSW5zdGFu
Y2UgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgbG9jayhleGVj
LT5nbG9iYWxEYXRhKCkuaXNTaGFyZWRJbnN0YW5jZSgpID8gTG9ja0ZvclJlYWwgOiBTaWxlbmNl
QXNzZXJ0aW9uc09ubHkpOwogfQogCiB2b2lkIEpTTG9jazo6dW5sb2NrKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICB1bmxvY2soZXhlYy0+Z2xvYmFsRGF0YSgpLmlzU2hhcmVkSW5zdGFuY2UgPyBM
b2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAgdW5sb2NrKGV4ZWMtPmds
b2JhbERhdGEoKS5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7CiB9CiAKIGJvb2wgSlNMb2NrOjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9j
aygpCkBAIC0xNjIsNyArMTYyLDcgQEAgYm9vbCBKU0xvY2s6OmN1cnJlbnRUaHJlYWRJc0hvbGRp
bmdMb2NrKAogc3RhdGljIHVuc2lnbmVkIGxvY2tEcm9wRGVwdGggPSAwOwogCiBKU0xvY2s6OkRy
b3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTdGF0ZSogZXhlYykKLSAgICA6IG1fbG9ja0Jl
aGF2aW9yKGV4ZWMtPmdsb2JhbERhdGEoKS5pc1NoYXJlZEluc3RhbmNlID8gTG9ja0ZvclJlYWwg
OiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpCisgICAgOiBtX2xvY2tCZWhhdmlvcihleGVjLT5nbG9i
YWxEYXRhKCkuaXNTaGFyZWRJbnN0YW5jZSgpID8gTG9ja0ZvclJlYWwgOiBTaWxlbmNlQXNzZXJ0
aW9uc09ubHkpCiB7CiAgICAgcHRocmVhZF9vbmNlKCZjcmVhdGVKU0xvY2tDb3VudE9uY2UsIGNy
ZWF0ZUpTTG9ja0NvdW50KTsKIApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL1dURlRocmVhZERh
dGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9XVEZUaHJlYWREYXRhLmNw
cAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvV1RGVGhyZWFkRGF0YS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5LDggQEAgV1RGVGhyZWFkRGF0YSogV1RGVGhy
ZWFkRGF0YTo6c3RhdGljRGF0YQogV1RGVGhyZWFkRGF0YTo6V1RGVGhyZWFkRGF0YSgpCiAgICAg
OiBtX2F0b21pY1N0cmluZ1RhYmxlKG5ldyBXZWJDb3JlOjpBdG9taWNTdHJpbmdUYWJsZSgpKQog
I2lmIFVTRShKU0MpCi0gICAgLCBtX2RlZmF1bHRJZGVudGlmaWVyVGFibGUoMCkKLSAgICAsIG1f
Y3VycmVudElkZW50aWZpZXJUYWJsZSgwKQorICAgICwgbV9kZWZhdWx0SWRlbnRpZmllclRhYmxl
KG5ldyBKU0M6OklkZW50aWZpZXJUYWJsZSgpKQorICAgICwgbV9jdXJyZW50SWRlbnRpZmllclRh
YmxlKG1fZGVmYXVsdElkZW50aWZpZXJUYWJsZSkKICNlbmRpZgogewogfQpAQCAtNDgsNiArNDgs
NyBAQCBXVEZUaHJlYWREYXRhOjpXVEZUaHJlYWREYXRhKCkKIFdURlRocmVhZERhdGE6On5XVEZU
aHJlYWREYXRhKCkKIHsKICAgICBkZWxldGUgbV9hdG9taWNTdHJpbmdUYWJsZTsKKyAgICBkZWxl
dGUgbV9kZWZhdWx0SWRlbnRpZmllclRhYmxlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54098</attachid>
            <date>2010-04-22 14:36:49 -0700</date>
            <delta_ts>2010-04-22 15:17:55 -0700</delta_ts>
            <desc>Chromium build fix</desc>
            <filename>patch.wtfidt.3.txt</filename>
            <type>text/plain</type>
            <size>11780</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4MTE2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTAtMDQtMjIgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zODAwNgorICAgICAgICBDaGFuZ2UgbGlmZXRpbWUgb2YgSlNDOjpJZGVudGlm
aWVyVGFibGVzIHVzZWQgYnkgV2ViQ29yZXMgdG8gbWF0Y2ggQXRvbWljU3RyaW5nVGFibGUKKwor
ICAgICAgICBQcmVzZW50bHkgSlNDJ3MgSWRlbnRpZmllclRhYmxlcyBhcmUgb3duZWQgYnkgdGhl
IEpTR2xvYmFsRGF0YS4gIEZvcgorICAgICAgICBKU0dsb2JhbERhdGEgb2JqZWN0cyBjcmVhdGVk
IHZpYSB0aGUgQVBJIHRoaXMgc2hvdWxkIGNvbnRpbnVlIHRvIGJlIHRoZSBjYXNlLAorICAgICAg
ICBidXQgZm9yIHRoZSBKU0dsb2JhbERhdGEgb2JqZWN0cyB1c2VkIGJ5IFdlYkNvcmUgKHRoZSBt
YWluIHRocmVhZCdzIGNvbW1vbgorICAgICAgICBnbG9iYWwgZGF0YSwgYW5kIHRob3NlIGZvciB3
b3JrZXJzKSB1c2UgYSBJZGVudGlmaWVyVGFibGUgcHJvdmlkZWQgKGFuZCBvd25lZCkKKyAgICAg
ICAgYnkgd3RmVGhyZWFkRGF0YS4gIFRoaXMgYWxsb3cgdGhlIGxpZmV0aW1lIG9mIHRoZXNlIElk
ZW50aWZpZXJUYWJsZSB0byBtYXRjaAorICAgICAgICB0aG9zZSBvZiB0aGUgY29ycmVzcG9uZGlu
ZyBBdG9taWNTdHJpbmdUYWJsZXMuCisKKyAgICAgICAgKiBBUEkvQVBJU2hpbXMuaDoKKyAgICAg
ICAgKEpTQzo6QVBJRW50cnlTaGltOjpBUElFbnRyeVNoaW0pOgorICAgICAgICAqIEFQSS9KU0Nv
bnRleHRSZWYuY3BwOgorICAgICAgICAoSlNDb250ZXh0R3JvdXBDcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cHJvdGVjdCk6Cisg
ICAgICAgIChKU0M6OkhlYXA6OnVucHJvdGVjdCk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtS
b290cyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbERhdGEuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbERhdGE6OkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0
YTo6fkpTR2xvYmFsRGF0YSk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsRGF0YTo6Y3JlYXRlQ29u
dGV4dEdyb3VwKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpKU0dsb2JhbERhdGE6OnNoYXJlZEluc3RhbmNlKToKKyAgICAgICAgKiBydW50aW1l
L0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbERhdGE6Oik6CisgICAgICAg
IChKU0M6OkpTR2xvYmFsRGF0YTo6aXNTaGFyZWRJbnN0YW5jZSk6CisgICAgICAgICogcnVudGlt
ZS9KU0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OkpTTG9jayk6CisgICAgICAgIChK
U0M6OkpTTG9jazo6bG9jayk6CisgICAgICAgIChKU0M6OkpTTG9jazo6dW5sb2NrKToKKyAgICAg
ICAgKEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3M6OkRyb3BBbGxMb2Nrcyk6CisgICAgICAgICog
d3RmL1dURlRocmVhZERhdGEuY3BwOgorICAgICAgICAoV1RGOjpXVEZUaHJlYWREYXRhOjpXVEZU
aHJlYWREYXRhKToKKyAgICAgICAgKFdURjo6V1RGVGhyZWFkRGF0YTo6fldURlRocmVhZERhdGEp
OgorCiAyMDEwLTA0LTIyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKHdpbmRvd3MgYnVpbGQgZml4KS4KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL0FQSS9BUElTaGltcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL0FQSS9BUElTaGltcy5oCShyZXZpc2lvbiA1ODExMykKKysrIEphdmFTY3JpcHRDb3Jl
L0FQSS9BUElTaGltcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoK
ICAgICAvLyBKU1Byb3BlcnR5TmFtZUFjY3VtdWxhdG9yIG9ubHkgaGFzIGEgZ2xvYmFsRGF0YS4K
ICAgICBBUElFbnRyeVNoaW0oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIHJlZ2lzdGVy
VGhyZWFkID0gdHJ1ZSkKICAgICAgICAgOiBBUElFbnRyeVNoaW1XaXRob3V0TG9jayhnbG9iYWxE
YXRhLCByZWdpc3RlclRocmVhZCkKLSAgICAgICAgLCBtX2xvY2soZ2xvYmFsRGF0YS0+aXNTaGFy
ZWRJbnN0YW5jZSA/IExvY2tGb3JSZWFsIDogU2lsZW5jZUFzc2VydGlvbnNPbmx5KQorICAgICAg
ICAsIG1fbG9jayhnbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6
IFNpbGVuY2VBc3NlcnRpb25zT25seSkKICAgICB7CiAgICAgfQogCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UmVmLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmLmNwcAkocmV2aXNpb24gNTgxMTMpCisrKyBKYXZhU2NyaXB0Q29yZS9B
UEkvSlNDb250ZXh0UmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogSlNDb250ZXh0R3JvdXBSZWYgSlNDb250ZXh0R3JvdXBDcmVhdGUo
KQogewogICAgIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICByZXR1cm4gdG9SZWYoSlNHbG9i
YWxEYXRhOjpjcmVhdGVOb25EZWZhdWx0KFRocmVhZFN0YWNrVHlwZVNtYWxsKS5yZWxlYXNlUmVm
KCkpOworICAgIHJldHVybiB0b1JlZihKU0dsb2JhbERhdGE6OmNyZWF0ZUNvbnRleHRHcm91cChU
aHJlYWRTdGFja1R5cGVTbWFsbCkucmVsZWFzZVJlZigpKTsKIH0KIAogSlNDb250ZXh0R3JvdXBS
ZWYgSlNDb250ZXh0R3JvdXBSZXRhaW4oSlNDb250ZXh0R3JvdXBSZWYgZ3JvdXApCkBAIC04NCw3
ICs4NCw3IEBAIEpTR2xvYmFsQ29udGV4dFJlZiBKU0dsb2JhbENvbnRleHRDcmVhdGUKICAgICBp
bml0aWFsaXplVGhyZWFkaW5nKCk7CiAKICAgICBKU0xvY2sgbG9jayhMb2NrRm9yUmVhbCk7Ci0g
ICAgUmVmUHRyPEpTR2xvYmFsRGF0YT4gZ2xvYmFsRGF0YSA9IGdyb3VwID8gUGFzc1JlZlB0cjxK
U0dsb2JhbERhdGE+KHRvSlMoZ3JvdXApKSA6IEpTR2xvYmFsRGF0YTo6Y3JlYXRlTm9uRGVmYXVs
dChUaHJlYWRTdGFja1R5cGVTbWFsbCk7CisgICAgUmVmUHRyPEpTR2xvYmFsRGF0YT4gZ2xvYmFs
RGF0YSA9IGdyb3VwID8gUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+KHRvSlMoZ3JvdXApKSA6IEpT
R2xvYmFsRGF0YTo6Y3JlYXRlQ29udGV4dEdyb3VwKFRocmVhZFN0YWNrVHlwZVNtYWxsKTsKIAog
ICAgIEFQSUVudHJ5U2hpbSBlbnRyeVNoaW0oZ2xvYmFsRGF0YS5nZXQoKSwgZmFsc2UpOwogCklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbGxlY3Rvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3IuY3BwCShyZXZpc2lvbiA1ODExMykKKysr
IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29sbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTcyLDcgKzk3Miw3IEBAIHZvaWQgSGVhcDo6bWFya1N0YWNrT2JqZWN0c0NvbnNlcnZhdGl2ZWwK
IHZvaWQgSGVhcDo6cHJvdGVjdChKU1ZhbHVlIGspCiB7CiAgICAgQVNTRVJUKGspOwotICAgIEFT
U0VSVChKU0xvY2s6OmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkgfHwgIW1fZ2xvYmFsRGF0
YS0+aXNTaGFyZWRJbnN0YW5jZSk7CisgICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVhZElz
SG9sZGluZ0xvY2soKSB8fCAhbV9nbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKCkpOwogCiAg
ICAgaWYgKCFrLmlzQ2VsbCgpKQogICAgICAgICByZXR1cm47CkBAIC05ODMsNyArOTgzLDcgQEAg
dm9pZCBIZWFwOjpwcm90ZWN0KEpTVmFsdWUgaykKIGJvb2wgSGVhcDo6dW5wcm90ZWN0KEpTVmFs
dWUgaykKIHsKICAgICBBU1NFUlQoayk7Ci0gICAgQVNTRVJUKEpTTG9jazo6Y3VycmVudFRocmVh
ZElzSG9sZGluZ0xvY2soKSB8fCAhbV9nbG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKTsKKyAg
ICBBU1NFUlQoSlNMb2NrOjpjdXJyZW50VGhyZWFkSXNIb2xkaW5nTG9jaygpIHx8ICFtX2dsb2Jh
bERhdGEtPmlzU2hhcmVkSW5zdGFuY2UoKSk7CiAKICAgICBpZiAoIWsuaXNDZWxsKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTEwNjQsNyArMTA2NCw3IEBAIHZvaWQgSGVhcDo6c3dlZXAo
KQogdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogewogI2lmbmRlZiBOREVCVUcKLSAgICBpZiAobV9n
bG9iYWxEYXRhLT5pc1NoYXJlZEluc3RhbmNlKSB7CisgICAgaWYgKG1fZ2xvYmFsRGF0YS0+aXNT
aGFyZWRJbnN0YW5jZSgpKSB7CiAgICAgICAgIEFTU0VSVChKU0xvY2s6OmxvY2tDb3VudCgpID4g
MCk7CiAgICAgICAgIEFTU0VSVChKU0xvY2s6OmN1cnJlbnRUaHJlYWRJc0hvbGRpbmdMb2NrKCkp
OwogICAgIH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAJKHJl
dmlzaW9uIDU4MTE0KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsOCArMTAzLDggQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0
b3JlVlB0cnMoKQogICAgIGpzRnVuY3Rpb24tPn5KU0NlbGwoKTsKIH0KIAotSlNHbG9iYWxEYXRh
OjpKU0dsb2JhbERhdGEoYm9vbCBpc1NoYXJlZCwgVGhyZWFkU3RhY2tUeXBlIHRocmVhZFN0YWNr
VHlwZSkKLSAgICA6IGlzU2hhcmVkSW5zdGFuY2UoaXNTaGFyZWQpCitKU0dsb2JhbERhdGE6OkpT
R2xvYmFsRGF0YShHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZSwgVGhyZWFkU3RhY2tUeXBl
IHRocmVhZFN0YWNrVHlwZSkKKyAgICA6IGdsb2JhbERhdGFUeXBlKGdsb2JhbERhdGFUeXBlKQog
ICAgICwgY2xpZW50RGF0YSgwKQogICAgICwgYXJyYXlUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4o
SlNDOjphcnJheVRhYmxlKSkKICAgICAsIGRhdGVUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlND
OjpkYXRlVGFibGUpKQpAQCAtMTI4LDcgKzEyOCw3IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxE
YXRhKGJvb2wgaXNTaGFyZWQKICNpZiBVU0UoSlNWQUxVRTMyKQogICAgICwgbnVtYmVyU3RydWN0
dXJlKEpTTnVtYmVyQ2VsbDo6Y3JlYXRlU3RydWN0dXJlKGpzTnVsbCgpKSkKICNlbmRpZgotICAg
ICwgaWRlbnRpZmllclRhYmxlKGNyZWF0ZUlkZW50aWZpZXJUYWJsZSgpKQorICAgICwgaWRlbnRp
ZmllclRhYmxlKGdsb2JhbERhdGFUeXBlID09IERlZmF1bHQgPyB3dGZUaHJlYWREYXRhKCkuY3Vy
cmVudElkZW50aWZpZXJUYWJsZSgpIDogY3JlYXRlSWRlbnRpZmllclRhYmxlKCkpCiAgICAgLCBs
aXRlcmFsVGFibGUoY3JlYXRlTGl0ZXJhbFRhYmxlKCkpCiAgICAgLCBwcm9wZXJ0eU5hbWVzKG5l
dyBDb21tb25JZGVudGlmaWVycyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChuZXcgTWFya2VkQXJn
dW1lbnRCdWZmZXIpCkBAIC0xOTMsMjIgKzE5MywyMSBAQCBKU0dsb2JhbERhdGE6On5KU0dsb2Jh
bERhdGEoKQogICAgIGRlbGV0ZSBlbXB0eUxpc3Q7CiAKICAgICBkZWxldGUgcHJvcGVydHlOYW1l
czsKLSAgICBkZWxldGVJZGVudGlmaWVyVGFibGUoaWRlbnRpZmllclRhYmxlKTsKKyAgICBpZiAo
Z2xvYmFsRGF0YVR5cGUgIT0gRGVmYXVsdCkKKyAgICAgICAgZGVsZXRlSWRlbnRpZmllclRhYmxl
KGlkZW50aWZpZXJUYWJsZSk7CiAgICAgZGVsZXRlTGl0ZXJhbFRhYmxlKGxpdGVyYWxUYWJsZSk7
CiAKICAgICBkZWxldGUgY2xpZW50RGF0YTsKIH0KIAotUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+
IEpTR2xvYmFsRGF0YTo6Y3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5cGUgdHlwZSkKK1Bh
c3NSZWZQdHI8SlNHbG9iYWxEYXRhPiBKU0dsb2JhbERhdGE6OmNyZWF0ZUNvbnRleHRHcm91cChU
aHJlYWRTdGFja1R5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTR2xvYmFs
RGF0YShmYWxzZSwgdHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNHbG9iYWxEYXRh
KEFQSUNvbnRleHRHcm91cCwgdHlwZSkpOwogfQogCiBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4g
SlNHbG9iYWxEYXRhOjpjcmVhdGUoVGhyZWFkU3RhY2tUeXBlIHR5cGUpCiB7Ci0gICAgSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhID0gbmV3IEpTR2xvYmFsRGF0YShmYWxzZSwgdHlwZSk7Ci0gICAg
d3RmVGhyZWFkRGF0YSgpLmluaXRpYWxpemVJZGVudGlmaWVyVGFibGUoZ2xvYmFsRGF0YS0+aWRl
bnRpZmllclRhYmxlKTsKLSAgICByZXR1cm4gYWRvcHRSZWYoZ2xvYmFsRGF0YSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBKU0dsb2JhbERhdGEoRGVmYXVsdCwgdHlwZSkpOwogfQogCiBQYXNz
UmVmUHRyPEpTR2xvYmFsRGF0YT4gSlNHbG9iYWxEYXRhOjpjcmVhdGVMZWFrZWQoVGhyZWFkU3Rh
Y2tUeXBlIHR5cGUpCkBAIC0yMjgsNyArMjI3LDcgQEAgSlNHbG9iYWxEYXRhJiBKU0dsb2JhbERh
dGE6OnNoYXJlZEluc3RhbgogewogICAgIEpTR2xvYmFsRGF0YSomIGluc3RhbmNlID0gc2hhcmVk
SW5zdGFuY2VJbnRlcm5hbCgpOwogICAgIGlmICghaW5zdGFuY2UpIHsKLSAgICAgICAgaW5zdGFu
Y2UgPSBuZXcgSlNHbG9iYWxEYXRhKHRydWUsIFRocmVhZFN0YWNrVHlwZVNtYWxsKTsKKyAgICAg
ICAgaW5zdGFuY2UgPSBuZXcgSlNHbG9iYWxEYXRhKEFQSVNoYXJlZCwgVGhyZWFkU3RhY2tUeXBl
U21hbGwpOwogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgaW5zdGFu
Y2UtPm1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7CiAjZW5kaWYKSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MiwxNiAr
OTIsMjcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBKU0dsb2JhbERhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxKU0dsb2JhbERhdGE+IHsKICAgICBwdWJsaWM6CisgICAgICAgIC8vIFdl
YkNvcmUgaGFzIGEgb25lLXRvLW9uZSBtYXBwaW5nIG9mIHRocmVhZHMgdG8gSlNHbG9iYWxEYXRh
czsKKyAgICAgICAgLy8gZWl0aGVyIGNyZWF0ZSgpIG9yIGNyZWF0ZUxlYWtlZCgpIHNob3VsZCBv
bmx5IGJlIGNhbGxlZCBvbmNlCisgICAgICAgIC8vIG9uIGEgdGhyZWFkLCB0aGlzIGlzIHRoZSAn
ZGVmYXVsdCcgSlNHbG9iYWxEYXRhIChpdCB1c2VzIHRoZQorICAgICAgICAvLyB0aHJlYWQncyBk
ZWZhdWx0IHN0cmluZyB1bmlxdWluZyB0YWJsZSBmcm9tIHd0ZlRocmVhZERhdGEpLgorICAgICAg
ICAvLyBBUEkgY29udGV4dHMgY3JlYXRlZCB1c2luZyB0aGUgbmV3IGNvbnRleHQgZ3JvdXAgYXdh
cmUgaW50ZXJmYWNlCisgICAgICAgIC8vIGNyZWF0ZSBBUElDb250ZXh0R3JvdXAgb2JqZWN0cyB3
aGljaCByZXF1aXJlIGxlc3MgbG9ja2luZyBvZiBKU0MKKyAgICAgICAgLy8gdGhhbiB0aGUgb2xk
IHNpbmdsZXRvbiBBUElTaGFyZWQgSlNHbG9iYWxEYXRhIGNyZWF0ZWQgZm9yIHVzZSBieQorICAg
ICAgICAvLyB0aGUgb3JpZ2luYWwgQVBJLgorICAgICAgICBlbnVtIEdsb2JhbERhdGFUeXBlIHsg
RGVmYXVsdCwgQVBJQ29udGV4dEdyb3VwLCBBUElTaGFyZWQgfTsKKwogICAgICAgICBzdHJ1Y3Qg
Q2xpZW50RGF0YSB7CiAgICAgICAgICAgICB2aXJ0dWFsIH5DbGllbnREYXRhKCkgPSAwOwogICAg
ICAgICB9OwogCisgICAgICAgIGJvb2wgaXNTaGFyZWRJbnN0YW5jZSgpIHsgcmV0dXJuIGdsb2Jh
bERhdGFUeXBlID09IEFQSVNoYXJlZDsgfQogICAgICAgICBzdGF0aWMgYm9vbCBzaGFyZWRJbnN0
YW5jZUV4aXN0cygpOwogICAgICAgICBzdGF0aWMgSlNHbG9iYWxEYXRhJiBzaGFyZWRJbnN0YW5j
ZSgpOwogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4gY3JlYXRlKFRo
cmVhZFN0YWNrVHlwZSk7CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTR2xvYmFsRGF0YT4g
Y3JlYXRlTGVha2VkKFRocmVhZFN0YWNrVHlwZSk7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEpTR2xvYmFsRGF0YT4gY3JlYXRlTm9uRGVmYXVsdChUaHJlYWRTdGFja1R5cGUpOworICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0dsb2JhbERhdGE+IGNyZWF0ZUNvbnRleHRHcm91cChUaHJl
YWRTdGFja1R5cGUpOwogICAgICAgICB+SlNHbG9iYWxEYXRhKCk7CiAKICNpZiBFTkFCTEUoSlND
X01VTFRJUExFX1RIUkVBRFMpCkBAIC0xMDksNyArMTIwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgbWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKSB7IGhlYXAubWFrZVVz
YWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKTsgfQogI2VuZGlmCiAKLSAgICAgICAgYm9vbCBpc1No
YXJlZEluc3RhbmNlOworICAgICAgICBHbG9iYWxEYXRhVHlwZSBnbG9iYWxEYXRhVHlwZTsKICAg
ICAgICAgQ2xpZW50RGF0YSogY2xpZW50RGF0YTsKIAogICAgICAgICBjb25zdCBIYXNoVGFibGUq
IGFycmF5VGFibGU7CkBAIC0yMDUsNyArMjE2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZvaWQgc3RvcFNhbXBsaW5nKCk7CiAgICAgICAgIHZvaWQgZHVtcFNhbXBsZURhdGEoRXhlY1N0
YXRlKiBleGVjKTsKICAgICBwcml2YXRlOgotICAgICAgICBKU0dsb2JhbERhdGEoYm9vbCBpc1No
YXJlZCwgVGhyZWFkU3RhY2tUeXBlKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKEdsb2JhbERhdGFU
eXBlLCBUaHJlYWRTdGFja1R5cGUpOwogICAgICAgICBzdGF0aWMgSlNHbG9iYWxEYXRhKiYgc2hh
cmVkSW5zdGFuY2VJbnRlcm5hbCgpOwogICAgICAgICB2b2lkIGNyZWF0ZU5hdGl2ZVRodW5rKCk7
CiAgICAgfTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAJKHJldmlzaW9uIDU4MTEz
KQorKysgSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MCw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkIHNldExvY2tDb3VudChpbnRwdHJfdCBjb3VudCkK
IH0KIAogSlNMb2NrOjpKU0xvY2soRXhlY1N0YXRlKiBleGVjKQotICAgIDogbV9sb2NrQmVoYXZp
b3IoZXhlYy0+Z2xvYmFsRGF0YSgpLmlzU2hhcmVkSW5zdGFuY2UgPyBMb2NrRm9yUmVhbCA6IFNp
bGVuY2VBc3NlcnRpb25zT25seSkKKyAgICA6IG1fbG9ja0JlaGF2aW9yKGV4ZWMtPmdsb2JhbERh
dGEoKS5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25z
T25seSkKIHsKICAgICBsb2NrKG1fbG9ja0JlaGF2aW9yKTsKIH0KQEAgLTEwNSwxMiArMTA1LDEy
IEBAIHZvaWQgSlNMb2NrOjp1bmxvY2soSlNMb2NrQmVoYXZpb3IgbG9ja0IKIAogdm9pZCBKU0xv
Y2s6OmxvY2soRXhlY1N0YXRlKiBleGVjKQogewotICAgIGxvY2soZXhlYy0+Z2xvYmFsRGF0YSgp
LmlzU2hhcmVkSW5zdGFuY2UgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSk7
CisgICAgbG9jayhleGVjLT5nbG9iYWxEYXRhKCkuaXNTaGFyZWRJbnN0YW5jZSgpID8gTG9ja0Zv
clJlYWwgOiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogfQogCiB2b2lkIEpTTG9jazo6dW5sb2Nr
KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICB1bmxvY2soZXhlYy0+Z2xvYmFsRGF0YSgpLmlzU2hh
cmVkSW5zdGFuY2UgPyBMb2NrRm9yUmVhbCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSk7CisgICAg
dW5sb2NrKGV4ZWMtPmdsb2JhbERhdGEoKS5pc1NoYXJlZEluc3RhbmNlKCkgPyBMb2NrRm9yUmVh
bCA6IFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiB9CiAKIGJvb2wgSlNMb2NrOjpjdXJyZW50VGhy
ZWFkSXNIb2xkaW5nTG9jaygpCkBAIC0xNjIsNyArMTYyLDcgQEAgYm9vbCBKU0xvY2s6OmN1cnJl
bnRUaHJlYWRJc0hvbGRpbmdMb2NrKAogc3RhdGljIHVuc2lnbmVkIGxvY2tEcm9wRGVwdGggPSAw
OwogCiBKU0xvY2s6OkRyb3BBbGxMb2Nrczo6RHJvcEFsbExvY2tzKEV4ZWNTdGF0ZSogZXhlYykK
LSAgICA6IG1fbG9ja0JlaGF2aW9yKGV4ZWMtPmdsb2JhbERhdGEoKS5pc1NoYXJlZEluc3RhbmNl
ID8gTG9ja0ZvclJlYWwgOiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpCisgICAgOiBtX2xvY2tCZWhh
dmlvcihleGVjLT5nbG9iYWxEYXRhKCkuaXNTaGFyZWRJbnN0YW5jZSgpID8gTG9ja0ZvclJlYWwg
OiBTaWxlbmNlQXNzZXJ0aW9uc09ubHkpCiB7CiAgICAgcHRocmVhZF9vbmNlKCZjcmVhdGVKU0xv
Y2tDb3VudE9uY2UsIGNyZWF0ZUpTTG9ja0NvdW50KTsKIApJbmRleDogSmF2YVNjcmlwdENvcmUv
d3RmL1dURlRocmVhZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9X
VEZUaHJlYWREYXRhLmNwcAkocmV2aXNpb24gNTgxMTQpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYv
V1RGVGhyZWFkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDggKzM5LDggQEAgV1RGVGhy
ZWFkRGF0YSogV1RGVGhyZWFkRGF0YTo6c3RhdGljRGF0YQogV1RGVGhyZWFkRGF0YTo6V1RGVGhy
ZWFkRGF0YSgpCiAgICAgOiBtX2F0b21pY1N0cmluZ1RhYmxlKG5ldyBXZWJDb3JlOjpBdG9taWNT
dHJpbmdUYWJsZSgpKQogI2lmIFVTRShKU0MpCi0gICAgLCBtX2RlZmF1bHRJZGVudGlmaWVyVGFi
bGUoMCkKLSAgICAsIG1fY3VycmVudElkZW50aWZpZXJUYWJsZSgwKQorICAgICwgbV9kZWZhdWx0
SWRlbnRpZmllclRhYmxlKG5ldyBKU0M6OklkZW50aWZpZXJUYWJsZSgpKQorICAgICwgbV9jdXJy
ZW50SWRlbnRpZmllclRhYmxlKG1fZGVmYXVsdElkZW50aWZpZXJUYWJsZSkKICNlbmRpZgogewog
fQpAQCAtNDgsNiArNDgsOSBAQCBXVEZUaHJlYWREYXRhOjpXVEZUaHJlYWREYXRhKCkKIFdURlRo
cmVhZERhdGE6On5XVEZUaHJlYWREYXRhKCkKIHsKICAgICBkZWxldGUgbV9hdG9taWNTdHJpbmdU
YWJsZTsKKyNpZiBVU0UoSlNDKQorICAgIGRlbGV0ZSBtX2RlZmF1bHRJZGVudGlmaWVyVGFibGU7
CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="37987"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>