<?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>146562</bug_id>
          
          <creation_ts>2015-07-02 15:49:23 -0700</creation_ts>
          <short_desc>DFG and FTL should have an OSR exit fuzzer</short_desc>
          <delta_ts>2015-07-02 18:49:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106514</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-02 15:49:23 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106515</commentid>
    <comment_count>1</comment_count>
      <attachid>256043</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-02 15:49:51 -0700</bug_when>
    <thetext>Created attachment 256043
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106579</commentid>
    <comment_count>2</comment_count>
      <attachid>256066</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-02 18:37:07 -0700</bug_when>
    <thetext>Created attachment 256066
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106581</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-02 18:39:10 -0700</bug_when>
    <thetext>Attachment 256066 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOSRExitFuzz.h:32:  g_numberOfOSRExitFuzzChecks is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGOSRExitFuzz.cpp:33:  g_numberOfOSRExitFuzzChecks is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106585</commentid>
    <comment_count>4</comment_count>
      <attachid>256066</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-07-02 18:46:08 -0700</bug_when>
    <thetext>Comment on attachment 256066
the patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:182
&gt; +        MacroAssembler::RelationalCondition condition;
&gt; +        if (atOrAfter) {
&gt; +            threshold = atOrAfter;
&gt; +            condition = MacroAssembler::Below;
&gt; +        } else {
&gt; +            threshold = at;
&gt; +            condition = MacroAssembler::NotEqual;
&gt; +        }

You could return a JumpList and not have those exclusive.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:184
&gt; +        MacroAssembler::Jump ok = m_jit.branch32(
&gt; +            condition, GPRInfo::regT0, MacroAssembler::TrustedImm32(threshold));

Could be on one line.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:8186
&gt; +            if (unsigned at = Options::fireOSRExitFuzzAt()) {
&gt; +                failCondition = m_out.bitOr(
&gt; +                    failCondition,
&gt; +                    m_out.equal(numberOfFuzzChecks, m_out.constInt32(at)));
&gt; +            }

Oh, this one is not exclusive...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106586</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-02 18:49:52 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/186252</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256043</attachid>
            <date>2015-07-02 15:49:51 -0700</date>
            <delta_ts>2015-07-02 18:37:07 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10837</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEZ1enouY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEZ1enouY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0RnV6ei5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
REZHT1NSRXhpdEZ1enouaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCit1
bnNpZ25lZCBnX251bWJlck9mT1NSRXhpdEZ1enpDaGVja3M7CisKK30gLy8gbmFtZXNwYWNlIERG
RworCit1bnNpZ25lZCBudW1iZXJPZk9TUkV4aXRGdXp6Q2hlY2tzKCkKK3sKKyAgICByZXR1cm4g
Z19udW1iZXJPZk9TUkV4aXRGdXp6Q2hlY2tzOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRGdXp6LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0RnV6ei5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0RnV6ei5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBERkdPU1JFeGl0RnV6el9oCisjZGVmaW5lIERG
R09TUkV4aXRGdXp6X2gKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCisvLyBE
RkctIGFuZCBGVEwtZ2VuZXJhdGVkIGNvZGUgd2lsbCBxdWVyeSB0aGlzIG9uIGV2ZXJ5IHNwZWN1
bGF0aW9uLgorZXh0ZXJuIHVuc2lnbmVkIGdfbnVtYmVyT2ZPU1JFeGl0RnV6ekNoZWNrczsKKwor
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gREZHT1NSRXhpdEZ1enpfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAkocmV2aXNpb24gMTg2MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUg
IkRGR0NhbGxDcmVhdGVEaXJlY3RBcmd1bWVudHNTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1
ZGUgIkRGR01heUV4aXQuaCIKKyNpbmNsdWRlICJERkdPU1JFeGl0RnV6ei5oIgogI2luY2x1ZGUg
IkRGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZH
U2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKQEAgLTE1
NiwxMiArMTU3LDUzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRHZXRBcmd1bWVudFN0YXIK
ICAgICAgICAgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHN0YXJ0R1BSKTsKIH0KIAorTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgU3BlY3VsYXRpdmVKSVQ6OmVtaXRPU1JFeGl0RnV6ekNoZWNrKCkK
K3sKKyAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9TUkV4aXRGdXp6KCkpCisgICAgICAgIHJldHVy
biBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpOworICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IHJlc3VsdDsKKyAgICAKKyAgICBtX2ppdC5wdXNoVG9TYXZlKEdQUkluZm86OnJlZ1QwKTsKKyAg
ICBtX2ppdC5sb2FkMzIoJmdfbnVtYmVyT2ZPU1JFeGl0RnV6ekNoZWNrcywgR1BSSW5mbzo6cmVn
VDApOworICAgIG1faml0LmFkZDMyKFRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDApOwor
ICAgIG1faml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsICZnX251bWJlck9mT1NSRXhpdEZ1enpD
aGVja3MpOworICAgIHVuc2lnbmVkIGF0T3JBZnRlciA9IE9wdGlvbnM6OmZpcmVPU1JFeGl0RnV6
ekF0T3JBZnRlcigpOworICAgIHVuc2lnbmVkIGF0ID0gT3B0aW9uczo6ZmlyZU9TUkV4aXRGdXp6
QXQoKTsKKyAgICBpZiAoYXQgfHwgYXRPckFmdGVyKSB7CisgICAgICAgIHVuc2lnbmVkIHRocmVz
aG9sZDsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0
aW9uOworICAgICAgICBpZiAoYXRPckFmdGVyKSB7CisgICAgICAgICAgICB0aHJlc2hvbGQgPSBh
dE9yQWZ0ZXI7CisgICAgICAgICAgICBjb25kaXRpb24gPSBNYWNyb0Fzc2VtYmxlcjo6QmVsb3c7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJlc2hvbGQgPSBhdDsKKyAgICAgICAg
ICAgIGNvbmRpdGlvbiA9IE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbDsKKyAgICAgICAgfQorICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBvayA9IG1faml0LmJyYW5jaDMyKAorICAgICAgICAg
ICAgY29uZGl0aW9uLCBHUFJJbmZvOjpyZWdUMCwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
Mih0aHJlc2hvbGQpKTsKKyAgICAgICAgbV9qaXQucG9wVG9SZXN0b3JlKEdQUkluZm86OnJlZ1Qw
KTsKKyAgICAgICAgcmVzdWx0ID0gbV9qaXQuanVtcCgpOworICAgICAgICBvay5saW5rKCZtX2pp
dCk7CisgICAgfQorICAgIG1faml0LnBvcFRvUmVzdG9yZShHUFJJbmZvOjpyZWdUMCk7CisgICAg
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRp
b25DaGVjayhFeGl0S2luZCBraW5kLCBKU1ZhbHVlU291cmNlIGpzVmFsdWVTb3VyY2UsIE5vZGUq
IG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGp1bXBUb0ZhaWwpCiB7CiAgICAgaWYgKCFtX2Nv
bXBpbGVPa2F5KQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1faXNDaGVja2luZ0FyZ3Vt
ZW50VHlwZXMgfHwgbV9jYW5FeGl0KTsKLSAgICBtX2ppdC5hcHBlbmRFeGl0SW5mbyhqdW1wVG9G
YWlsKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBmdXp6SnVtcCA9IGVtaXRPU1JFeGl0RnV6ekNo
ZWNrKCk7CisgICAgaWYgKGZ1enpKdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgSklUQ29tcGlsZXI6
Okp1bXBMaXN0IGp1bXBzVG9GYWlsOworICAgICAgICBqdW1wc1RvRmFpbC5hcHBlbmQoZnV6ekp1
bXApOworICAgICAgICBqdW1wc1RvRmFpbC5hcHBlbmQoanVtcFRvRmFpbCk7CisgICAgICAgIG1f
aml0LmFwcGVuZEV4aXRJbmZvKGp1bXBzVG9GYWlsKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9q
aXQuYXBwZW5kRXhpdEluZm8oanVtcFRvRmFpbCk7CiAgICAgbV9qaXQuaml0Q29kZSgpLT5hcHBl
bmRPU1JFeGl0KE9TUkV4aXQoa2luZCwganNWYWx1ZVNvdXJjZSwgbV9qaXQuZ3JhcGgoKS5tZXRo
b2RPZkdldHRpbmdBVmFsdWVQcm9maWxlRm9yKG5vZGUpLCB0aGlzLCBtX3N0cmVhbS0+c2l6ZSgp
KSk7CiB9CiAKQEAgLTE3MCw3ICsyMTIsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRpb25DaGVjayhFeAogICAgIGlmICghbV9jb21waWxlT2theSkKICAgICAgICAgcmV0dXJuOwog
ICAgIEFTU0VSVChtX2lzQ2hlY2tpbmdBcmd1bWVudFR5cGVzIHx8IG1fY2FuRXhpdCk7Ci0gICAg
bV9qaXQuYXBwZW5kRXhpdEluZm8oanVtcHNUb0ZhaWwpOworICAgIEpJVENvbXBpbGVyOjpKdW1w
IGZ1enpKdW1wID0gZW1pdE9TUkV4aXRGdXp6Q2hlY2soKTsKKyAgICBpZiAoZnV6ekp1bXAuaXNT
ZXQoKSkgeworICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3QgbXlKdW1wc1RvRmFpbDsKKyAg
ICAgICAgbXlKdW1wc1RvRmFpbC5hcHBlbmQoanVtcHNUb0ZhaWwpOworICAgICAgICBteUp1bXBz
VG9GYWlsLmFwcGVuZChmdXp6SnVtcCk7CisgICAgICAgIG1faml0LmFwcGVuZEV4aXRJbmZvKG15
SnVtcHNUb0ZhaWwpOworICAgIH0gZWxzZQorICAgICAgICBtX2ppdC5hcHBlbmRFeGl0SW5mbyhq
dW1wc1RvRmFpbCk7CiAgICAgbV9qaXQuaml0Q29kZSgpLT5hcHBlbmRPU1JFeGl0KE9TUkV4aXQo
a2luZCwganNWYWx1ZVNvdXJjZSwgbV9qaXQuZ3JhcGgoKS5tZXRob2RPZkdldHRpbmdBVmFsdWVQ
cm9maWxlRm9yKG5vZGUpLCB0aGlzLCBtX3N0cmVhbS0+c2l6ZSgpKSk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9u
IDE4NjIzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjM0MSw2ICsyMzQxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IGVtaXRHZXRDYWxsZWUoQ29kZU9yaWdpbiwgR1BSUmVnIGNhbGxlZUdQUik7CiAgICAgdm9pZCBl
bWl0R2V0QXJndW1lbnRTdGFydChDb2RlT3JpZ2luLCBHUFJSZWcgc3RhcnRHUFIpOwogICAgIAor
ICAgIC8vIEdlbmVyYXRlIGFuIE9TUiBleGl0IGZ1enogY2hlY2suIFJldHVybnMgSnVtcCgpIGlm
IE9TUiBleGl0IGZ1enogaXMgbm90IGVuYWJsZWQsIG9yIGlmCisgICAgLy8gaXQncyBpbiB0cmFp
bmluZyBtb2RlLgorICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGVtaXRPU1JFeGl0RnV6ekNoZWNr
KCk7CisgICAgCiAgICAgLy8gQWRkIGEgc3BlY3VsYXRpb24gY2hlY2suCiAgICAgdm9pZCBzcGVj
dWxhdGlvbkNoZWNrKEV4aXRLaW5kLCBKU1ZhbHVlU291cmNlLCBOb2RlKiwgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAganVtcFRvRmFpbCk7CiAgICAgdm9pZCBzcGVjdWxhdGlvbkNoZWNrKEV4aXRLaW5k
LCBKU1ZhbHVlU291cmNlLCBOb2RlKiwgY29uc3QgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBq
dW1wc1RvRmFpbCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcAkocmV2aXNpb24gMTg2MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIgogI2luY2x1
ZGUgIkRGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiCiAjaW5jbHVkZSAiREZHT1NSQXZhaWxhYmls
aXR5QW5hbHlzaXNQaGFzZS5oIgorI2luY2x1ZGUgIkRGR09TUkV4aXRGdXp6LmgiCiAjaW5jbHVk
ZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oIgogI2luY2x1ZGUgIkZUTEF2YWlsYWJsZVJlY292ZXJ5LmgiCkBAIC04MTY1LDYgKzgxNjYs
MjUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGlmICghbV9hdmFpbGFibGVSZWNvdmVyaWVzLmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgICAgIEF2YWlsYWJsZSByZWNv
dmVyaWVzOiAiLCBsaXN0RHVtcChtX2F2YWlsYWJsZVJlY292ZXJpZXMpLCAiXG4iKTsKICAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZU9TUkV4aXRGdXp6KCkp
IHsKKyAgICAgICAgICAgIExWYWx1ZSBudW1iZXJPZkZ1enpDaGVja3MgPSBtX291dC5hZGQoCisg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKG1fb3V0LmFic29sdXRlKCZnX251bWJlck9mT1NS
RXhpdEZ1enpDaGVja3MpKSwKKyAgICAgICAgICAgICAgICBtX291dC5pbnQzMk9uZSk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIG1fb3V0LnN0b3JlMzIobnVtYmVyT2ZGdXp6Q2hlY2tzLCBt
X291dC5hYnNvbHV0ZSgmZ19udW1iZXJPZk9TUkV4aXRGdXp6Q2hlY2tzKSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmICh1bnNpZ25lZCBhdE9yQWZ0ZXIgPSBPcHRpb25zOjpmaXJlT1NS
RXhpdEZ1enpBdE9yQWZ0ZXIoKSkgeworICAgICAgICAgICAgICAgIGZhaWxDb25kaXRpb24gPSBt
X291dC5iaXRPcigKKyAgICAgICAgICAgICAgICAgICAgZmFpbENvbmRpdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgbV9vdXQuYWJvdmVPckVxdWFsKG51bWJlck9mRnV6ekNoZWNrcywgbV9vdXQu
Y29uc3RJbnQzMihhdE9yQWZ0ZXIpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
dW5zaWduZWQgYXQgPSBPcHRpb25zOjpmaXJlT1NSRXhpdEZ1enpBdCgpKSB7CisgICAgICAgICAg
ICAgICAgZmFpbENvbmRpdGlvbiA9IG1fb3V0LmJpdE9yKAorICAgICAgICAgICAgICAgICAgICBm
YWlsQ29uZGl0aW9uLAorICAgICAgICAgICAgICAgICAgICBtX291dC5lcXVhbChudW1iZXJPZkZ1
enpDaGVja3MsIG1fb3V0LmNvbnN0SW50MzIoYXQpKSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KIAogICAgICAgICBBU1NFUlQobV9mdGxTdGF0ZS5qaXRDb2RlLT5vc3JFeGl0LnNpemUoKSA9
PSBtX2Z0bFN0YXRlLmZpbmFsaXplci0+b3NyRXhpdC5zaXplKCkpOwogICAgICAgICAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDE4NjIzMSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMzA5LDYgKzMwOSwxMCBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsK
ICAgICB2KHVuc2lnbmVkLCBmaXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXRPckFmdGVyLCAw
LCBudWxscHRyKSBcCiAgICAgdihib29sLCB2ZXJib3NlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6
LCBmYWxzZSwgbnVsbHB0cikgXAogICAgIFwKKyAgICB2KGJvb2wsIGVuYWJsZU9TUkV4aXRGdXp6
LCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIGZpcmVPU1JFeGl0RnV6ekF0LCAw
LCBudWxscHRyKSBcCisgICAgdih1bnNpZ25lZCwgZmlyZU9TUkV4aXRGdXp6QXRPckFmdGVyLCAw
LCBudWxscHRyKSBcCisgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlRG9sbGFyVk0sIGZhbHNlLCAi
aW5zdGFsbHMgdGhlICR2bSBkZWJ1Z2dpbmcgdG9vbCBpbiBnbG9iYWwgb2JqZWN0cyIpIFwKICAg
ICB2KG9wdGlvblN0cmluZywgZnVuY3Rpb25PdmVycmlkZXMsIG51bGxwdHIsICJmaWxlIHdpdGgg
ZGVidWdnaW5nIG92ZXJyaWRlcyBmb3IgZnVuY3Rpb24gYm9kaWVzIikgXAogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuaAkocmV2aXNp
b24gMTg2MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVzdFJ1bm5lclV0
aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAgSlNfRVhQT1JUX1BSSVZBVEUg
SlNWYWx1ZSBvcHRpbWl6ZU5leHRJbgogCiBKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBudW1i
ZXJPZkV4Y2VwdGlvbkZ1enpDaGVja3MoKTsKIEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIG51
bWJlck9mRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6Q2hlY2tzKCk7CitKU19FWFBPUlRfUFJJVkFU
RSB1bnNpZ25lZCBudW1iZXJPZk9TUkV4aXRGdXp6Q2hlY2tzKCk7CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256066</attachid>
            <date>2015-07-02 18:37:07 -0700</date>
            <delta_ts>2015-07-02 18:46:08 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20136</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg2MjQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDE1LTA3LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIGFuZCBGVEwgc2hvdWxkIGhhdmUgYW4gT1NSIGV4aXQgZnV6emVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1NjIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZHMgYSBiYXNpYyBP
U1IgZXhpdCBmdXp6ZXIgdG8gSlNDLiBUaGlzIGlzbid0IGhvb2tlZCBpbnRvIGFueSB0ZXN0IGhh
cm5lc3NlcyB5ZXQsIGJ1dCBJCisgICAgICAgIHNwb3QtY2hlY2tlZCBpdCBvbiB2OC1lYXJsZXkt
Ym95ZXIuanMgYW5kIHNvIGZhciBmb3VuZCBubyBidWdzLiBJJ2QgbGlrZSB0byBmaWd1cmUgb3V0
IGhvdworICAgICAgICB0byBoYXJuZXNzIHRoaXMgYWZ0ZXIgSSBsYW5kIGl0LgorICAgICAgICAK
KyAgICAgICAgU2luY2UgaXQncyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQsIGl0IHNob3VsZCBoYXZl
IG5vIGVmZmVjdCBvbiBiZWhhdmlvci4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGRmZy9ERkdPU1JFeGl0RnV6ei5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpudW1iZXJP
Zk9TUkV4aXRGdXp6Q2hlY2tzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdEZ1enouaDogQWRk
ZWQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdEdldEFyZ3VtZW50U3RhcnQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0T1NSRXhpdEZ1enpDaGVjayk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0aW9uQ2hlY2spOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6YXBwZW5kT1NSRXhp
dCk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGpzY21haW4pOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmg6CisK
IDIwMTUtMDctMDIgIFNhYW0gYmFyYXRpICA8c2FhbWJhcmF0aTFAZ21haWwuY29tPgogCiAgICAg
ICAgIFJlbmFtZSAiRGVjb25zdHJ1Y3Rpb24iIHRvICJEZXN0cnVjdHVyaW5nIiB0aHJvdWdob3V0
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg2
MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yMDgsNiArMjA4LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBk
ZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCiAgICAgZGZnL0RGR09TUkV4aXRDb21waWxl
cjY0LmNwcAogICAgIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisgICAgZGZnL0RG
R09TUkV4aXRGdXp6LmNwcAogICAgIGRmZy9ERkdPU1JFeGl0SnVtcFBsYWNlaG9sZGVyLmNwcAog
ICAgIGRmZy9ERkdPU1JFeGl0UHJlcGFyYXRpb24uY3BwCiAgICAgZGZnL0RGR09iamVjdEFsbG9j
YXRpb25TaW5raW5nUGhhc2UuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24g
MTg2MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE1NTEsNiArMTU1MSw4IEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
ICAgICAgICAgICAgIE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdCgpIHx8
IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdE9yQWZ0ZXIoKTsKICAgICAg
ICAgaWYgKE9wdGlvbnM6OmVuYWJsZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6eigpICYmICghZmly
ZUF0RW5hYmxlZCB8fCBPcHRpb25zOjp2ZXJib3NlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6KCkp
KQogICAgICAgICAgICAgcHJpbnRmKCJKU0MgRVhFQ1VUQUJMRSBBTExPQ0FUSU9OIEZVWlo6IGVu
Y291bnRlcmVkICV1IGNoZWNrcy5cbiIsIG51bWJlck9mRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6
Q2hlY2tzKCkpOworICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlT1NSRXhpdEZ1enooKSkKKyAg
ICAgICAgICAgIHByaW50ZigiSlNDIE9TUiBFWElUIEZVWlo6IGVuY291bnRlcmVkICV1IGNoZWNr
cy5cbiIsIG51bWJlck9mT1NSRXhpdEZ1enpDaGVja3MoKSk7CiAjZW5kaWYKICAgICB9CiAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlzaW9uIDE4
NjIzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ0Nyw2ICs0NDcsNyBAQAog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZGZnXERGR09TUkV4aXRDb21waWxlcjMyXzY0LmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdPU1JFeGl0Q29tcGlsZXI2
NC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHT1NSRXhpdENvbXBp
bGVyQ29tbW9uLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRmZ1xERkdPU1JF
eGl0RnV6ei5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdcREZHT1NSRXhp
dEp1bXBQbGFjZWhvbGRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxkZmdc
REZHT1NSRXhpdFByZXBhcmF0aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGRmZ1xERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcCIgLz4KQEAgLTExNDcsNiAr
MTE0OCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHT1NSRXhpdENvbXBp
bGF0aW9uSW5mby5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR09TUkV4
aXRDb21waWxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERGR09TUkV4
aXRDb21waWxlckNvbW1vbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZnXERG
R09TUkV4aXRGdXp6LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxkZmdcREZHT1NS
RXhpdEp1bXBQbGFjZWhvbGRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZGZn
XERGR09TUkV4aXRQcmVwYXJhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
ZGZnXERGR1BoYW50b21JbnNlcnRpb25QaGFzZS5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE4NjIzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0yODAsNiArMjgwLDggQEAKIAkJMEYzOEIwMTgxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBp
bGF0aW9uS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjM4QjAxNDE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25LZXkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM4QjAxOTE3Q0ZF
NzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDE1MTdDRkU3NTUwMEIxNDREMyAvKiBE
RkdDb21waWxhdGlvbk1vZGUuY3BwICovOyB9OwogCQkwRjM4QjAxQTE3Q0ZFNzU1MDBCMTQ0RDMg
LyogREZHQ29tcGlsYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjM4QjAxNjE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGlsYXRpb25N
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYzOTJDODkxQjQ2MTg4NDAwODQ0NzI4IC8qIERGR09TUkV4aXRGdXp6LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzkyQzg3MUI0NjE4ODQwMDg0
NDcyOCAvKiBERkdPU1JFeGl0RnV6ei5jcHAgKi87IH07CisJCTBGMzkyQzhBMUI0NjE4ODQwMDg0
NDcyOCAvKiBERkdPU1JFeGl0RnV6ei5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYzOTJDODgxQjQ2MTg4NDAwODQ0NzI4IC8qIERGR09TUkV4aXRGdXp6
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYz
QTFCRjkxQTlFQ0I3RDAwMERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0ExQkY3MUE5RUNC
N0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5jcHAgKi87IH07CiAJCTBGM0Ex
QkZBMUE5RUNCN0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQaGFzZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzQTFCRjgxQTlFQ0I3RDAw
MERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzQUM3NTIxODNFQTEwNDAwMzIwMjlGIC8q
IFN0YWNrQWxpZ25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjNBQzc1MTE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGlnbm1lbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjAyMiw2ICsy
MDI0LDggQEAKIAkJMEYzOEIwMTQxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uS2V5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbXBpbGF0aW9uS2V5Lmg7
IHBhdGggPSBkZmcvREZHQ29tcGlsYXRpb25LZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYzOEIwMTUxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdDb21waWxhdGlvbk1vZGUu
Y3BwOyBwYXRoID0gZGZnL0RGR0NvbXBpbGF0aW9uTW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMzhCMDE2MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1v
ZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQ29tcGlsYXRpb25Nb2Rl
Lmg7IHBhdGggPSBkZmcvREZHQ29tcGlsYXRpb25Nb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGMzkyQzg3MUI0NjE4ODQwMDg0NDcyOCAvKiBERkdPU1JFeGl0RnV6ei5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdPU1JFeGl0RnV6ei5jcHA7
IHBhdGggPSBkZmcvREZHT1NSRXhpdEZ1enouY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjM5MkM4ODFCNDYxODg0MDA4NDQ3MjggLyogREZHT1NSRXhpdEZ1enouaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHT1NSRXhpdEZ1enouaDsgcGF0aCA9IGRmZy9E
RkdPU1JFeGl0RnV6ei5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNBMUJGNzFB
OUVDQjdEMDAwREUwMUEgLyogREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuY3BwOyBw
YXRoID0gZGZnL0RGR1B1dFN0YWNrU2lua2luZ1BoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEYzQTFCRjgxQTlFQ0I3RDAwMERFMDFBIC8qIERGR1B1dFN0YWNrU2lua2lu
Z1BoYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1B1dFN0YWNrU2lu
a2luZ1BoYXNlLmg7IHBhdGggPSBkZmcvREZHUHV0U3RhY2tTaW5raW5nUGhhc2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQUM3NTExODNFQTEwNDAwMzIwMjlGIC8qIFN0YWNr
QWxpZ25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNrQWxpZ25t
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDQ3LDYgKzUwNTEsOCBAQAog
CQkJCTBGQzA5NzcwMTQ2OTNBRUYwMENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAg
Ki8sCiAJCQkJMEY3MDI1QTcxNzE0QjBGODAwMzgyQzBFIC8qIERGR09TUkV4aXRDb21waWxlckNv
bW1vbi5jcHAgKi8sCiAJCQkJMEY3MDI1QTgxNzE0QjBGODAwMzgyQzBFIC8qIERGR09TUkV4aXRD
b21waWxlckNvbW1vbi5oICovLAorCQkJCTBGMzkyQzg3MUI0NjE4ODQwMDg0NDcyOCAvKiBERkdP
U1JFeGl0RnV6ei5jcHAgKi8sCisJCQkJMEYzOTJDODgxQjQ2MTg4NDAwODQ0NzI4IC8qIERGR09T
UkV4aXRGdXp6LmggKi8sCiAJCQkJMEZFRkM5QTcxNjgxQTNCMDAwNTY3RjUzIC8qIERGR09TUkV4
aXRKdW1wUGxhY2Vob2xkZXIuY3BwICovLAogCQkJCTBGRUZDOUE4MTY4MUEzQjAwMDU2N0Y1MyAv
KiBERkdPU1JFeGl0SnVtcFBsYWNlaG9sZGVyLmggKi8sCiAJCQkJMEYyMzVCRTkxNzE3OEU3MzAw
NjkwQzdGIC8qIERGR09TUkV4aXRQcmVwYXJhdGlvbi5jcHAgKi8sCkBAIC02MDYwLDYgKzYwNjYs
NyBAQAogCQkJCUE1MTNFNUNCMTg1Rjk2MjQwMDdFOTVBRCAvKiBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODQwRTIxMTg3QjdCODYwMDg0M0IxMCAvKiBJbmpl
Y3RlZFNjcmlwdE1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1QzcxODVGOTQ0NjAw
N0U5NUFEIC8qIEluamVjdGVkU2NyaXB0U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjM5
MkM4QTFCNDYxODg0MDA4NDQ3MjggLyogREZHT1NSRXhpdEZ1enouaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1ODQwRTI5MTg3Q0E1RTYwMDg0M0IxMCAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNo
ZWV0cy1hbmQtc2NyaXB0cy5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTU2MTdGMEI3MUMw
MEFCQjIxNyAvKiBJbmxpbmVDYWxsRnJhbWVTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5RTQ1
QTI3MThBMUIyNTkwMDI2RDg4RiAvKiBJbnB1dEN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBAIC03
NDUzLDYgKzc0NjAsNyBAQAogCQkJCUZFMjBDRTlEMTVGMDRBOTUwMERGMzQzMCAvKiBMTEludENM
b29wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDY4MEQyMTRCQkQxNjUwMEJGRTI3MiAvKiBM
TEludERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzOEIwMTExN0NGMDc4MDAwQjE0NEQz
IC8qIExMSW50RW50cnlwb2ludC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjM5MkM4OTFCNDYx
ODg0MDA4NDQ3MjggLyogREZHT1NSRXhpdEZ1enouY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0
NjgwQTgxNEJBN0ZBQjAwQkZFMjcyIC8qIExMSW50RXhjZXB0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkQ5NDk4NDFBOTdEQjk2MDBFMjg5NjYgLyogSlNGdW5jdGlvbk5hbWVTY29wZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ2ODBBNDE0QkE3RjhEMDBCRkUyNzIgLyogTExJbnRT
bG93UGF0aHMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRGdXp6LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRGdXp6LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdEZ1enouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRGR09TUkV4aXRGdXp6LmgiCisKKyNpbmNsdWRl
ICJUZXN0UnVubmVyVXRpbHMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewor
Cit1bnNpZ25lZCBnX251bWJlck9mT1NSRXhpdEZ1enpDaGVja3M7CisKK30gLy8gbmFtZXNwYWNl
IERGRworCit1bnNpZ25lZCBudW1iZXJPZk9TUkV4aXRGdXp6Q2hlY2tzKCkKK3sKKyAgICByZXR1
cm4gREZHOjpnX251bWJlck9mT1NSRXhpdEZ1enpDaGVja3M7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdEZ1enou
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRGdXp6
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRG
dXp6LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERGR09TUkV4aXRGdXp6X2gKKyNk
ZWZpbmUgREZHT1NSRXhpdEZ1enpfaAorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CisKKy8vIERGRy0gYW5kIEZUTC1nZW5lcmF0ZWQgY29kZSB3aWxsIHF1ZXJ5IHRoaXMgb24gZXZl
cnkgc3BlY3VsYXRpb24uCitleHRlcm4gdW5zaWduZWQgZ19udW1iZXJPZk9TUkV4aXRGdXp6Q2hl
Y2tzOworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBERkdPU1JFeGl0
RnV6el9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxODYyMzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkRGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgiCiAj
aW5jbHVkZSAiREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmgi
CiAjaW5jbHVkZSAiREZHTWF5RXhpdC5oIgorI2luY2x1ZGUgIkRGR09TUkV4aXRGdXp6LmgiCiAj
aW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNs
dWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5o
IgpAQCAtMTU2LDEyICsxNTcsNTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdEdldEFyZ3Vt
ZW50U3RhcgogICAgICAgICBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwgc3RhcnRHUFIpOwog
fQogCitNYWNyb0Fzc2VtYmxlcjo6SnVtcCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdE9TUkV4aXRGdXp6
Q2hlY2soKQoreworICAgIGlmICghT3B0aW9uczo6ZW5hYmxlT1NSRXhpdEZ1enooKSkKKyAgICAg
ICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpKdW1wKCk7CisgICAgCisgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgcmVzdWx0OworICAgIAorICAgIG1faml0LnB1c2hUb1NhdmUoR1BSSW5mbzo6cmVn
VDApOworICAgIG1faml0LmxvYWQzMigmZ19udW1iZXJPZk9TUkV4aXRGdXp6Q2hlY2tzLCBHUFJJ
bmZvOjpyZWdUMCk7CisgICAgbV9qaXQuYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZvOjpy
ZWdUMCk7CisgICAgbV9qaXQuc3RvcmUzMihHUFJJbmZvOjpyZWdUMCwgJmdfbnVtYmVyT2ZPU1JF
eGl0RnV6ekNoZWNrcyk7CisgICAgdW5zaWduZWQgYXRPckFmdGVyID0gT3B0aW9uczo6ZmlyZU9T
UkV4aXRGdXp6QXRPckFmdGVyKCk7CisgICAgdW5zaWduZWQgYXQgPSBPcHRpb25zOjpmaXJlT1NS
RXhpdEZ1enpBdCgpOworICAgIGlmIChhdCB8fCBhdE9yQWZ0ZXIpIHsKKyAgICAgICAgdW5zaWdu
ZWQgdGhyZXNob2xkOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlv
biBjb25kaXRpb247CisgICAgICAgIGlmIChhdE9yQWZ0ZXIpIHsKKyAgICAgICAgICAgIHRocmVz
aG9sZCA9IGF0T3JBZnRlcjsKKyAgICAgICAgICAgIGNvbmRpdGlvbiA9IE1hY3JvQXNzZW1ibGVy
OjpCZWxvdzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocmVzaG9sZCA9IGF0Owor
ICAgICAgICAgICAgY29uZGl0aW9uID0gTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsOworICAgICAg
ICB9CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9rID0gbV9qaXQuYnJhbmNoMzIoCisg
ICAgICAgICAgICBjb25kaXRpb24sIEdQUkluZm86OnJlZ1QwLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKHRocmVzaG9sZCkpOworICAgICAgICBtX2ppdC5wb3BUb1Jlc3RvcmUoR1BSSW5m
bzo6cmVnVDApOworICAgICAgICByZXN1bHQgPSBtX2ppdC5qdW1wKCk7CisgICAgICAgIG9rLmxp
bmsoJm1faml0KTsKKyAgICB9CisgICAgbV9qaXQucG9wVG9SZXN0b3JlKEdQUkluZm86OnJlZ1Qw
KTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGlvbkNoZWNrKEV4aXRLaW5kIGtpbmQsIEpTVmFsdWVTb3VyY2UganNWYWx1ZVNvdXJj
ZSwgTm9kZSogbm9kZSwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVtcFRvRmFpbCkKIHsKICAgICBp
ZiAoIW1fY29tcGlsZU9rYXkpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9pc0NoZWNr
aW5nQXJndW1lbnRUeXBlcyB8fCBtX2NhbkV4aXQpOwotICAgIG1faml0LmFwcGVuZEV4aXRJbmZv
KGp1bXBUb0ZhaWwpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGZ1enpKdW1wID0gZW1pdE9TUkV4
aXRGdXp6Q2hlY2soKTsKKyAgICBpZiAoZnV6ekp1bXAuaXNTZXQoKSkgeworICAgICAgICBKSVRD
b21waWxlcjo6SnVtcExpc3QganVtcHNUb0ZhaWw7CisgICAgICAgIGp1bXBzVG9GYWlsLmFwcGVu
ZChmdXp6SnVtcCk7CisgICAgICAgIGp1bXBzVG9GYWlsLmFwcGVuZChqdW1wVG9GYWlsKTsKKyAg
ICAgICAgbV9qaXQuYXBwZW5kRXhpdEluZm8oanVtcHNUb0ZhaWwpOworICAgIH0gZWxzZQorICAg
ICAgICBtX2ppdC5hcHBlbmRFeGl0SW5mbyhqdW1wVG9GYWlsKTsKICAgICBtX2ppdC5qaXRDb2Rl
KCktPmFwcGVuZE9TUkV4aXQoT1NSRXhpdChraW5kLCBqc1ZhbHVlU291cmNlLCBtX2ppdC5ncmFw
aCgpLm1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGVGb3Iobm9kZSksIHRoaXMsIG1fc3RyZWFt
LT5zaXplKCkpKTsKIH0KIApAQCAtMTcwLDcgKzIxMiwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGlvbkNoZWNrKEV4CiAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQogICAgICAgICBy
ZXR1cm47CiAgICAgQVNTRVJUKG1faXNDaGVja2luZ0FyZ3VtZW50VHlwZXMgfHwgbV9jYW5FeGl0
KTsKLSAgICBtX2ppdC5hcHBlbmRFeGl0SW5mbyhqdW1wc1RvRmFpbCk7CisgICAgSklUQ29tcGls
ZXI6Okp1bXAgZnV6ekp1bXAgPSBlbWl0T1NSRXhpdEZ1enpDaGVjaygpOworICAgIGlmIChmdXp6
SnVtcC5pc1NldCgpKSB7CisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBteUp1bXBzVG9G
YWlsOworICAgICAgICBteUp1bXBzVG9GYWlsLmFwcGVuZChqdW1wc1RvRmFpbCk7CisgICAgICAg
IG15SnVtcHNUb0ZhaWwuYXBwZW5kKGZ1enpKdW1wKTsKKyAgICAgICAgbV9qaXQuYXBwZW5kRXhp
dEluZm8obXlKdW1wc1RvRmFpbCk7CisgICAgfSBlbHNlCisgICAgICAgIG1faml0LmFwcGVuZEV4
aXRJbmZvKGp1bXBzVG9GYWlsKTsKICAgICBtX2ppdC5qaXRDb2RlKCktPmFwcGVuZE9TUkV4aXQo
T1NSRXhpdChraW5kLCBqc1ZhbHVlU291cmNlLCBtX2ppdC5ncmFwaCgpLm1ldGhvZE9mR2V0dGlu
Z0FWYWx1ZVByb2ZpbGVGb3Iobm9kZSksIHRoaXMsIG1fc3RyZWFtLT5zaXplKCkpKTsKIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAko
cmV2aXNpb24gMTg2MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQxLDYgKzIzNDEsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgZW1pdEdldENhbGxlZShDb2RlT3JpZ2luLCBHUFJSZWcgY2FsbGVlR1BSKTsKICAg
ICB2b2lkIGVtaXRHZXRBcmd1bWVudFN0YXJ0KENvZGVPcmlnaW4sIEdQUlJlZyBzdGFydEdQUik7
CiAgICAgCisgICAgLy8gR2VuZXJhdGUgYW4gT1NSIGV4aXQgZnV6eiBjaGVjay4gUmV0dXJucyBK
dW1wKCkgaWYgT1NSIGV4aXQgZnV6eiBpcyBub3QgZW5hYmxlZCwgb3IgaWYKKyAgICAvLyBpdCdz
IGluIHRyYWluaW5nIG1vZGUuCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZW1pdE9TUkV4aXRG
dXp6Q2hlY2soKTsKKyAgICAKICAgICAvLyBBZGQgYSBzcGVjdWxhdGlvbiBjaGVjay4KICAgICB2
b2lkIHNwZWN1bGF0aW9uQ2hlY2soRXhpdEtpbmQsIEpTVmFsdWVTb3VyY2UsIE5vZGUqLCBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBqdW1wVG9GYWlsKTsKICAgICB2b2lkIHNwZWN1bGF0aW9uQ2hlY2so
RXhpdEtpbmQsIEpTVmFsdWVTb3VyY2UsIE5vZGUqLCBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3QmIGp1bXBzVG9GYWlsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxODYyMzEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaCIKICNpbmNsdWRlICJERkdPU1JB
dmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmgiCisjaW5jbHVkZSAiREZHT1NSRXhpdEZ1enouaCIK
ICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKQEAgLTgxNjUs
NiArODE2NiwyNSBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFtX2F2YWlsYWJsZVJlY292
ZXJpZXMuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgQXZhaWxh
YmxlIHJlY292ZXJpZXM6ICIsIGxpc3REdW1wKG1fYXZhaWxhYmxlUmVjb3ZlcmllcyksICJcbiIp
OwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlT1NSRXhp
dEZ1enooKSkgeworICAgICAgICAgICAgTFZhbHVlIG51bWJlck9mRnV6ekNoZWNrcyA9IG1fb3V0
LmFkZCgKKyAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIobV9vdXQuYWJzb2x1dGUoJmdfbnVt
YmVyT2ZPU1JFeGl0RnV6ekNoZWNrcykpLAorICAgICAgICAgICAgICAgIG1fb3V0LmludDMyT25l
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuc3RvcmUzMihudW1iZXJPZkZ1enpD
aGVja3MsIG1fb3V0LmFic29sdXRlKCZnX251bWJlck9mT1NSRXhpdEZ1enpDaGVja3MpKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHVuc2lnbmVkIGF0T3JBZnRlciA9IE9wdGlvbnM6
OmZpcmVPU1JFeGl0RnV6ekF0T3JBZnRlcigpKSB7CisgICAgICAgICAgICAgICAgZmFpbENvbmRp
dGlvbiA9IG1fb3V0LmJpdE9yKAorICAgICAgICAgICAgICAgICAgICBmYWlsQ29uZGl0aW9uLAor
ICAgICAgICAgICAgICAgICAgICBtX291dC5hYm92ZU9yRXF1YWwobnVtYmVyT2ZGdXp6Q2hlY2tz
LCBtX291dC5jb25zdEludDMyKGF0T3JBZnRlcikpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICh1bnNpZ25lZCBhdCA9IE9wdGlvbnM6OmZpcmVPU1JFeGl0RnV6ekF0KCkpIHsKKyAg
ICAgICAgICAgICAgICBmYWlsQ29uZGl0aW9uID0gbV9vdXQuYml0T3IoCisgICAgICAgICAgICAg
ICAgICAgIGZhaWxDb25kaXRpb24sCisgICAgICAgICAgICAgICAgICAgIG1fb3V0LmVxdWFsKG51
bWJlck9mRnV6ekNoZWNrcywgbV9vdXQuY29uc3RJbnQzMihhdCkpKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVChtX2Z0bFN0YXRlLmppdENvZGUtPm9zckV4aXQu
c2l6ZSgpID09IG1fZnRsU3RhdGUuZmluYWxpemVyLT5vc3JFeGl0LnNpemUoKSk7CiAgICAgICAg
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24g
MTg2MjMxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMDksNiArMzA5LDEwIEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9u
U3RyaW5nOwogICAgIHYodW5zaWduZWQsIGZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdE9y
QWZ0ZXIsIDAsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHZlcmJvc2VFeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enosIGZhbHNlLCBudWxscHRyKSBcCiAgICAgXAorICAgIHYoYm9vbCwgZW5hYmxlT1NS
RXhpdEZ1enosIGZhbHNlLCBudWxscHRyKSBcCisgICAgdih1bnNpZ25lZCwgZmlyZU9TUkV4aXRG
dXp6QXQsIDAsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBmaXJlT1NSRXhpdEZ1enpBdE9y
QWZ0ZXIsIDAsIG51bGxwdHIpIFwKKyAgICBcCiAgICAgdihib29sLCBlbmFibGVEb2xsYXJWTSwg
ZmFsc2UsICJpbnN0YWxscyB0aGUgJHZtIGRlYnVnZ2luZyB0b29sIGluIGdsb2JhbCBvYmplY3Rz
IikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBmdW5jdGlvbk92ZXJyaWRlcywgbnVsbHB0ciwgImZp
bGUgd2l0aCBkZWJ1Z2dpbmcgb3ZlcnJpZGVzIGZvciBmdW5jdGlvbiBib2RpZXMiKSBcCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5o
CShyZXZpc2lvbiAxODYyMzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0
UnVubmVyVXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsNyBAQCBKU19FWFBPUlRf
UFJJVkFURSBKU1ZhbHVlIG9wdGltaXplTmV4dEluCiAKIEpTX0VYUE9SVF9QUklWQVRFIHVuc2ln
bmVkIG51bWJlck9mRXhjZXB0aW9uRnV6ekNoZWNrcygpOwogSlNfRVhQT1JUX1BSSVZBVEUgdW5z
aWduZWQgbnVtYmVyT2ZFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpDaGVja3MoKTsKK0pTX0VYUE9S
VF9QUklWQVRFIHVuc2lnbmVkIG51bWJlck9mT1NSRXhpdEZ1enpDaGVja3MoKTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCiAK
</data>
<flag name="review"
          id="281152"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>