├── LICENSE ├── README.md ├── syscall_data.txt └── syscall_ref.py /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | {description} 294 | Copyright (C) {year} {fullname} 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | {signature of Ty Coon}, 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # x86_syscall_ref 2 | An x86 linux syscall table reference tool. Handy for when writing shellcode and exploits. 3 | 4 | It allows you to search via function name or syscall id and returns the relevant information for setting up the stack / registers in x86 assembly. All of the syscall data is stored inside the script so no need for internet access. 5 | -------------------------------------------------------------------------------- /syscall_data.txt: -------------------------------------------------------------------------------- 1 | MAlzeXNfcmVzdGFydF9zeXNjYWxsCTB4MDAJLQktCS0JLQktCWtlcm5lbC9zaWduYWwuYzoyMDU4CjEJc3lzX2V4aXQJMHgwMQlpbnQgZXJyb3JfY29kZQktCS0JLQktCWtlcm5lbC9leGl0LmM6MTA0NgoyCXN5c19mb3JrCTB4MDIJc3RydWN0IHB0X3JlZ3MgKgktCS0JLQktCWFyY2gvYWxwaGEva2VybmVsL2VudHJ5LlM6NzE2CjMJc3lzX3JlYWQJMHgwMwl1bnNpZ25lZCBpbnQgZmQJY2hhciBfX3VzZXIgKmJ1ZglzaXplX3QgY291bnQJLQktCWZzL3JlYWRfd3JpdGUuYzozOTEKNAlzeXNfd3JpdGUJMHgwNAl1bnNpZ25lZCBpbnQgZmQJY29uc3QgY2hhciBfX3VzZXIgKmJ1ZglzaXplX3QgY291bnQJLQktCWZzL3JlYWRfd3JpdGUuYzo0MDgKNQlzeXNfb3BlbgkweDA1CWNvbnN0IGNoYXIgX191c2VyICpmaWxlbmFtZQlpbnQgZmxhZ3MJaW50IG1vZGUJLQktCWZzL29wZW4uYzo5MDAKNglzeXNfY2xvc2UJMHgwNgl1bnNpZ25lZCBpbnQgZmQJLQktCS0JLQlmcy9vcGVuLmM6OTY5CjcJc3lzX3dhaXRwaWQJMHgwNwlwaWRfdCBwaWQJaW50IF9fdXNlciAqc3RhdF9hZGRyCWludCBvcHRpb25zCS0JLQlrZXJuZWwvZXhpdC5jOjE3NzEKOAlzeXNfY3JlYXQJMHgwOAljb25zdCBjaGFyIF9fdXNlciAqcGF0aG5hbWUJaW50IG1vZGUJLQktCS0JZnMvb3Blbi5jOjkzMwo5CXN5c19saW5rCTB4MDkJY29uc3QgY2hhciBfX3VzZXIgKm9sZG5hbWUJY29uc3QgY2hhciBfX3VzZXIgKm5ld25hbWUJLQktCS0JZnMvbmFtZWkuYzoyNTIwCjEwCXN5c191bmxpbmsJMHgwYQljb25zdCBjaGFyIF9fdXNlciAqcGF0aG5hbWUJLQktCS0JLQlmcy9uYW1laS5jOjIzNTIKMTEJc3lzX2V4ZWN2ZQkweDBiCWNoYXIgX191c2VyICoJY2hhciBfX3VzZXIgKl9fdXNlciAqCWNoYXIgX191c2VyICpfX3VzZXIgKglzdHJ1Y3QgcHRfcmVncyAqCS0JYXJjaC9hbHBoYS9rZXJuZWwvZW50cnkuUzo5MjUKMTIJc3lzX2NoZGlyCTB4MGMJY29uc3QgY2hhciBfX3VzZXIgKmZpbGVuYW1lCS0JLQktCS0JZnMvb3Blbi5jOjM2MQoxMwlzeXNfdGltZQkweDBkCXRpbWVfdCBfX3VzZXIgKnRsb2MJLQktCS0JLQlrZXJuZWwvcG9zaXgtdGltZXJzLmM6ODU1CjE0CXN5c19ta25vZAkweDBlCWNvbnN0IGNoYXIgX191c2VyICpmaWxlbmFtZQlpbnQgbW9kZQl1bnNpZ25lZCBkZXYJLQktCWZzL25hbWVpLmM6MjA2NwoxNQlzeXNfY2htb2QJMHgwZgljb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUJbW9kZV90IG1vZGUJLQktCS0JZnMvb3Blbi5jOjUwNwoxNglzeXNfbGNob3duMTYJMHgxMAljb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUJb2xkX3VpZF90IHVzZXIJb2xkX2dpZF90IGdyb3VwCS0JLQlrZXJuZWwvdWlkMTYuYzoyNwoxNwlub3QgaW1wbGVtZW50ZWQJMHgxMQktCS0JLQktCS0JCjE4CXN5c19zdGF0CTB4MTIJY2hhciBfX3VzZXIgKmZpbGVuYW1lCXN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCBfX3VzZXIgKnN0YXRidWYJLQktCS0JZnMvc3RhdC5jOjE1MAoxOQlzeXNfbHNlZWsJMHgxMwl1bnNpZ25lZCBpbnQgZmQJb2ZmX3Qgb2Zmc2V0CXVuc2lnbmVkIGludCBvcmlnaW4JLQktCWZzL3JlYWRfd3JpdGUuYzoxNjcKMjAJc3lzX2dldHBpZAkweDE0CS0JLQktCS0JLQlrZXJuZWwvdGltZXIuYzoxMzM3CjIxCXN5c19tb3VudAkweDE1CWNoYXIgX191c2VyICpkZXZfbmFtZQljaGFyIF9fdXNlciAqZGlyX25hbWUJY2hhciBfX3VzZXIgKnR5cGUJdW5zaWduZWQgbG9uZyBmbGFncwl2b2lkIF9fdXNlciAqZGF0YQlmcy9uYW1lc3BhY2UuYzoyMTE4CjIyCXN5c19vbGR1bW91bnQJMHgxNgljaGFyIF9fdXNlciAqbmFtZQktCS0JLQktCWZzL25hbWVzcGFjZS5jOjExNzEKMjMJc3lzX3NldHVpZDE2CTB4MTcJb2xkX3VpZF90IHVpZAktCS0JLQktCWtlcm5lbC91aWQxNi5jOjY3CjI0CXN5c19nZXR1aWQxNgkweDE4CS0JLQktCS0JLQlrZXJuZWwvdWlkMTYuYzoyMTIKMjUJc3lzX3N0aW1lCTB4MTkJdGltZV90IF9fdXNlciAqdHB0cgktCS0JLQktCWtlcm5lbC90aW1lLmM6ODEKMjYJc3lzX3B0cmFjZQkweDFhCWxvbmcgcmVxdWVzdAlsb25nIHBpZAlsb25nIGFkZHIJbG9uZyBkYXRhCS0Ja2VybmVsL3B0cmFjZS5jOjY4OAoyNwlzeXNfYWxhcm0JMHgxYgl1bnNpZ25lZCBpbnQgc2Vjb25kcwktCS0JLQktCWtlcm5lbC90aW1lci5jOjEzMTQKMjgJc3lzX2ZzdGF0CTB4MWMJdW5zaWduZWQgaW50IGZkCXN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdCBfX3VzZXIgKnN0YXRidWYJLQktCS0JZnMvc3RhdC5jOjE3NAoyOQlzeXNfcGF1c2UJMHgxZAktCS0JLQktCS0Ja2VybmVsL3NpZ25hbC5jOjI3MDAKMzAJc3lzX3V0aW1lCTB4MWUJY2hhciBfX3VzZXIgKmZpbGVuYW1lCXN0cnVjdCB1dGltYnVmIF9fdXNlciAqdGltZXMJLQktCS0JZnMvdXRpbWVzLmM6MjcKMzEJbm90IGltcGxlbWVudGVkCTB4MWYJLQktCS0JLQktCQozMglub3QgaW1wbGVtZW50ZWQJMHgyMAktCS0JLQktCS0JCjMzCXN5c19hY2Nlc3MJMHgyMQljb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUJaW50IG1vZGUJLQktCS0JZnMvb3Blbi5jOjM1NgozNAlzeXNfbmljZQkweDIyCWludCBpbmNyZW1lbnQJLQktCS0JLQlrZXJuZWwvc2NoZWQuYzo0MjgyCjM1CW5vdCBpbXBsZW1lbnRlZAkweDIzCS0JLQktCS0JLQkKMzYJc3lzX3N5bmMJMHgyNAktCS0JLQktCS0JZnMvc3luYy5jOjk4CjM3CXN5c19raWxsCTB4MjUJaW50IHBpZAlpbnQgc2lnCS0JLQktCWtlcm5lbC9zaWduYWwuYzoyMzE3CjM4CXN5c19yZW5hbWUJMHgyNgljb25zdCBjaGFyIF9fdXNlciAqb2xkbmFtZQljb25zdCBjaGFyIF9fdXNlciAqbmV3bmFtZQktCS0JLQlmcy9uYW1laS5jOjI3NjUKMzkJc3lzX21rZGlyCTB4MjcJY29uc3QgY2hhciBfX3VzZXIgKnBhdGhuYW1lCWludCBtb2RlCS0JLQktCWZzL25hbWVpLmM6MjEzMAo0MAlzeXNfcm1kaXIJMHgyOAljb25zdCBjaGFyIF9fdXNlciAqcGF0aG5hbWUJLQktCS0JLQlmcy9uYW1laS5jOjIyNDQKNDEJc3lzX2R1cAkweDI5CXVuc2lnbmVkIGludCBmaWxkZXMJLQktCS0JLQlmcy9mY250bC5jOjEzMQo0MglzeXNfcGlwZQkweDJhCWludCBfX3VzZXIgKmZpbGRlcwktCS0JLQktCWZzL3BpcGUuYzoxMTE3CjQzCXN5c190aW1lcwkweDJiCXN0cnVjdCB0bXMgX191c2VyICp0YnVmCS0JLQktCS0Ja2VybmVsL3N5cy5jOjg5Ngo0NAlub3QgaW1wbGVtZW50ZWQJMHgyYwktCS0JLQktCS0JCjQ1CXN5c19icmsJMHgyZAl1bnNpZ25lZCBsb25nIGJyawktCS0JLQktCW1tL21tYXAuYzoyNDUKNDYJc3lzX3NldGdpZDE2CTB4MmUJb2xkX2dpZF90IGdpZAktCS0JLQktCWtlcm5lbC91aWQxNi5jOjUxCjQ3CXN5c19nZXRnaWQxNgkweDJmCS0JLQktCS0JLQlrZXJuZWwvdWlkMTYuYzoyMjIKNDgJc3lzX3NpZ25hbAkweDMwCWludCBzaWcJX19zaWdoYW5kbGVyX3QgaGFuZGxlcgktCS0JLQlrZXJuZWwvc2lnbmFsLmM6MjY4Mwo0OQlzeXNfZ2V0ZXVpZDE2CTB4MzEJLQktCS0JLQktCWtlcm5lbC91aWQxNi5jOjIxNwo1MAlzeXNfZ2V0ZWdpZDE2CTB4MzIJLQktCS0JLQktCWtlcm5lbC91aWQxNi5jOjIyNwo1MQlzeXNfYWNjdAkweDMzCWNvbnN0IGNoYXIgX191c2VyICpuYW1lCS0JLQktCS0Ja2VybmVsL2FjY3QuYzoyNzQKNTIJc3lzX3Vtb3VudAkweDM0CWNoYXIgX191c2VyICpuYW1lCWludCBmbGFncwktCS0JLQlmcy9uYW1lc3BhY2UuYzoxMTMyCjUzCW5vdCBpbXBsZW1lbnRlZAkweDM1CS0JLQktCS0JLQkKNTQJc3lzX2lvY3RsCTB4MzYJdW5zaWduZWQgaW50IGZkCXVuc2lnbmVkIGludCBjbWQJdW5zaWduZWQgbG9uZyBhcmcJLQktCWZzL2lvY3RsLmM6NjEzCjU1CXN5c19mY250bAkweDM3CXVuc2lnbmVkIGludCBmZAl1bnNpZ25lZCBpbnQgY21kCXVuc2lnbmVkIGxvbmcgYXJnCS0JLQlmcy9mY250bC5jOjQyOQo1Nglub3QgaW1wbGVtZW50ZWQJMHgzOAktCS0JLQktCS0JCjU3CXN5c19zZXRwZ2lkCTB4MzkJcGlkX3QgcGlkCXBpZF90IHBnaWQJLQktCS0Ja2VybmVsL3N5cy5jOjkyMQo1OAlub3QgaW1wbGVtZW50ZWQJMHgzYQktCS0JLQktCS0JCjU5CXN5c19vbGR1bmFtZQkweDNiCXN0cnVjdCBvbGRvbGRfdXRzbmFtZSBfX3VzZXIgKgktCS0JLQktCWtlcm5lbC9zeXMuYzoxMTMyCjYwCXN5c191bWFzawkweDNjCWludCBtYXNrCS0JLQktCS0Ja2VybmVsL3N5cy5jOjE0NjAKNjEJc3lzX2Nocm9vdAkweDNkCWNvbnN0IGNoYXIgX191c2VyICpmaWxlbmFtZQktCS0JLQktCWZzL29wZW4uYzo0MDgKNjIJc3lzX3VzdGF0CTB4M2UJdW5zaWduZWQgZGV2CXN0cnVjdCB1c3RhdCBfX3VzZXIgKnVidWYJLQktCS0JZnMvc3RhdGZzLmM6MTc1CjYzCXN5c19kdXAyCTB4M2YJdW5zaWduZWQgaW50IG9sZGZkCXVuc2lnbmVkIGludCBuZXdmZAktCS0JLQlmcy9mY250bC5jOjExNgo2NAlzeXNfZ2V0cHBpZAkweDQwCS0JLQktCS0JLQlrZXJuZWwvdGltZXIuYzoxMzQ4CjY1CXN5c19nZXRwZ3JwCTB4NDEJLQktCS0JLQktCWtlcm5lbC9zeXMuYzoxMDIwCjY2CXN5c19zZXRzaWQJMHg0MgktCS0JLQktCS0Ja2VybmVsL3N5cy5jOjEwNTUKNjcJc3lzX3NpZ2FjdGlvbgkweDQzCWludCBzaWcJY29uc3Qgc3RydWN0IG9sZF9zaWdhY3Rpb24gX191c2VyICphY3QJc3RydWN0IG9sZF9zaWdhY3Rpb24gX191c2VyICpvYWN0CS0JLQlhcmNoL21pcHMva2VybmVsL3NpZ25hbC5jOjMwMAo2OAlzeXNfc2dldG1hc2sJMHg0NAktCS0JLQktCS0Ja2VybmVsL3NpZ25hbC5jOjI2NTcKNjkJc3lzX3NzZXRtYXNrCTB4NDUJaW50IG5ld21hc2sJLQktCS0JLQlrZXJuZWwvc2lnbmFsLmM6MjY2Mwo3MAlzeXNfc2V0cmV1aWQxNgkweDQ2CW9sZF91aWRfdCBydWlkCW9sZF91aWRfdCBldWlkCS0JLQktCWtlcm5lbC91aWQxNi5jOjU5CjcxCXN5c19zZXRyZWdpZDE2CTB4NDcJb2xkX2dpZF90IHJnaWQJb2xkX2dpZF90IGVnaWQJLQktCS0Ja2VybmVsL3VpZDE2LmM6NDMKNzIJc3lzX3NpZ3N1c3BlbmQJMHg0OAlpbnQgaGlzdG9yeTAJaW50IGhpc3RvcnkxCW9sZF9zaWdzZXRfdCBtYXNrCS0JLQlhcmNoL3MzOTAva2VybmVsL3NpZ25hbC5jOjU4CjczCXN5c19zaWdwZW5kaW5nCTB4NDkJb2xkX3NpZ3NldF90IF9fdXNlciAqc2V0CS0JLQktCS0Ja2VybmVsL3NpZ25hbC5jOjI1NjIKNzQJc3lzX3NldGhvc3RuYW1lCTB4NGEJY2hhciBfX3VzZXIgKm5hbWUJaW50IGxlbgktCS0JLQlrZXJuZWwvc3lzLmM6MTE2NQo3NQlzeXNfc2V0cmxpbWl0CTB4NGIJdW5zaWduZWQgaW50IHJlc291cmNlCXN0cnVjdCBybGltaXQgX191c2VyICpybGltCS0JLQktCWtlcm5lbC9zeXMuYzoxMjc1Cjc2CXN5c19vbGRfZ2V0cmxpbWl0CTB4NGMJdW5zaWduZWQgaW50IHJlc291cmNlCXN0cnVjdCBybGltaXQgX191c2VyICpybGltCS0JLQktCWtlcm5lbC9zeXMuYzoxMjU2Cjc3CXN5c19nZXRydXNhZ2UJMHg0ZAlpbnQgd2hvCXN0cnVjdCBydXNhZ2UgX191c2VyICpydQktCS0JLQlrZXJuZWwvc3lzLmM6MTQ1Mgo3OAlzeXNfZ2V0dGltZW9mZGF5CTB4NGUJc3RydWN0IHRpbWV2YWwgX191c2VyICp0dglzdHJ1Y3QgdGltZXpvbmUgX191c2VyICp0egktCS0JLQlrZXJuZWwvdGltZS5jOjEwMQo3OQlzeXNfc2V0dGltZW9mZGF5CTB4NGYJc3RydWN0IHRpbWV2YWwgX191c2VyICp0dglzdHJ1Y3QgdGltZXpvbmUgX191c2VyICp0egktCS0JLQlrZXJuZWwvdGltZS5jOjE4NQo4MAlzeXNfZ2V0Z3JvdXBzMTYJMHg1MAlpbnQgZ2lkc2V0c2l6ZQlvbGRfZ2lkX3QgX191c2VyICpncm91cGxpc3QJLQktCS0Ja2VybmVsL3VpZDE2LmM6MTY0CjgxCXN5c19zZXRncm91cHMxNgkweDUxCWludCBnaWRzZXRzaXplCW9sZF9naWRfdCBfX3VzZXIgKmdyb3VwbGlzdAktCS0JLQlrZXJuZWwvdWlkMTYuYzoxODcKODIJc3lzX29sZF9zZWxlY3QJMHg1MglzdHJ1Y3Qgc2VsX2FyZ19zdHJ1Y3QgX191c2VyICphcmcJLQktCS0JLQlmcy9zZWxlY3QuYzo3MDEKODMJc3lzX3N5bWxpbmsJMHg1Mwljb25zdCBjaGFyIF9fdXNlciAqb2xkCWNvbnN0IGNoYXIgX191c2VyICpuZXcJLQktCS0JZnMvbmFtZWkuYzoyNDE5Cjg0CXN5c19sc3RhdAkweDU0CWNoYXIgX191c2VyICpmaWxlbmFtZQlzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgX191c2VyICpzdGF0YnVmCS0JLQktCWZzL3N0YXQuYzoxNjIKODUJc3lzX3JlYWRsaW5rCTB4NTUJY29uc3QgY2hhciBfX3VzZXIgKnBhdGgJY2hhciBfX3VzZXIgKmJ1ZglpbnQgYnVmc2l6CS0JLQlmcy9zdGF0LmM6MzExCjg2CXN5c191c2VsaWIJMHg1Ngljb25zdCBjaGFyIF9fdXNlciAqbGlicmFyeQktCS0JLQktCWZzL2V4ZWMuYzoxMDcKODcJc3lzX3N3YXBvbgkweDU3CWNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsZmlsZQlpbnQgc3dhcF9mbGFncwktCS0JLQltbS9zd2FwZmlsZS5jOjE3OTMKODgJc3lzX3JlYm9vdAkweDU4CWludCBtYWdpYzEJaW50IG1hZ2ljMgl1bnNpZ25lZCBpbnQgY21kCXZvaWQgX191c2VyICphcmcJLQlrZXJuZWwvc3lzLmM6MzY4Cjg5CXN5c19vbGRfcmVhZGRpcgkweDU5CXVuc2lnbmVkIGludAlzdHJ1Y3Qgb2xkX2xpbnV4X2RpcmVudCBfX3VzZXIgKgl1bnNpZ25lZCBpbnQJLQktCWZzL3JlYWRkaXIuYzoxMDUKOTAJc3lzX29sZF9tbWFwCTB4NWEJc3RydWN0IG1tYXBfYXJnX3N0cnVjdCBfX3VzZXIgKmFyZwktCS0JLQktCW1tL21tYXAuYzoxMTQxCjkxCXN5c19tdW5tYXAJMHg1Ygl1bnNpZ25lZCBsb25nIGFkZHIJc2l6ZV90IGxlbgktCS0JLQltbS9tbWFwLmM6MjEwOQo5MglzeXNfdHJ1bmNhdGUJMHg1Ywljb25zdCBjaGFyIF9fdXNlciAqcGF0aAlsb25nIGxlbmd0aAktCS0JLQlmcy9vcGVuLmM6MTI3CjkzCXN5c19mdHJ1bmNhdGUJMHg1ZAl1bnNpZ25lZCBpbnQgZmQJdW5zaWduZWQgbG9uZyBsZW5ndGgJLQktCS0JZnMvb3Blbi5jOjE3OAo5NAlzeXNfZmNobW9kCTB4NWUJdW5zaWduZWQgaW50IGZkCW1vZGVfdCBtb2RlCS0JLQktCWZzL29wZW4uYzo0MzYKOTUJc3lzX2ZjaG93bjE2CTB4NWYJdW5zaWduZWQgaW50IGZkCW9sZF91aWRfdCB1c2VyCW9sZF9naWRfdCBncm91cAktCS0Ja2VybmVsL3VpZDE2LmM6MzUKOTYJc3lzX2dldHByaW9yaXR5CTB4NjAJaW50IHdoaWNoCWludCB3aG8JLQktCS0Ja2VybmVsL3N5cy5jOjIxNgo5NwlzeXNfc2V0cHJpb3JpdHkJMHg2MQlpbnQgd2hpY2gJaW50IHdobwlpbnQgbmljZXZhbAktCS0Ja2VybmVsL3N5cy5jOjE0OQo5OAlub3QgaW1wbGVtZW50ZWQJMHg2MgktCS0JLQktCS0JCjk5CXN5c19zdGF0ZnMJMHg2Mwljb25zdCBjaGFyIF9fdXNlciAqIHBhdGgJc3RydWN0IHN0YXRmcyBfX3VzZXIgKmJ1ZgktCS0JLQlmcy9zdGF0ZnMuYzoxMDIKMTAwCXN5c19mc3RhdGZzCTB4NjQJdW5zaWduZWQgaW50IGZkCXN0cnVjdCBzdGF0ZnMgX191c2VyICpidWYJLQktCS0JZnMvc3RhdGZzLmM6MTM2CjEwMQlzeXNfaW9wZXJtCTB4NjUJdW5zaWduZWQgbG9uZwl1bnNpZ25lZCBsb25nCWludAktCS0Jbm90IGZvdW5kOgoxMDIJc3lzX3NvY2tldGNhbGwJMHg2NglpbnQgY2FsbAl1bnNpZ25lZCBsb25nIF9fdXNlciAqYXJncwktCS0JLQluZXQvc29ja2V0LmM6MjIxMAoxMDMJc3lzX3N5c2xvZwkweDY3CWludCB0eXBlCWNoYXIgX191c2VyICpidWYJaW50IGxlbgktCS0Ja2VybmVsL3ByaW50ay5jOjQxMgoxMDQJc3lzX3NldGl0aW1lcgkweDY4CWludCB3aGljaAlzdHJ1Y3QgaXRpbWVydmFsIF9fdXNlciAqdmFsdWUJc3RydWN0IGl0aW1lcnZhbCBfX3VzZXIgKm92YWx1ZQktCS0Ja2VybmVsL2l0aW1lci5jOjI3OQoxMDUJc3lzX2dldGl0aW1lcgkweDY5CWludCB3aGljaAlzdHJ1Y3QgaXRpbWVydmFsIF9fdXNlciAqdmFsdWUJLQktCS0Ja2VybmVsL2l0aW1lci5jOjEwMwoxMDYJc3lzX25ld3N0YXQJMHg2YQljaGFyIF9fdXNlciAqZmlsZW5hbWUJc3RydWN0IHN0YXQgX191c2VyICpzdGF0YnVmCS0JLQktCWZzL3N0YXQuYzoyMzcKMTA3CXN5c19uZXdsc3RhdAkweDZiCWNoYXIgX191c2VyICpmaWxlbmFtZQlzdHJ1Y3Qgc3RhdCBfX3VzZXIgKnN0YXRidWYJLQktCS0JZnMvc3RhdC5jOjI0NwoxMDgJc3lzX25ld2ZzdGF0CTB4NmMJdW5zaWduZWQgaW50IGZkCXN0cnVjdCBzdGF0IF9fdXNlciAqc3RhdGJ1ZgktCS0JLQlmcy9zdGF0LmM6MjczCjEwOQlzeXNfdW5hbWUJMHg2ZAlzdHJ1Y3Qgb2xkX3V0c25hbWUgX191c2VyICoJLQktCS0JLQlrZXJuZWwvc3lzLmM6MTExNQoxMTAJc3lzX2lvcGwJMHg2ZQl1bnNpZ25lZCBpbnQJc3RydWN0IHB0X3JlZ3MgKgktCS0JLQlub3QgZm91bmQ6CjExMQlzeXNfdmhhbmd1cAkweDZmCS0JLQktCS0JLQlmcy9vcGVuLmM6MTAwOAoxMTIJbm90IGltcGxlbWVudGVkCTB4NzAJLQktCS0JLQktCQoxMTMJc3lzX3ZtODZvbGQJMHg3MQlzdHJ1Y3Qgdm04Nl9zdHJ1Y3QgX191c2VyICoJc3RydWN0IHB0X3JlZ3MgKgktCS0JLQlub3QgZm91bmQ6CjExNAlzeXNfd2FpdDQJMHg3MglwaWRfdCBwaWQJaW50IF9fdXNlciAqc3RhdF9hZGRyCWludCBvcHRpb25zCXN0cnVjdCBydXNhZ2UgX191c2VyICpydQktCWtlcm5lbC9leGl0LmM6MTcyNgoxMTUJc3lzX3N3YXBvZmYJMHg3Mwljb25zdCBjaGFyIF9fdXNlciAqc3BlY2lhbGZpbGUJLQktCS0JLQltbS9zd2FwZmlsZS5jOjE1MzMKMTE2CXN5c19zeXNpbmZvCTB4NzQJc3RydWN0IHN5c2luZm8gX191c2VyICppbmZvCS0JLQktCS0Ja2VybmVsL3RpbWVyLmM6MTU2NQoxMTcJc3lzX2lwYwkweDc1CS0JLQktCS0JLQlpcGMvc3lzY2FsbC5jOjE2CjExOAlzeXNfZnN5bmMJMHg3Ngl1bnNpZ25lZCBpbnQgZmQJLQktCS0JLQlmcy9zeW5jLmM6MjIxCjExOQlzeXNfc2lncmV0dXJuCTB4NzcJc3RydWN0IHB0X3JlZ3MgKnJlZ3MJLQktCS0JLQlhcmNoL2FscGhhL2tlcm5lbC9lbnRyeS5TOjc1OAoxMjAJc3lzX2Nsb25lCTB4NzgJdW5zaWduZWQgbG9uZwl1bnNpZ25lZCBsb25nCXVuc2lnbmVkIGxvbmcJdW5zaWduZWQgbG9uZwlzdHJ1Y3QgcHRfcmVncyAqCWFyY2gvYWxwaGEva2VybmVsL2VudHJ5LlM6NzMzCjEyMQlzeXNfc2V0ZG9tYWlubmFtZQkweDc5CWNoYXIgX191c2VyICpuYW1lCWludCBsZW4JLQktCS0Ja2VybmVsL3N5cy5jOjEyMTQKMTIyCXN5c19uZXd1bmFtZQkweDdhCXN0cnVjdCBuZXdfdXRzbmFtZSBfX3VzZXIgKm5hbWUJLQktCS0JLQlrZXJuZWwvc3lzLmM6MTA5NwoxMjMJc3lzX21vZGlmeV9sZHQJMHg3YglpbnQJdm9pZCBfX3VzZXIgKgl1bnNpZ25lZCBsb25nCS0JLQlub3QgZm91bmQ6CjEyNAlzeXNfYWRqdGltZXgJMHg3YwlzdHJ1Y3QgdGltZXggX191c2VyICp0eGNfcAktCS0JLQktCWtlcm5lbC90aW1lLmM6MjA2CjEyNQlzeXNfbXByb3RlY3QJMHg3ZAl1bnNpZ25lZCBsb25nIHN0YXJ0CXNpemVfdCBsZW4JdW5zaWduZWQgbG9uZyBwcm90CS0JLQltbS9tcHJvdGVjdC5jOjIyMQoxMjYJc3lzX3NpZ3Byb2NtYXNrCTB4N2UJaW50IGhvdwlvbGRfc2lnc2V0X3QgX191c2VyICpzZXQJb2xkX3NpZ3NldF90IF9fdXNlciAqb3NldAktCS0Ja2VybmVsL3NpZ25hbC5jOjI1NzMKMTI3CW5vdCBpbXBsZW1lbnRlZAkweDdmCS0JLQktCS0JLQkKMTI4CXN5c19pbml0X21vZHVsZQkweDgwCXZvaWQgX191c2VyICp1bW9kCXVuc2lnbmVkIGxvbmcgbGVuCWNvbnN0IGNoYXIgX191c2VyICp1YXJncwktCS0Ja2VybmVsL21vZHVsZS5jOjI2MTEKMTI5CXN5c19kZWxldGVfbW9kdWxlCTB4ODEJY29uc3QgY2hhciBfX3VzZXIgKm5hbWVfdXNlcgl1bnNpZ25lZCBpbnQgZmxhZ3MJLQktCS0Ja2VybmVsL21vZHVsZS5jOjcyMAoxMzAJbm90IGltcGxlbWVudGVkCTB4ODIJLQktCS0JLQktCQoxMzEJc3lzX3F1b3RhY3RsCTB4ODMJdW5zaWduZWQgaW50IGNtZAljb25zdCBjaGFyIF9fdXNlciAqc3BlY2lhbAlxaWRfdCBpZAl2b2lkIF9fdXNlciAqYWRkcgktCWZzL3F1b3RhL3F1b3RhLmM6MzMzCjEzMglzeXNfZ2V0cGdpZAkweDg0CXBpZF90IHBpZAktCS0JLQktCWtlcm5lbC9zeXMuYzo5OTAKMTMzCXN5c19mY2hkaXIJMHg4NQl1bnNpZ25lZCBpbnQgZmQJLQktCS0JLQlmcy9vcGVuLmM6MzgyCjEzNAlzeXNfYmRmbHVzaAkweDg2CWludCBmdW5jCWxvbmcgZGF0YQktCS0JLQlmcy9idWZmZXIuYzozMjc4CjEzNQlzeXNfc3lzZnMJMHg4NwlpbnQgb3B0aW9uCXVuc2lnbmVkIGxvbmcgYXJnMQl1bnNpZ25lZCBsb25nIGFyZzIJLQktCWZzL2ZpbGVzeXN0ZW1zLmM6MTgyCjEzNglzeXNfcGVyc29uYWxpdHkJMHg4OAl1bnNpZ25lZCBpbnQgcGVyc29uYWxpdHkJLQktCS0JLQlrZXJuZWwvZXhlY19kb21haW4uYzoxOTEKMTM3CW5vdCBpbXBsZW1lbnRlZAkweDg5CS0JLQktCS0JLQkKMTM4CXN5c19zZXRmc3VpZDE2CTB4OGEJb2xkX3VpZF90IHVpZAktCS0JLQktCWtlcm5lbC91aWQxNi5jOjExOAoxMzkJc3lzX3NldGZzZ2lkMTYJMHg4YglvbGRfZ2lkX3QgZ2lkCS0JLQktCS0Ja2VybmVsL3VpZDE2LmM6MTI2CjE0MAlzeXNfbGxzZWVrCTB4OGMJdW5zaWduZWQgaW50IGZkCXVuc2lnbmVkIGxvbmcgb2Zmc2V0X2hpZ2gJdW5zaWduZWQgbG9uZyBvZmZzZXRfbG93CWxvZmZfdCBfX3VzZXIgKnJlc3VsdAl1bnNpZ25lZCBpbnQgb3JpZ2luCWZzL3JlYWRfd3JpdGUuYzoxOTEKMTQxCXN5c19nZXRkZW50cwkweDhkCXVuc2lnbmVkIGludCBmZAlzdHJ1Y3QgbGludXhfZGlyZW50IF9fdXNlciAqZGlyZW50CXVuc2lnbmVkIGludCBjb3VudAktCS0JZnMvcmVhZGRpci5jOjE5MQoxNDIJc3lzX3NlbGVjdAkweDhlCWludCBuCWZkX3NldCBfX3VzZXIgKmlucAlmZF9zZXQgX191c2VyICpvdXRwCWZkX3NldCBfX3VzZXIgKmV4cAlzdHJ1Y3QgdGltZXZhbCBfX3VzZXIgKnR2cAlmcy9zZWxlY3QuYzo1OTYKMTQzCXN5c19mbG9jawkweDhmCXVuc2lnbmVkIGludCBmZAl1bnNpZ25lZCBpbnQgY21kCS0JLQktCWZzL2xvY2tzLmM6MTU2OQoxNDQJc3lzX21zeW5jCTB4OTAJdW5zaWduZWQgbG9uZyBzdGFydAlzaXplX3QgbGVuCWludCBmbGFncwktCS0JbW0vbXN5bmMuYzozMQoxNDUJc3lzX3JlYWR2CTB4OTEJdW5zaWduZWQgbG9uZyBmZAljb25zdCBzdHJ1Y3QgaW92ZWMgX191c2VyICp2ZWMJdW5zaWduZWQgbG9uZyB2bGVuCS0JLQlmcy9yZWFkX3dyaXRlLmM6NzExCjE0NglzeXNfd3JpdGV2CTB4OTIJdW5zaWduZWQgbG9uZyBmZAljb25zdCBzdHJ1Y3QgaW92ZWMgX191c2VyICp2ZWMJdW5zaWduZWQgbG9uZyB2bGVuCS0JLQlmcy9yZWFkX3dyaXRlLmM6NzMyCjE0NwlzeXNfZ2V0c2lkCTB4OTMJcGlkX3QgcGlkCS0JLQktCS0Ja2VybmVsL3N5cy5jOjEwMjcKMTQ4CXN5c19mZGF0YXN5bmMJMHg5NAl1bnNpZ25lZCBpbnQgZmQJLQktCS0JLQlmcy9zeW5jLmM6MjI2CjE0OQlzeXNfc3lzY3RsCTB4OTUJc3RydWN0IF9fc3lzY3RsX2FyZ3MgX191c2VyICphcmdzCS0JLQktCS0Ja2VybmVsL3N5c2N0bF9iaW5hcnkuYzoxNDYyCjE1MAlzeXNfbWxvY2sJMHg5Ngl1bnNpZ25lZCBsb25nIHN0YXJ0CXNpemVfdCBsZW4JLQktCS0JbW0vbWxvY2suYzo0OTEKMTUxCXN5c19tdW5sb2NrCTB4OTcJdW5zaWduZWQgbG9uZyBzdGFydAlzaXplX3QgbGVuCS0JLQktCW1tL21sb2NrLmM6NTE5CjE1MglzeXNfbWxvY2thbGwJMHg5OAlpbnQgZmxhZ3MJLQktCS0JLQltbS9tbG9jay5jOjU1NgoxNTMJc3lzX211bmxvY2thbGwJMHg5OQktCS0JLQktCS0JbW0vbWxvY2suYzo1ODQKMTU0CXN5c19zY2hlZF9zZXRwYXJhbQkweDlhCXBpZF90IHBpZAlzdHJ1Y3Qgc2NoZWRfcGFyYW0gX191c2VyICpwYXJhbQktCS0JLQlrZXJuZWwvc2NoZWQuYzo0NjE2CjE1NQlzeXNfc2NoZWRfZ2V0cGFyYW0JMHg5YglwaWRfdCBwaWQJc3RydWN0IHNjaGVkX3BhcmFtIF9fdXNlciAqcGFyYW0JLQktCS0Ja2VybmVsL3NjaGVkLmM6NDY1MQoxNTYJc3lzX3NjaGVkX3NldHNjaGVkdWxlcgkweDljCXBpZF90IHBpZAlpbnQgcG9saWN5CXN0cnVjdCBzY2hlZF9wYXJhbSBfX3VzZXIgKnBhcmFtCS0JLQlrZXJuZWwvc2NoZWQuYzo0NjAxCjE1NwlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyCTB4OWQJcGlkX3QgcGlkCS0JLQktCS0Ja2VybmVsL3NjaGVkLmM6NDYyNQoxNTgJc3lzX3NjaGVkX3lpZWxkCTB4OWUJLQktCS0JLQktCWtlcm5lbC9zY2hlZC5jOjQ4NTEKMTU5CXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4CTB4OWYJaW50IHBvbGljeQktCS0JLQktCWtlcm5lbC9zY2hlZC5jOjQ5ODkKMTYwCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluCTB4YTAJaW50IHBvbGljeQktCS0JLQktCWtlcm5lbC9zY2hlZC5jOjUwMTQKMTYxCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwJMHhhMQlwaWRfdCBwaWQJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqaW50ZXJ2YWwJLQktCS0Ja2VybmVsL3NjaGVkLmM6NTAzOQoxNjIJc3lzX25hbm9zbGVlcAkweGEyCXN0cnVjdCB0aW1lc3BlYyBfX3VzZXIgKnJxdHAJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqcm10cAktCS0JLQlrZXJuZWwvaHJ0aW1lci5jOjE2MDYKMTYzCXN5c19tcmVtYXAJMHhhMwl1bnNpZ25lZCBsb25nIGFkZHIJdW5zaWduZWQgbG9uZyBvbGRfbGVuCXVuc2lnbmVkIGxvbmcgbmV3X2xlbgl1bnNpZ25lZCBsb25nIGZsYWdzCXVuc2lnbmVkIGxvbmcgbmV3X2FkZHIJbW0vbXJlbWFwLmM6NTEwCjE2NAlzeXNfc2V0cmVzdWlkMTYJMHhhNAlvbGRfdWlkX3QgcnVpZAlvbGRfdWlkX3QgZXVpZAlvbGRfdWlkX3Qgc3VpZAktCS0Ja2VybmVsL3VpZDE2LmM6NzUKMTY1CXN5c19nZXRyZXN1aWQxNgkweGE1CW9sZF91aWRfdCBfX3VzZXIgKnJ1aWQJb2xkX3VpZF90IF9fdXNlciAqZXVpZAlvbGRfdWlkX3QgX191c2VyICpzdWlkCS0JLQlrZXJuZWwvdWlkMTYuYzo4NAoxNjYJc3lzX3ZtODYJMHhhNgl1bnNpZ25lZCBsb25nCXVuc2lnbmVkIGxvbmcJc3RydWN0IHB0X3JlZ3MgKgktCS0Jbm90IGZvdW5kOgoxNjcJbm90IGltcGxlbWVudGVkCTB4YTcJLQktCS0JLQktCQoxNjgJc3lzX3BvbGwJMHhhOAlzdHJ1Y3QgcG9sbGZkIF9fdXNlciAqdWZkcwl1bnNpZ25lZCBpbnQgbmZkcwlsb25nIHRpbWVvdXQJLQktCWZzL3NlbGVjdC5jOjkxNQoxNjkJc3lzX25mc3NlcnZjdGwJMHhhOQlpbnQgY21kCXN0cnVjdCBuZnNjdGxfYXJnIF9fdXNlciAqYXJnCXZvaWQgX191c2VyICpyZXMJLQktCWZzL25mc2N0bC5jOjg2CjE3MAlzeXNfc2V0cmVzZ2lkMTYJMHhhYQlvbGRfZ2lkX3QgcmdpZAlvbGRfZ2lkX3QgZWdpZAlvbGRfZ2lkX3Qgc2dpZAktCS0Ja2VybmVsL3VpZDE2LmM6OTYKMTcxCXN5c19nZXRyZXNnaWQxNgkweGFiCW9sZF9naWRfdCBfX3VzZXIgKnJnaWQJb2xkX2dpZF90IF9fdXNlciAqZWdpZAlvbGRfZ2lkX3QgX191c2VyICpzZ2lkCS0JLQlrZXJuZWwvdWlkMTYuYzoxMDYKMTcyCXN5c19wcmN0bAkweGFjCWludCBvcHRpb24JdW5zaWduZWQgbG9uZyBhcmcyCXVuc2lnbmVkIGxvbmcgYXJnMwl1bnNpZ25lZCBsb25nIGFyZzQJdW5zaWduZWQgbG9uZyBhcmc1CWtlcm5lbC9zeXMuYzoxNDY2CjE3MwlzeXNfcnRfc2lncmV0dXJuCTB4YWQJc3RydWN0IHB0X3JlZ3MgKgktCS0JLQktCWFyY2gvYWxwaGEva2VybmVsL2VudHJ5LlM6NzcxCjE3NAlzeXNfcnRfc2lnYWN0aW9uCTB4YWUJaW50IHNpZwljb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uIF9fdXNlciAqYWN0CXN0cnVjdCBzaWdhY3Rpb24gX191c2VyICpvYWN0CXNpemVfdCBzaWdzZXRzaXplCS0Ja2VybmVsL3NpZ25hbC5jOjI2MjQKMTc1CXN5c19ydF9zaWdwcm9jbWFzawkweGFmCWludCBob3cJc2lnc2V0X3QgX191c2VyICpzZXQJc2lnc2V0X3QgX191c2VyICpvc2V0CXNpemVfdCBzaWdzZXRzaXplCS0Ja2VybmVsL3NpZ25hbC5jOjIxMTEKMTc2CXN5c19ydF9zaWdwZW5kaW5nCTB4YjAJc2lnc2V0X3QgX191c2VyICpzZXQJc2l6ZV90IHNpZ3NldHNpemUJLQktCS0Ja2VybmVsL3NpZ25hbC5jOjIxNzEKMTc3CXN5c19ydF9zaWd0aW1lZHdhaXQJMHhiMQljb25zdCBzaWdzZXRfdCBfX3VzZXIgKnV0aGVzZQlzaWdpbmZvX3QgX191c2VyICp1aW5mbwljb25zdCBzdHJ1Y3QgdGltZXNwZWMgX191c2VyICp1dHMJc2l6ZV90IHNpZ3NldHNpemUJLQlrZXJuZWwvc2lnbmFsLmM6MjI0MgoxNzgJc3lzX3J0X3NpZ3F1ZXVlaW5mbwkweGIyCWludCBwaWQJaW50IHNpZwlzaWdpbmZvX3QgX191c2VyICp1aW5mbwktCS0Ja2VybmVsL3NpZ25hbC5jOjI0MDQKMTc5CXN5c19ydF9zaWdzdXNwZW5kCTB4YjMJc2lnc2V0X3QgX191c2VyICp1bmV3c2V0CXNpemVfdCBzaWdzZXRzaXplCS0JLQktCWtlcm5lbC9zaWduYWwuYzoyNzEwCjE4MAlzeXNfcHJlYWQ2NAkweGI0CXVuc2lnbmVkIGludCBmZAljaGFyIF9fdXNlciAqYnVmCXNpemVfdCBjb3VudAlsb2ZmX3QgcG9zCS0Jbm90IGZvdW5kOgoxODEJc3lzX3B3cml0ZTY0CTB4YjUJdW5zaWduZWQgaW50IGZkCWNvbnN0IGNoYXIgX191c2VyICpidWYJc2l6ZV90IGNvdW50CWxvZmZfdCBwb3MJLQlub3QgZm91bmQ6CjE4MglzeXNfY2hvd24xNgkweGI2CWNvbnN0IGNoYXIgX191c2VyICpmaWxlbmFtZQlvbGRfdWlkX3QgdXNlcglvbGRfZ2lkX3QgZ3JvdXAJLQktCWtlcm5lbC91aWQxNi5jOjE5CjE4MwlzeXNfZ2V0Y3dkCTB4YjcJY2hhciBfX3VzZXIgKmJ1Zgl1bnNpZ25lZCBsb25nIHNpemUJLQktCS0JZnMvZGNhY2hlLmM6MjEwNAoxODQJc3lzX2NhcGdldAkweGI4CWNhcF91c2VyX2hlYWRlcl90IGhlYWRlcgljYXBfdXNlcl9kYXRhX3QgZGF0YXB0cgktCS0JLQlrZXJuZWwvY2FwYWJpbGl0eS5jOjE2MQoxODUJc3lzX2NhcHNldAkweGI5CWNhcF91c2VyX2hlYWRlcl90IGhlYWRlcgljb25zdCBjYXBfdXNlcl9kYXRhX3QgZGF0YQktCS0JLQlrZXJuZWwvY2FwYWJpbGl0eS5jOjIzNQoxODYJc3lzX3NpZ2FsdHN0YWNrCTB4YmEJY29uc3Qgc3RhY2tfdCBfX3VzZXIgKglzdGFja190IF9fdXNlciAqCXN0cnVjdCBwdF9yZWdzICoJLQktCWFyY2gvYWxwaGEva2VybmVsL3NpZ25hbC5jOjE5OQoxODcJc3lzX3NlbmRmaWxlCTB4YmIJaW50IG91dF9mZAlpbnQgaW5fZmQJb2ZmX3QgX191c2VyICpvZmZzZXQJc2l6ZV90IGNvdW50CS0JZnMvcmVhZF93cml0ZS5jOjg5NwoxODgJbm90IGltcGxlbWVudGVkCTB4YmMJLQktCS0JLQktCQoxODkJbm90IGltcGxlbWVudGVkCTB4YmQJLQktCS0JLQktCQoxOTAJc3lzX3Zmb3JrCTB4YmUJc3RydWN0IHB0X3JlZ3MgKgktCS0JLQktCWFyY2gvYWxwaGEva2VybmVsL2VudHJ5LlM6NzQ2CjE5MQlzeXNfZ2V0cmxpbWl0CTB4YmYJdW5zaWduZWQgaW50IHJlc291cmNlCXN0cnVjdCBybGltaXQgX191c2VyICpybGltCS0JLQktCWtlcm5lbC9zeXMuYzoxMjM3CjE5MglzeXNfbW1hcF9wZ29mZgkweGMwCS0JLQktCS0JLQltbS9tbWFwLmM6MTA5MQoxOTMJc3lzX3RydW5jYXRlNjQJMHhjMQljb25zdCBjaGFyIF9fdXNlciAqcGF0aAlsb2ZmX3QgbGVuZ3RoCS0JLQktCW5vdCBmb3VuZDoKMTk0CXN5c19mdHJ1bmNhdGU2NAkweGMyCXVuc2lnbmVkIGludCBmZAlsb2ZmX3QgbGVuZ3RoCS0JLQktCW5vdCBmb3VuZDoKMTk1CXN5c19zdGF0NjQJMHhjMwljaGFyIF9fdXNlciAqZmlsZW5hbWUJc3RydWN0IHN0YXQ2NCBfX3VzZXIgKnN0YXRidWYJLQktCS0JZnMvc3RhdC5jOjM1OAoxOTYJc3lzX2xzdGF0NjQJMHhjNAljaGFyIF9fdXNlciAqZmlsZW5hbWUJc3RydWN0IHN0YXQ2NCBfX3VzZXIgKnN0YXRidWYJLQktCS0JZnMvc3RhdC5jOjM2OQoxOTcJc3lzX2ZzdGF0NjQJMHhjNQl1bnNpZ25lZCBsb25nIGZkCXN0cnVjdCBzdGF0NjQgX191c2VyICpzdGF0YnVmCS0JLQktCWZzL3N0YXQuYzozODAKMTk4CXN5c19sY2hvd24JMHhjNgljb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUJdWlkX3QgdXNlcglnaWRfdCBncm91cAktCS0JZnMvb3Blbi5jOjU4MwoxOTkJc3lzX2dldHVpZAkweGM3CS0JLQktCS0JLQlrZXJuZWwvdGltZXIuYzoxMzU5CjIwMAlzeXNfZ2V0Z2lkCTB4YzgJLQktCS0JLQktCWtlcm5lbC90aW1lci5jOjEzNzEKMjAxCXN5c19nZXRldWlkCTB4YzkJLQktCS0JLQktCWtlcm5lbC90aW1lci5jOjEzNjUKMjAyCXN5c19nZXRlZ2lkCTB4Y2EJLQktCS0JLQktCWtlcm5lbC90aW1lci5jOjEzNzcKMjAzCXN5c19zZXRyZXVpZAkweGNiCXVpZF90IHJ1aWQJdWlkX3QgZXVpZAktCS0JLQlrZXJuZWwvc3lzLmM6NTk0CjIwNAlzeXNfc2V0cmVnaWQJMHhjYwlnaWRfdCByZ2lkCWdpZF90IGVnaWQJLQktCS0Ja2VybmVsL3N5cy5jOjQ4NAoyMDUJc3lzX2dldGdyb3VwcwkweGNkCWludCBnaWRzZXRzaXplCWdpZF90IF9fdXNlciAqZ3JvdXBsaXN0CS0JLQktCWtlcm5lbC9ncm91cHMuYzoyMDMKMjA2CXN5c19zZXRncm91cHMJMHhjZQlpbnQgZ2lkc2V0c2l6ZQlnaWRfdCBfX3VzZXIgKmdyb3VwbGlzdAktCS0JLQlrZXJuZWwvZ3JvdXBzLmM6MjMyCjIwNwlzeXNfZmNob3duCTB4Y2YJdW5zaWduZWQgaW50IGZkCXVpZF90IHVzZXIJZ2lkX3QgZ3JvdXAJLQktCWZzL29wZW4uYzo2MDIKMjA4CXN5c19zZXRyZXN1aWQJMHhkMAl1aWRfdCBydWlkCXVpZF90IGV1aWQJdWlkX3Qgc3VpZAktCS0Ja2VybmVsL3N5cy5jOjY5NgoyMDkJc3lzX2dldHJlc3VpZAkweGQxCXVpZF90IF9fdXNlciAqcnVpZAl1aWRfdCBfX3VzZXIgKmV1aWQJdWlkX3QgX191c2VyICpzdWlkCS0JLQlrZXJuZWwvc3lzLmM6NzQ2CjIxMAlzeXNfc2V0cmVzZ2lkCTB4ZDIJZ2lkX3QgcmdpZAlnaWRfdCBlZ2lkCWdpZF90IHNnaWQJLQktCWtlcm5lbC9zeXMuYzo3NjEKMjExCXN5c19nZXRyZXNnaWQJMHhkMwlnaWRfdCBfX3VzZXIgKnJnaWQJZ2lkX3QgX191c2VyICplZ2lkCWdpZF90IF9fdXNlciAqc2dpZAktCS0Ja2VybmVsL3N5cy5jOjgwMAoyMTIJc3lzX2Nob3duCTB4ZDQJY29uc3QgY2hhciBfX3VzZXIgKmZpbGVuYW1lCXVpZF90IHVzZXIJZ2lkX3QgZ3JvdXAJLQktCWZzL29wZW4uYzo1MzkKMjEzCXN5c19zZXR1aWQJMHhkNQl1aWRfdCB1aWQJLQktCS0JLQlrZXJuZWwvc3lzLmM6NjU1CjIxNAlzeXNfc2V0Z2lkCTB4ZDYJZ2lkX3QgZ2lkCS0JLQktCS0Ja2VybmVsL3N5cy5jOjUzMQoyMTUJc3lzX3NldGZzdWlkCTB4ZDcJdWlkX3QgdWlkCS0JLQktCS0Ja2VybmVsL3N5cy5jOjgxOQoyMTYJc3lzX3NldGZzZ2lkCTB4ZDgJZ2lkX3QgZ2lkCS0JLQktCS0Ja2VybmVsL3N5cy5jOjg1MgoyMTcJc3lzX3Bpdm90X3Jvb3QJMHhkOQljb25zdCBjaGFyIF9fdXNlciAqbmV3X3Jvb3QJY29uc3QgY2hhciBfX3VzZXIgKnB1dF9vbGQJLQktCS0JZnMvbmFtZXNwYWNlLmM6MjE4NAoyMTgJc3lzX21pbmNvcmUJMHhkYQl1bnNpZ25lZCBsb25nIHN0YXJ0CXNpemVfdCBsZW4JdW5zaWduZWQgY2hhciBfX3VzZXIgKiB2ZWMJLQktCW1tL21pbmNvcmUuYzoyNTYKMjE5CXN5c19tYWR2aXNlCTB4ZGIJdW5zaWduZWQgbG9uZyBzdGFydAlzaXplX3QgbGVuCWludCBiZWhhdmlvcgktCS0JbW0vbWFkdmlzZS5jOjMzNQoyMjAJc3lzX2dldGRlbnRzNjQJMHhkYwl1bnNpZ25lZCBpbnQgZmQJc3RydWN0IGxpbnV4X2RpcmVudDY0IF9fdXNlciAqZGlyZW50CXVuc2lnbmVkIGludCBjb3VudAktCS0JZnMvcmVhZGRpci5jOjI3MwoyMjEJc3lzX2ZjbnRsNjQJMHhkZAl1bnNpZ25lZCBpbnQgZmQJdW5zaWduZWQgaW50IGNtZAl1bnNpZ25lZCBsb25nIGFyZwktCS0JZnMvZmNudGwuYzo0NTIKMjIyCW5vdCBpbXBsZW1lbnRlZAkweGRlCS0JLQktCS0JLQkKMjIzCW5vdCBpbXBsZW1lbnRlZAkweGRmCS0JLQktCS0JLQkKMjI0CXN5c19nZXR0aWQJMHhlMAktCS0JLQktCS0Ja2VybmVsL3RpbWVyLmM6MTQ5MwoyMjUJc3lzX3JlYWRhaGVhZAkweGUxCWludCBmZAlsb2ZmX3Qgb2Zmc2V0CXNpemVfdCBjb3VudAktCS0Jbm90IGZvdW5kOgoyMjYJc3lzX3NldHhhdHRyCTB4ZTIJY29uc3QgY2hhciBfX3VzZXIgKnBhdGgJY29uc3QgY2hhciBfX3VzZXIgKm5hbWUJY29uc3Qgdm9pZCBfX3VzZXIgKnZhbHVlCXNpemVfdCBzaXplCWludCBmbGFncwlmcy94YXR0ci5jOjI3OQoyMjcJc3lzX2xzZXR4YXR0cgkweGUzCWNvbnN0IGNoYXIgX191c2VyICpwYXRoCWNvbnN0IGNoYXIgX191c2VyICpuYW1lCWNvbnN0IHZvaWQgX191c2VyICp2YWx1ZQlzaXplX3Qgc2l6ZQlpbnQgZmxhZ3MJZnMveGF0dHIuYzoyOTgKMjI4CXN5c19mc2V0eGF0dHIJMHhlNAlpbnQgZmQJY29uc3QgY2hhciBfX3VzZXIgKm5hbWUJY29uc3Qgdm9pZCBfX3VzZXIgKnZhbHVlCXNpemVfdCBzaXplCWludCBmbGFncwlmcy94YXR0ci5jOjMxNwoyMjkJc3lzX2dldHhhdHRyCTB4ZTUJY29uc3QgY2hhciBfX3VzZXIgKnBhdGgJY29uc3QgY2hhciBfX3VzZXIgKm5hbWUJdm9pZCBfX3VzZXIgKnZhbHVlCXNpemVfdCBzaXplCS0JZnMveGF0dHIuYzozNzYKMjMwCXN5c19sZ2V0eGF0dHIJMHhlNgljb25zdCBjaGFyIF9fdXNlciAqcGF0aAljb25zdCBjaGFyIF9fdXNlciAqbmFtZQl2b2lkIF9fdXNlciAqdmFsdWUJc2l6ZV90IHNpemUJLQlmcy94YXR0ci5jOjM5MAoyMzEJc3lzX2ZnZXR4YXR0cgkweGU3CWludCBmZAljb25zdCBjaGFyIF9fdXNlciAqbmFtZQl2b2lkIF9fdXNlciAqdmFsdWUJc2l6ZV90IHNpemUJLQlmcy94YXR0ci5jOjQwNAoyMzIJc3lzX2xpc3R4YXR0cgkweGU4CWNvbnN0IGNoYXIgX191c2VyICpwYXRoCWNoYXIgX191c2VyICpsaXN0CXNpemVfdCBzaXplCS0JLQlmcy94YXR0ci5jOjQ0OQoyMzMJc3lzX2xsaXN0eGF0dHIJMHhlOQljb25zdCBjaGFyIF9fdXNlciAqcGF0aAljaGFyIF9fdXNlciAqbGlzdAlzaXplX3Qgc2l6ZQktCS0JZnMveGF0dHIuYzo0NjMKMjM0CXN5c19mbGlzdHhhdHRyCTB4ZWEJaW50IGZkCWNoYXIgX191c2VyICpsaXN0CXNpemVfdCBzaXplCS0JLQlmcy94YXR0ci5jOjQ3NwoyMzUJc3lzX3JlbW92ZXhhdHRyCTB4ZWIJY29uc3QgY2hhciBfX3VzZXIgKnBhdGgJY29uc3QgY2hhciBfX3VzZXIgKm5hbWUJLQktCS0JZnMveGF0dHIuYzo1MDkKMjM2CXN5c19scmVtb3ZleGF0dHIJMHhlYwljb25zdCBjaGFyIF9fdXNlciAqcGF0aAljb25zdCBjaGFyIF9fdXNlciAqbmFtZQktCS0JLQlmcy94YXR0ci5jOjUyNwoyMzcJc3lzX2ZyZW1vdmV4YXR0cgkweGVkCWludCBmZAljb25zdCBjaGFyIF9fdXNlciAqbmFtZQktCS0JLQlmcy94YXR0ci5jOjU0NQoyMzgJc3lzX3RraWxsCTB4ZWUJaW50IHBpZAlpbnQgc2lnCS0JLQktCWtlcm5lbC9zaWduYWwuYzoyMzk1CjIzOQlzeXNfc2VuZGZpbGU2NAkweGVmCWludCBvdXRfZmQJaW50IGluX2ZkCWxvZmZfdCBfX3VzZXIgKm9mZnNldAlzaXplX3QgY291bnQJLQlmcy9yZWFkX3dyaXRlLmM6OTE2CjI0MAlzeXNfZnV0ZXgJMHhmMAktCS0JLQktCS0Ja2VybmVsL2Z1dGV4LmM6MjYwNQoyNDEJc3lzX3NjaGVkX3NldGFmZmluaXR5CTB4ZjEJcGlkX3QgcGlkCXVuc2lnbmVkIGludCBsZW4JdW5zaWduZWQgbG9uZyBfX3VzZXIgKnVzZXJfbWFza19wdHIJLQktCWtlcm5lbC9zY2hlZC5jOjQ3NjUKMjQyCXN5c19zY2hlZF9nZXRhZmZpbml0eQkweGYyCXBpZF90IHBpZAl1bnNpZ25lZCBpbnQgbGVuCXVuc2lnbmVkIGxvbmcgX191c2VyICp1c2VyX21hc2tfcHRyCS0JLQlrZXJuZWwvc2NoZWQuYzo0ODE3CjI0MwlzeXNfc2V0X3RocmVhZF9hcmVhCTB4ZjMJc3RydWN0IHVzZXJfZGVzYyBfX3VzZXIgKgktCS0JLQktCWFyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbC5jOjIyMgoyNDQJc3lzX2dldF90aHJlYWRfYXJlYQkweGY0CXN0cnVjdCB1c2VyX2Rlc2MgX191c2VyICoJLQktCS0JLQlub3QgZm91bmQ6CjI0NQlzeXNfaW9fc2V0dXAJMHhmNQl1bnNpZ25lZCBucl9yZXFzCWFpb19jb250ZXh0X3QgX191c2VyICpjdHgJLQktCS0JZnMvYWlvLmM6MTI0NQoyNDYJc3lzX2lvX2Rlc3Ryb3kJMHhmNglhaW9fY29udGV4dF90IGN0eAktCS0JLQktCWZzL2Fpby5jOjEyODMKMjQ3CXN5c19pb19nZXRldmVudHMJMHhmNwlhaW9fY29udGV4dF90IGN0eF9pZAlsb25nIG1pbl9ucglsb25nIG5yCXN0cnVjdCBpb19ldmVudCBfX3VzZXIgKmV2ZW50cwlzdHJ1Y3QgdGltZXNwZWMgX191c2VyICp0aW1lb3V0CWZzL2Fpby5jOjE4MDgKMjQ4CXN5c19pb19zdWJtaXQJMHhmOAlhaW9fY29udGV4dF90CWxvbmcJc3RydWN0IGlvY2IgX191c2VyICogX191c2VyICoJLQktCWZzL2Fpby5jOjE3MTEKMjQ5CXN5c19pb19jYW5jZWwJMHhmOQlhaW9fY29udGV4dF90IGN0eF9pZAlzdHJ1Y3QgaW9jYiBfX3VzZXIgKmlvY2IJc3RydWN0IGlvX2V2ZW50IF9fdXNlciAqcmVzdWx0CS0JLQlmcy9haW8uYzoxNzQ2CjI1MAlzeXNfZmFkdmlzZTY0CTB4ZmEJaW50IGZkCWxvZmZfdCBvZmZzZXQJc2l6ZV90IGxlbglpbnQgYWR2aWNlCS0Jbm90IGZvdW5kOgoyNTEJbm90IGltcGxlbWVudGVkCTB4ZmIJLQktCS0JLQktCQoyNTIJc3lzX2V4aXRfZ3JvdXAJMHhmYwlpbnQgZXJyb3JfY29kZQktCS0JLQktCWtlcm5lbC9leGl0LmM6MTA4NwoyNTMJc3lzX2xvb2t1cF9kY29va2llCTB4ZmQJdTY0IGNvb2tpZTY0CWNoYXIgX191c2VyICpidWYJc2l6ZV90IGxlbgktCS0Jbm90IGZvdW5kOgoyNTQJc3lzX2Vwb2xsX2NyZWF0ZQkweGZlCWludCBzaXplCS0JLQktCS0JZnMvZXZlbnRwb2xsLmM6MTIxNQoyNTUJc3lzX2Vwb2xsX2N0bAkweGZmCWludCBlcGZkCWludCBvcAlpbnQgZmQJc3RydWN0IGVwb2xsX2V2ZW50IF9fdXNlciAqZXZlbnQJLQlmcy9ldmVudHBvbGwuYzoxMjI4CjI1NglzeXNfZXBvbGxfd2FpdAkweDEwMAlpbnQgZXBmZAlzdHJ1Y3QgZXBvbGxfZXZlbnQgX191c2VyICpldmVudHMJaW50IG1heGV2ZW50cwlpbnQgdGltZW91dAktCWZzL2V2ZW50cG9sbC5jOjEzMjAKMjU3CXN5c19yZW1hcF9maWxlX3BhZ2VzCTB4MTAxCXVuc2lnbmVkIGxvbmcgc3RhcnQJdW5zaWduZWQgbG9uZyBzaXplCXVuc2lnbmVkIGxvbmcgcHJvdAl1bnNpZ25lZCBsb25nIHBnb2ZmCXVuc2lnbmVkIGxvbmcgZmxhZ3MJbW0vZnJlbWFwLmM6MTIzCjI1OAlzeXNfc2V0X3RpZF9hZGRyZXNzCTB4MTAyCWludCBfX3VzZXIgKnRpZHB0cgktCS0JLQktCWtlcm5lbC9mb3JrLmM6OTIwCjI1OQlzeXNfdGltZXJfY3JlYXRlCTB4MTAzCWNsb2NraWRfdCB3aGljaF9jbG9jawlzdHJ1Y3Qgc2lnZXZlbnQgX191c2VyICp0aW1lcl9ldmVudF9zcGVjCXRpbWVyX3QgX191c2VyICogY3JlYXRlZF90aW1lcl9pZAktCS0Ja2VybmVsL3Bvc2l4LXRpbWVycy5jOjUyMgoyNjAJc3lzX3RpbWVyX3NldHRpbWUJMHgxMDQJdGltZXJfdCB0aW1lcl9pZAlpbnQgZmxhZ3MJY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMgX191c2VyICpuZXdfc2V0dGluZwlzdHJ1Y3QgaXRpbWVyc3BlYyBfX3VzZXIgKm9sZF9zZXR0aW5nCS0Ja2VybmVsL3Bvc2l4LXRpbWVycy5jOjgwMAoyNjEJc3lzX3RpbWVyX2dldHRpbWUJMHgxMDUJdGltZXJfdCB0aW1lcl9pZAlzdHJ1Y3QgaXRpbWVyc3BlYyBfX3VzZXIgKnNldHRpbmcJLQktCS0Ja2VybmVsL3Bvc2l4LXRpbWVycy5jOjcwMgoyNjIJc3lzX3RpbWVyX2dldG92ZXJydW4JMHgxMDYJdGltZXJfdCB0aW1lcl9pZAktCS0JLQktCWtlcm5lbC9wb3NpeC10aW1lcnMuYzo3MzIKMjYzCXN5c190aW1lcl9kZWxldGUJMHgxMDcJdGltZXJfdCB0aW1lcl9pZAktCS0JLQktCWtlcm5lbC9wb3NpeC10aW1lcnMuYzo4NTUKMjY0CXN5c19jbG9ja19zZXR0aW1lCTB4MTA4CWNsb2NraWRfdCB3aGljaF9jbG9jawljb25zdCBzdHJ1Y3QgdGltZXNwZWMgX191c2VyICp0cAktCS0JLQlrZXJuZWwvcG9zaXgtdGltZXJzLmM6OTQxCjI2NQlzeXNfY2xvY2tfZ2V0dGltZQkweDEwOQljbG9ja2lkX3Qgd2hpY2hfY2xvY2sJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqdHAJLQktCS0Ja2VybmVsL3Bvc2l4LXRpbWVycy5jOjk1NAoyNjYJc3lzX2Nsb2NrX2dldHJlcwkweDEwYQljbG9ja2lkX3Qgd2hpY2hfY2xvY2sJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqdHAJLQktCS0Ja2VybmVsL3Bvc2l4LXRpbWVycy5jOjk3MQoyNjcJc3lzX2Nsb2NrX25hbm9zbGVlcAkweDEwYgljbG9ja2lkX3Qgd2hpY2hfY2xvY2sJaW50IGZsYWdzCWNvbnN0IHN0cnVjdCB0aW1lc3BlYyBfX3VzZXIgKnJxdHAJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqcm10cAktCWtlcm5lbC9wb3NpeC10aW1lcnMuYzoxMDAxCjI2OAlzeXNfc3RhdGZzNjQJMHgxMGMJY29uc3QgY2hhciBfX3VzZXIgKnBhdGgJc2l6ZV90IHN6CXN0cnVjdCBzdGF0ZnM2NCBfX3VzZXIgKmJ1ZgktCS0JZnMvc3RhdGZzLmM6MTE4CjI2OQlzeXNfZnN0YXRmczY0CTB4MTBkCXVuc2lnbmVkIGludCBmZAlzaXplX3Qgc3oJc3RydWN0IHN0YXRmczY0IF9fdXNlciAqYnVmCS0JLQlmcy9zdGF0ZnMuYzoxNTQKMjcwCXN5c190Z2tpbGwJMHgxMGUJaW50IHRnaWQJaW50IHBpZAlpbnQgc2lnCS0JLQlrZXJuZWwvc2lnbmFsLmM6MjM4MwoyNzEJc3lzX3V0aW1lcwkweDEwZgljaGFyIF9fdXNlciAqZmlsZW5hbWUJc3RydWN0IHRpbWV2YWwgX191c2VyICp1dGltZXMJLQktCS0JZnMvdXRpbWVzLmM6MjE5CjI3MglzeXNfZmFkdmlzZTY0XzY0CTB4MTEwCWludCBmZAlsb2ZmX3Qgb2Zmc2V0CWxvZmZfdCBsZW4JaW50IGFkdmljZQktCW5vdCBmb3VuZDoKMjczCW5vdCBpbXBsZW1lbnRlZAkweDExMQktCS0JLQktCS0JCjI3NAlzeXNfbWJpbmQJMHgxMTIJLQktCS0JLQktCW1tL21lbXBvbGljeS5jOjEyMzIKMjc1CXN5c19nZXRfbWVtcG9saWN5CTB4MTEzCWludCBfX3VzZXIgKnBvbGljeQl1bnNpZ25lZCBsb25nIF9fdXNlciAqbm1hc2sJdW5zaWduZWQgbG9uZyBtYXhub2RlCXVuc2lnbmVkIGxvbmcgYWRkcgl1bnNpZ25lZCBsb25nIGZsYWdzCW1tL21lbXBvbGljeS5jOjEzNDgKMjc2CXN5c19zZXRfbWVtcG9saWN5CTB4MTE0CWludCBtb2RlCXVuc2lnbmVkIGxvbmcgX191c2VyICpubWFzawl1bnNpZ25lZCBsb25nIG1heG5vZGUJLQktCW1tL21lbXBvbGljeS5jOjEyNTQKMjc3CXN5c19tcV9vcGVuCTB4MTE1CWNvbnN0IGNoYXIgX191c2VyICpuYW1lCWludCBvZmxhZwltb2RlX3QgbW9kZQlzdHJ1Y3QgbXFfYXR0ciBfX3VzZXIgKmF0dHIJLQlpcGMvbXF1ZXVlLmM6NjczCjI3OAlzeXNfbXFfdW5saW5rCTB4MTE2CWNvbnN0IGNoYXIgX191c2VyICpuYW1lCS0JLQktCS0JaXBjL21xdWV1ZS5jOjc0NgoyNzkJc3lzX21xX3RpbWVkc2VuZAkweDExNwltcWRfdCBtcWRlcwljb25zdCBjaGFyIF9fdXNlciAqbXNnX3B0cglzaXplX3QgbXNnX2xlbgl1bnNpZ25lZCBpbnQgbXNnX3ByaW8JY29uc3Qgc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqYWJzX3RpbWVvdXQJaXBjL21xdWV1ZS5jOjg0MAoyODAJc3lzX21xX3RpbWVkcmVjZWl2ZQkweDExOAltcWRfdCBtcWRlcwljaGFyIF9fdXNlciAqbXNnX3B0cglzaXplX3QgbXNnX2xlbgl1bnNpZ25lZCBpbnQgX191c2VyICptc2dfcHJpbwljb25zdCBzdHJ1Y3QgdGltZXNwZWMgX191c2VyICphYnNfdGltZW91dAlpcGMvbXF1ZXVlLmM6OTM0CjI4MQlzeXNfbXFfbm90aWZ5CTB4MTE5CW1xZF90IG1xZGVzCWNvbnN0IHN0cnVjdCBzaWdldmVudCBfX3VzZXIgKm5vdGlmaWNhdGlvbgktCS0JLQlpcGMvbXF1ZXVlLmM6MTAyMwoyODIJc3lzX21xX2dldHNldGF0dHIJMHgxMWEJbXFkX3QgbXFkZXMJY29uc3Qgc3RydWN0IG1xX2F0dHIgX191c2VyICptcXN0YXQJc3RydWN0IG1xX2F0dHIgX191c2VyICpvbXFzdGF0CS0JLQlpcGMvbXF1ZXVlLmM6MTE1NAoyODMJc3lzX2tleGVjX2xvYWQJMHgxMWIJdW5zaWduZWQgbG9uZyBlbnRyeQl1bnNpZ25lZCBsb25nIG5yX3NlZ21lbnRzCXN0cnVjdCBrZXhlY19zZWdtZW50IF9fdXNlciAqc2VnbWVudHMJdW5zaWduZWQgbG9uZyBmbGFncwktCWtlcm5lbC9rZXhlYy5jOjkzOQoyODQJc3lzX3dhaXRpZAkweDExYwlpbnQgd2hpY2gJcGlkX3QgcGlkCXN0cnVjdCBzaWdpbmZvIF9fdXNlciAqaW5mb3AJaW50IG9wdGlvbnMJc3RydWN0IHJ1c2FnZSBfX3VzZXIgKnJ1CWtlcm5lbC9leGl0LmM6MTY1NQoyODUJbm90IGltcGxlbWVudGVkCTB4MTFkCS0JLQktCS0JLQkKMjg2CXN5c19hZGRfa2V5CTB4MTFlCWNvbnN0IGNoYXIgX191c2VyICpfdHlwZQljb25zdCBjaGFyIF9fdXNlciAqX2Rlc2NyaXB0aW9uCWNvbnN0IHZvaWQgX191c2VyICpfcGF5bG9hZAlzaXplX3QgcGxlbglrZXlfc2VyaWFsX3QgZGVzdHJpbmdpZAlzZWN1cml0eS9rZXlzL2tleWN0bC5jOjU3CjI4NwlzeXNfcmVxdWVzdF9rZXkJMHgxMWYJY29uc3QgY2hhciBfX3VzZXIgKl90eXBlCWNvbnN0IGNoYXIgX191c2VyICpfZGVzY3JpcHRpb24JY29uc3QgY2hhciBfX3VzZXIgKl9jYWxsb3V0X2luZm8Ja2V5X3NlcmlhbF90IGRlc3RyaW5naWQJLQlzZWN1cml0eS9rZXlzL2tleWN0bC5jOjE0OQoyODgJc3lzX2tleWN0bAkweDEyMAlpbnQgY21kCXVuc2lnbmVkIGxvbmcgYXJnMgl1bnNpZ25lZCBsb25nIGFyZzMJdW5zaWduZWQgbG9uZyBhcmc0CXVuc2lnbmVkIGxvbmcgYXJnNQlzZWN1cml0eS9rZXlzL2tleWN0bC5jOjEzMzgKMjg5CXN5c19pb3ByaW9fc2V0CTB4MTIxCWludCB3aGljaAlpbnQgd2hvCWludCBpb3ByaW8JLQktCWZzL2lvcHJpby5jOjc2CjI5MAlzeXNfaW9wcmlvX2dldAkweDEyMglpbnQgd2hpY2gJaW50IHdobwktCS0JLQlmcy9pb3ByaW8uYzoxOTIKMjkxCXN5c19pbm90aWZ5X2luaXQJMHgxMjMJLQktCS0JLQktCWZzL25vdGlmeS9pbm90aWZ5L2lub3RpZnlfdXNlci5jOjY4MAoyOTIJc3lzX2lub3RpZnlfYWRkX3dhdGNoCTB4MTI0CWludCBmZAljb25zdCBjaGFyIF9fdXNlciAqcGF0aAl1MzIgbWFzawktCS0JZnMvbm90aWZ5L2lub3RpZnkvaW5vdGlmeV91c2VyLmM6Njg1CjI5MwlzeXNfaW5vdGlmeV9ybV93YXRjaAkweDEyNQlpbnQgZmQJX19zMzIgd2QJLQktCS0JZnMvbm90aWZ5L2lub3RpZnkvaW5vdGlmeV91c2VyLmM6NzI2CjI5NAlzeXNfbWlncmF0ZV9wYWdlcwkweDEyNglwaWRfdCBwaWQJdW5zaWduZWQgbG9uZyBtYXhub2RlCWNvbnN0IHVuc2lnbmVkIGxvbmcgX191c2VyICpmcm9tCWNvbnN0IHVuc2lnbmVkIGxvbmcgX191c2VyICp0bwktCW1tL21lbXBvbGljeS5jOjEyNzMKMjk1CXN5c19vcGVuYXQJMHgxMjcJaW50IGRmZAljb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUJaW50IGZsYWdzCWludCBtb2RlCS0JZnMvb3Blbi5jOjkxMwoyOTYJc3lzX21rZGlyYXQJMHgxMjgJaW50IGRmZAljb25zdCBjaGFyIF9fdXNlciAqIHBhdGhuYW1lCWludCBtb2RlCS0JLQlmcy9uYW1laS5jOjIwOTMKMjk3CXN5c19ta25vZGF0CTB4MTI5CWludCBkZmQJY29uc3QgY2hhciBfX3VzZXIgKiBmaWxlbmFtZQlpbnQgbW9kZQl1bnNpZ25lZCBkZXYJLQlmcy9uYW1laS5jOjIwMTIKMjk4CXN5c19mY2hvd25hdAkweDEyYQlpbnQgZGZkCWNvbnN0IGNoYXIgX191c2VyICpmaWxlbmFtZQl1aWRfdCB1c2VyCWdpZF90IGdyb3VwCWludCBmbGFnCWZzL29wZW4uYzo1NTgKMjk5CXN5c19mdXRpbWVzYXQJMHgxMmIJaW50IGRmZAljaGFyIF9fdXNlciAqZmlsZW5hbWUJc3RydWN0IHRpbWV2YWwgX191c2VyICp1dGltZXMJLQktCWZzL3V0aW1lcy5jOjE5MQozMDAJc3lzX2ZzdGF0YXQ2NAkweDEyYwlpbnQgZGZkCWNoYXIgX191c2VyICpmaWxlbmFtZQlzdHJ1Y3Qgc3RhdDY0IF9fdXNlciAqc3RhdGJ1ZglpbnQgZmxhZwktCWZzL3N0YXQuYzozOTEKMzAxCXN5c191bmxpbmthdAkweDEyZAlpbnQgZGZkCWNvbnN0IGNoYXIgX191c2VyICogcGF0aG5hbWUJaW50IGZsYWcJLQktCWZzL25hbWVpLmM6MjM0MQozMDIJc3lzX3JlbmFtZWF0CTB4MTJlCWludCBvbGRkZmQJY29uc3QgY2hhciBfX3VzZXIgKiBvbGRuYW1lCWludCBuZXdkZmQJY29uc3QgY2hhciBfX3VzZXIgKiBuZXduYW1lCS0JZnMvbmFtZWkuYzoyNjcxCjMwMwlzeXNfbGlua2F0CTB4MTJmCWludCBvbGRkZmQJY29uc3QgY2hhciBfX3VzZXIgKm9sZG5hbWUJaW50IG5ld2RmZAljb25zdCBjaGFyIF9fdXNlciAqbmV3bmFtZQlpbnQgZmxhZ3MJZnMvbmFtZWkuYzoyNDcwCjMwNAlzeXNfc3ltbGlua2F0CTB4MTMwCWNvbnN0IGNoYXIgX191c2VyICogb2xkbmFtZQlpbnQgbmV3ZGZkCWNvbnN0IGNoYXIgX191c2VyICogbmV3bmFtZQktCS0JZnMvbmFtZWkuYzoyMzc3CjMwNQlzeXNfcmVhZGxpbmthdAkweDEzMQlpbnQgZGZkCWNvbnN0IGNoYXIgX191c2VyICpwYXRoCWNoYXIgX191c2VyICpidWYJaW50IGJ1ZnNpegktCWZzL3N0YXQuYzoyODQKMzA2CXN5c19mY2htb2RhdAkweDEzMglpbnQgZGZkCWNvbnN0IGNoYXIgX191c2VyICogZmlsZW5hbWUJbW9kZV90IG1vZGUJLQktCWZzL29wZW4uYzo0NzQKMzA3CXN5c19mYWNjZXNzYXQJMHgxMzMJaW50IGRmZAljb25zdCBjaGFyIF9fdXNlciAqZmlsZW5hbWUJaW50IG1vZGUJLQktCWZzL29wZW4uYzoyODYKMzA4CXN5c19wc2VsZWN0NgkweDEzNAktCS0JLQktCS0JZnMvc2VsZWN0LmM6Njc1CjMwOQlzeXNfcHBvbGwJMHgxMzUJc3RydWN0IHBvbGxmZCBfX3VzZXIgKnVmZHMJdW5zaWduZWQgaW50IG5mZHMJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqdHNwCWNvbnN0IHNpZ3NldF90IF9fdXNlciAqc2lnbWFzawlzaXplX3Qgc2lnc2V0c2l6ZQlmcy9zZWxlY3QuYzo5NTAKMzEwCXN5c191bnNoYXJlCTB4MTM2CXVuc2lnbmVkIGxvbmcgdW5zaGFyZV9mbGFncwktCS0JLQktCWtlcm5lbC9mb3JrLmM6MTYyNAozMTEJc3lzX3NldF9yb2J1c3RfbGlzdAkweDEzNwlzdHJ1Y3Qgcm9idXN0X2xpc3RfaGVhZCBfX3VzZXIgKmhlYWQJc2l6ZV90IGxlbgktCS0JLQlrZXJuZWwvZnV0ZXguYzoyMzUxCjMxMglzeXNfZ2V0X3JvYnVzdF9saXN0CTB4MTM4CWludCBwaWQJc3RydWN0IHJvYnVzdF9saXN0X2hlYWQgX191c2VyICogX191c2VyICpoZWFkX3B0cglzaXplX3QgX191c2VyICpsZW5fcHRyCS0JLQlrZXJuZWwvZnV0ZXguYzoyMzczCjMxMwlzeXNfc3BsaWNlCTB4MTM5CS0JLQktCS0JLQlmcy9zcGxpY2UuYzoxNzE4CjMxNAlzeXNfc3luY19maWxlX3JhbmdlCTB4MTNhCWludCBmZAlsb2ZmX3Qgb2Zmc2V0CWxvZmZfdCBuYnl0ZXMJdW5zaWduZWQgaW50IGZsYWdzCS0Jbm90IGZvdW5kOgozMTUJc3lzX3RlZQkweDEzYglpbnQgZmRpbglpbnQgZmRvdXQJc2l6ZV90IGxlbgl1bnNpZ25lZCBpbnQgZmxhZ3MJLQlmcy9zcGxpY2UuYzoyMDYxCjMxNglzeXNfdm1zcGxpY2UJMHgxM2MJaW50IGZkCWNvbnN0IHN0cnVjdCBpb3ZlYyBfX3VzZXIgKmlvdgl1bnNpZ25lZCBsb25nIG5yX3NlZ3MJdW5zaWduZWQgaW50IGZsYWdzCS0JZnMvc3BsaWNlLmM6MTY5MgozMTcJc3lzX21vdmVfcGFnZXMJMHgxM2QJLQktCS0JLQktCW1tL21pZ3JhdGUuYzoxMDc1CjMxOAlzeXNfZ2V0Y3B1CTB4MTNlCXVuc2lnbmVkIF9fdXNlciAqY3B1CXVuc2lnbmVkIF9fdXNlciAqbm9kZQlzdHJ1Y3QgZ2V0Y3B1X2NhY2hlIF9fdXNlciAqY2FjaGUJLQktCWtlcm5lbC9zeXMuYzoxNjIxCjMxOQlzeXNfZXBvbGxfcHdhaXQJMHgxM2YJLQktCS0JLQktCWZzL2V2ZW50cG9sbC5jOjEzNzMKMzIwCXN5c191dGltZW5zYXQJMHgxNDAJaW50IGRmZAljaGFyIF9fdXNlciAqZmlsZW5hbWUJc3RydWN0IHRpbWVzcGVjIF9fdXNlciAqdXRpbWVzCWludCBmbGFncwktCWZzL3V0aW1lcy5jOjE3MwozMjEJc3lzX3NpZ25hbGZkCTB4MTQxCWludCB1ZmQJc2lnc2V0X3QgX191c2VyICp1c2VyX21hc2sJc2l6ZV90IHNpemVtYXNrCS0JLQlmcy9zaWduYWxmZC5jOjI2NQozMjIJc3lzX3RpbWVyZmRfY3JlYXRlCTB4MTQyCWludCBjbG9ja2lkCWludCBmbGFncwktCS0JLQlmcy90aW1lcmZkLmM6MTY0CjMyMwlzeXNfZXZlbnRmZAkweDE0Mwl1bnNpZ25lZCBpbnQgY291bnQJLQktCS0JLQlmcy9ldmVudGZkLmM6NDM0CjMyNAlzeXNfZmFsbG9jYXRlCTB4MTQ0CWludCBmZAlpbnQgbW9kZQlsb2ZmX3Qgb2Zmc2V0CWxvZmZfdCBsZW4JLQlub3QgZm91bmQ6CjMyNQlzeXNfdGltZXJmZF9zZXR0aW1lCTB4MTQ1CWludCB1ZmQJaW50IGZsYWdzCWNvbnN0IHN0cnVjdCBpdGltZXJzcGVjIF9fdXNlciAqdXRtcglzdHJ1Y3QgaXRpbWVyc3BlYyBfX3VzZXIgKm90bXIJLQlmcy90aW1lcmZkLmM6MTk0CjMyNglzeXNfdGltZXJmZF9nZXR0aW1lCTB4MTQ2CWludCB1ZmQJc3RydWN0IGl0aW1lcnNwZWMgX191c2VyICpvdG1yCS0JLQktCWZzL3RpbWVyZmQuYzoyNTIKMzI3CXN5c19zaWduYWxmZDQJMHgxNDcJaW50IHVmZAlzaWdzZXRfdCBfX3VzZXIgKnVzZXJfbWFzawlzaXplX3Qgc2l6ZW1hc2sJaW50IGZsYWdzCS0JZnMvc2lnbmFsZmQuYzoyMTEKMzI4CXN5c19ldmVudGZkMgkweDE0OAl1bnNpZ25lZCBpbnQgY291bnQJaW50IGZsYWdzCS0JLQktCWZzL2V2ZW50ZmQuYzo0MDkKMzI5CXN5c19lcG9sbF9jcmVhdGUxCTB4MTQ5CWludCBmbGFncwktCS0JLQktCWZzL2V2ZW50cG9sbC5jOjExODcKMzMwCXN5c19kdXAzCTB4MTRhCXVuc2lnbmVkIGludCBvbGRmZAl1bnNpZ25lZCBpbnQgbmV3ZmQJaW50IGZsYWdzCS0JLQlmcy9mY250bC5jOjUzCjMzMQlzeXNfcGlwZTIJMHgxNGIJaW50IF9fdXNlciAqZmlsZGVzCWludCBmbGFncwktCS0JLQlmcy9waXBlLmM6MTEwMQozMzIJc3lzX2lub3RpZnlfaW5pdDEJMHgxNGMJaW50IGZsYWdzCS0JLQktCS0JZnMvbm90aWZ5L2lub3RpZnkvaW5vdGlmeV91c2VyLmM6NjQwCjMzMwlzeXNfcHJlYWR2CTB4MTRkCXVuc2lnbmVkIGxvbmcgZmQJY29uc3Qgc3RydWN0IGlvdmVjIF9fdXNlciAqdmVjCXVuc2lnbmVkIGxvbmcgdmxlbgl1bnNpZ25lZCBsb25nIHBvc19sCXVuc2lnbmVkIGxvbmcgcG9zX2gJZnMvcmVhZF93cml0ZS5jOjc1OQozMzQJc3lzX3B3cml0ZXYJMHgxNGUJdW5zaWduZWQgbG9uZyBmZAljb25zdCBzdHJ1Y3QgaW92ZWMgX191c2VyICp2ZWMJdW5zaWduZWQgbG9uZyB2bGVuCXVuc2lnbmVkIGxvbmcgcG9zX2wJdW5zaWduZWQgbG9uZyBwb3NfaAlmcy9yZWFkX3dyaXRlLmM6Nzg0CjMzNQlzeXNfcnRfdGdzaWdxdWV1ZWluZm8JMHgxNGYJcGlkX3QgdGdpZAlwaWRfdCBwaWQJaW50IHNpZwlzaWdpbmZvX3QgX191c2VyICp1aW5mbwktCWtlcm5lbC9zaWduYWwuYzoyNDM3CjMzNglzeXNfcGVyZl9ldmVudF9vcGVuCTB4MTUwCXN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgX191c2VyICphdHRyX3VwdHIJcGlkX3QgcGlkCWludCBjcHUJaW50IGdyb3VwX2ZkCXVuc2lnbmVkIGxvbmcgZmxhZ3MJa2VybmVsL3BlcmZfZXZlbnQuYzo1MDY1CjMzNwlzeXNfcmVjdm1tc2cJMHgxNTEJaW50IGZkCXN0cnVjdCBtbXNnaGRyIF9fdXNlciAqbXNnCXVuc2lnbmVkIGludCB2bGVuCXVuc2lnbmVkIGZsYWdzCXN0cnVjdCB0aW1lc3BlYyBfX3VzZXIgKnRpbWVvdXQJbmV0L3NvY2tldC5jOjIxNjgK 2 | -------------------------------------------------------------------------------- /syscall_ref.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # A simple console interface for SYSCALL Referencing 4 | # by: @_x90__ 5 | # 6 | # Thanks must go out to http://syscalls.kernelgrok.com/ as 7 | # the data for sys call references has come from this site! 8 | # (Greg Ose) 9 | # 10 | # It has been created so that if you are without internet connection 11 | # Or you simply wish to reference syscalls without a browser 12 | # you can do so with your command line. 13 | # 14 | ########################################################### 15 | 16 | import sys 17 | 18 | def banner(): 19 | print "+======> Unix 32_bit syscall reference <======+" 20 | print "________________________________________ ~\\x90__" 21 | 22 | columns = ["#", "Name", "eax", "ebx", "ecx", "edx", "esi", "edi", "Definition"] 23 | names = [] 24 | f = open("syscall_data.txt", "r") 25 | data = f.read() 26 | f.close() 27 | raw = data.decode("base64") 28 | raw_newline = raw.split("\n") 29 | raw_split = [] 30 | 31 | for i in raw_newline: 32 | raw_split.append(i.split("\t")) 33 | 34 | raw_split.pop(len(raw_split)-1) 35 | for i in raw_split: 36 | names.append(i[1]) 37 | 38 | def get_sys(int, sys_call, index): 39 | print "\n" 40 | if int == -1: 41 | count = 0 42 | for i in raw_split[sys_call]: 43 | print "\033[1;94m"+columns[count] + "\033[0m : " + i 44 | count = count + 1 45 | else: 46 | count = 0 47 | for i in raw_split[index]: 48 | print "\033[1;94m"+columns[count] + "\033[0m : " + i 49 | count = count + 1 50 | 51 | 52 | def do_console(): 53 | 54 | while True: 55 | sys = raw_input("\033[1;92msyscall # or alias #\033[0m ") 56 | count = 0 57 | 58 | try: 59 | if int(sys) >= 0 and int(sys) < 338: 60 | get_sys(-1, int(sys), -1) 61 | 62 | except: 63 | for i in names: 64 | if sys in i: 65 | get_sys(count, sys, count) 66 | count = count + 1 67 | 68 | 69 | banner() 70 | do_console() 71 | --------------------------------------------------------------------------------