<?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>23458</bug_id>
          
          <creation_ts>2009-01-21 10:39:31 -0800</creation_ts>
          <short_desc>Reintroduce CanvasPixelArray in ImageData.idl</short_desc>
          <delta_ts>2009-01-21 13:06:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Ivan Posva">iposva</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>fishd</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>106472</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan Posva">iposva</who>
    <bug_when>2009-01-21 10:39:31 -0800</bug_when>
    <thetext>Reintroduce CanvasPixelArray in ImageData.idl:

Recent changes to the ImageData.idl broke non-JSC bindings. This change reintroduces the CanvasPixelArray and for the JSC build defines it to be equivalent to WTF::ByteArray.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106473</commentid>
    <comment_count>1</comment_count>
      <attachid>26897</attachid>
    <who name="Ivan Posva">iposva</who>
    <bug_when>2009-01-21 10:45:47 -0800</bug_when>
    <thetext>Created attachment 26897
proposed patch

Ideally I would have wanted to use &quot;#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; !defined(JSC_BINDING)&quot; as you suggested to Darin, but it appears that something like JSC_BINDING does not exist in the code generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106474</commentid>
    <comment_count>2</comment_count>
      <attachid>26897</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-01-21 10:51:46 -0800</bug_when>
    <thetext>Comment on attachment 26897
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106475</commentid>
    <comment_count>3</comment_count>
      <attachid>26897</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-01-21 10:58:33 -0800</bug_when>
    <thetext>Comment on attachment 26897
proposed patch

Actually, on second thoughts, i think a better solution would be to make CanvasPixelArray be a subclass of ByteArray for those builds that need it -- all builds should be using WTF::ByteArray to ensure consistency, and just typedef-ing the type difference away could lead to platform inconsistencies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106476</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-01-21 11:00:57 -0800</bug_when>
    <thetext>Basically, my though is that ImageData should be in terms of WTF::ByteArray, but those builds that need to declare it as type CanvasPixelArray should have there own typedef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106477</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-01-21 11:01:41 -0800</bug_when>
    <thetext>Err, need to declare in IDL -- do we support typedefs in IDL files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106482</commentid>
    <comment_count>6</comment_count>
      <attachid>26899</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-01-21 12:01:36 -0800</bug_when>
    <thetext>Created attachment 26899
Return CPA to basically its old implementation, extra indirection and all

This builds, just doing final layout test run atm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106486</commentid>
    <comment_count>7</comment_count>
      <attachid>26899</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-21 12:12:42 -0800</bug_when>
    <thetext>Comment on attachment 26899
Return CPA to basically its old implementation, extra indirection and all

r=me

+#if !defined(LANGUAGE_JAVASCRIPT) || !defined(JSC_BINDING)
...
+#if !defined(LANGUAGE_JAVASCRIPT) || defined(V8_BINDING)

Is it intentional that the checks are different?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106492</commentid>
    <comment_count>8</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-01-21 13:06:29 -0800</bug_when>
    <thetext>Committed r40089
	M	WebCore/WebCore.pro
	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/GNUmakefile.am
	M	WebCore/platform/graphics/cg/ImageBufferCG.cpp
	M	WebCore/platform/graphics/cairo/ImageBufferCairo.cpp
	M	WebCore/bindings/js/JSImageDataCustom.cpp
	M	WebCore/html/ImageData.h
	A	WebCore/html/CanvasPixelArray.h
	M	WebCore/html/ImageData.idl
	M	WebCore/html/ImageData.cpp
	A	WebCore/html/CanvasPixelArray.idl
	A	WebCore/html/CanvasPixelArray.cpp
	M	WebCore/html/CanvasRenderingContext2D.cpp
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	M	WebCore/WebCoreSources.bkl

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26897</attachid>
            <date>2009-01-21 10:45:47 -0800</date>
            <delta_ts>2009-01-21 12:01:36 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>bug23458.patch</filename>
            <type>text/plain</type>
            <size>8623</size>
            <attacher name="Ivan Posva">iposva</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDA4NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDEtMjEgIEl2YW4gUG9zdmEgIDxpcG9zdmFAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1OAorICAgICAgICBSZWlu
dHJvZHVjZSBDYW52YXNQaXhlbEFycmF5IGluIEltYWdlRGF0YS5pZGwKKworICAgICAgICBSZWNl
bnQgY2hhbmdlcyB0byB0aGUgSW1hZ2VEYXRhLmlkbCBicm9rZSBub24tSlNDIGJpbmRpbmdzLiBU
aGlzIGNoYW5nZQorICAgICAgICByZWludHJvZHVjZXMgdGhlIENhbnZhc1BpeGVsQXJyYXkgYW5k
IGZvciB0aGUgSlNDIGJ1aWxkIGRlZmluZXMgaXQgdG8gYmUKKyAgICAgICAgZXF1aXZhbGVudCB0
byBXVEY6OkJ5dGVBcnJheS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9DYW52YXNQaXhlbEFycmF5Lmg6IEFkZGVk
LgorICAgICAgICAqIGh0bWwvSW1hZ2VEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RGF0YTo6SW1hZ2VEYXRhKToKKyAgICAgICAgKiBodG1sL0ltYWdlRGF0YS5oOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VEYXRhOjpkYXRhKToKKyAgICAgICAgKiBodG1sL0ltYWdlRGF0YS5pZGw6
CisKIDIwMDktMDEtMjAgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0
b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvcmdlIFN0YWlrb3MuCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
NDAwNzMpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTc4Myw2ICsxNzgzLDcgQEAKIAkJODVGRjMxM0MwQUFGQkQ3MjAwMzc0
RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzEzQjBBQUZCRDcyMDAzNzRGMzggLyogRE9NV2hlZWxF
dmVudFByaXZhdGUuaCAqLzsgfTsKIAkJODVGRjMxNUEwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtl
eWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi87IH07
CiAJCTg1RkYzMTVCMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZD
QjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi87IH07CisJCTg5OEQxRkIzMEYyNzkz
NEIwMDRCQkFDNyAvKiBDYW52YXNQaXhlbEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OThEMUZCMjBGMjc5MzRCMDA0QkJBQzcgLyogQ2FudmFz
UGl4ZWxBcnJheS5oICovOyB9OwogCQk5MjkyNjQ3NzBCNjFGQzcyMDBCNDFEMzQgLyogSlNEb2N1
bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MjkyNjQ3NjBCNjFGQzcyMDBCNDFEMzQgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgKi87
IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMkIwQkMwRDc5RjgyOTAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJCTkzMDJCMEJGMEQ3OUY4MkMwMEM3RUU4
MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjYzMyw2ICs2NjM0LDcg
QEAKIAkJODVGRjMxM0IwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XaGVlbEV2ZW50UHJpdmF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzgg
LyogRE9NS2V5Ym9hcmRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NS2V5Ym9hcmRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUZGMzE1
OTBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4OThEMUZCMjBGMjc5MzRCMDA0QkJBQzcgLyogQ2FudmFzUGl4
ZWxBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYW52YXNQaXhlbEFy
cmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkyOTI2NDc2MEI2MUZDNzIwMEI0
MUQzNCAvKiBKU0RvY3VtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTMxMzEsNiArMTMxMzMsNyBAQAogCQkJCUJDNEVERUY3MEMw
OEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCiAJCQkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5
IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyog
Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKKwkJCQk4OThEMUZCMjBGMjc5MzRCMDA0
QkJBQzcgLyogQ2FudmFzUGl4ZWxBcnJheS5oICovLAogCQkJCTkzRjhCMzA2MEEzMDBGRUEwMEY2
MUFCOCAvKiBDb2RlR2VuZXJhdG9ySlMucG0gKi8sCiAJCQkJMThFNjg3ODUwRURCNzkzNDAwQThF
OEI3IC8qIERPTVRpbWVyLmNwcCAqLywKIAkJCQkxOEU2ODc4NjBFREI3OTM1MDBBOEU4QjcgLyog
RE9NVGltZXIuaCAqLywKQEAgLTE0NDk1LDYgKzE0NDk4LDcgQEAKIAkJCQlCQ0IxNkMyODA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNFRUMyMDMwOUMyODc3NzAwQzUxNUQxIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0VFQzIwNDA5QzI4Nzc3MDBDNTE1RDEgLyogQ2FudmFzUGF0dGVybi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODk4RDFGQjMwRjI3OTM0QjAwNEJCQUM3IC8qIENhbnZhc1BpeGVsQXJy
YXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRUVDMjAwMDlDMjg3NzcwMEM1MTVEMSAvKiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRUVDMjAxMDlDMjg3
NzcwMEM1MTVEMSAvKiBDYW52YXNTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0MTg1RUUw
Q0Q2NUYwNDAwNzYzQzk5IC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmggaW4gSGVhZGVycyAqLywK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvQ2FudmFzUGl4ZWxBcnJheS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvanMvQ2FudmFzUGl4ZWxBcnJheS5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9qcy9DYW52YXNQaXhlbEFycmF5LmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICogCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKiAKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYW52YXNQaXhlbEFycmF5X2gKKyNkZWZpbmUgQ2Fu
dmFzUGl4ZWxBcnJheV9oCisKKyNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgCisgICAgdHlwZWRlZiBXVEY6OkJ5dGVBcnJheSBDYW52YXNQaXhlbEFy
cmF5OworICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENhbnZhc1BpeGVs
QXJyYXlfaApJbmRleDogV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0ltYWdlRGF0YS5jcHAJKHJldmlzaW9uIDQwMDczKQorKysgV2ViQ29yZS9o
dG1sL0ltYWdlRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKIAotdXNpbmcgbmFtZXNwYWNl
IFdURjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzUmVmUHRyPEltYWdlRGF0YT4gSW1h
Z2VEYXRhOjpjcmVhdGUodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKQEAgLTQxLDcg
KzM5LDcgQEAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IEltYWdlRGF0YTo6Y3JlYXRlKAogSW1hZ2VE
YXRhOjpJbWFnZURhdGEodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKICAgICA6IG1f
d2lkdGgod2lkdGgpCiAgICAgLCBtX2hlaWdodChoZWlnaHQpCi0gICAgLCBtX2RhdGEoQnl0ZUFy
cmF5OjpjcmVhdGUod2lkdGggKiBoZWlnaHQgKiA0KSkKKyAgICAsIG1fZGF0YShDYW52YXNQaXhl
bEFycmF5OjpjcmVhdGUod2lkdGggKiBoZWlnaHQgKiA0KSkKIHsKIH0KIApJbmRleDogV2ViQ29y
ZS9odG1sL0ltYWdlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9JbWFnZURhdGEu
aAkocmV2aXNpb24gNDAwNzMpCisrKyBXZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpZm5kZWYgSW1hZ2VEYXRhX2gKICNkZWZpbmUgSW1h
Z2VEYXRhX2gKIAotI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KKyNpbmNsdWRlICJDYW52YXNQ
aXhlbEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKQEAgLTQxLDEzICs0MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgICAg
IHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgICAgIFdU
Rjo6Qnl0ZUFycmF5KiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CisgICAg
ICAgIENhbnZhc1BpeGVsQXJyYXkqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuZ2V0KCk7
IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEltYWdlRGF0YSh1bnNpZ25lZCB3aWR0aCwgdW5z
aWduZWQgaGVpZ2h0KTsKICAgICAgICAgdW5zaWduZWQgbV93aWR0aDsKICAgICAgICAgdW5zaWdu
ZWQgbV9oZWlnaHQ7Ci0gICAgICAgIFJlZlB0cjxXVEY6OkJ5dGVBcnJheT4gbV9kYXRhOworICAg
ICAgICBSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4gbV9kYXRhOwogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9JbWFnZURhdGEuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9JbWFnZURhdGEuaWRsCShyZXZpc2lvbiA0MDA3MykKKysrIFdl
YkNvcmUvaHRtbC9JbWFnZURhdGEuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw5IEBA
IG1vZHVsZSBodG1sIHsKICAgICBdIEltYWdlRGF0YSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHdpZHRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7
CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBkZWZpbmVkKFY4X0JJTkRJTkcp
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDYW52YXNQaXhlbEFycmF5IGRhdGE7CisjZW5k
aWYKICAgICB9OwogCiB9Cg==
</data>
<flag name="review"
          id="12870"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26899</attachid>
            <date>2009-01-21 12:01:36 -0800</date>
            <delta_ts>2009-01-21 12:12:42 -0800</delta_ts>
            <desc>Return CPA to basically its old implementation, extra indirection and all</desc>
            <filename>cpa-fix.patch</filename>
            <type>text/plain</type>
            <size>23803</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzJlY2IyMC4uN2MwNTA2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAwOS0wMS0yMSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEJ1ZyAyMzQ1ODogUmVpbnRyb2R1Y2UgQ2FudmFzUGl4ZWxBcnJheSBpbiBJ
bWFnZURhdGEuaWRsCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM0NTg+CisKKyAgICAgICAgUmV0dXJuIENhbnZhc1BpeGVsQXJyYXksIGV0IGFsIC0t
IHRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzCisgICAgICAgIGFuZCB0aGUgb3JpZ2lu
YWwgQ1BBIGltcGxlbWVudGF0aW9uIGlzIHRoYXQgaXQgbm93IHVzZXMgYSBCeXRlQXJyYXkKKyAg
ICAgICAgcmF0aGVyIHRoYW4gYSB2ZWN0b3IuICBKU0Mgc3RpbGwgdXNlcyBhIGN1c3RvbSB3cmFw
cGVyLCBidXQgdGhpcyBhbGxvd3MKKyAgICAgICAgT2JqQywgQ09NLCBhbmQgVjggYmluZGluZ3Mg
dG8gYmUgYXV0b2dlbmVyYXRlZCBhZ2Fpbi4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlU291cmNlcy5ia2w6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbWFn
ZURhdGFDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogaHRt
bC9DYW52YXNQaXhlbEFycmF5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDYW52YXNQ
aXhlbEFycmF5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUGl4ZWxBcnJheTo6
Q2FudmFzUGl4ZWxBcnJheSk6CisgICAgICAgICogaHRtbC9DYW52YXNQaXhlbEFycmF5Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUGl4ZWxBcnJheTo6ZGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNQaXhlbEFycmF5OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUGl4ZWxBcnJheTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1BpeGVsQXJy
YXk6OmdldCk6CisgICAgICAgICogaHRtbC9DYW52YXNQaXhlbEFycmF5LmlkbDogQWRkZWQuCisg
ICAgICAgICogaHRtbC9JbWFnZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEYXRh
OjpJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwvSW1hZ2VEYXRhLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZURhdGE6OmRhdGEpOgorICAgICAgICAqIGh0bWwvSW1hZ2VEYXRhLmlkbDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6SW1hZ2VCdWZmZXI6OnB1dEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZl
cjo6Z2V0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpwdXRJbWFn
ZURhdGEpOgorCiAyMDA5LTAxLTIwICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuaWtvbGFzLnppbW1l
cm1hbm5AdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb3JnZSBTdGFp
a29zLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggNjFkZmFkZi4uYTRhOGMzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC04MDgsNiArODA4LDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0bWwvQ2FudmFzR3JhZGllbnQuaCBc
CiAJV2ViQ29yZS9odG1sL0NhbnZhc1BhdHRlcm4uY3BwIFwKIAlXZWJDb3JlL2h0bWwvQ2FudmFz
UGF0dGVybi5oIFwKKwlXZWJDb3JlL2h0bWwvQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCVdlYkNv
cmUvaHRtbC9DYW52YXNQaXhlbEFycmF5LmggXAogCVdlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwIFwKIAlXZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmggXAogCVdlYkNvcmUvaHRtbC9DYW52YXNTdHlsZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZjQ4YWZiYy4uN2ZmNTVk
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCkBAIC02ODIsNiArNjgyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgaGlzdG9yeS9QYWdlQ2Fj
aGUuY3BwIFwKICAgICBodG1sL0NhbnZhc0dyYWRpZW50LmNwcCBcCiAgICAgaHRtbC9DYW52YXNQ
YXR0ZXJuLmNwcCBcCisgICAgaHRtbC9DYW52YXNQaXhlbEFycmF5LmNwcCBcCiAgICAgaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKICAgICBodG1sL0NhbnZhc1N0eWxlLmNwcCBc
CiAgICAgaHRtbC9GaWxlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCAyMTg3MTM0Li4yOTE2MWUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTEyNTkwLDYgKzEyNTkwLDIyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ2FudmFzUGl4ZWxBcnJheS5jcHAiDQorCQkJ
CT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX1BHT3xXaW4z
MiINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249InRydWUiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcQ2FudmFzUGl4ZWxBcnJheS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzdkMTRlNi4uODQ4MGY4MiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3ODcsNiArMTc4
Nyw3IEBACiAJCTg1RkYzMTNDMEFBRkJENzIwMDM3NEYzOCAvKiBET01XaGVlbEV2ZW50UHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMx
M0IwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggKi87IH07CiAJCTg1
RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRG
MzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyB9OwogCQk4NUZGMzE1QjBBQUZCRkNCMDAzNzRG
MzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2
ZW50Lm1tICovOyB9OworCQk4OThEMUZCMzBGMjc5MzRCMDA0QkJBQzcgLyogQ2FudmFzUGl4ZWxB
cnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk4
RDFGQjIwRjI3OTM0QjAwNEJCQUM3IC8qIENhbnZhc1BpeGVsQXJyYXkuaCAqLzsgfTsKIAkJOTI5
MjY0NzcwQjYxRkM3MjAwQjQxRDM0IC8qIEpTRG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTI5MjY0NzYwQjYxRkM3MjAwQjQx
RDM0IC8qIEpTRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQk5MzAyQjBCRDBENzlGODI5MDBD
N0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICov
OyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCRTBENzlGODJDMDBD
N0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTIwNDMsNiArMjA0NCw4IEBACiAJCTkzRjlCN0EwMEJBNjAzMjYwMDg1
NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rp
b24uY3BwICovOyB9OwogCQk5M0Y5QjdBMTBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlC
NzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5oICovOyB9OwogCQk5M0ZEQUZD
QTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYg
LyogRWRpdG9ySW5zZXJ0QWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQTcwOTRBRkEwRjI3QUU2MDAwNTk2Q0VDIC8qIENhbnZhc1BpeGVs
QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTcwOTRBRjkwRjI3QUU2MDAwNTk2Q0VDIC8qIENhbnZhc1BpeGVsQXJyYXkuY3BwICovOyB9Owor
CQlBNzA5NEFGQzBGMjdBRUUzMDA1OTZDRUMgLyogQ2FudmFzUGl4ZWxBcnJheS5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MDk0QUZCMEYyN0FF
RTMwMDU5NkNFQyAvKiBDYW52YXNQaXhlbEFycmF5LmlkbCAqLzsgfTsKIAkJQTcxODc2MEUwQjJB
MTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
NzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBB
MTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQw
MEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZH
QmxvY2suY3BwICovOyB9OwpAQCAtNjY0MSw2ICs2NjQ0LDcgQEAKIAkJODVGRjMxM0IwQUFGQkQ3
MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01XaGVlbEV2ZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRGMzggLyog
RE9NS2V5Ym9hcmRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
OThEMUZCMjBGMjc5MzRCMDA0QkJBQzcgLyogQ2FudmFzUGl4ZWxBcnJheS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDYW52YXNQaXhlbEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkyOTI2NDc2MEI2MUZDNzIwMEI0MUQzNCAvKiBKU0RvY3VtZW50Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5Rjgy
OTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQYWdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAy
QjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Njg4MCw2ICs2ODg0LDggQEAKIAkJOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFT
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ0RBVEFT
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGOUI3OUYwQkE2MDMy
NjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQ0RBVEFTZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
RkRBRkM5MEIxMTMwNzQwMEUyNzQ2RiAvKiBFZGl0b3JJbnNlcnRBY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRvckluc2VydEFjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBNzA5NEFGOTBGMjdBRTYwMDA1OTZDRUMgLyogQ2FudmFzUGl4
ZWxBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQ
aXhlbEFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcwOTRBRkIwRjI3
QUVFMzAwNTk2Q0VDIC8qIENhbnZhc1BpeGVsQXJyYXkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENhbnZhc1BpeGVsQXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MzUyQzE3MEIxQkI4OUQwMEE5ODZE
MCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyU1ZHQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTEzNzMsNiArMTEzNzksOSBAQAogCQkJCTkzRUVDMjZFMDlDMzIxODAwMEM1MTVEMSAvKiBDYW52
YXNQYXR0ZXJuLmNwcCAqLywKIAkJCQk5M0VFQzFGMjA5QzI4Nzc3MDBDNTE1RDEgLyogQ2FudmFz
UGF0dGVybi5oICovLAogCQkJCTkzMENBQjhGMDlDNDlGMUIwMDIyOUMwNCAvKiBDYW52YXNQYXR0
ZXJuLmlkbCAqLywKKwkJCQlBNzA5NEFGOTBGMjdBRTYwMDA1OTZDRUMgLyogQ2FudmFzUGl4ZWxB
cnJheS5jcHAgKi8sCisJCQkJODk4RDFGQjIwRjI3OTM0QjAwNEJCQUM3IC8qIENhbnZhc1BpeGVs
QXJyYXkuaCAqLywKKwkJCQlBNzA5NEFGQjBGMjdBRUUzMDA1OTZDRUMgLyogQ2FudmFzUGl4ZWxB
cnJheS5pZGwgKi8sCiAJCQkJOTNFRUMxRUQwOUMyODc3NzAwQzUxNUQxIC8qIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAgKi8sCiAJCQkJOTNFRUMxRUUwOUMyODc3NzAwQzUxNUQxIC8qIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oICovLAogCQkJCTkzMENBQUQ2MDlDNDk1QjYwMDIyOUMw
NCAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsICovLApAQCAtMTQ1MDcsNiArMTQ1MTYs
NyBAQAogCQkJCUJDQjE2QzI4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0VFQzIwMzA5QzI4Nzc3MDBDNTE1RDEgLyogQ2FudmFz
R3JhZGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRUVDMjA0MDlDMjg3NzcwMEM1MTVEMSAv
KiBDYW52YXNQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKKwkJCQk4OThEMUZCMzBGMjc5MzRCMDA0
QkJBQzcgLyogQ2FudmFzUGl4ZWxBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNFRUMyMDAw
OUMyODc3NzAwQzUxNUQxIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNFRUMyMDEwOUMyODc3NzAwQzUxNUQxIC8qIENhbnZhc1N0eWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTQxODVFRTBDRDY1RjA0MDA3NjNDOTkgLyogQ2hhbmdlVmVyc2lvbldy
YXBwZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTY3MDAsNiArMTY3MTAsNyBAQAogCQkJCTg1MTM2
Q0E4MEFFRDY2NTkwMEY5MEEzRCAvKiB3ZXN0UmVzaXplQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJMUFCMUFFN0EwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5wbmcgaW4g
UmVzb3VyY2VzICovLAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29tT3V0Q3Vy
c29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTcwOTRBRkMwRjI3QUVFMzAwNTk2Q0VDIC8q
IENhbnZhc1BpeGVsQXJyYXkuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE4NTQ5LDYgKzE4NTYw
LDcgQEAKIAkJCQkxQTU2OUQyMjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVf
cm9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxRDA5OUU2NDkyMDA1NkU1ODEgLyog
dmlzaWJsZV91bml0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzA5NEFGQTBGMjdBRTYwMDA1
OTZDRUMgLyogQ2FudmFzUGl4ZWxBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wK
aW5kZXggOWViZTgyNC4uNDhjZjZmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlU291cmNl
cy5ia2wKKysrIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKQEAgLTUyMSw2ICs1MjEsNyBA
QCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVkIHRvIGJ1aWxkIFdl
YkNvcmUuCiAgICAgPHNldCBhcHBlbmQ9IjEiIHZhcj0iV0VCQ09SRV9TT1VSQ0VTX0hUTUwiPgog
ICAgICAgICBodG1sL0NhbnZhc0dyYWRpZW50LmNwcAogICAgICAgICBodG1sL0NhbnZhc1BhdHRl
cm4uY3BwCisgICAgICAgIGh0bWwvQ2FudmFzUGl4ZWxBcnJheS5jcHAKICAgICAgICAgaHRtbC9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCiAgICAgICAgIGh0bWwvQ2FudmFzU3R5bGUuY3Bw
CiAgICAgICAgIGh0bWwvRmlsZS5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbWFnZURhdGFDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1
c3RvbS5jcHAKaW5kZXggOTIwMTIxZS4uMDZjNWQxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ltYWdlRGF0YUN1c3RvbS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgSlNWYWx1ZVB0ciB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgSW1hZ2VEYXRhKiBpbWFnZURhdGEpCiAgICAgSWRlbnRpZmllciBkYXRh
TmFtZShleGVjLCAiZGF0YSIpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPFN0cnVj
dHVyZT4sIGNwYVN0cnVjdHVyZSwgKEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoanNOdWxs
KCkpKSk7CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBjcGFDbGFzc0luZm8gPSB7ICJDYW52
YXNQaXhlbEFycmF5IiwgMCwgMCwgMCB9OwotICAgIHdyYXBwZXItPnB1dERpcmVjdChkYXRhTmFt
ZSwgbmV3IChleGVjKSBKU0J5dGVBcnJheShleGVjLCBjcGFTdHJ1Y3R1cmUsIGltYWdlRGF0YS0+
ZGF0YSgpLCAmY3BhQ2xhc3NJbmZvKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKKyAgICB3cmFw
cGVyLT5wdXREaXJlY3QoZGF0YU5hbWUsIG5ldyAoZXhlYykgSlNCeXRlQXJyYXkoZXhlYywgY3Bh
U3RydWN0dXJlLCBpbWFnZURhdGEtPmRhdGEoKS0+ZGF0YSgpLCAmY3BhQ2xhc3NJbmZvKSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5
Q29zdChpbWFnZURhdGEtPmRhdGEoKS0+bGVuZ3RoKCkpOwogICAgIAogICAgIHJldHVybiB3cmFw
cGVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NhbnZhc1BpeGVsQXJyYXkuY3BwIGIvV2Vi
Q29yZS9odG1sL0NhbnZhc1BpeGVsQXJyYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjk2NzFiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQ2FudmFz
UGl4ZWxBcnJheS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAor
ICAgIFBhc3NSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4gQ2FudmFzUGl4ZWxBcnJheTo6Y3JlYXRl
KHVuc2lnbmVkIGxlbmd0aCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2Fu
dmFzUGl4ZWxBcnJheShsZW5ndGgpKTsKKyAgICB9CisgICAgCisgICAgQ2FudmFzUGl4ZWxBcnJh
eTo6Q2FudmFzUGl4ZWxBcnJheSh1bnNpZ25lZCBsZW5ndGgpCisgICAgICAgIDogbV9kYXRhKFdU
Rjo6Qnl0ZUFycmF5OjpjcmVhdGUobGVuZ3RoKSkKKyAgICB7CisgICAgfQorICAgIAorfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NhbnZhc1BpeGVsQXJyYXkuaCBiL1dlYkNvcmUvaHRtbC9D
YW52YXNQaXhlbEFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU1
Y2NhZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9DYW52YXNQaXhlbEFycmF5LmgK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDYW52YXNQaXhlbEFycmF5X2gKKyNkZWZpbmUgQ2Fu
dmFzUGl4ZWxBcnJheV9oCisKKyNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CisjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgCisgICAgY2xhc3MgQ2FudmFzUGl4ZWxBcnJheSA6IHB1YmxpYyBSZWZD
b3VudGVkPENhbnZhc1BpeGVsQXJyYXk+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPENhbnZhc1BpeGVsQXJyYXk+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOworICAg
ICAgICAKKyAgICAgICAgV1RGOjpCeXRlQXJyYXkqIGRhdGEoKSB7IHJldHVybiBtX2RhdGEuZ2V0
KCk7IH0KKyAgICAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT5s
ZW5ndGgoKTsgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBzZXQodW5zaWduZWQgaW5kZXgsIGRv
dWJsZSB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9kYXRhLT5zZXQoaW5kZXgsIHZh
bHVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbCBnZXQodW5zaWduZWQgaW5k
ZXgsIHVuc2lnbmVkIGNoYXImIHJlc3VsdCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIG1fZGF0YS0+Z2V0KGluZGV4LCByZXN1bHQpOworICAgICAgICB9CisKKyAgICBwcml2
YXRlOgorICAgICAgICBDYW52YXNQaXhlbEFycmF5KHVuc2lnbmVkIGxlbmd0aCk7CisgICAgICAg
IFJlZlB0cjxXVEY6OkJ5dGVBcnJheT4gbV9kYXRhOworICAgIH07CisgICAgCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDYW52YXNQaXhlbEFycmF5X2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9DYW52YXNQaXhlbEFycmF5LmlkbCBiL1dlYkNvcmUvaHRtbC9DYW52YXNQ
aXhlbEFycmF5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDI3OTQw
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0NhbnZhc1BpeGVsQXJyYXkuaWRsCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKyNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCAhZGVmaW5lZChKU0NfQklORElORykKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDdXN0b21IZWFkZXIsCisgICAgICAgIEhhc0N1c3RvbUluZGV4R2V0dGVyLAorICAgICAgICBI
YXNDdXN0b21JbmRleFNldHRlcgorICAgIF0gQ2FudmFzUGl4ZWxBcnJheSB7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsKKyAgICB9OworI2VuZGlmCit9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmNwcCBiL1dlYkNvcmUvaHRtbC9JbWFnZURhdGEu
Y3BwCmluZGV4IGUwNDRhOTcuLjEwNGZmYjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9JbWFn
ZURhdGEuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9JbWFnZURhdGEuY3BwCkBAIC0yOSw4ICsyOSw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCiAKLXVzaW5n
IG5hbWVzcGFjZSBXVEY7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxJbWFn
ZURhdGE+IEltYWdlRGF0YTo6Y3JlYXRlKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQp
CkBAIC00MSw3ICszOSw3IEBAIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiBJbWFnZURhdGE6OmNyZWF0
ZSh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQogSW1hZ2VEYXRhOjpJbWFnZURhdGEo
dW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKICAgICA6IG1fd2lkdGgod2lkdGgpCiAg
ICAgLCBtX2hlaWdodChoZWlnaHQpCi0gICAgLCBtX2RhdGEoQnl0ZUFycmF5OjpjcmVhdGUod2lk
dGggKiBoZWlnaHQgKiA0KSkKKyAgICAsIG1fZGF0YShDYW52YXNQaXhlbEFycmF5OjpjcmVhdGUo
d2lkdGggKiBoZWlnaHQgKiA0KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0lt
YWdlRGF0YS5oIGIvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5oCmluZGV4IGZlNzczMGQuLmMxZWRh
ZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9JbWFnZURhdGEuaAorKysgYi9XZWJDb3JlL2h0
bWwvSW1hZ2VEYXRhLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpZm5kZWYgSW1hZ2VEYXRhX2gKICNk
ZWZpbmUgSW1hZ2VEYXRhX2gKIAotI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KKyNpbmNsdWRl
ICJDYW52YXNQaXhlbEFycmF5LmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTQxLDEzICs0MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9
CiAgICAgICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0g
ICAgICAgIFdURjo6Qnl0ZUFycmF5KiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmdldCgp
OyB9CisgICAgICAgIENhbnZhc1BpeGVsQXJyYXkqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuZ2V0KCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEltYWdlRGF0YSh1bnNpZ25lZCB3
aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKICAgICAgICAgdW5zaWduZWQgbV93aWR0aDsKICAgICAg
ICAgdW5zaWduZWQgbV9oZWlnaHQ7Ci0gICAgICAgIFJlZlB0cjxXVEY6OkJ5dGVBcnJheT4gbV9k
YXRhOworICAgICAgICBSZWZQdHI8Q2FudmFzUGl4ZWxBcnJheT4gbV9kYXRhOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9JbWFnZURh
dGEuaWRsIGIvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5pZGwKaW5kZXggNjljOTJhZC4uNDI3NmM1
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0ltYWdlRGF0YS5pZGwKQEAgLTM0LDYgKzM0LDkgQEAgbW9kdWxlIGh0bWwgewogICAgIF0g
SW1hZ2VEYXRhIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgd2lkdGg7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKKyNpZiAhZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKFY4X0JJTkRJTkcpCisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBDYW52YXNQaXhlbEFycmF5IGRhdGE7CisjZW5kaWYKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8u
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNw
cAppbmRleCBmNGM4YTQyLi4zZTA2NjY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgUGFz
c1JlZlB0cjxJbWFnZURhdGE+IEltYWdlQnVmZmVyOjpnZXRJbWFnZURhdGEoY29uc3QgSW50UmVj
dCYgcmVjdCkgY29uc3QKIAogICAgIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiByZXN1bHQgPSBJbWFn
ZURhdGE6OmNyZWF0ZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogICAgIHVuc2lnbmVk
IGNoYXIqIGRhdGFTcmMgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKG1fZGF0YS5tX3N1
cmZhY2UpOwotICAgIHVuc2lnbmVkIGNoYXIqIGRhdGFEc3QgPSByZXN1bHQtPmRhdGEoKS0+ZGF0
YSgpOworICAgIHVuc2lnbmVkIGNoYXIqIGRhdGFEc3QgPSByZXN1bHQtPmRhdGEoKS0+ZGF0YSgp
LT5kYXRhKCk7CiAKICAgICBpZiAocmVjdC54KCkgPCAwIHx8IHJlY3QueSgpIDwgMCB8fCAocmVj
dC54KCkgKyByZWN0LndpZHRoKCkpID4gbV9zaXplLndpZHRoKCkgfHwgKHJlY3QueSgpICsgcmVj
dC5oZWlnaHQoKSkgPiBtX3NpemUuaGVpZ2h0KCkpCiAgICAgICAgIG1lbXNldChkYXRhU3JjLCAw
LCByZXN1bHQtPmRhdGEoKS0+bGVuZ3RoKCkpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgSW1h
Z2VCdWZmZXI6OnB1dEltYWdlRGF0YShJbWFnZURhdGEqIHNvdXJjZSwgY29uc3QgSW50UmVjdCYg
c291cmNlUmVjdCwgY29uCiAgICAgdW5zaWduZWQgc3JjQnl0ZXNQZXJSb3cgPSA0ICogc291cmNl
LT53aWR0aCgpOwogICAgIGludCBzdHJpZGUgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJp
ZGUobV9kYXRhLm1fc3VyZmFjZSk7CiAKLSAgICB1bnNpZ25lZCBjaGFyKiBzcmNSb3dzID0gc291
cmNlLT5kYXRhKCktPmRhdGEoKSArIG9yaWdpbnkgKiBzcmNCeXRlc1BlclJvdyArIG9yaWdpbngg
KiA0OworICAgIHVuc2lnbmVkIGNoYXIqIHNyY1Jvd3MgPSBzb3VyY2UtPmRhdGEoKS0+ZGF0YSgp
LT5kYXRhKCkgKyBvcmlnaW55ICogc3JjQnl0ZXNQZXJSb3cgKyBvcmlnaW54ICogNDsKICAgICBm
b3IgKGludCB5ID0gMDsgeSA8IG51bVJvd3M7ICsreSkgewogICAgICAgICB1bnNpZ25lZCBjaGFy
ICpyb3cgPSBkYXRhRHN0ICsgc3RyaWRlICogKHkgKyBkZXN0eSk7CiAgICAgICAgIGZvciAoaW50
IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgeCsrKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA3MmU3NGViLi45NmU1NjA0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBJbWFnZSogSW1hZ2VCdWZmZXI6OmltYWdlKCkgY29uc3QKIFBhc3NSZWZQdHI8
SW1hZ2VEYXRhPiBJbWFnZUJ1ZmZlcjo6Z2V0SW1hZ2VEYXRhKGNvbnN0IEludFJlY3QmIHJlY3Qp
IGNvbnN0CiB7CiAgICAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IHJlc3VsdCA9IEltYWdlRGF0YTo6
Y3JlYXRlKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgdW5zaWduZWQgY2hhciog
ZGF0YSA9IHJlc3VsdC0+ZGF0YSgpLT5kYXRhKCk7CisgICAgdW5zaWduZWQgY2hhciogZGF0YSA9
IHJlc3VsdC0+ZGF0YSgpLT5kYXRhKCktPmRhdGEoKTsKIAogICAgIGlmIChyZWN0LngoKSA8IDAg
fHwgcmVjdC55KCkgPCAwIHx8IChyZWN0LngoKSArIHJlY3Qud2lkdGgoKSkgPiBtX3NpemUud2lk
dGgoKSB8fCAocmVjdC55KCkgKyByZWN0LmhlaWdodCgpKSA+IG1fc2l6ZS5oZWlnaHQoKSkKICAg
ICAgICAgbWVtc2V0KGRhdGEsIDAsIHJlc3VsdC0+ZGF0YSgpLT5sZW5ndGgoKSk7CkBAIC0xODgs
NyArMTg4LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6cHV0SW1hZ2VEYXRhKEltYWdlRGF0YSogc291
cmNlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb24KICAgICB1bnNpZ25lZCBzcmNCeXRl
c1BlclJvdyA9IDQgKiBzb3VyY2UtPndpZHRoKCk7CiAgICAgdW5zaWduZWQgZGVzdEJ5dGVzUGVy
Um93ID0gNCAqIG1fc2l6ZS53aWR0aCgpOwogCi0gICAgdW5zaWduZWQgY2hhciogc3JjUm93cyA9
IHNvdXJjZS0+ZGF0YSgpLT5kYXRhKCkgKyBvcmlnaW55ICogc3JjQnl0ZXNQZXJSb3cgKyBvcmln
aW54ICogNDsKKyAgICB1bnNpZ25lZCBjaGFyKiBzcmNSb3dzID0gc291cmNlLT5kYXRhKCktPmRh
dGEoKS0+ZGF0YSgpICsgb3JpZ2lueSAqIHNyY0J5dGVzUGVyUm93ICsgb3JpZ2lueCAqIDQ7CiAg
ICAgdW5zaWduZWQgY2hhciogZGVzdFJvd3MgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNo
YXIqPihtX2RhdGEubV9kYXRhKSArIGRlc3R5ICogZGVzdEJ5dGVzUGVyUm93ICsgZGVzdHggKiA0
OwogICAgIGZvciAoaW50IHkgPSAwOyB5IDwgbnVtUm93czsgKyt5KSB7CiAgICAgICAgIGZvciAo
aW50IHggPSAwOyB4IDwgbnVtQ29sdW1uczsgeCsrKSB7Cg==
</data>
<flag name="review"
          id="12872"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>