<?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>71279</bug_id>
          
          <creation_ts>2011-11-01 03:56:47 -0700</creation_ts>
          <short_desc>[Qt] Create infrastructure for Qt&apos;s builtin bundle in web process.</short_desc>
          <delta_ts>2011-11-01 06:34:55 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>70545</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>493836</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-01 03:56:47 -0700</bug_when>
    <thetext>[Qt] Create infrastructure for Qt&apos;s builtin bundle in web process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493838</commentid>
    <comment_count>1</comment_count>
      <attachid>113156</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-01 03:57:32 -0700</bug_when>
    <thetext>Created attachment 113156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493854</commentid>
    <comment_count>2</comment_count>
      <attachid>113156</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-01 05:17:20 -0700</bug_when>
    <thetext>Comment on attachment 113156
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=113156&amp;action=review

I suggest renaming QtBundle to QtBuiltinBundle

&gt; Source/WebKit2/WebProcess/qt/QtBundle.cpp:47
&gt; +void QtBundle::initialize(WKBundleRef bundle, WKTypeRef initializationUserData)

initializationUserData seems to be an unused parameter.

&gt; Source/WebKit2/WebProcess/qt/QtBundle.cpp:79
&gt; +    size_t size = m_pages.size();
&gt; +    for (size_t i = 0; i &lt; size; ++i) {

I&apos;d prefer to use of m_page.size() instead of the local size variable. It&apos;s not that calling m_pages.size() is expensive ;)

&gt; Source/WebKit2/WebProcess/qt/QtBundle.cpp:90
&gt; +    size_t size = m_pages.size();
&gt; +    for (size_t i = 0; i &lt; size; ++i) {

Same here.

&gt; Source/WebKit2/WebProcess/qt/WebProcessQt.cpp:99
&gt; +        m_injectedBundle-&gt;loadWithFunction(qt_wk_WKBundleInitialize);

Why add loadWithFunction to the generic InjectedBundle when you could simply call QtBundle::shared().initialize(toAPI(m_injectedBundle), 0); right there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493870</commentid>
    <comment_count>3</comment_count>
      <attachid>113165</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-01 06:26:28 -0700</bug_when>
    <thetext>Created attachment 113165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493872</commentid>
    <comment_count>4</comment_count>
      <attachid>113165</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-01 06:29:22 -0700</bug_when>
    <thetext>Comment on attachment 113165
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493876</commentid>
    <comment_count>5</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-11-01 06:34:55 -0700</bug_when>
    <thetext>Committed r98957: &lt;http://trac.webkit.org/changeset/98957&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113156</attachid>
            <date>2011-11-01 03:57:32 -0700</date>
            <delta_ts>2011-11-01 06:26:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71279-20111101115730.patch</filename>
            <type>text/plain</type>
            <size>17080</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhYTY1MDEwOTYwN2E3Yzgz
Y2U1NmJjMmRkODY4YmE0ZDdiMDQwZTdmLi43N2Y2NzNlMDQ5MjVkNWYzMmEwYzUzM2FiYzdhMTk5
OTk3ZDY5YzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMTEtMDEgIENhaW8g
TWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBbUXRdIENyZWF0ZSBpbmZyYXN0cnVjdHVyZSBmb3IgUXQncyBidWlsdGluIGJ1
bmRsZSBpbiB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxMjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ3JlYXRlIGEgYnVpbHRpbiBidW5kbGUgZm9yIFF0IHBvcnQuIFRoaXMgZ2l2
ZXMgdXMgYWNjZXNzIHRvIG1hbnkgaG9va3MgYXQgd2ViIHByb2Nlc3MKKyAgICAgICAgd2l0aG91
dCBoYXZpbmcgdG8gY2hhbmdlIG11bHRpcGxhdGZvcm0gY29kZS4gQ3VycmVudGx5IEluamVjdGVk
QnVuZGxlIGlzIHVzZWQgb25seSBmb3IKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciwgc28gd2Ug
b25seSBpbnN0YWxsIG91ciBidWlsdGluIGJ1bmRsZSBpZiB0aGVyZSdzIG5vIG90aGVyLgorCisg
ICAgICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
cXQvSW5qZWN0ZWRCdW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
Ojpsb2FkV2l0aEZ1bmN0aW9uKTogQWRkIGEgd2F5IHRvIGxvYWQgSW5qZWN0ZWRCdW5kbGUKKyAg
ICAgICAgZGlyZWN0bHkgZnJvbSBhbiBpbml0aWFsaXplIGZ1bmN0aW9uIHBvaW50ZXIuIFRoaXMg
YWxsb3dzIHVzIHRvIGhhdmUgdGhlIGJ1bmRsZQorICAgICAgICBjb2RlIGRlZmluZWQgaW4gdGhl
IFdlYlByb2Nlc3MgaXRzZWxmLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNz
UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpxdF93a19XS0J1bmRsZUluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKTog
TG9hZCBvdXIgImJ1aWx0LWluIiBpbmplY3RlZAorICAgICAgICBidW5kbGUgaWYgdGhlcmUncyBu
byBidW5kbGUgdG8gYmUgcmVnaXN0ZXJlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXRC
dW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UXRCdW5kbGU6On5RdEJ1bmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OlF0QnVuZGxlOjpzaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpR
dEJ1bmRsZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlF0QnVuZGxlOjpkaWRDcmVh
dGVQYWdlKToKKyAgICAgICAgKFdlYktpdDo6UXRCdW5kbGU6OndpbGxEZXN0cm95UGFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlF0QnVuZGxlOjpidW5kbGVQYWdlRm9yUGFnZVJlZik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9xdC9RdEJ1bmRsZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwLgorICAgICAg
ICAoV2ViS2l0OjpRdEJ1bmRsZTo6dG9SZWYpOgorICAgICAgICBPYmplY3QgdGhhdCBob2xkcyBh
IFdLQnVuZGxlUmVmIGFuZCBrZWVwcyB0cmFjayBvZiB0aGUgcGFnZXMgaW4gdGhlIGN1cnJlbnQg
Y29udGV4dC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXRCdW5kbGVQYWdlLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9xdC9Jbmpl
Y3RlZEJ1bmRsZVF0LmNwcC4KKyAgICAgICAgKFdlYktpdDo6UXRCdW5kbGVQYWdlOjpRdEJ1bmRs
ZVBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpRdEJ1bmRsZVBhZ2U6On5RdEJ1bmRsZVBhZ2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXRCdW5kbGVQYWdlLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGVRdC5j
cHAuCisgICAgICAgIChXZWJLaXQ6OlF0QnVuZGxlUGFnZTo6cGFnZSk6CisgICAgICAgIE91ciBy
ZXByZXNlbnRhdGlvbiBmb3IgcGFnZXMgZnJvbSB0aGUgYnVuZGxlIHBlcnNwZWN0aXZlLiBUaGlz
IHdpbGwgYmUgdGhlIHJpZ2h0CisgICAgICAgIHBsYWNlIHRvIHJlZ2lzdGVyaW5nIG5ldyBjbGll
bnRzLgorCiAyMDExLTEwLTMxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlv
Lm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBNYWtlIFFXZWJQcmVmZXJl
bmNlcyBob2xkIGEgUXRXZWJQYWdlUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIucHJvIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KaW5kZXggYTMxZTM1NDc4MTll
YTVlZDAwZGFmYzY0OTY5NTJhZWY4YzQ5MGVjZS4uMzQ3ZjFjN2NjZGY0ZGExYzFmYjgxN2MyMmFi
ODkyOWJmZTg2OTY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTM0MCw2ICszNDAsOCBAQCBIRUFERVJT
ICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIFwKICAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmggXAorICAgIFdlYlByb2Nlc3MvcXQvUXRCdW5kbGUuaCBcCisgICAgV2ViUHJvY2Vzcy9xdC9R
dEJ1bmRsZVBhZ2UuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9IRUFERVJTIFwKICAgICAk
JFdFQktJVDFfSEVBREVSU19TSEFSRURfV0lUSF9XRUJLSVQyCiAKQEAgLTYwNiw2ICs2MDgsOCBA
QCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAgXAogICAgIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgXAorICAgIFdlYlByb2Nlc3MvcXQvUXRCdW5kbGUuY3Bw
IFwKKyAgICBXZWJQcm9jZXNzL3F0L1F0QnVuZGxlUGFnZS5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
cXQvV2ViUHJvY2Vzc01haW5RdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0
LmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
aAppbmRleCA1M2U5MGQ5ZDY3MjFkNTI4NDAyZGVhNDI3ZjE5NGZiNjYxNjAxMzNhLi5iYzE5MDYx
NGM5Y2RiNjAzNWUzZGUyNTY1ZTY0NTI2YzE5MDJkYTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQ
TEFURk9STShRVCkKKyNpbmNsdWRlICJXS0J1bmRsZUluaXRpYWxpemUuaCIKICNpbmNsdWRlIDxR
TGlicmFyeT4KICNlbmRpZgogCkBAIC04MSw2ICs4MiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBs
b2FkKEFQSU9iamVjdCogaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk7CiAgICAgdm9pZCBzZXRTYW5k
Ym94RXh0ZW5zaW9uKFBhc3NSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gc2FuZGJveEV4dGVuc2lv
bikgeyBtX3NhbmRib3hFeHRlbnNpb24gPSBzYW5kYm94RXh0ZW5zaW9uOyB9CiAKKyNpZiBQTEFU
Rk9STShRVCkKKyAgICB2b2lkIGxvYWRXaXRoRnVuY3Rpb24oV0tCdW5kbGVJbml0aWFsaXplRnVu
Y3Rpb25QdHIpOworI2VuZGlmCisKICAgICAvLyBBUEkKICAgICB2b2lkIGluaXRpYWxpemVDbGll
bnQoV0tCdW5kbGVDbGllbnQqKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYs
IEFQSU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGVRdC5jcHAKaW5kZXggYTUxODNi
MTM1YmZjMDA3MDYwNWEzMTRmNTFhNzBlZWVkYzY3NzA5ZC4uOTE0YjhjNjc2NDFlODIzOTdmYmVh
NWJjZjk3MzY5MjEwYjIxZmVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwCkBA
IC01NCw2ICs1NCwxMiBAQCBib29sIEluamVjdGVkQnVuZGxlOjpsb2FkKEFQSU9iamVjdCogaW5p
dGlhbGl6YXRpb25Vc2VyRGF0YSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6bG9hZFdpdGhGdW5jdGlvbihXS0J1bmRsZUluaXRpYWxpemVGdW5jdGlvblB0ciBp
bml0aWFsaXplRnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGluaXRpYWxpemVGdW5jdGlvbik7Cisg
ICAgaW5pdGlhbGl6ZUZ1bmN0aW9uKHRvQVBJKHRoaXMpLCAwKTsKK30KKwogdm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6YWN0aXZhdGVNYWNGb250QXNjZW50SGFjaygpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvcXQvUXRCdW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNjlmZWRhODQxMGM5ZmFh
OTQ0N2Y1NTYzZjNiZTlhOWM0NzBiZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlLmNwcApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlF0QnVuZGxlLmgi
CisKKyNpbmNsdWRlICJRdEJ1bmRsZVBhZ2UuaCIKKyNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUXRC
dW5kbGU6On5RdEJ1bmRsZSgpCit7CisgICAgLy8gRm9yIE93blB0cidzIHNha2UuCit9CisKK1F0
QnVuZGxlJiBRdEJ1bmRsZTo6c2hhcmVkKCkKK3sKKyAgICBzdGF0aWMgUXRCdW5kbGUmIHNoYXJl
ZCA9ICpuZXcgUXRCdW5kbGU7CisgICAgcmV0dXJuIHNoYXJlZDsKK30KKwordm9pZCBRdEJ1bmRs
ZTo6aW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiBpbml0aWFsaXphdGlv
blVzZXJEYXRhKQoreworICAgIG1fYnVuZGxlID0gYnVuZGxlOworICAgIFdLQnVuZGxlQ2xpZW50
IGNsaWVudCA9IHsKKyAgICAgICAga1dLQnVuZGxlQ2xpZW50Q3VycmVudFZlcnNpb24sCisgICAg
ICAgIHRoaXMsCisgICAgICAgIGRpZENyZWF0ZVBhZ2UsCisgICAgICAgIHdpbGxEZXN0cm95UGFn
ZSwKKyAgICAgICAgMCwgLy8gZGlkSW5pdGlhbGl6ZVBhZ2VHcm91cAorICAgICAgICAwLCAvLyBk
aWRSZWNlaXZlTWVzc2FnZQorICAgIH07CisgICAgV0tCdW5kbGVTZXRDbGllbnQobV9idW5kbGUs
ICZjbGllbnQpOworfQorCit2b2lkIFF0QnVuZGxlOjpkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVm
LCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBz
dGF0aWNfY2FzdDxRdEJ1bmRsZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlk
Q3JlYXRlUGFnZShwYWdlKTsKK30KKwordm9pZCBRdEJ1bmRsZTo6d2lsbERlc3Ryb3lQYWdlKFdL
QnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
K3sKKyAgICBzdGF0aWNfY2FzdDxRdEJ1bmRsZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKS0+d2lsbERlc3Ryb3lQYWdlKHBhZ2UpOworfQorCit2b2lkIFF0QnVuZGxlOjpkaWRDcmVh
dGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQoreworICAgIG1fcGFnZXMuYXBwZW5kKGFkb3B0
UHRyKG5ldyBRdEJ1bmRsZVBhZ2UodGhpcywgcGFnZSkpKTsKK30KKwordm9pZCBRdEJ1bmRsZTo6
d2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQoreworICAgIHNpemVfdCBzaXpl
ID0gbV9wYWdlcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKKyAgICAgICAgaWYgKG1fcGFnZXNbaV0tPnBhZ2UoKSA9PSBwYWdlKSB7CisgICAgICAgICAg
ICBtX3BhZ2VzLnJlbW92ZShpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorfQorCitRdEJ1bmRsZVBhZ2UqIFF0QnVuZGxlOjpidW5kbGVQYWdlRm9yUGFnZVJlZihjb25z
dCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkgY29uc3QKK3sKKyAgICBzaXplX3Qgc2l6ZSA9IG1fcGFn
ZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAg
ICAgIGlmIChtX3BhZ2VzW2ldLT5wYWdlKCkgPT0gcGFnZSkKKyAgICAgICAgICAgIHJldHVybiBt
X3BhZ2VzW2ldLmdldCgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVu
ZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZThlMjIxZDk2MWI0ZGYyNjVkYTlhYjBjZjNlOWY0NmEzNGZhNDI3NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdW5kbGUuaApAQCAtMCwwICsx
LDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBRdEJ1bmRsZV9oCisjZGVm
aW5lIFF0QnVuZGxlX2gKKworI2luY2x1ZGUgIldLQnVuZGxlLmgiCisjaW5jbHVkZSAiV0tCdW5k
bGVQYWdlLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFF0QnVuZGxlUGFnZTsKKworY2xhc3Mg
UXRCdW5kbGUgeworcHVibGljOgorICAgIH5RdEJ1bmRsZSgpOworCisgICAgc3RhdGljIFF0QnVu
ZGxlJiBzaGFyZWQoKTsKKyAgICB2b2lkIGluaXRpYWxpemUoV0tCdW5kbGVSZWYsIFdLVHlwZVJl
ZiBpbml0aWFsaXphdGlvblVzZXJEYXRhKTsKKworICAgIFdLQnVuZGxlUmVmIHRvUmVmKCkgY29u
c3QgeyByZXR1cm4gbV9idW5kbGU7IH0KKworICAgIC8vIEJ1bmRsZSBDbGllbnQuCisgICAgc3Rh
dGljIHZvaWQgZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiwgV0tCdW5kbGVQYWdlUmVmLCBjb25z
dCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUmVmLCBX
S0J1bmRsZVBhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKKworICAgIHZvaWQgZGlkQ3JlYXRlUGFnZShX
S0J1bmRsZVBhZ2VSZWYpOworICAgIHZvaWQgd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUGFnZVJl
Zik7CisKK3ByaXZhdGU6CisgICAgUXRCdW5kbGVQYWdlKiBidW5kbGVQYWdlRm9yUGFnZVJlZihj
b25zdCBXS0J1bmRsZVBhZ2VSZWYpIGNvbnN0OworCisgICAgLy8gRklYTUU6IENhbiB3ZSB1c2Ug
SGFzaE1hcCBvZiBPd25QdHJzPyBPciBzb21ldGhpbmcgZXF1aXZhbGVudD8KKyAgICBWZWN0b3I8
T3duUHRyPFF0QnVuZGxlUGFnZT4gPiBtX3BhZ2VzOworICAgIFdLQnVuZGxlUmVmIG1fYnVuZGxl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBRdEJ1bmRsZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlUGFnZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTRhYjM1MzYzYzk5NzNkYWUyYzljZDliMDAwZDcxNzkwZGMxMWRkYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdW5kbGVQYWdlLmNwcApAQCAt
MCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlF0QnVuZGxlUGFnZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUXRC
dW5kbGVQYWdlOjpRdEJ1bmRsZVBhZ2UoUXRCdW5kbGUqIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVm
IHBhZ2UpCisgICAgOiBtX2J1bmRsZShidW5kbGUpCisgICAgLCBtX3BhZ2UocGFnZSkKK3sKKyAg
ICAvLyBIZXJlIHdlIGNhbiBzZXQgdGhlIGJ1bmRsZSdzIHBhZ2UgY2xpZW50cy4KK30KKworUXRC
dW5kbGVQYWdlOjp+UXRCdW5kbGVQYWdlKCkKK3sKKworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdW5kbGVQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlUGFnZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBhMzNlZDRkZDM1OTk2ODU0NmM1ZDZhODU0MzZmZDg2YmJlMjMxMDYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVuZGxlUGFnZS5oCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFF0QnVuZGxlUGFn
ZV9oCisjZGVmaW5lIFF0QnVuZGxlUGFnZV9oCisKKyNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFF0QnVuZGxlOworCitjbGFzcyBRdEJ1bmRs
ZVBhZ2UgeworcHVibGljOgorICAgIFF0QnVuZGxlUGFnZShRdEJ1bmRsZSosIFdLQnVuZGxlUGFn
ZVJlZik7CisgICAgflF0QnVuZGxlUGFnZSgpOworCisgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KKworcHJpdmF0ZToKKyAgICBRdEJ1bmRsZSogbV9i
dW5kbGU7CisgICAgV0tCdW5kbGVQYWdlUmVmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gUXRCdW5kbGVQYWdlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcAppbmRleCAwNWEwYzY0ZDJkM2I3YWYwOTg3NzU1
N2JiZjRlYjU4NzJmZDEwNTE0Li4zNmEyMWMzOThiYzZlZjdmMzQ4NDUzMGI5Y2E0NGJiMzJmMGEx
Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NR
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3Bw
CkBAIC0yNiw4ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKIAorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCisjaW5jbHVkZSAiUXRCdW5k
bGUuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0KICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgog
I2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KICNpbmNsdWRlIDxRTmV0d29ya0Nvb2tp
ZUphcj4KQEAgLTU2LDYgKzU4LDExIEBAIHN0YXRpYyB2b2lkIHBhcmVudFByb2Nlc3NEaWVkQ2Fs
bGJhY2sodm9pZCopCiB9CiAjZW5kaWYKIAordm9pZCBxdF93a19XS0J1bmRsZUluaXRpYWxpemUo
V0tCdW5kbGVSZWYgYnVuZGxlLCBXS1R5cGVSZWYgaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkKK3sK
KyAgICBRdEJ1bmRsZTo6c2hhcmVkKCkuaW5pdGlhbGl6ZShidW5kbGUsIGluaXRpYWxpemF0aW9u
VXNlckRhdGEpOworfQorCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCiB7CiAgICAgbV9uZXR3b3JrQWNjZXNz
TWFuYWdlciA9IG5ldyBRTmV0d29ya0FjY2Vzc01hbmFnZXI7CkBAIC04Myw2ICs5MCwxNCBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycwogI2lmIEVOQUJMRShTUEVFQ0hfSU5QVVQpCiAgICAgV2Vi
Q29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0U3BlZWNoSW5wdXRFbmFibGVkKGZhbHNl
KTsKICNlbmRpZgorCisgICAgLy8gV2UnbGwgb25seSBpbnN0YWxsIGlmIHdlIGRvbid0IGhhdmUg
b25lIGdpdmVuIGJ5IHRoZSBVSSBwcm9jZXNzLiBDdXJyZW50bHkgb25seSBXVFIgcHJvdmlkZXMK
KyAgICAvLyBpdHMgb3duIGJ1bmRsZS4KKyAgICBpZiAocGFyYW1ldGVycy5pbmplY3RlZEJ1bmRs
ZVBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1
bmRsZTo6Y3JlYXRlKFN0cmluZygpKTsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRsZS0+c2V0U2Fu
ZGJveEV4dGVuc2lvbihTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUocGFyYW1ldGVycy5pbmplY3Rl
ZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGUpKTsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRsZS0+
bG9hZFdpdGhGdW5jdGlvbihxdF93a19XS0J1bmRsZUluaXRpYWxpemUpOworICAgIH0KIH0KIAog
dm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113165</attachid>
            <date>2011-11-01 06:26:28 -0700</date>
            <delta_ts>2011-11-01 06:29:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71279-20111101142626.patch</filename>
            <type>text/plain</type>
            <size>15227</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyNWVhNGYzYzZlZTE3Njcx
OWM1ZWEyYjg5M2RmNjE3NzUyMDg1MDVjLi5iYjQxMDRkYjAwNmFmMGQxMzhkOTFlOTU3ZDgyYzdl
OGM5NjJmMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTEtMDEgIENhaW8g
TWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4K
KworICAgICAgICBbUXRdIENyZWF0ZSBpbmZyYXN0cnVjdHVyZSBmb3IgUXQncyBidWlsdGluIGJ1
bmRsZSBpbiB3ZWIgcHJvY2Vzcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxMjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ3JlYXRlIGEgYnVpbHRpbiBidW5kbGUgZm9yIFF0IHBvcnQ6IGFuIEluamVj
dGVkQnVuZGxlIHdoaWNoIHRoZSBjb2RlIGlzIHRvZ2V0aGVyCisgICAgICAgIHdpdGggdGhlIFF0
J3Mgd2ViIHByb2Nlc3MgaW5zdGVhZCBvZiBiZWluZyBpbiBhIGRpZmZlcmVudCBsaWJyYXJ5LiBU
aGlzIGdpdmVzIHVzCisgICAgICAgIGFjY2VzcyB0byBtYW55IGhvb2tzIGF0IHdlYiBwcm9jZXNz
ICh1c2luZyBXS0J1bmRsZSogZnVuY3Rpb25zIG9mIEMgQVBJKSB3aXRob3V0CisgICAgICAgIGFk
ZGluZyBhbnkgbWFpbnRlbmFuY2UgYnVyZGVuIHRvIGNyb3NzLXBvcnQgY29kZS4KKworICAgICAg
ICBTaW5jZSB3ZSBhbHNvIHVzZSBhIEluamVjdGVkQnVuZGxlIGluIHRoZSBXZWJLaXRUZXN0UnVu
bmVyLCB3ZSBvbmx5IGluc3RhbGwgb3VyCisgICAgICAgIGJ1aWx0aW4gYnVuZGxlIGlmIHRoZXJl
J3Mgbm8gb3RoZXIgaW5zdGFsbGVkLiBUaGlzIGlzIGZpbmUgYmVjYXVzZSBXVFIgd29uJ3QgdXNl
CisgICAgICAgIHRoZSBleHRyYSBydW50aW1lIGZlYXR1cmVzIHRoYXQgd2UgcGxhbiB0byBwcm92
aWRlIHdpdGggdGhlIGJ1aWx0aW4gYnVuZGxlLgorCisgICAgICAgICogV2ViS2l0Mi5wcm86Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UXRCdWlsdGluQnVuZGxlOjp+UXRCdWlsdGluQnVuZGxlKToKKyAgICAgICAg
KFdlYktpdDo6UXRCdWlsdGluQnVuZGxlOjpzaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpRdEJ1
aWx0aW5CdW5kbGU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5k
bGU6OmRpZENyZWF0ZVBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGU6Ondp
bGxEZXN0cm95UGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlF0QnVpbHRpbkJ1bmRsZTo6YnVuZGxl
UGFnZUZvclBhZ2VSZWYpOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxl
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpRdEJ1aWx0aW5CdW5kbGU6OnRvUmVmKToKKyAg
ICAgICAgT2JqZWN0IHRoYXQgaG9sZHMgYSBXS0J1bmRsZVJlZiBhbmQga2VlcHMgdHJhY2sgb2Yg
dGhlIHBhZ2VzIGluIHRoZSBjdXJyZW50IGNvbnRleHQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UXRC
dWlsdGluQnVuZGxlUGFnZTo6UXRCdWlsdGluQnVuZGxlUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlF0QnVpbHRpbkJ1bmRsZVBhZ2U6On5RdEJ1aWx0aW5CdW5kbGVQYWdlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlF0QnVpbHRpbkJ1bmRsZVBhZ2U6OnBhZ2UpOgorICAgICAgICBPdXIgcmVwcmVzZW50YXRp
b24gZm9yIHBhZ2VzIGZyb20gdGhlIGJ1bmRsZSBwZXJzcGVjdGl2ZS4gVGhpcyB3aWxsIGJlIHRo
ZSByaWdodAorICAgICAgICBwbGFjZSB0byByZWdpc3RlcmluZyBwYWdlIHJlbGF0ZWQgY2xpZW50
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAg
ICAgIElmIHRoZXJlJ3Mgbm8gYnVuZGxlIHRvIGJlIGxvYWRlZCwgaW5pdGlhbGl6ZSBRdCBidWls
dGluIGJ1bmRsZSwgd2hpY2ggd2lsbCByZWdpc3RlciB0aGUKKyAgICAgICAgYnVuZGxlIGNsaWVu
dCBmb3IgdGhpcyBjb250ZXh0LgorCiAyMDExLTExLTAxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9u
LmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbV0syXSBBZGQgV2ViR2VzdHVyZUV2ZW50
cyB0byB0aGUgUXQgYnVpbGQgYW5kIGVuYWJsZSBQbGF0Zm9ybUdlc3R1cmVFdmVudDo6VGFwVHlw
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnBybwppbmRleCA4ZDE3Nzk3ZDNlNzljNzU0MzQ0OGU0NjllYmU1MWY2YjRlYTU5
NzlhLi4wZDIxNjg4MDJjOWNiMDFlM2JmZDkzNDAyNmVmNzkwOGQ3OTA4MDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnBybwpAQCAtMzQwLDYgKzM0MCw4IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlR3JvdXBQcm94
eS5oIFwKICAgICBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBcCisgICAgV2ViUHJvY2Vzcy9xdC9R
dEJ1aWx0aW5CdW5kbGUuaCBcCisgICAgV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQYWdl
LmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyBcCiAgICAgJCRXRUJLSVQxX0hF
QURFUlNfU0hBUkVEX1dJVEhfV0VCS0lUMgogCkBAIC02MDcsNiArNjA5LDggQEAgU09VUkNFUyAr
PSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAgXAogICAg
IFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIFwKKyAgICBXZWJQcm9jZXNzL3F0L1F0QnVpbHRpbkJ1bmRsZS5jcHAgXAor
ICAgIFdlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFnZS5jcHAgXAogICAgIFdlYlByb2Nl
c3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvcXQvV2ViUHJvY2Vz
c1F0LmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MjVlY2UwMDdiNDUxNGVmNGNmN2NmZDdlMmMxY2UxYTZjZjFiZTQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGUuY3BwCkBAIC0w
LDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUXRCdWlsdGluQnVuZGxlLmgiCisKKyNpbmNsdWRlICJRdEJ1aWx0aW5CdW5k
bGVQYWdlLmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1F0QnVpbHRpbkJ1bmRsZTo6flF0QnVp
bHRpbkJ1bmRsZSgpCit7CisgICAgLy8gRm9yIE93blB0cidzIHNha2UuCit9CisKK1F0QnVpbHRp
bkJ1bmRsZSYgUXRCdWlsdGluQnVuZGxlOjpzaGFyZWQoKQoreworICAgIHN0YXRpYyBRdEJ1aWx0
aW5CdW5kbGUmIHNoYXJlZCA9ICpuZXcgUXRCdWlsdGluQnVuZGxlOworICAgIHJldHVybiBzaGFy
ZWQ7Cit9CisKK3ZvaWQgUXRCdWlsdGluQnVuZGxlOjppbml0aWFsaXplKFdLQnVuZGxlUmVmIGJ1
bmRsZSkKK3sKKyAgICBtX2J1bmRsZSA9IGJ1bmRsZTsKKyAgICBXS0J1bmRsZUNsaWVudCBjbGll
bnQgPSB7CisgICAgICAgIGtXS0J1bmRsZUNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICB0
aGlzLAorICAgICAgICBkaWRDcmVhdGVQYWdlLAorICAgICAgICB3aWxsRGVzdHJveVBhZ2UsCisg
ICAgICAgIDAsIC8vIGRpZEluaXRpYWxpemVQYWdlR3JvdXAKKyAgICAgICAgMCwgLy8gZGlkUmVj
ZWl2ZU1lc3NhZ2UKKyAgICB9OworICAgIFdLQnVuZGxlU2V0Q2xpZW50KG1fYnVuZGxlLCAmY2xp
ZW50KTsKK30KKwordm9pZCBRdEJ1aWx0aW5CdW5kbGU6OmRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVS
ZWYsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IHN0YXRpY19jYXN0PFF0QnVpbHRpbkJ1bmRsZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKS0+ZGlkQ3JlYXRlUGFnZShwYWdlKTsKK30KKwordm9pZCBRdEJ1aWx0aW5CdW5kbGU6Ondp
bGxEZXN0cm95UGFnZShXS0J1bmRsZVJlZiwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8UXRCdWlsdGluQnVuZGxlKj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT53aWxsRGVzdHJveVBhZ2UocGFnZSk7Cit9CisK
K3ZvaWQgUXRCdWlsdGluQnVuZGxlOjpkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdl
KQoreworICAgIG1fcGFnZXMuYXBwZW5kKGFkb3B0UHRyKG5ldyBRdEJ1aWx0aW5CdW5kbGVQYWdl
KHRoaXMsIHBhZ2UpKSk7Cit9CisKK3ZvaWQgUXRCdWlsdGluQnVuZGxlOjp3aWxsRGVzdHJveVBh
Z2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X3BhZ2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX3BhZ2VzW2ldLT5wYWdlKCkgPT0g
cGFnZSkgeworICAgICAgICAgICAgbV9wYWdlcy5yZW1vdmUoaSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KK30KKworUXRCdWlsdGluQnVuZGxlUGFnZSogUXRCdWlsdGlu
QnVuZGxlOjpidW5kbGVQYWdlRm9yUGFnZVJlZihjb25zdCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkg
Y29uc3QKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcGFnZXMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgaWYgKG1fcGFnZXNbaV0tPnBhZ2UoKSA9PSBwYWdlKQorICAgICAgICAgICAg
cmV0dXJuIG1fcGFnZXNbaV0uZ2V0KCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
cXQvUXRCdWlsdGluQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVp
bHRpbkJ1bmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZjhiMWZjZmJlMjVkNTYyMzM4NDJjZjU5YjNlNmY0
N2FmYzQxYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1F0QnVpbHRpbkJ1bmRsZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFF0QnVpbHRpbkJ1bmRsZV9oCisjZGVmaW5lIFF0QnVpbHRpbkJ1bmRsZV9o
CisKKyNpbmNsdWRlICJXS0J1bmRsZS5oIgorI2luY2x1ZGUgIldLQnVuZGxlUGFnZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBRdEJ1aWx0aW5CdW5kbGVQYWdlOworCitjbGFzcyBRdEJ1aWx0
aW5CdW5kbGUgeworcHVibGljOgorICAgIH5RdEJ1aWx0aW5CdW5kbGUoKTsKKworICAgIHN0YXRp
YyBRdEJ1aWx0aW5CdW5kbGUmIHNoYXJlZCgpOworICAgIHZvaWQgaW5pdGlhbGl6ZShXS0J1bmRs
ZVJlZik7CisKKyAgICBXS0J1bmRsZVJlZiB0b1JlZigpIGNvbnN0IHsgcmV0dXJuIG1fYnVuZGxl
OyB9CisKKyAgICAvLyBCdW5kbGUgQ2xpZW50LgorICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZVBh
Z2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRp
YyB2b2lkIHdpbGxEZXN0cm95UGFnZShXS0J1bmRsZVJlZiwgV0tCdW5kbGVQYWdlUmVmLCBjb25z
dCB2b2lkKik7CisKKyAgICB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVQYWdlUmVmKTsKKyAg
ICB2b2lkIHdpbGxEZXN0cm95UGFnZShXS0J1bmRsZVBhZ2VSZWYpOworCitwcml2YXRlOgorICAg
IFF0QnVpbHRpbkJ1bmRsZVBhZ2UqIGJ1bmRsZVBhZ2VGb3JQYWdlUmVmKGNvbnN0IFdLQnVuZGxl
UGFnZVJlZikgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogQ2FuIHdlIHVzZSBIYXNoTWFwIG9mIE93
blB0cnM/IE9yIHNvbWV0aGluZyBlcXVpdmFsZW50PworICAgIFZlY3RvcjxPd25QdHI8UXRCdWls
dGluQnVuZGxlUGFnZT4gPiBtX3BhZ2VzOworICAgIFdLQnVuZGxlUmVmIG1fYnVuZGxlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBRdEJ1aWx0aW5CdW5kbGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5kbGVQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlUGFn
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWE1NTQxZGU1OGQwZmIxMGI2MTBmN2UyZjk3M2I2OGFjM2UwZTg2
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWls
dGluQnVuZGxlUGFnZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJRdEJ1aWx0aW5CdW5kbGVQYWdlLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitRdEJ1aWx0aW5CdW5kbGVQYWdlOjpRdEJ1aWx0aW5C
dW5kbGVQYWdlKFF0QnVpbHRpbkJ1bmRsZSogYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkK
KyAgICA6IG1fYnVuZGxlKGJ1bmRsZSkKKyAgICAsIG1fcGFnZShwYWdlKQoreworICAgIC8vIEhl
cmUgd2UgY2FuIHNldCB0aGUgYnVuZGxlJ3MgcGFnZSBjbGllbnRzLgorfQorCitRdEJ1aWx0aW5C
dW5kbGVQYWdlOjp+UXRCdWlsdGluQnVuZGxlUGFnZSgpCit7CisKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0QnVp
bHRpbkJ1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXRCdWlsdGlu
QnVuZGxlUGFnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMDk4ZTliYTc5MDA0NzVjOWIzYTk2ZmFhZjQ1YTZj
YjI4NzU1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1F0QnVpbHRpbkJ1bmRsZVBhZ2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBRdEJ1aWx0aW5CdW5kbGVQYWdlX2gKKyNkZWZpbmUgUXRCdWlsdGlu
QnVuZGxlUGFnZV9oCisKKyNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFF0QnVpbHRpbkJ1bmRsZTsKKworY2xhc3MgUXRCdWlsdGluQnVuZGxl
UGFnZSB7CitwdWJsaWM6CisgICAgUXRCdWlsdGluQnVuZGxlUGFnZShRdEJ1aWx0aW5CdW5kbGUq
LCBXS0J1bmRsZVBhZ2VSZWYpOworICAgIH5RdEJ1aWx0aW5CdW5kbGVQYWdlKCk7CisKKyAgICBX
S0J1bmRsZVBhZ2VSZWYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCitwcml2YXRl
OgorICAgIFF0QnVpbHRpbkJ1bmRsZSogbV9idW5kbGU7CisgICAgV0tCdW5kbGVQYWdlUmVmIG1f
cGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUXRCdWlsdGlu
QnVuZGxlUGFnZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dl
YlByb2Nlc3NRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NR
dC5jcHAKaW5kZXggMDVhMGM2NGQyZDNiN2FmMDk4Nzc1NTdiYmY0ZWI1ODcyZmQxMDUxNC4uNTE4
ZjljMGUzYTM5ZDZiNDVkMGNhOTA0ODk0YTcwMGVlNjc1NmRiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc1F0LmNwcApAQCAtMjYsNiArMjYsOSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKIAorI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlLmgiCisjaW5jbHVkZSAiUXRCdWlsdGluQnVuZGxlLmgiCisjaW5jbHVkZSAi
V0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgogCiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KQEAgLTgzLDYgKzg2LDE0IEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzCiAjaWYgRU5BQkxFKFNQRUVDSF9JTlBVVCkKICAgICBXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRTcGVlY2hJbnB1dEVuYWJsZWQoZmFsc2Up
OwogI2VuZGlmCisKKyAgICAvLyBXZSdsbCBvbmx5IGluc3RhbGwgdGhlIFF0IGJ1aWx0aW4gYnVu
ZGxlIGlmIHdlIGRvbid0IGhhdmUgb25lIGdpdmVuIGJ5IHRoZSBVSSBwcm9jZXNzLgorICAgIC8v
IEN1cnJlbnRseSBvbmx5IFdUUiBwcm92aWRlcyBpdHMgb3duIGJ1bmRsZS4KKyAgICBpZiAocGFy
YW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGguaXNFbXB0eSgpKSB7CisgICAgICAgIG1faW5qZWN0
ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6Y3JlYXRlKFN0cmluZygpKTsKKyAgICAgICAgbV9p
bmplY3RlZEJ1bmRsZS0+c2V0U2FuZGJveEV4dGVuc2lvbihTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGUocGFyYW1ldGVycy5pbmplY3RlZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGUpKTsKKyAgICAg
ICAgUXRCdWlsdGluQnVuZGxlOjpzaGFyZWQoKS5pbml0aWFsaXplKHRvQVBJKG1faW5qZWN0ZWRC
dW5kbGUuZ2V0KCkpKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1UZXJt
aW5hdGUoKQo=
</data>
<flag name="review"
          id="111426"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>