[
  {
    "path": "LICENSE",
    "content": "GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. [http://fsf.org/]\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    {one line to give the program's name and a brief idea of what it does.}\n    Copyright (C) {year}  {fullname}\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see [http://www.gnu.org/licenses/].\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    LinuxQuestions  Copyright (C) 2014  Philo\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n[http://www.gnu.org/licenses/].\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n[http://www.gnu.org/philosophy/why-not-lgpl.html]."
  },
  {
    "path": "PS1.md",
    "content": "PS1=\"\\[\\033[32m\\]\\w\\[\\033[0m\\]\\n[\\[\\e[32m\\]#\\##\\[\\e[31m\\]\\u@\\[\\e[36m\\]\\h]\\$\\[\\e[m\\] \"\n\n多行的，第一行显示路径\n\n\nPS1=\"[\\[\\e[32m\\]#\\##\\[\\e[31m\\]\\u@\\[\\e[36m\\]\\h \\w]\\$\\[\\e[m\\]\"\n单行的\n"
  },
  {
    "path": "README.md",
    "content": "Linux 问题解决\n==========\n\n分享我的问题解决经验，开放我的环境，欢迎Fork\n\nLUKE！\n"
  },
  {
    "path": "dockerfiles/QingCloudSDK/Dockerfile",
    "content": "from python:2\nRUN ingcloud-sdk\nCMD /bin/bash\n"
  },
  {
    "path": "dockerfiles/androidautobuild/Dockerfile",
    "content": "FROM ubuntu:18.04\n\nMAINTAINER lijianying12@gmail.com\n\nRUN apt-get update && apt-get install -y sudo unzip openjdk-8-jdk gcc-multilib lib32z1 lib32stdc++6 git wget && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*\n\nENV ANDROID_HOME /opt/android-sdk-linux/\nENV ANDROID_SDK_FILENAME sdk-tools-linux-4333796.zip\nENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME}\nENV PATH ${PATH}:${ANDROID_HOME}/tools:${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${JAVA_HOME}/bin/\n\nRUN mkdir -p ${ANDROID_HOME} && \\\n    cd ${ANDROID_HOME} && \\\n    wget -q ${ANDROID_SDK_URL} && \\\n    unzip ${ANDROID_SDK_FILENAME} && \\\n    rm ${ANDROID_SDK_FILENAME} &&\\\n    echo y | sdkmanager \"build-tools;26.0.0\" \\\n        \"build-tools;26.0.1\" \\\n        \"build-tools;26.0.2\" \\\n        \"build-tools;26.0.3\" \\\n        \"build-tools;27.0.0\" \\\n        \"build-tools;27.0.1\" \\\n        \"build-tools;27.0.2\" \\\n        \"build-tools;27.0.3\" \\\n        \"build-tools;28.0.0\" \\\n        \"build-tools;28.0.1\" \\\n        \"build-tools;28.0.2\" \\\n        \"build-tools;28.0.3\" \\\n        \"build-tools;29.0.0\" \\\n        \"build-tools;29.0.1\" \\\n        \"cmake;3.10.2.4988404\" \\\n        \"cmake;3.6.4111459\" \\\n        \"extras;android;gapid;1\" \\\n        \"extras;android;gapid;3\" \\\n        \"extras;android;m2repository\" \\\n        \"extras;google;auto\" \\\n        \"extras;google;google_play_services\" \\\n        \"extras;google;instantapps\" \\\n        \"extras;google;m2repository\" \\\n        \"extras;google;market_apk_expansion\" \\\n        \"extras;google;market_licensing\" \\\n        \"extras;google;simulators\" \\\n        \"extras;google;webdriver\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1\" \\\n        \"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2\" \\\n        \"lldb;2.0\" \\\n        \"lldb;2.1\" \\\n        \"lldb;2.2\" \\\n        \"lldb;2.3\" \\\n        \"lldb;3.0\" \\\n        \"lldb;3.1\" \\\n        \"ndk-bundle\" \\\n        \"ndk;20.0.5594570\" \\\n        \"patcher;v4\" \\\n        \"platform-tools\" \\\n        \"platforms;android-26\" \\\n        \"platforms;android-27\" \\\n        \"platforms;android-28\" \\\n        \"platforms;android-29\" \\\n        \"tools\"\n\nENV PATH ${PATH}:/opt/gradle/gradle-current/bin/\nRUN mkdir -p /opt/gradle && cd /opt/gradle && wget http://127.0.0.1:8000/gradle-4.8.1-bin.zip && wget http://127.0.0.1:8000/gradle-4.9-bin.zip && wget http://127.0.0.1:8000/gradle-5.5.1-bin.zip && unzip gradle-4.8.1-bin.zip &&\\\nunzip gradle-4.9-bin.zip &&\\\nunzip gradle-5.5.1-bin.zip &&\\\nrm *.zip\n"
  },
  {
    "path": "dockerfiles/androidautobuild/sources.list",
    "content": "# \n\n# deb cdrom:[Ubuntu-Server 14.04.2 LTS _Trusty Tahr_ - Release amd64 (20150218.1)]/ trusty main restricted\n\n#deb cdrom:[Ubuntu-Server 14.04.2 LTS _Trusty Tahr_ - Release amd64 (20150218.1)]/ trusty main restricted\n\n# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to\n# newer versions of the distribution.\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty main restricted\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty main restricted\n\n## Major bug fix updates produced after the final release of the\n## distribution.\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty-updates main restricted\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-updates main restricted\n\n## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu\n## team. Also, please note that software in universe WILL NOT receive any\n## review or updates from the Ubuntu security team.\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty universe\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty universe\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty-updates universe\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-updates universe\n\n## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu \n## team, and may not be under a free licence. Please satisfy yourself as to \n## your rights to use the software. Also, please note that software in \n## multiverse WILL NOT receive any review or updates from the Ubuntu\n## security team.\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty multiverse\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty multiverse\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty-updates multiverse\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-updates multiverse\n\n## N.B. software from this repository may not have been tested as\n## extensively as that contained in the main release, although it includes\n## newer versions of some applications which may provide useful features.\n## Also, please note that software in backports WILL NOT receive any review\n## or updates from the Ubuntu security team.\ndeb http://jp.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse\ndeb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse\n\ndeb http://security.ubuntu.com/ubuntu trusty-security main restricted\ndeb-src http://security.ubuntu.com/ubuntu trusty-security main restricted\ndeb http://security.ubuntu.com/ubuntu trusty-security universe\ndeb-src http://security.ubuntu.com/ubuntu trusty-security universe\ndeb http://security.ubuntu.com/ubuntu trusty-security multiverse\ndeb-src http://security.ubuntu.com/ubuntu trusty-security multiverse\n\n## Uncomment the following two lines to add software from Canonical's\n## 'partner' repository.\n## This software is not part of Ubuntu, but is offered by Canonical and the\n## respective vendors as a service to Ubuntu users.\n# deb http://archive.canonical.com/ubuntu trusty partner\n# deb-src http://archive.canonical.com/ubuntu trusty partner\n\n## Uncomment the following two lines to add software from Ubuntu's\n## 'extras' repository.\n## This software is not part of Ubuntu, but is offered by third-party\n## developers who want to ship their latest software.\n# deb http://extras.ubuntu.com/ubuntu trusty main\n# deb-src http://extras.ubuntu.com/ubuntu trusty main\n"
  },
  {
    "path": "dockerfiles/dmonit/Dockerfile",
    "content": "FROM ubuntu:14.04\n\nRUN sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list && apt-get update\nRUN apt-get install -y curl telnet git m4 texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev\nRUN apt-get install -y vim-nox locales xfonts-utils fontconfig tmux openssh-server screen\nCOPY .tmux.conf /root/\nCOPY .bashrc /root/\nCOPY .vimrc /root/\nCOPY freem /bin/\nCOPY xdev /bin/\nCOPY e /bin/\nRUN chmod +x /bin/e /bin/xdev /bin/freem\nRUN echo \"en_US.UTF-8 UTF-8\" > /etc/locale.gen && locale-gen \"en_US.UTF-8\"\nRUN mkdir /root/.ssh\nCMD service ssh start && echo $PUBKEY > /root/.ssh/authorized_keys && /bin/bash\n"
  },
  {
    "path": "dockerfiles/dmonit/Makefile",
    "content": "all:\n\tcp ../../dotfile/.tmux.conf .\n\tcp ../../dotfile/.vimrc .\n\tcp ../../dotfile/.bashrc .\n\tcp ../../script/freem .\n\tcp ../../script/xdev .\n\tcp ../../script/e .\n\tdocker build -t dmonit:1.1 .\n\trm .tmux.conf\n\trm .vimrc\n\trm .bashrc\n\trm freem\n\trm xdev\n\trm e\nclean:\n\trm .tmux.conf\n\trm .vimrc\n\trm .bashrc\n\trm freem\n\trm xdev\n\trm e\n"
  },
  {
    "path": "dockerfiles/mitmproxy/Dockerfile",
    "content": "FROM ubuntu:14.04\n\nCOPY sources.list /etc/apt/sources.list\nENV LANG en_US.UTF-8\nRUN apt-get update && apt-get install -y mitmproxy locales xfonts-utils fontconfig &&  echo \"en_US.UTF-8 UTF-8\" > /etc/locale.gen && locale-gen \"en_US.UTF-8\" \n\n\n"
  },
  {
    "path": "dockerfiles/mitmproxy/Readme.md",
    "content": "# 使用方法说明：\n构建完成之后使用如下脚本来做到hijacking\n\n```\n#!/usr/bin/env python\n# coding=utf-8\n\n \ndef request(context, flow):\n    if 'test.wifi.plus' == flow.request.host:\n        if flow.request.scheme == \"http\":\n            flow.request.host = \"127.0.0.1\"\n            flow.request.port = 3000\n```\n\n命令 mitmproxy -p 8321 -s proxy.py\n\n端口为http代理端口\n脚本为上面的文件\n\nDocker命令直接运行的方法：\n```\ndocker run -it --rm -p 8321:8321 -v /root/proxy.py:/root/proxy.py mitmproxy mitmproxy -p 8321 -s /root/proxy.py\n\n```\n"
  },
  {
    "path": "dockerfiles/mitmproxy/sources.list",
    "content": "deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse\n"
  },
  {
    "path": "dockerfiles/postgres/Dockerfile",
    "content": "from ubuntu:14.04\n\nRUN sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list && apt-get update && apt-get -y install postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3\nUSER postgres\nRUN echo \"host all all 0.0.0.0/0 md5\" >> /etc/postgresql/9.3/main/pg_hba.conf\nRUN echo \"listen_addresses='*'\" >> /etc/postgresql/9.3/main/postgresql.conf\nEXPOSE 5432\nCMD [\"/usr/lib/postgresql/9.3/bin/postgres\", \"-D\", \"/var/lib/postgresql/9.3/main\", \"-c\", \"config_file=/etc/postgresql/9.3/main/postgresql.conf\"]\n"
  },
  {
    "path": "dockerfiles/smb/Dockerfile",
    "content": "FROM ubuntu:14.04\n\nRUN sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list && apt-get update && apt-get install -y samba smbfs \nCMD ['/bin/bash']\n"
  },
  {
    "path": "docs/StyleInd.ist",
    "content": "delim_0 \"\\\\dotfill\\ \"\ndelim_1 \"\\\\dotfill\\ \"\nheadings_flag 1\nheading_prefix \"\\\\vspace*{0.5cm}\\\\nopagebreak\\n\\\\tikz\\\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\\\parbox{\\\\linewidth-2\\\\fboxsep-2\\\\fboxrule-2pt}{\\\\centering\\\\large\\\\sffamily\\\\bfseries\\\\textcolor{black}{\" heading_suffix \"}}};\\\\vspace*{0.2cm}\\\\nopagebreak\\n\""
  },
  {
    "path": "docs/bibliography.bib",
    "content": "@book{book_key,\n\taddress = {City},\n\tpublisher = {Publisher},\n\tauthor = {Smith, John},\n\ttitle = {Book title},\n\tyear = {2012},\n\tvolume = {3},\n\tseries = {2},\n\tedition = {1},\n\tpages = {123--200},\n\tmonth = {January}\n}\n\n@article{article_key,\n\taddress = {City},\n\tpublisher = {Publisher},\n\tauthor = {Smith, James},\n\ttitle = {Article title},\n\tyear = {2013},\n\tvolume = {14},\n\tnumber = {6},\n\tpages = {1--8},\n\tmonth = {March}\n}\n"
  },
  {
    "path": "docs/compile.bat",
    "content": "::clean\ndel /s /q main.aux main.bcf main.blg main.ilg main.log main.out main.pdf main.ptc main.run.xml main.toc\n\n::comp\npdflatex main\nmakeindex main.idx -s StyleInd.ist\nbiber main\npdflatex main\npdflatex main"
  },
  {
    "path": "docs/main.aux",
    "content": "\\relax \n\\providecommand\\zref@newlabel[2]{}\n\\providecommand\\HyperFirstAtBeginDocument{\\AtBeginDocument}\n\\HyperFirstAtBeginDocument{\\ifx\\hyper@anchor\\@undefined\n\\global\\let\\oldcontentsline\\contentsline\n\\gdef\\contentsline#1#2#3#4{\\oldcontentsline{#1}{#2}{#3}}\n\\global\\let\\oldnewlabel\\newlabel\n\\gdef\\newlabel#1#2{\\newlabelxx{#1}#2}\n\\gdef\\newlabelxx#1#2#3#4#5#6{\\oldnewlabel{#1}{{#2}{#3}}}\n\\AtEndDocument{\\ifx\\hyper@anchor\\@undefined\n\\let\\contentsline\\oldcontentsline\n\\let\\newlabel\\oldnewlabel\n\\fi}\n\\fi}\n\\global\\let\\hyper@last\\relax \n\\gdef\\HyperFirstAtBeginDocument#1{#1}\n\\providecommand\\HyField@AuxAddToFields[1]{}\n\\@writefile{toc}{\\boolfalse {citerequest}\\boolfalse {citetracker}\\boolfalse {pagetracker}\\boolfalse {backtracker}\\relax }\n\\@writefile{lof}{\\boolfalse {citerequest}\\boolfalse {citetracker}\\boolfalse {pagetracker}\\boolfalse {backtracker}\\relax }\n\\@writefile{lot}{\\boolfalse {citerequest}\\boolfalse {citetracker}\\boolfalse {pagetracker}\\boolfalse {backtracker}\\relax }\n\\select@language{english}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\select@language{english}}\n\\@writefile{lof}{\\defcounter {refsection}{0}\\relax }\\@writefile{lof}{\\select@language{english}}\n\\@writefile{lot}{\\defcounter {refsection}{0}\\relax }\\@writefile{lot}{\\select@language{english}}\n\\pgfsyspdfmark {pgfid2}{0}{55380990}\n\\pgfsyspdfmark {pgfid1}{5966969}{48902215}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {chapter}{\\numberline {1}系统安装}{5}{chapter.1}}\n\\@writefile{lof}{\\defcounter {refsection}{0}\\relax }\\@writefile{lof}{\\addvspace {10\\p@ }}\n\\@writefile{lot}{\\defcounter {refsection}{0}\\relax }\\@writefile{lot}{\\addvspace {10\\p@ }}\n\\ttl@writefile{ptc}{\\ttl@starttoc{default@1}}\n\\pgfsyspdfmark {pgfid4}{0}{55380990}\n\\pgfsyspdfmark {pgfid3}{5966969}{48902215}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {1.1}艾玛测试}{5}{section.1.1}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {1.2}Citation}{5}{section.1.2}}\n\\abx@aux@backref{1}{book_key}{0}{5}{5}\n\\abx@aux@backref{2}{article_key}{0}{5}{5}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {1.3}Lists}{5}{section.1.3}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {1.3.1}Numbered List}{5}{subsection.1.3.1}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {1.3.2}Bullet Points}{5}{subsection.1.3.2}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {1.3.3}Descriptions and Definitions}{5}{subsection.1.3.3}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {chapter}{\\numberline {2}In-text Elements}{7}{chapter.2}}\n\\@writefile{lof}{\\defcounter {refsection}{0}\\relax }\\@writefile{lof}{\\addvspace {10\\p@ }}\n\\@writefile{lot}{\\defcounter {refsection}{0}\\relax }\\@writefile{lot}{\\addvspace {10\\p@ }}\n\\ttl@writefile{ptc}{\\ttl@stoptoc{default@1}}\n\\ttl@writefile{ptc}{\\ttl@starttoc{default@2}}\n\\pgfsyspdfmark {pgfid6}{0}{55380990}\n\\pgfsyspdfmark {pgfid5}{5966969}{48902215}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.1}Theorems}{7}{section.2.1}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {2.1.1}Several equations}{7}{subsection.2.1.1}}\n\\zref@newlabel{mdf@pagelabel-1}{\\default{2.1.1}\\page{7}\\abspage{7}\\mdf@pagevalue{7}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {2.1.2}Single Line}{7}{subsection.2.1.2}}\n\\zref@newlabel{mdf@pagelabel-2}{\\default{2.1.2}\\page{7}\\abspage{7}\\mdf@pagevalue{7}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.2}Definitions}{7}{section.2.2}}\n\\zref@newlabel{mdf@pagelabel-3}{\\default{2.2}\\page{7}\\abspage{7}\\mdf@pagevalue{7}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.3}Notations}{8}{section.2.3}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.4}Remarks}{8}{section.2.4}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.5}Corollaries}{8}{section.2.5}}\n\\zref@newlabel{mdf@pagelabel-4}{\\default{2.5}\\page{8}\\abspage{8}\\mdf@pagevalue{8}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.6}Propositions}{8}{section.2.6}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {2.6.1}Several equations}{8}{subsection.2.6.1}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {2.6.2}Single Line}{8}{subsection.2.6.2}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.7}Examples}{8}{section.2.7}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {2.7.1}Equation and Text}{8}{subsection.2.7.1}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {subsection}{\\numberline {2.7.2}Paragraph of Text}{9}{subsection.2.7.2}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.8}Exercises}{9}{section.2.8}}\n\\zref@newlabel{mdf@pagelabel-5}{\\default{2.8}\\page{9}\\abspage{9}\\mdf@pagevalue{9}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.9}Problems}{9}{section.2.9}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {2.10}Vocabulary}{9}{section.2.10}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {chapter}{\\numberline {3}Presenting Information}{11}{chapter.3}}\n\\@writefile{lof}{\\defcounter {refsection}{0}\\relax }\\@writefile{lof}{\\addvspace {10\\p@ }}\n\\@writefile{lot}{\\defcounter {refsection}{0}\\relax }\\@writefile{lot}{\\addvspace {10\\p@ }}\n\\ttl@writefile{ptc}{\\ttl@stoptoc{default@2}}\n\\ttl@writefile{ptc}{\\ttl@starttoc{default@3}}\n\\pgfsyspdfmark {pgfid9}{0}{55380990}\n\\pgfsyspdfmark {pgfid8}{5966969}{48902215}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {3.1}Table}{11}{section.3.1}}\n\\@writefile{lot}{\\defcounter {refsection}{0}\\relax }\\@writefile{lot}{\\contentsline {table}{\\numberline {3.1}{\\ignorespaces Table caption}}{11}{table.3.1}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{\\numberline {3.2}Figure}{11}{section.3.2}}\n\\@writefile{lof}{\\defcounter {refsection}{0}\\relax }\\@writefile{lof}{\\contentsline {figure}{\\numberline {3.1}{\\ignorespaces Figure caption}}{11}{figure.3.1}}\n\\pgfsyspdfmark {pgfid11}{0}{55380990}\n\\pgfsyspdfmark {pgfid10}{5966969}{48902215}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {chapter}{\\leavevmode {\\color  {ocre}Bibliography}}{13}{chapter*.2}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{Books}{13}{section*.3}}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {section}{Articles}{13}{section*.4}}\n\\pgfsyspdfmark {pgfid13}{0}{55380990}\n\\pgfsyspdfmark {pgfid12}{5966969}{49623111}\n\\@writefile{toc}{\\defcounter {refsection}{0}\\relax }\\@writefile{toc}{\\contentsline {chapter}{\\leavevmode {\\color  {ocre}Index}}{15}{section*.5}}\n\\ttl@finishall\n"
  },
  {
    "path": "docs/main.bbl",
    "content": "% $ biblatex auxiliary file $\r\n% $ biblatex version 1.7 $\r\n% $ biber version 0.9.9 $\r\n% Do not modify the above lines!\r\n%\r\n% This is an auxiliary file used by the 'biblatex' package.\r\n% This file may safely be deleted. It will be recreated by\r\n% biber or bibtex as required.\r\n%\r\n\\begingroup\r\n\\makeatletter\r\n\\@ifundefined{ver@biblatex.sty}\r\n  {\\@latex@error\r\n     {Missing 'biblatex' package}\r\n     {The bibliography requires the 'biblatex' package.}\r\n      \\aftergroup\\endinput}\r\n  {}\r\n\\endgroup\r\n\r\n\r\n\\refsection{0}\r\n  \\entry{article_key}{article}{}\r\n    \\name{labelname}{1}{}{%\r\n      {{hash=26a8b4a95216218b2dfc1460f6d4c494}{Smith}{S\\bibinitperiod}{James}{J\\bibinitperiod}{}{}{}{}}%\r\n    }\r\n    \\name{author}{1}{}{%\r\n      {{hash=26a8b4a95216218b2dfc1460f6d4c494}{Smith}{S\\bibinitperiod}{James}{J\\bibinitperiod}{}{}{}{}}%\r\n    }\r\n    \\list{location}{1}{%\r\n      {City}%\r\n    }\r\n    \\list{publisher}{1}{%\r\n      {Publisher}%\r\n    }\r\n    \\strng{namehash}{26a8b4a95216218b2dfc1460f6d4c494}\r\n    \\strng{fullhash}{26a8b4a95216218b2dfc1460f6d4c494}\r\n    \\field{labelalpha}{Smi13}\r\n    \\field{sortinit}{S}\r\n    \\field{month}{03}\r\n    \\field{number}{6}\r\n    \\field{title}{Article title}\r\n    \\field{volume}{14}\r\n    \\field{year}{2013}\r\n    \\field{pages}{1\\bibrangedash 8}\r\n  \\endentry\r\n\r\n  \\entry{book_key}{book}{}\r\n    \\name{labelname}{1}{}{%\r\n      {{hash=5d0ddda3a367ceb26fbaeca02e391c22}{Smith}{S\\bibinitperiod}{John}{J\\bibinitperiod}{}{}{}{}}%\r\n    }\r\n    \\name{author}{1}{}{%\r\n      {{hash=5d0ddda3a367ceb26fbaeca02e391c22}{Smith}{S\\bibinitperiod}{John}{J\\bibinitperiod}{}{}{}{}}%\r\n    }\r\n    \\list{location}{1}{%\r\n      {City}%\r\n    }\r\n    \\list{publisher}{1}{%\r\n      {Publisher}%\r\n    }\r\n    \\strng{namehash}{5d0ddda3a367ceb26fbaeca02e391c22}\r\n    \\strng{fullhash}{5d0ddda3a367ceb26fbaeca02e391c22}\r\n    \\field{labelalpha}{Smi12}\r\n    \\field{sortinit}{S}\r\n    \\field{edition}{1}\r\n    \\field{month}{01}\r\n    \\field{series}{2}\r\n    \\field{title}{Book title}\r\n    \\field{volume}{3}\r\n    \\field{year}{2012}\r\n    \\field{pages}{123\\bibrangedash 200}\r\n  \\endentry\r\n\r\n\\endrefsection\r\n\\endinput\r\n\r\n"
  },
  {
    "path": "docs/main.bcf",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<bcf:controlfile version=\"1.7\" xmlns:bcf=\"https://sourceforge.net/projects/biblatex\">\n  <!-- BIBER OPTIONS -->\n  <bcf:options component=\"biber\" type=\"global\">\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>bblencoding</bcf:key>\n      <bcf:value>utf8</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>bibencoding</bcf:key>\n      <bcf:value>utf8</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>debug</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>mincrossrefs</bcf:key>\n      <bcf:value>2</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>sortcase</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>sortupper</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n  </bcf:options>\n  <!-- BIBLATEX OPTIONS -->\n  <!-- global -->\n  <bcf:options component=\"biblatex\" type=\"global\">\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>alphaothers</bcf:key>\n      <bcf:value>+</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>labelalpha</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"multivalued\">\n      <bcf:key>labelnamespec</bcf:key>\n      <bcf:value order=\"1\">shortauthor</bcf:value>\n      <bcf:value order=\"2\">author</bcf:value>\n      <bcf:value order=\"3\">shorteditor</bcf:value>\n      <bcf:value order=\"4\">editor</bcf:value>\n      <bcf:value order=\"5\">translator</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>labelyear</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"multivalued\">\n      <bcf:key>labelyearspec</bcf:key>\n      <bcf:value order=\"1\">year</bcf:value>\n      <bcf:value order=\"2\">eventyear</bcf:value>\n      <bcf:value order=\"3\">origyear</bcf:value>\n      <bcf:value order=\"4\">urlyear</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>maxalphanames</bcf:key>\n      <bcf:value>3</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>maxbibnames</bcf:key>\n      <bcf:value>3</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>maxcitenames</bcf:key>\n      <bcf:value>3</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>maxitems</bcf:key>\n      <bcf:value>3</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>minalphanames</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>minbibnames</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>mincitenames</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>minitems</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>singletitle</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>sortalphaothers</bcf:key>\n      <bcf:value>+</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>sortlos</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>uniquelist</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>uniquename</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>useauthor</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>useeditor</bcf:key>\n      <bcf:value>1</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>useprefix</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n    <bcf:option type=\"singlevalued\">\n      <bcf:key>usetranslator</bcf:key>\n      <bcf:value>0</bcf:value>\n    </bcf:option>\n  </bcf:options>\n  <!-- DISPLAYMODES -->\n  <bcf:displaymodes type=\"global\">\n    <bcf:displaymode>\n      <bcf:dtarget>*</bcf:dtarget>\n      <bcf:dmode order=\"1\">original</bcf:dmode>\n      <bcf:dmode order=\"2\">romanised</bcf:dmode>\n      <bcf:dmode order=\"3\">uniform</bcf:dmode>\n      <bcf:dmode order=\"4\">translated</bcf:dmode>\n    </bcf:displaymode>\n  </bcf:displaymodes>\n  <!-- CROSSREF -->\n  <bcf:inheritance>\n    <bcf:defaults inherit_all=\"true\" override_target=\"false\">\n    </bcf:defaults>\n    <bcf:inherit>\n      <bcf:type_pair source=\"mvbook\" target=\"inbook\"/>\n      <bcf:type_pair source=\"mvbook\" target=\"bookinbook\"/>\n      <bcf:type_pair source=\"mvbook\" target=\"suppbook\"/>\n      <bcf:type_pair source=\"book\" target=\"inbook\"/>\n      <bcf:type_pair source=\"book\" target=\"bookinbook\"/>\n      <bcf:type_pair source=\"book\" target=\"suppbook\"/>\n      <bcf:field source=\"author\" target=\"author\"/>\n      <bcf:field source=\"author\" target=\"bookauthor\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"mvbook\" target=\"book\"/>\n      <bcf:type_pair source=\"mvbook\" target=\"inbook\"/>\n      <bcf:type_pair source=\"mvbook\" target=\"bookinbook\"/>\n      <bcf:type_pair source=\"mvbook\" target=\"suppbook\"/>\n      <bcf:field source=\"title\" target=\"maintitle\"/>\n      <bcf:field source=\"subtitle\" target=\"mainsubtitle\"/>\n      <bcf:field source=\"titleaddon\" target=\"maintitleaddon\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"mvcollection\" target=\"collection\"/>\n      <bcf:type_pair source=\"mvcollection\" target=\"reference\"/>\n      <bcf:type_pair source=\"mvcollection\" target=\"incollection\"/>\n      <bcf:type_pair source=\"mvcollection\" target=\"inreference\"/>\n      <bcf:type_pair source=\"mvcollection\" target=\"suppcollection\"/>\n      <bcf:type_pair source=\"mvreference\" target=\"collection\"/>\n      <bcf:type_pair source=\"mvreference\" target=\"reference\"/>\n      <bcf:type_pair source=\"mvreference\" target=\"incollection\"/>\n      <bcf:type_pair source=\"mvreference\" target=\"inreference\"/>\n      <bcf:type_pair source=\"mvreference\" target=\"suppcollection\"/>\n      <bcf:field source=\"title\" target=\"maintitle\"/>\n      <bcf:field source=\"subtitle\" target=\"mainsubtitle\"/>\n      <bcf:field source=\"titleaddon\" target=\"maintitleaddon\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"mvproceedings\" target=\"proceedings\"/>\n      <bcf:type_pair source=\"mvproceedings\" target=\"inproceedings\"/>\n      <bcf:field source=\"title\" target=\"maintitle\"/>\n      <bcf:field source=\"subtitle\" target=\"mainsubtitle\"/>\n      <bcf:field source=\"titleaddon\" target=\"maintitleaddon\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"book\" target=\"inbook\"/>\n      <bcf:type_pair source=\"book\" target=\"bookinbook\"/>\n      <bcf:type_pair source=\"book\" target=\"suppbook\"/>\n      <bcf:field source=\"title\" target=\"booktitle\"/>\n      <bcf:field source=\"subtitle\" target=\"booksubtitle\"/>\n      <bcf:field source=\"titleaddon\" target=\"booktitleaddon\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"collection\" target=\"incollection\"/>\n      <bcf:type_pair source=\"collection\" target=\"inreference\"/>\n      <bcf:type_pair source=\"collection\" target=\"suppcollection\"/>\n      <bcf:type_pair source=\"reference\" target=\"incollection\"/>\n      <bcf:type_pair source=\"reference\" target=\"inreference\"/>\n      <bcf:type_pair source=\"reference\" target=\"suppcollection\"/>\n      <bcf:field source=\"title\" target=\"booktitle\"/>\n      <bcf:field source=\"subtitle\" target=\"booksubtitle\"/>\n      <bcf:field source=\"titleaddon\" target=\"booktitleaddon\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"proceedings\" target=\"inproceedings\"/>\n      <bcf:field source=\"title\" target=\"booktitle\"/>\n      <bcf:field source=\"subtitle\" target=\"booksubtitle\"/>\n      <bcf:field source=\"titleaddon\" target=\"booktitleaddon\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"periodical\" target=\"article\"/>\n      <bcf:type_pair source=\"periodical\" target=\"suppperiodical\"/>\n      <bcf:field source=\"title\" target=\"journaltitle\"/>\n      <bcf:field source=\"subtitle\" target=\"journalsubtitle\"/>\n      <bcf:field source=\"shorttitle\" skip=\"true\"/>\n      <bcf:field source=\"sorttitle\" skip=\"true\"/>\n      <bcf:field source=\"indextitle\" skip=\"true\"/>\n      <bcf:field source=\"indexsorttitle\" skip=\"true\"/>\n    </bcf:inherit>\n    <bcf:inherit>\n      <bcf:type_pair source=\"*\" target=\"*\"/>\n      <bcf:field source=\"crossref\" skip=\"true\"/>\n      <bcf:field source=\"xref\" skip=\"true\"/>\n      <bcf:field source=\"entryset\" skip=\"true\"/>\n      <bcf:field source=\"entrysubtype\" skip=\"true\"/>\n      <bcf:field source=\"execute\" skip=\"true\"/>\n      <bcf:field source=\"label\" skip=\"true\"/>\n      <bcf:field source=\"options\" skip=\"true\"/>\n      <bcf:field source=\"presort\" skip=\"true\"/>\n      <bcf:field source=\"related\" skip=\"true\"/>\n      <bcf:field source=\"relatedstring\" skip=\"true\"/>\n      <bcf:field source=\"relatedtype\" skip=\"true\"/>\n      <bcf:field source=\"shorthand\" skip=\"true\"/>\n      <bcf:field source=\"shorthandintro\" skip=\"true\"/>\n      <bcf:field source=\"sortkey\" skip=\"true\"/>\n    </bcf:inherit>\n  </bcf:inheritance>\n  <!-- SORTING -->\n  <bcf:sorting>\n    <bcf:presort>mm</bcf:presort>\n    <bcf:sort order=\"1\">\n      <bcf:sortitem order=\"1\">presort</bcf:sortitem>\n    </bcf:sort>\n    <bcf:sort order=\"2\" final=\"1\">\n      <bcf:sortitem order=\"1\">sortkey</bcf:sortitem>\n    </bcf:sort>\n    <bcf:sort order=\"3\">\n      <bcf:sortitem order=\"1\">sortname</bcf:sortitem>\n      <bcf:sortitem order=\"2\">author</bcf:sortitem>\n      <bcf:sortitem order=\"3\">editor</bcf:sortitem>\n      <bcf:sortitem order=\"4\">translator</bcf:sortitem>\n      <bcf:sortitem order=\"5\">sorttitle</bcf:sortitem>\n      <bcf:sortitem order=\"6\">title</bcf:sortitem>\n    </bcf:sort>\n    <bcf:sort order=\"4\">\n      <bcf:sortitem order=\"1\">sortyear</bcf:sortitem>\n      <bcf:sortitem order=\"2\">year</bcf:sortitem>\n    </bcf:sort>\n    <bcf:sort order=\"5\">\n      <bcf:sortitem order=\"1\">sorttitle</bcf:sortitem>\n      <bcf:sortitem order=\"2\">title</bcf:sortitem>\n    </bcf:sort>\n    <bcf:sort order=\"6\">\n      <bcf:sortitem order=\"1\" pad_side=\"left\" pad_width=\"4\" pad_char=\"0\">volume</bcf:sortitem>\n      <bcf:sortitem order=\"2\">0000</bcf:sortitem>\n    </bcf:sort>\n  </bcf:sorting>\n  <!-- CITATION DATA -->\n  <!-- section 0 -->\n  <bcf:bibdata section=\"0\">\n    <bcf:datasource type=\"file\" datatype=\"bibtex\">bibliography.bib</bcf:datasource>\n  </bcf:bibdata>\n  <bcf:section number=\"0\">\n    <bcf:citekey>book_key</bcf:citekey>\n    <bcf:citekey>article_key</bcf:citekey>\n  </bcf:section>\n</bcf:controlfile>\n"
  },
  {
    "path": "docs/main.blg",
    "content": "[0] Config.pm:300> INFO - This is Biber 0.9.9\r\n[0] Config.pm:303> INFO - Logfile is 'main.blg'\r\n[1] biber-MSWIN:142> INFO - === %a %b %e, %Y, %H:%M:%S\r\n[1] Biber.pm:271> INFO - Reading 'main.bcf'\r\n[14] Biber.pm:586> INFO - Found 2 citekeys in bib section 0\r\n[22] Biber.pm:2585> INFO - Processing bib section 0\r\n[40] Biber.pm:2677> INFO - Looking for bibtex format file 'bibliography.bib' for section 0\r\n[43] bibtex.pm:833> INFO - Decoding LaTeX character macros into UTF-8\r\n[44] bibtex.pm:837> INFO - Finished Decoding LaTeX character macros into UTF-8\r\n[44] bibtex.pm:708> INFO - Found BibTeX data source 'bibliography.bib'\r\n[100] Biber.pm:2480> INFO - Sorting list 'MAIN' keys\r\n[100] Biber.pm:2484> INFO - No sort tailoring available for locale 'English_United States.1252'\r\n[108] Biber.pm:2480> INFO - Sorting list 'SHORTHANDS' keys\r\n[108] Biber.pm:2484> INFO - No sort tailoring available for locale 'English_United States.1252'\r\n[118] bbl.pm:427> INFO - Writing 'main.bbl' with encoding 'UTF-8'\r\n[119] bbl.pm:498> INFO - Output to main.bbl\r\n"
  },
  {
    "path": "docs/main.idx",
    "content": "\\indexentry{艾玛测试|hyperpage}{5}\n\\indexentry{Citation|hyperpage}{5}\n\\indexentry{Lists|hyperpage}{5}\n\\indexentry{Lists!Numbered List|hyperpage}{5}\n\\indexentry{Lists!Bullet Points|hyperpage}{5}\n\\indexentry{Lists!Descriptions and Definitions|hyperpage}{5}\n\\indexentry{Theorems|hyperpage}{7}\n\\indexentry{Theorems!Several Equations|hyperpage}{7}\n\\indexentry{Theorems!Single Line|hyperpage}{7}\n\\indexentry{Definitions|hyperpage}{7}\n\\indexentry{Notations|hyperpage}{8}\n\\indexentry{Remarks|hyperpage}{8}\n\\indexentry{Corollaries|hyperpage}{8}\n\\indexentry{Propositions|hyperpage}{8}\n\\indexentry{Propositions!Several Equations|hyperpage}{8}\n\\indexentry{Propositions!Single Line|hyperpage}{8}\n\\indexentry{Examples|hyperpage}{8}\n\\indexentry{Examples!Equation and Text|hyperpage}{8}\n\\indexentry{Examples!Paragraph of Text|hyperpage}{9}\n\\indexentry{Exercises|hyperpage}{9}\n\\indexentry{Problems|hyperpage}{9}\n\\indexentry{Vocabulary|hyperpage}{9}\n\\indexentry{Table|hyperpage}{11}\n\\indexentry{Figure|hyperpage}{11}\n"
  },
  {
    "path": "docs/main.ilg",
    "content": "This is makeindex, version 2.15 [TeX Live 2010] (kpathsea + Thai support).\nScanning style file ./StyleInd.ist.....done (5 attributes redefined, 0 ignored).\nScanning input file main.idx....done (24 entries accepted, 0 rejected).\nSorting entries....done (118 comparisons).\nGenerating output file main.ind....done (80 lines written, 0 warnings).\nOutput written in main.ind.\nTranscript written in main.ilg.\n"
  },
  {
    "path": "docs/main.ind",
    "content": "\\begin{theindex}\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{C}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Citation\\dotfill \\hyperpage{5}\n  \\item Corollaries\\dotfill \\hyperpage{8}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{D}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Definitions\\dotfill \\hyperpage{7}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{E}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Examples\\dotfill \\hyperpage{8}\n    \\subitem Equation and Text\\dotfill \\hyperpage{8}\n    \\subitem Paragraph of Text\\dotfill \\hyperpage{9}\n  \\item Exercises\\dotfill \\hyperpage{9}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{F}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Figure\\dotfill \\hyperpage{11}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{L}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Lists\\dotfill \\hyperpage{5}\n    \\subitem Bullet Points\\dotfill \\hyperpage{5}\n    \\subitem Descriptions and Definitions\\dotfill \\hyperpage{5}\n    \\subitem Numbered List\\dotfill \\hyperpage{5}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{N}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Notations\\dotfill \\hyperpage{8}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{P}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Problems\\dotfill \\hyperpage{9}\n  \\item Propositions\\dotfill \\hyperpage{8}\n    \\subitem Several Equations\\dotfill \\hyperpage{8}\n    \\subitem Single Line\\dotfill \\hyperpage{8}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{R}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Remarks\\dotfill \\hyperpage{8}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{T}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Table\\dotfill \\hyperpage{11}\n  \\item Theorems\\dotfill \\hyperpage{7}\n    \\subitem Several Equations\\dotfill \\hyperpage{7}\n    \\subitem Single Line\\dotfill \\hyperpage{7}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{V}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item Vocabulary\\dotfill \\hyperpage{9}\n\n  \\indexspace\n\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{}}};\\vspace*{0.2cm}\\nopagebreak\n\n  \\item 艾玛测试\\dotfill \\hyperpage{5}\n\n\\end{theindex}\n"
  },
  {
    "path": "docs/main.log",
    "content": "This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/W32TeX) (format=pdflatex 2014.5.4)  27 MAY 2014 09:22\nentering extended mode\n restricted \\write18 enabled.\n %&-line parsing enabled.\n**main\n(./main.tex\nLaTeX2e <2011/06/27>\nBabel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge\nrman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi\nc, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis\nh, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis\nh, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h\nungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma\nrathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, \nkurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk,\n polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, s\nlovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, \nwelsh, loaded.\n(d:/texlive/2012/texmf-dist/tex/latex/base/book.cls\nDocument Class: book 2007/10/19 v1.4h Standard LaTeX document class\n(d:/texlive/2012/texmf-dist/tex/latex/base/fleqn.clo\nFile: fleqn.clo 1998/08/17 v1.1c Standard LaTeX option (flush left equations)\n\\mathindent=\\dimen102\n)\n(d:/texlive/2012/texmf-dist/tex/latex/base/bk11.clo\nFile: bk11.clo 2007/10/19 v1.4h Standard LaTeX file (size option)\n)\n\\c@part=\\count79\n\\c@chapter=\\count80\n\\c@section=\\count81\n\\c@subsection=\\count82\n\\c@subsubsection=\\count83\n\\c@paragraph=\\count84\n\\c@subparagraph=\\count85\n\\c@figure=\\count86\n\\c@table=\\count87\n\\abovecaptionskip=\\skip41\n\\belowcaptionskip=\\skip42\n\\bibindent=\\dimen103\n)\n(d:/texlive/2012/texmf-dist/tex/latex/geometry/geometry.sty\nPackage: geometry 2010/09/12 v5.6 Page Geometry\n\n(d:/texlive/2012/texmf-dist/tex/latex/graphics/keyval.sty\nPackage: keyval 1999/03/16 v1.13 key=value parser (DPC)\n\\KV@toks@=\\toks14\n)\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ifpdf.sty\nPackage: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)\nPackage ifpdf Info: pdfTeX in PDF mode is detected.\n)\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ifvtex.sty\nPackage: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO)\nPackage ifvtex Info: VTeX not detected.\n)\n(d:/texlive/2012/texmf-dist/tex/generic/ifxetex/ifxetex.sty\nPackage: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional\n)\n\\Gm@cnth=\\count88\n\\Gm@cntv=\\count89\n\\c@Gm@tempcnt=\\count90\n\\Gm@bindingoffset=\\dimen104\n\\Gm@wd@mp=\\dimen105\n\\Gm@odd@mp=\\dimen106\n\\Gm@even@mp=\\dimen107\n\\Gm@layoutwidth=\\dimen108\n\\Gm@layoutheight=\\dimen109\n\\Gm@layouthoffset=\\dimen110\n\\Gm@layoutvoffset=\\dimen111\n\\Gm@dimlist=\\toks15\n)\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/CJKutf8.sty\nPackage: CJKutf8 2012/05/07 4.8.3\n\n(d:/texlive/2012/texmf-dist/tex/latex/base/inputenc.sty\nPackage: inputenc 2008/03/30 v1.1d Input encoding file\n\\inpenc@prehook=\\toks16\n\\inpenc@posthook=\\toks17\n\n(d:/texlive/2012/texmf-dist/tex/latex/base/utf8.def\nFile: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc\nNow handling font encoding OML ...\n... no UTF-8 mapping file for font encoding OML\nNow handling font encoding T1 ...\n... processing UTF-8 mapping file for font encoding T1\n\n(d:/texlive/2012/texmf-dist/tex/latex/base/t1enc.dfu\nFile: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc\n   defining Unicode char U+00A1 (decimal 161)\n   defining Unicode char U+00A3 (decimal 163)\n   defining Unicode char U+00AB (decimal 171)\n   defining Unicode char U+00BB (decimal 187)\n   defining Unicode char U+00BF (decimal 191)\n   defining Unicode char U+00C0 (decimal 192)\n   defining Unicode char U+00C1 (decimal 193)\n   defining Unicode char U+00C2 (decimal 194)\n   defining Unicode char U+00C3 (decimal 195)\n   defining Unicode char U+00C4 (decimal 196)\n   defining Unicode char U+00C5 (decimal 197)\n   defining Unicode char U+00C6 (decimal 198)\n   defining Unicode char U+00C7 (decimal 199)\n   defining Unicode char U+00C8 (decimal 200)\n   defining Unicode char U+00C9 (decimal 201)\n   defining Unicode char U+00CA (decimal 202)\n   defining Unicode char U+00CB (decimal 203)\n   defining Unicode char U+00CC (decimal 204)\n   defining Unicode char U+00CD (decimal 205)\n   defining Unicode char U+00CE (decimal 206)\n   defining Unicode char U+00CF (decimal 207)\n   defining Unicode char U+00D0 (decimal 208)\n   defining Unicode char U+00D1 (decimal 209)\n   defining Unicode char U+00D2 (decimal 210)\n   defining Unicode char U+00D3 (decimal 211)\n   defining Unicode char U+00D4 (decimal 212)\n   defining Unicode char U+00D5 (decimal 213)\n   defining Unicode char U+00D6 (decimal 214)\n   defining Unicode char U+00D8 (decimal 216)\n   defining Unicode char U+00D9 (decimal 217)\n   defining Unicode char U+00DA (decimal 218)\n   defining Unicode char U+00DB (decimal 219)\n   defining Unicode char U+00DC (decimal 220)\n   defining Unicode char U+00DD (decimal 221)\n   defining Unicode char U+00DE (decimal 222)\n   defining Unicode char U+00DF (decimal 223)\n   defining Unicode char U+00E0 (decimal 224)\n   defining Unicode char U+00E1 (decimal 225)\n   defining Unicode char U+00E2 (decimal 226)\n   defining Unicode char U+00E3 (decimal 227)\n   defining Unicode char U+00E4 (decimal 228)\n   defining Unicode char U+00E5 (decimal 229)\n   defining Unicode char U+00E6 (decimal 230)\n   defining Unicode char U+00E7 (decimal 231)\n   defining Unicode char U+00E8 (decimal 232)\n   defining Unicode char U+00E9 (decimal 233)\n   defining Unicode char U+00EA (decimal 234)\n   defining Unicode char U+00EB (decimal 235)\n   defining Unicode char U+00EC (decimal 236)\n   defining Unicode char U+00ED (decimal 237)\n   defining Unicode char U+00EE (decimal 238)\n   defining Unicode char U+00EF (decimal 239)\n   defining Unicode char U+00F0 (decimal 240)\n   defining Unicode char U+00F1 (decimal 241)\n   defining Unicode char U+00F2 (decimal 242)\n   defining Unicode char U+00F3 (decimal 243)\n   defining Unicode char U+00F4 (decimal 244)\n   defining Unicode char U+00F5 (decimal 245)\n   defining Unicode char U+00F6 (decimal 246)\n   defining Unicode char U+00F8 (decimal 248)\n   defining Unicode char U+00F9 (decimal 249)\n   defining Unicode char U+00FA (decimal 250)\n   defining Unicode char U+00FB (decimal 251)\n   defining Unicode char U+00FC (decimal 252)\n   defining Unicode char U+00FD (decimal 253)\n   defining Unicode char U+00FE (decimal 254)\n   defining Unicode char U+00FF (decimal 255)\n   defining Unicode char U+0102 (decimal 258)\n   defining Unicode char U+0103 (decimal 259)\n   defining Unicode char U+0104 (decimal 260)\n   defining Unicode char U+0105 (decimal 261)\n   defining Unicode char U+0106 (decimal 262)\n   defining Unicode char U+0107 (decimal 263)\n   defining Unicode char U+010C (decimal 268)\n   defining Unicode char U+010D (decimal 269)\n   defining Unicode char U+010E (decimal 270)\n   defining Unicode char U+010F (decimal 271)\n   defining Unicode char U+0110 (decimal 272)\n   defining Unicode char U+0111 (decimal 273)\n   defining Unicode char U+0118 (decimal 280)\n   defining Unicode char U+0119 (decimal 281)\n   defining Unicode char U+011A (decimal 282)\n   defining Unicode char U+011B (decimal 283)\n   defining Unicode char U+011E (decimal 286)\n   defining Unicode char U+011F (decimal 287)\n   defining Unicode char U+0130 (decimal 304)\n   defining Unicode char U+0131 (decimal 305)\n   defining Unicode char U+0132 (decimal 306)\n   defining Unicode char U+0133 (decimal 307)\n   defining Unicode char U+0139 (decimal 313)\n   defining Unicode char U+013A (decimal 314)\n   defining Unicode char U+013D (decimal 317)\n   defining Unicode char U+013E (decimal 318)\n   defining Unicode char U+0141 (decimal 321)\n   defining Unicode char U+0142 (decimal 322)\n   defining Unicode char U+0143 (decimal 323)\n   defining Unicode char U+0144 (decimal 324)\n   defining Unicode char U+0147 (decimal 327)\n   defining Unicode char U+0148 (decimal 328)\n   defining Unicode char U+014A (decimal 330)\n   defining Unicode char U+014B (decimal 331)\n   defining Unicode char U+0150 (decimal 336)\n   defining Unicode char U+0151 (decimal 337)\n   defining Unicode char U+0152 (decimal 338)\n   defining Unicode char U+0153 (decimal 339)\n   defining Unicode char U+0154 (decimal 340)\n   defining Unicode char U+0155 (decimal 341)\n   defining Unicode char U+0158 (decimal 344)\n   defining Unicode char U+0159 (decimal 345)\n   defining Unicode char U+015A (decimal 346)\n   defining Unicode char U+015B (decimal 347)\n   defining Unicode char U+015E (decimal 350)\n   defining Unicode char U+015F (decimal 351)\n   defining Unicode char U+0160 (decimal 352)\n   defining Unicode char U+0161 (decimal 353)\n   defining Unicode char U+0162 (decimal 354)\n   defining Unicode char U+0163 (decimal 355)\n   defining Unicode char U+0164 (decimal 356)\n   defining Unicode char U+0165 (decimal 357)\n   defining Unicode char U+016E (decimal 366)\n   defining Unicode char U+016F (decimal 367)\n   defining Unicode char U+0170 (decimal 368)\n   defining Unicode char U+0171 (decimal 369)\n   defining Unicode char U+0178 (decimal 376)\n   defining Unicode char U+0179 (decimal 377)\n   defining Unicode char U+017A (decimal 378)\n   defining Unicode char U+017B (decimal 379)\n   defining Unicode char U+017C (decimal 380)\n   defining Unicode char U+017D (decimal 381)\n   defining Unicode char U+017E (decimal 382)\n   defining Unicode char U+200C (decimal 8204)\n   defining Unicode char U+2013 (decimal 8211)\n   defining Unicode char U+2014 (decimal 8212)\n   defining Unicode char U+2018 (decimal 8216)\n   defining Unicode char U+2019 (decimal 8217)\n   defining Unicode char U+201A (decimal 8218)\n   defining Unicode char U+201C (decimal 8220)\n   defining Unicode char U+201D (decimal 8221)\n   defining Unicode char U+201E (decimal 8222)\n   defining Unicode char U+2030 (decimal 8240)\n   defining Unicode char U+2031 (decimal 8241)\n   defining Unicode char U+2039 (decimal 8249)\n   defining Unicode char U+203A (decimal 8250)\n   defining Unicode char U+2423 (decimal 9251)\n)\nNow handling font encoding OT1 ...\n... processing UTF-8 mapping file for font encoding OT1\n\n(d:/texlive/2012/texmf-dist/tex/latex/base/ot1enc.dfu\nFile: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc\n   defining Unicode char U+00A1 (decimal 161)\n   defining Unicode char U+00A3 (decimal 163)\n   defining Unicode char U+00B8 (decimal 184)\n   defining Unicode char U+00BF (decimal 191)\n   defining Unicode char U+00C5 (decimal 197)\n   defining Unicode char U+00C6 (decimal 198)\n   defining Unicode char U+00D8 (decimal 216)\n   defining Unicode char U+00DF (decimal 223)\n   defining Unicode char U+00E6 (decimal 230)\n   defining Unicode char U+00EC (decimal 236)\n   defining Unicode char U+00ED (decimal 237)\n   defining Unicode char U+00EE (decimal 238)\n   defining Unicode char U+00EF (decimal 239)\n   defining Unicode char U+00F8 (decimal 248)\n   defining Unicode char U+0131 (decimal 305)\n   defining Unicode char U+0141 (decimal 321)\n   defining Unicode char U+0142 (decimal 322)\n   defining Unicode char U+0152 (decimal 338)\n   defining Unicode char U+0153 (decimal 339)\n   defining Unicode char U+2013 (decimal 8211)\n   defining Unicode char U+2014 (decimal 8212)\n   defining Unicode char U+2018 (decimal 8216)\n   defining Unicode char U+2019 (decimal 8217)\n   defining Unicode char U+201C (decimal 8220)\n   defining Unicode char U+201D (decimal 8221)\n)\nNow handling font encoding OMS ...\n... processing UTF-8 mapping file for font encoding OMS\n\n(d:/texlive/2012/texmf-dist/tex/latex/base/omsenc.dfu\nFile: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc\n   defining Unicode char U+00A7 (decimal 167)\n   defining Unicode char U+00B6 (decimal 182)\n   defining Unicode char U+00B7 (decimal 183)\n   defining Unicode char U+2020 (decimal 8224)\n   defining Unicode char U+2021 (decimal 8225)\n   defining Unicode char U+2022 (decimal 8226)\n)\nNow handling font encoding OMX ...\n... no UTF-8 mapping file for font encoding OMX\nNow handling font encoding U ...\n... no UTF-8 mapping file for font encoding U\n   defining Unicode char U+00A9 (decimal 169)\n   defining Unicode char U+00AA (decimal 170)\n   defining Unicode char U+00AE (decimal 174)\n   defining Unicode char U+00BA (decimal 186)\n   defining Unicode char U+02C6 (decimal 710)\n   defining Unicode char U+02DC (decimal 732)\n   defining Unicode char U+200C (decimal 8204)\n   defining Unicode char U+2026 (decimal 8230)\n   defining Unicode char U+2122 (decimal 8482)\n   defining Unicode char U+2423 (decimal 9251)\n))\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/CJK.sty\nPackage: CJK 2012/05/07 4.8.3\n\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/mule/MULEenc.sty\nPackage: MULEenc 2012/05/07 4.8.3\n)\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/CJK.enc\nFile: CJK.enc 2012/05/07 4.8.3\nNow handling font encoding C00 ...\n... no UTF-8 mapping file for font encoding C00\nNow handling font encoding C05 ...\n... no UTF-8 mapping file for font encoding C05\nNow handling font encoding C09 ...\n... no UTF-8 mapping file for font encoding C09\nNow handling font encoding C10 ...\n... no UTF-8 mapping file for font encoding C10\nNow handling font encoding C20 ...\n... no UTF-8 mapping file for font encoding C20\nNow handling font encoding C19 ...\n... no UTF-8 mapping file for font encoding C19\nNow handling font encoding C40 ...\n... no UTF-8 mapping file for font encoding C40\nNow handling font encoding C42 ...\n... no UTF-8 mapping file for font encoding C42\nNow handling font encoding C43 ...\n... no UTF-8 mapping file for font encoding C43\nNow handling font encoding C50 ...\n... no UTF-8 mapping file for font encoding C50\nNow handling font encoding C52 ...\n... no UTF-8 mapping file for font encoding C52\nNow handling font encoding C49 ...\n... no UTF-8 mapping file for font encoding C49\nNow handling font encoding C60 ...\n... no UTF-8 mapping file for font encoding C60\nNow handling font encoding C61 ...\n... no UTF-8 mapping file for font encoding C61\nNow handling font encoding C63 ...\n... no UTF-8 mapping file for font encoding C63\nNow handling font encoding C64 ...\n... no UTF-8 mapping file for font encoding C64\nNow handling font encoding C65 ...\n... no UTF-8 mapping file for font encoding C65\nNow handling font encoding C70 ...\n... no UTF-8 mapping file for font encoding C70\nNow handling font encoding C31 ...\n... no UTF-8 mapping file for font encoding C31\nNow handling font encoding C32 ...\n... no UTF-8 mapping file for font encoding C32\nNow handling font encoding C33 ...\n... no UTF-8 mapping file for font encoding C33\nNow handling font encoding C34 ...\n... no UTF-8 mapping file for font encoding C34\nNow handling font encoding C35 ...\n... no UTF-8 mapping file for font encoding C35\nNow handling font encoding C36 ...\n... no UTF-8 mapping file for font encoding C36\nNow handling font encoding C37 ...\n... no UTF-8 mapping file for font encoding C37\nNow handling font encoding C80 ...\n... no UTF-8 mapping file for font encoding C80\nNow handling font encoding C81 ...\n... no UTF-8 mapping file for font encoding C81\nNow handling font encoding C01 ...\n... no UTF-8 mapping file for font encoding C01\nNow handling font encoding C11 ...\n... no UTF-8 mapping file for font encoding C11\nNow handling font encoding C21 ...\n... no UTF-8 mapping file for font encoding C21\nNow handling font encoding C41 ...\n... no UTF-8 mapping file for font encoding C41\nNow handling font encoding C62 ...\n... no UTF-8 mapping file for font encoding C62\n)\nLaTeX Info: Redefining \\selectfont on input line 755.\n\\CJK@indent=\\box26\n)\n(d:/texlive/2012/texmf-dist/tex/latex/base/fontenc.sty\nPackage: fontenc 2005/09/27 v1.99g Standard LaTeX package\n))\n(d:/texlive/2012/texmf-dist/tex/latex/xcolor/xcolor.sty\nPackage: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)\n\n(d:/texlive/2012/texmf-dist/tex/latex/latexconfig/color.cfg\nFile: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive\n)\nPackage xcolor Info: Driver file: pdftex.def on input line 225.\n\n(d:/texlive/2012/texmf-dist/tex/latex/pdftex-def/pdftex.def\nFile: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/infwarerr.sty\nPackage: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ltxcmds.sty\nPackage: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)\n)\n\\Gread@gobject=\\count91\n)\nPackage xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.\nPackage xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.\nPackage xcolor Info: Model `RGB' extended on input line 1353.\nPackage xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.\nPackage xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.\nPackage xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.\nPackage xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.\nPackage xcolor Info: Model `Gray' substituted by `gray' on input line 1359.\nPackage xcolor Info: Model `wave' substituted by `hsb' on input line 1360.\n)\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/avant.sty\nPackage: avant 2005/04/12 PSNFSS-v9.2a (SPQR) \n)\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/mathptmx.sty\nPackage: mathptmx 2005/04/12 PSNFSS-v9.2a Times w/ Math, improved (SPQR, WaS) \nLaTeX Font Info:    Redeclaring symbol font `operators' on input line 28.\nLaTeX Font Info:    Overwriting symbol font `operators' in version `normal'\n(Font)                  OT1/cmr/m/n --> OT1/ztmcm/m/n on input line 28.\nLaTeX Font Info:    Overwriting symbol font `operators' in version `bold'\n(Font)                  OT1/cmr/bx/n --> OT1/ztmcm/m/n on input line 28.\nLaTeX Font Info:    Redeclaring symbol font `letters' on input line 29.\nLaTeX Font Info:    Overwriting symbol font `letters' in version `normal'\n(Font)                  OML/cmm/m/it --> OML/ztmcm/m/it on input line 29.\nLaTeX Font Info:    Overwriting symbol font `letters' in version `bold'\n(Font)                  OML/cmm/b/it --> OML/ztmcm/m/it on input line 29.\nLaTeX Font Info:    Redeclaring symbol font `symbols' on input line 30.\nLaTeX Font Info:    Overwriting symbol font `symbols' in version `normal'\n(Font)                  OMS/cmsy/m/n --> OMS/ztmcm/m/n on input line 30.\nLaTeX Font Info:    Overwriting symbol font `symbols' in version `bold'\n(Font)                  OMS/cmsy/b/n --> OMS/ztmcm/m/n on input line 30.\nLaTeX Font Info:    Redeclaring symbol font `largesymbols' on input line 31.\nLaTeX Font Info:    Overwriting symbol font `largesymbols' in version `normal'\n(Font)                  OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31.\nLaTeX Font Info:    Overwriting symbol font `largesymbols' in version `bold'\n(Font)                  OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31.\n\\symbold=\\mathgroup4\n\\symitalic=\\mathgroup5\nLaTeX Font Info:    Redeclaring math alphabet \\mathbf on input line 34.\nLaTeX Font Info:    Overwriting math alphabet `\\mathbf' in version `normal'\n(Font)                  OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34.\nLaTeX Font Info:    Overwriting math alphabet `\\mathbf' in version `bold'\n(Font)                  OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34.\nLaTeX Font Info:    Redeclaring math alphabet \\mathit on input line 35.\nLaTeX Font Info:    Overwriting math alphabet `\\mathit' in version `normal'\n(Font)                  OT1/cmr/m/it --> OT1/ptm/m/it on input line 35.\nLaTeX Font Info:    Overwriting math alphabet `\\mathit' in version `bold'\n(Font)                  OT1/cmr/bx/it --> OT1/ptm/m/it on input line 35.\nLaTeX Info: Redefining \\hbar on input line 50.\n)\n(d:/texlive/2012/texmf-dist/tex/latex/microtype/microtype.sty\nPackage: microtype 2010/01/10 v2.4 Micro-typography with pdfTeX (RS)\n\\MT@toks=\\toks18\n\\MT@count=\\count92\nLaTeX Info: Redefining \\lsstyle on input line 1597.\nLaTeX Info: Redefining \\lslig on input line 1597.\n\\MT@outer@space=\\skip43\nLaTeX Info: Redefining \\textls on input line 1605.\n\\MT@outer@kern=\\dimen112\nLaTeX Info: Redefining \\textmicrotypecontext on input line 2156.\nPackage microtype Info: Loading configuration file microtype.cfg.\n\n(d:/texlive/2012/texmf-dist/tex/latex/microtype/microtype.cfg\nFile: microtype.cfg 2010/01/10 v2.4 microtype main configuration file (RS)\n))\n(d:/texlive/2012/texmf-dist/tex/latex/base/fontenc.sty\nPackage: fontenc 2005/09/27 v1.99g Standard LaTeX package\n\n(d:/texlive/2012/texmf-dist/tex/latex/base/t1enc.def\nFile: t1enc.def 2005/09/27 v1.99g Standard LaTeX file\nLaTeX Font Info:    Redeclaring font encoding T1 on input line 43.\n))\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/biblatex.sty\nPackage: biblatex 2011/11/13 v1.7 programmable bibliographies\n\n(d:/texlive/2012/texmf-dist/tex/latex/etoolbox/etoolbox.sty\nPackage: etoolbox 2011/01/03 v2.1 e-TeX tools for LaTeX\n\n(d:/texlive/2012/texmf-dist/tex/latex/etex-pkg/etex.sty\nPackage: etex 1998/03/26 v2.0 eTeX basic definition package (PEB)\n\\et@xins=\\count93\n)\n\\etb@tempcnta=\\count94\n)\n(d:/texlive/2012/texmf-dist/tex/latex/logreq/logreq.sty\nPackage: logreq 2010/08/04 v1.0 xml request logger\n\\lrq@indent=\\count95\n\n(d:/texlive/2012/texmf-dist/tex/latex/logreq/logreq.def\nFile: logreq.def 2010/08/04 v1.0 logreq spec v1.0\n))\n(d:/texlive/2012/texmf-dist/tex/latex/base/ifthen.sty\nPackage: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)\n)\n(d:/texlive/2012/texmf-dist/tex/latex/url/url.sty\n\\Urlmuskip=\\muskip10\nPackage: url 2006/04/12  ver 3.3  Verb mode for urls, etc.\n)\n\\c@listtotal=\\count96\n\\c@listcount=\\count97\n\\c@liststart=\\count98\n\\c@liststop=\\count99\n\\c@citecount=\\count100\n\\c@citetotal=\\count101\n\\c@multicitecount=\\count102\n\\c@multicitetotal=\\count103\n\\c@instcount=\\count104\n\\c@maxnames=\\count105\n\\c@minnames=\\count106\n\\c@maxitems=\\count107\n\\c@minitems=\\count108\n\\c@citecounter=\\count109\n\\c@savedcitecounter=\\count110\n\\c@uniquelist=\\count111\n\\c@uniquename=\\count112\n\\c@refsection=\\count113\n\\c@refsegment=\\count114\n\\c@maxextrayear=\\count115\n\\c@maxextraalpha=\\count116\n\\c@abbrvpenalty=\\count117\n\\c@highnamepenalty=\\count118\n\\c@lownamepenalty=\\count119\n\\c@maxparens=\\count120\n\\c@parenlevel=\\count121\n\\blx@tempcnta=\\count122\n\\blx@tempcntb=\\count123\n\\blx@tempcntc=\\count124\n\\blx@maxsection=\\count125\n\\blx@maxsegment=\\count126\n\\blx@notetype=\\count127\n\\blx@parenlevel@text=\\count128\n\\blx@parenlevel@foot=\\count129\n\\labelnumberwidth=\\skip44\n\\labelalphawidth=\\skip45\n\\shorthandwidth=\\skip46\n\\biblabelsep=\\skip47\n\\bibitemsep=\\skip48\n\\bibnamesep=\\skip49\n\\bibinitsep=\\skip50\n\\bibparsep=\\skip51\n\\bibhang=\\skip52\n\\blx@auxin=\\read1\n\\blx@auxout=\\write3\n\\c@mincomprange=\\count130\n\\c@maxcomprange=\\count131\n\\c@mincompwidth=\\count132\n\\c@labelname=\\count133\n\\c@savedlabelname=\\count134\n\\c@author=\\count135\n\\c@savedauthor=\\count136\n\\c@shortauthor=\\count137\n\\c@savedshortauthor=\\count138\n\\c@editor=\\count139\n\\c@savededitor=\\count140\n\\c@editora=\\count141\n\\c@savededitora=\\count142\n\\c@editorb=\\count143\n\\c@savededitorb=\\count144\n\\c@editorc=\\count145\n\\c@savededitorc=\\count146\n\\c@shorteditor=\\count147\n\\c@savedshorteditor=\\count148\n\\c@bookauthor=\\count149\n\\c@savedbookauthor=\\count150\n\\c@translator=\\count151\n\\c@savedtranslator=\\count152\n\\c@annotator=\\count153\n\\c@savedannotator=\\count154\n\\c@commentator=\\count155\n\\c@savedcommentator=\\count156\n\\c@introduction=\\count157\n\\c@savedintroduction=\\count158\n\\c@foreword=\\count159\n\\c@savedforeword=\\count160\n\\c@afterword=\\count161\n\\c@savedafterword=\\count162\n\\c@holder=\\count163\n\\c@savedholder=\\count164\n\\c@namea=\\count165\n\\c@savednamea=\\count166\n\\c@nameb=\\count167\n\\c@savednameb=\\count168\n\\c@namec=\\count169\n\\c@savednamec=\\count170\n\\c@institution=\\count171\n\\c@savedinstitution=\\count172\n\\c@language=\\count173\n\\c@savedlanguage=\\count174\n\\c@location=\\count175\n\\c@savedlocation=\\count176\n\\c@organization=\\count177\n\\c@savedorganization=\\count178\n\\c@origlocation=\\count179\n\\c@savedoriglocation=\\count180\n\\c@origpublisher=\\count181\n\\c@savedorigpublisher=\\count182\n\\c@pageref=\\count183\n\\c@savedpageref=\\count184\n\\c@publisher=\\count185\n\\c@savedpublisher=\\count186\n\\c@lista=\\count187\n\\c@savedlista=\\count188\n\\c@listb=\\count189\n\\c@savedlistb=\\count190\n\\c@listc=\\count191\n\\c@savedlistc=\\count192\n\\c@listd=\\count193\n\\c@savedlistd=\\count194\n\\c@liste=\\count195\n\\c@savedliste=\\count196\n\\c@listf=\\count197\n\\c@savedlistf=\\count198\nPackage biblatex Info: Trying to load compatibility code...\nPackage biblatex Info: ... file 'blx-compat.def' found.\n\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/blx-compat.def\nFile: blx-compat.def 2011/11/13 v1.7 biblatex generic compatibility\n)\nPackage biblatex Info: Trying to load generic definitions...\nPackage biblatex Info: ... file 'biblatex.def' found.\n\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/biblatex.def\nFile: biblatex.def 2011/11/13 v1.7 biblatex generic definitions\n\\c@biburlnumpenalty=\\count199\n\\c@biburlucpenalty=\\count200\n\\c@biburllcpenalty=\\count201\n\\c@smartand=\\count202\n)\nPackage biblatex Info: Trying to load bibliography style 'alphabetic'...\nPackage biblatex Info: ... file 'alphabetic.bbx' found.\n\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/bbx/alphabetic.bbx\nFile: alphabetic.bbx 2011/11/13 v1.7 biblatex bibliography style\nPackage biblatex Info: Trying to load bibliography style 'standard'...\nPackage biblatex Info: ... file 'standard.bbx' found.\n\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/bbx/standard.bbx\nFile: standard.bbx 2011/11/13 v1.7 biblatex bibliography style\n))\nPackage biblatex Info: Trying to load citation style 'alphabetic'...\nPackage biblatex Info: ... file 'alphabetic.cbx' found.\n\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx\nFile: alphabetic.cbx 2011/11/13 v1.7 biblatex citation style\nPackage biblatex Info: Redefining '\\cite'.\nPackage biblatex Info: Redefining '\\parencite'.\nPackage biblatex Info: Redefining '\\footcite'.\nPackage biblatex Info: Redefining '\\footcitetext'.\nPackage biblatex Info: Redefining '\\smartcite'.\nPackage biblatex Info: Redefining '\\textcite'.\nPackage biblatex Info: Redefining '\\cites'.\nPackage biblatex Info: Redefining '\\parencites'.\nPackage biblatex Info: Redefining '\\smartcites'.\n)\nPackage biblatex Info: Trying to load configuration file...\nPackage biblatex Info: ... file 'biblatex.cfg' found.\n\n(d:/texlive/2012/texmf-dist/tex/latex/biblatex/biblatex.cfg\nFile: biblatex.cfg \n))\n(d:/texlive/2012/texmf-dist/tex/latex/tools/calc.sty\nPackage: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)\n\\calc@Acount=\\count203\n\\calc@Bcount=\\count204\n\\calc@Adimen=\\dimen113\n\\calc@Bdimen=\\dimen114\n\\calc@Askip=\\skip53\n\\calc@Bskip=\\skip54\nLaTeX Info: Redefining \\setlength on input line 76.\nLaTeX Info: Redefining \\addtolength on input line 77.\n\\calc@Ccount=\\count205\n\\calc@Cskip=\\skip55\n)\n(d:/texlive/2012/texmf-dist/tex/latex/base/makeidx.sty\nPackage: makeidx 2000/03/29 v1.0m Standard LaTeX package\n)\n\\@indexfile=\\write4\n\\openout4 = `main.idx'.\n\n\nWriting index file main.idx\n(./structure.tex (d:/texlive/2012/texmf-dist/tex/latex/titlesec/titlesec.sty\nPackage: titlesec 2011/12/15 v2.10.0 Sectioning titles\n\\ttl@box=\\box27\n\\beforetitleunit=\\skip56\n\\aftertitleunit=\\skip57\n\\ttl@plus=\\dimen115\n\\ttl@minus=\\dimen116\n\\ttl@toksa=\\toks19\n\\titlewidth=\\dimen117\n\\titlewidthlast=\\dimen118\n\\titlewidthfirst=\\dimen119\n)\n(d:/texlive/2012/texmf-dist/tex/latex/graphics/graphicx.sty\nPackage: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)\n\n(d:/texlive/2012/texmf-dist/tex/latex/graphics/graphics.sty\nPackage: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)\n\n(d:/texlive/2012/texmf-dist/tex/latex/graphics/trig.sty\nPackage: trig 1999/03/16 v1.09 sin cos tan (DPC)\n)\n(d:/texlive/2012/texmf-dist/tex/latex/latexconfig/graphics.cfg\nFile: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live\n)\nPackage graphics Info: Driver file: pdftex.def on input line 91.\n)\n\\Gin@req@height=\\dimen120\n\\Gin@req@width=\\dimen121\n)\n(d:/texlive/2012/texmf-dist/tex/latex/lipsum/lipsum.sty\nPackage: lipsum 2011/04/14 v1.2 150 paragraphs of Lorem Ipsum dummy text\n\\c@lips@count=\\count206\n)\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex\n\\pgfutil@everybye=\\toks20\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def\n\\pgfutil@abb=\\box28\n\n(d:/texlive/2012/texmf-dist/tex/latex/ms/everyshi.sty\nPackage: everyshi 2001/05/15 v3.00 EveryShipout Package (MS)\n))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex\nPackage: pgfrcs 2010/10/25 v2.10 (rcs-revision 1.24)\n))\nPackage: pgf 2008/01/15 v2.10 (rcs-revision 1.12)\n\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex\nPackage: pgfsys 2010/06/30 v2.10 (rcs-revision 1.37)\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex\n\\pgfkeys@pathtoks=\\toks21\n\\pgfkeys@temptoks=\\toks22\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex\n\\pgfkeys@tmptoks=\\toks23\n))\n\\pgf@x=\\dimen122\n\\pgf@y=\\dimen123\n\\pgf@xa=\\dimen124\n\\pgf@ya=\\dimen125\n\\pgf@xb=\\dimen126\n\\pgf@yb=\\dimen127\n\\pgf@xc=\\dimen128\n\\pgf@yc=\\dimen129\n\\w@pgf@writea=\\write5\n\\r@pgf@reada=\\read2\n\\c@pgf@counta=\\count207\n\\c@pgf@countb=\\count208\n\\c@pgf@countc=\\count209\n\\c@pgf@countd=\\count210\n (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg\nFile: pgf.cfg 2008/05/14  (rcs-revision 1.7)\n)\nPackage pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 900.\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def\nFile: pgfsys-pdftex.def 2009/05/22  (rcs-revision 1.26)\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def\nFile: pgfsys-common-pdf.def 2008/05/19  (rcs-revision 1.10)\n)))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex\nFile: pgfsyssoftpath.code.tex 2008/07/18  (rcs-revision 1.7)\n\\pgfsyssoftpath@smallbuffer@items=\\count211\n\\pgfsyssoftpath@bigbuffer@items=\\count212\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex\nFile: pgfsysprotocol.code.tex 2006/10/16  (rcs-revision 1.4)\n)) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex\nPackage: pgfcore 2010/04/11 v2.10 (rcs-revision 1.7)\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex\n\\pgfmath@dimen=\\dimen130\n\\pgfmath@count=\\count213\n\\pgfmath@box=\\box29\n\\pgfmath@toks=\\toks24\n\\pgfmath@stack@operand=\\toks25\n\\pgfmath@stack@operation=\\toks26\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te\nx)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric\n.code.tex)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t\nex)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co\nde.tex)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te\nx)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex\n))) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex\n\\c@pgfmathroundto@lastzeros=\\count214\n))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex\nFile: pgfcorepoints.code.tex 2010/04/09  (rcs-revision 1.20)\n\\pgf@picminx=\\dimen131\n\\pgf@picmaxx=\\dimen132\n\\pgf@picminy=\\dimen133\n\\pgf@picmaxy=\\dimen134\n\\pgf@pathminx=\\dimen135\n\\pgf@pathmaxx=\\dimen136\n\\pgf@pathminy=\\dimen137\n\\pgf@pathmaxy=\\dimen138\n\\pgf@xx=\\dimen139\n\\pgf@xy=\\dimen140\n\\pgf@yx=\\dimen141\n\\pgf@yy=\\dimen142\n\\pgf@zx=\\dimen143\n\\pgf@zy=\\dimen144\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod\ne.tex\nFile: pgfcorepathconstruct.code.tex 2010/08/03  (rcs-revision 1.24)\n\\pgf@path@lastx=\\dimen145\n\\pgf@path@lasty=\\dimen146\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te\nx\nFile: pgfcorepathusage.code.tex 2008/04/22  (rcs-revision 1.12)\n\\pgf@shorten@end@additional=\\dimen147\n\\pgf@shorten@start@additional=\\dimen148\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex\nFile: pgfcorescopes.code.tex 2010/09/08  (rcs-revision 1.34)\n\\pgfpic=\\box30\n\\pgf@hbox=\\box31\n\\pgf@layerbox@main=\\box32\n\\pgf@picture@serial@count=\\count215\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code\n.tex\nFile: pgfcoregraphicstate.code.tex 2008/04/22  (rcs-revision 1.9)\n\\pgflinewidth=\\dimen149\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c\node.tex\nFile: pgfcoretransformations.code.tex 2009/06/10  (rcs-revision 1.11)\n\\pgf@pt@x=\\dimen150\n\\pgf@pt@y=\\dimen151\n\\pgf@pt@temp=\\dimen152\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex\nFile: pgfcorequick.code.tex 2008/10/09  (rcs-revision 1.3)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex\nFile: pgfcoreobjects.code.tex 2006/10/11  (rcs-revision 1.2)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co\nde.tex\nFile: pgfcorepathprocessing.code.tex 2008/10/09  (rcs-revision 1.8)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex\nFile: pgfcorearrows.code.tex 2008/04/23  (rcs-revision 1.11)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex\nFile: pgfcoreshade.code.tex 2008/11/23  (rcs-revision 1.13)\n\\pgf@max=\\dimen153\n\\pgf@sys@shading@range@num=\\count216\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex\nFile: pgfcoreimage.code.tex 2010/03/25  (rcs-revision 1.16)\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex\nFile: pgfcoreexternal.code.tex 2010/09/01  (rcs-revision 1.17)\n\\pgfexternal@startupbox=\\box33\n))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex\nFile: pgfcorelayers.code.tex 2010/08/27  (rcs-revision 1.2)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code\n.tex\nFile: pgfcoretransparency.code.tex 2008/01/17  (rcs-revision 1.2)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex\nFile: pgfcorepatterns.code.tex 2009/07/02  (rcs-revision 1.3)\n)))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex\nFile: pgfmoduleshapes.code.tex 2010/09/09  (rcs-revision 1.13)\n\\pgfnodeparttextbox=\\box34\n)\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex\nFile: pgfmoduleplot.code.tex 2010/10/22  (rcs-revision 1.8)\n)\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st\ny\nPackage: pgfcomp-version-0-65 2007/07/03 v2.10 (rcs-revision 1.7)\n\\pgf@nodesepstart=\\dimen154\n\\pgf@nodesepend=\\dimen155\n)\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st\ny\nPackage: pgfcomp-version-1-18 2007/07/23 v2.10 (rcs-revision 1.1)\n)) (d:/texlive/2012/texmf-dist/tex/latex/pgf/utilities/pgffor.sty\n(d:/texlive/2012/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex\nPackage: pgffor 2010/03/23 v2.10 (rcs-revision 1.18)\n\\pgffor@iter=\\dimen156\n\\pgffor@skip=\\dimen157\n\\pgffor@stack=\\toks27\n\\pgffor@toks=\\toks28\n))\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex\nPackage: tikz 2010/10/13 v2.10 (rcs-revision 1.76)\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co\nde.tex\nFile: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcs-revision 1.15)\n\\pgf@plot@mark@count=\\count217\n\\pgfplotmarksize=\\dimen158\n)\n\\tikz@lastx=\\dimen159\n\\tikz@lasty=\\dimen160\n\\tikz@lastxsaved=\\dimen161\n\\tikz@lastysaved=\\dimen162\n\\tikzleveldistance=\\dimen163\n\\tikzsiblingdistance=\\dimen164\n\\tikz@figbox=\\box35\n\\tikz@tempbox=\\box36\n\\tikztreelevel=\\count218\n\\tikznumberofchildren=\\count219\n\\tikznumberofcurrentchild=\\count220\n\\tikz@fig@count=\\count221\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex\nFile: pgfmodulematrix.code.tex 2010/08/24  (rcs-revision 1.4)\n\\pgfmatrixcurrentrow=\\count222\n\\pgfmatrixcurrentcolumn=\\count223\n\\pgf@matrix@numberofcolumns=\\count224\n)\n\\tikz@expandcount=\\count225\n\n(d:/texlive/2012/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli\nbrarytopaths.code.tex\nFile: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcs-revision 1.2)\n)))\n(d:/texlive/2012/texmf-dist/tex/generic/babel/babel.sty\nPackage: babel 2008/07/08 v3.8m The Babel package\n\n(d:/texlive/2012/texmf-dist/tex/generic/babel/english.ldf\nLanguage: english 2005/03/30 v3.3o English support from the babel system\n\n(d:/texlive/2012/texmf-dist/tex/generic/babel/babel.def\nFile: babel.def 2008/07/08 v3.8m Babel common definitions\n\\babel@savecnt=\\count226\n\\U@D=\\dimen165\n)\n\\l@canadian = a dialect from \\language\\l@american \n\\l@australian = a dialect from \\language\\l@british \n\\l@newzealand = a dialect from \\language\\l@british \n))\n(d:/texlive/2012/texmf-dist/tex/latex/enumitem/enumitem.sty\nPackage: enumitem 2011/09/28 v3.5.2 Customized lists\n\\labelindent=\\skip58\n\\enit@outerparindent=\\dimen166\n\\enit@toks=\\toks29\n\\enit@inbox=\\box37\n\\enitdp@description=\\count227\n)\n(d:/texlive/2012/texmf-dist/tex/latex/booktabs/booktabs.sty\nPackage: booktabs 2005/04/14 v1.61803 publication quality tables\n\\heavyrulewidth=\\dimen167\n\\lightrulewidth=\\dimen168\n\\cmidrulewidth=\\dimen169\n\\belowrulesep=\\dimen170\n\\belowbottomsep=\\dimen171\n\\aboverulesep=\\dimen172\n\\abovetopsep=\\dimen173\n\\cmidrulesep=\\dimen174\n\\cmidrulekern=\\dimen175\n\\defaultaddspace=\\dimen176\n\\@cmidla=\\count228\n\\@cmidlb=\\count229\n\\@aboverulesep=\\dimen177\n\\@belowrulesep=\\dimen178\n\\@thisruleclass=\\count230\n\\@lastruleclass=\\count231\n\\@thisrulewidth=\\dimen179\n)\n(d:/texlive/2012/texmf-dist/tex/latex/eso-pic/eso-pic.sty\nPackage: eso-pic 2010/10/06 v2.0c eso-pic (RN)\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/atbegshi.sty\nPackage: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO)\n))\n(d:/texlive/2012/texmf-dist/tex/latex/titlesec/titletoc.sty\nPackage: titletoc 2011/12/15 v1.6 TOC entries\n\\ttl@leftsep=\\dimen180\n)\n(d:/texlive/2012/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty\n\\fancy@headwidth=\\skip59\n\\f@ncyO@elh=\\skip60\n\\f@ncyO@erh=\\skip61\n\\f@ncyO@olh=\\skip62\n\\f@ncyO@orh=\\skip63\n\\f@ncyO@elf=\\skip64\n\\f@ncyO@erf=\\skip65\n\\f@ncyO@olf=\\skip66\n\\f@ncyO@orf=\\skip67\n)\n(d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsmath.sty\nPackage: amsmath 2000/07/18 v2.13 AMS math features\n\\@mathmargin=\\skip68\n\nFor additional information on amsmath, use the `?' option.\n(d:/texlive/2012/texmf-dist/tex/latex/amsmath/amstext.sty\nPackage: amstext 2000/06/29 v2.01\n\n(d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsgen.sty\nFile: amsgen.sty 1999/11/30 v2.0\n\\@emptytoks=\\toks30\n\\ex@=\\dimen181\n))\n(d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsbsy.sty\nPackage: amsbsy 1999/11/29 v1.2d\n\\pmbraise@=\\dimen182\n)\n(d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsopn.sty\nPackage: amsopn 1999/12/14 v2.01 operator names\n)\n\\inf@bad=\\count232\nLaTeX Info: Redefining \\frac on input line 211.\n\\uproot@=\\count233\nNormal \\count register pool exhausted, switching to extended pool.\n\\leftroot@=\\count277\nLaTeX Info: Redefining \\overline on input line 307.\n\\classnum@=\\count278\n\\DOTSCASE@=\\count279\nLaTeX Info: Redefining \\ldots on input line 379.\nLaTeX Info: Redefining \\dots on input line 382.\nLaTeX Info: Redefining \\cdots on input line 467.\n\\Mathstrutbox@=\\box38\n\\strutbox@=\\box39\n\\big@size=\\dimen183\nLaTeX Font Info:    Redeclaring font encoding OML on input line 567.\nLaTeX Font Info:    Redeclaring font encoding OMS on input line 568.\n\\macc@depth=\\count280\n\\c@MaxMatrixCols=\\count281\n\\dotsspace@=\\muskip11\n\\c@parentequation=\\count282\n\\dspbrk@lvl=\\count283\n\\tag@help=\\toks31\n\\row@=\\count284\n\\column@=\\count285\n\\maxfields@=\\count286\n\\andhelp@=\\toks32\n\\eqnshift@=\\dimen184\n\\alignsep@=\\dimen185\n\\tagshift@=\\dimen186\n\\tagwidth@=\\dimen187\n\\totwidth@=\\dimen188\n\\lineht@=\\dimen189\n\\@envbody=\\toks33\n\\multlinegap=\\skip69\n\\multlinetaggap=\\skip70\n\\mathdisplay@stack=\\toks34\nLaTeX Info: Redefining \\[ on input line 2666.\nLaTeX Info: Redefining \\] on input line 2667.\n)\n(d:/texlive/2012/texmf-dist/tex/latex/amsfonts/amsfonts.sty\nPackage: amsfonts 2009/06/22 v3.00 Basic AMSFonts support\n\\symAMSa=\\mathgroup6\n\\symAMSb=\\mathgroup7\nLaTeX Font Info:    Overwriting math alphabet `\\mathfrak' in version `bold'\n(Font)                  U/euf/m/n --> U/euf/b/n on input line 96.\n)\n(d:/texlive/2012/texmf-dist/tex/latex/amsfonts/amssymb.sty\nPackage: amssymb 2009/06/22 v3.00\n)\n(d:/texlive/2012/texmf-dist/tex/latex/amscls/amsthm.sty\nPackage: amsthm 2009/07/02 v2.20.1\n\\thm@style=\\toks35\n\\thm@bodyfont=\\toks36\n\\thm@headfont=\\toks37\n\\thm@notefont=\\toks38\n\\thm@headpunct=\\toks39\n\\thm@preskip=\\skip71\n\\thm@postskip=\\skip72\n\\thm@headsep=\\skip73\n\\dth@everypar=\\toks40\n)\n\\c@notation=\\count287\n\\c@dummy=\\count288\n\\c@problem=\\count289\n\\c@exerciseT=\\count290\n\\c@exampleT=\\count291\n\\c@vocabulary=\\count292\n\\c@definitionT=\\count293\n\n(d:/texlive/2012/texmf-dist/tex/latex/mdframed/mdframed.sty\nPackage: mdframed 2012/04/08 v1.5: mdframed\n\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/kvoptions.sty\nPackage: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty\nPackage: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/etexcmds.sty\nPackage: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ifluatex.sty\nPackage: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)\nPackage ifluatex Info: LuaTeX not detected.\n)\nPackage etexcmds Info: Could not find \\expanded.\n(etexcmds)             That can mean that you are not using pdfTeX 1.50 or\n(etexcmds)             that some package has redefined \\expanded.\n(etexcmds)             In the latter case, load this package earlier.\n)))\n(d:/texlive/2012/texmf-dist/tex/latex/l3packages/xparse/xparse.sty\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/expl3.sty\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3names.sty\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty\nPackage: l3bootstrap 2011/12/29 v3110 L3 Experimental bootstrap code\n)\nPackage: l3names 2012/03/04 v3494 L3 Experimental namespace for primitives\n)\nPackage: expl3 2012/04/23 v3570 L3 Experimental code bundle wrapper\n\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3basics.sty\nPackage: l3basics 2012/03/04 v3491 L3 Experimental basic definitions\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3expan.sty\nPackage: l3expan 2012/02/26 v3460 L3 Experimental argument expansion\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3tl.sty\nPackage: l3tl 2012/03/04 v3490 L3 Experimental token lists\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3seq.sty\nPackage: l3seq 2012/03/04 v3490 L3 Experimental sequences and stacks\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3int.sty\nPackage: l3int 2012/03/04 v3490 L3 Experimental integers\n\\c_max_int=\\count294\n\\l_tmpa_int=\\count295\n\\l_tmpb_int=\\count296\n\\l_tmpc_int=\\count297\n\\g_tmpa_int=\\count298\n\\g_tmpb_int=\\count299\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3quark.sty\nPackage: l3quark 2012/02/12 v3384 L3 Experimental quarks\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3prg.sty\nPackage: l3prg 2012/03/04 v3490 L3 Experimental control structures\n\\g_prg_map_int=\\count300\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3clist.sty\nPackage: l3clist 2012/03/04 v3490 L3 Experimental comma separated lists\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3token.sty\nPackage: l3token 2012/03/04 v3491 L3 Experimental token manipulation\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3prop.sty\nPackage: l3prop 2012/03/04 v3490 L3 Experimental property lists\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3msg.sty\nPackage: l3msg 2012/04/23 v3568 L3 Experimental messages\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3file.sty\nPackage: l3file 2012/03/09 v3520 L3 Experimental file and I/O operations\n\\l_iow_stream_int=\\count301\n\\l_iow_line_length_int=\\count302\n\\l_iow_target_length_int=\\count303\n\\l_iow_current_line_int=\\count304\n\\l_iow_current_word_int=\\count305\n\\l_iow_current_indentation_int=\\count306\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3skip.sty\nPackage: l3skip 2012/03/05 v3499 L3 Experimental dimensions and skips\n\\l_tmpa_dim=\\dimen190\n\\l_tmpb_dim=\\dimen191\n\\l_tmpc_dim=\\dimen192\n\\g_tmpa_dim=\\dimen193\n\\g_tmpb_dim=\\dimen194\n\\l_tmpa_skip=\\skip74\n\\l_tmpb_skip=\\skip75\n\\l_tmpc_skip=\\skip76\n\\g_tmpa_skip=\\skip77\n\\g_tmpb_skip=\\skip78\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3keys.sty\nPackage: l3keys 2012/03/03 v3487 L3 Experimental key-value interfaces\n\\g_keyval_level_int=\\count307\n\\l_keys_choice_int=\\count308\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3fp.sty\nPackage: l3fp 2012/03/04 v3490 L3 Experimental floating-point operations\n\\c_one_million=\\count309\n\\c_one_hundred_million=\\count310\n\\c_five_hundred_million=\\count311\n\\c_one_thousand_million=\\count312\n\\c_fp_pi_by_four_decimal_int=\\count313\n\\c_fp_pi_by_four_extended_int=\\count314\n\\c_fp_pi_decimal_int=\\count315\n\\c_fp_pi_extended_int=\\count316\n\\c_fp_two_pi_decimal_int=\\count317\n\\c_fp_two_pi_extended_int=\\count318\n\\l_fp_count_int=\\count319\n\\l_fp_div_offset_int=\\count320\n\\l_fp_exp_integer_int=\\count321\n\\l_fp_exp_decimal_int=\\count322\n\\l_fp_exp_extended_int=\\count323\n\\l_fp_exp_exponent_int=\\count324\n\\l_fp_input_a_sign_int=\\count325\n\\l_fp_input_a_integer_int=\\count326\n\\l_fp_input_a_decimal_int=\\count327\n\\l_fp_input_a_exponent_int=\\count328\n\\l_fp_input_b_sign_int=\\count329\n\\l_fp_input_b_integer_int=\\count330\n\\l_fp_input_b_decimal_int=\\count331\n\\l_fp_input_b_exponent_int=\\count332\n\\l_fp_input_a_extended_int=\\count333\n\\l_fp_input_b_extended_int=\\count334\n\\l_fp_mul_a_i_int=\\count335\n\\l_fp_mul_a_ii_int=\\count336\n\\l_fp_mul_a_iii_int=\\count337\n\\l_fp_mul_a_iv_int=\\count338\n\\l_fp_mul_a_v_int=\\count339\n\\l_fp_mul_a_vi_int=\\count340\n\\l_fp_mul_b_i_int=\\count341\n\\l_fp_mul_b_ii_int=\\count342\n\\l_fp_mul_b_iii_int=\\count343\n\\l_fp_mul_b_iv_int=\\count344\n\\l_fp_mul_b_v_int=\\count345\n\\l_fp_mul_b_vi_int=\\count346\n\\l_fp_mul_output_int=\\count347\n\\l_fp_output_sign_int=\\count348\n\\l_fp_output_integer_int=\\count349\n\\l_fp_output_decimal_int=\\count350\n\\l_fp_output_exponent_int=\\count351\n\\l_fp_output_extended_int=\\count352\n\\l_fp_round_position_int=\\count353\n\\l_fp_round_target_int=\\count354\n\\l_fp_split_sign_int=\\count355\n\\l_fp_internal_int=\\count356\n\\l_fp_trig_octant_int=\\count357\n\\l_fp_trig_sign_int=\\count358\n\\l_fp_trig_decimal_int=\\count359\n\\l_fp_trig_extended_int=\\count360\n\\l_fp_internal_dim=\\dimen195\n\\l_fp_internal_skip=\\skip79\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3box.sty\nPackage: l3box 2012/03/04 v3490 L3 Experimental boxes\n\\l_tmpb_box=\\box40\n\\l_box_top_dim=\\dimen196\n\\l_box_bottom_dim=\\dimen197\n\\l_box_left_dim=\\dimen198\n\\l_box_right_dim=\\dimen199\n\\l_box_top_new_dim=\\dimen200\n\\l_box_bottom_new_dim=\\dimen201\nNormal \\dimen register pool exhausted, switching to extended pool.\n\\l_box_left_new_dim=\\dimen256\n\\l_box_right_new_dim=\\dimen257\n\\l_box_internal_box=\\box41\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3coffins.sty\nPackage: l3coffins 2012/03/03 v3482 L3 Experimental coffin code layer\n\\l_coffin_internal_box=\\box42\n\\l_coffin_internal_dim=\\dimen258\n\\l_coffin_offset_x_dim=\\dimen259\n\\l_coffin_offset_y_dim=\\dimen260\n\\l_coffin_x_dim=\\dimen261\n\\l_coffin_y_dim=\\dimen262\n\\l_coffin_x_prime_dim=\\dimen263\n\\l_coffin_y_prime_dim=\\dimen264\n\\l_coffin_Depth_dim=\\dimen265\n\\l_coffin_Height_dim=\\dimen266\n\\l_coffin_TotalHeight_dim=\\dimen267\n\\l_coffin_Width_dim=\\dimen268\n\\c_empty_coffin=\\box43\n\\l_coffin_aligned_coffin=\\box44\n\\l_coffin_aligned_internal_coffin=\\box45\n\\l_coffin_bounding_shift_dim=\\dimen269\n\\l_coffin_left_corner_dim=\\dimen270\n\\l_coffin_right_corner_dim=\\dimen271\n\\l_coffin_bottom_corner_dim=\\dimen272\n\\l_coffin_top_corner_dim=\\dimen273\n\\l_coffin_scaled_total_height_dim=\\dimen274\n\\l_coffin_scaled_width_dim=\\dimen275\n\\l_coffin_display_coffin=\\box46\n\\l_coffin_display_coord_coffin=\\box47\n\\l_coffin_display_pole_coffin=\\box48\n\\l_coffin_display_offset_dim=\\dimen276\n\\l_coffin_display_x_dim=\\dimen277\n\\l_coffin_display_y_dim=\\dimen278\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3color.sty\nPackage: l3color 2011/09/07 v2776 L3 Experimental colour support\n)\n(d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3luatex.sty\nPackage: l3luatex 2012/02/09 v3355 L3 Experimental LuaTeX-specific functions\n\\g_cctab_allocate_int=\\count361\n\\g_cctab_stack_int=\\count362\n))\nPackage: xparse 2012/04/23 v3570 L3 Experimental document command parser\n\\l_xparse_current_arg_int=\\count363\n\\l_xparse_m_args_int=\\count364\n\\l_xparse_mandatory_args_int=\\count365\n\\l_xparse_processor_int=\\count366\n\\l_xparse_v_nesting_int=\\count367\n)\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/zref-abspage.sty\nPackage: zref-abspage 2012/04/04 v2.24 Module abspage for zref (HO)\n\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/zref-base.sty\nPackage: zref-base 2012/04/04 v2.24 Module base for zref (HO)\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty\nPackage: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)\n)\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty\nPackage: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO\n)\nPackage pdftexcmds Info: LuaTeX not detected.\nPackage pdftexcmds Info: \\pdf@primitive is available.\nPackage pdftexcmds Info: \\pdf@ifprimitive is available.\nPackage pdftexcmds Info: \\pdfdraftmode found.\n)\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/auxhook.sty\nPackage: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO)\n)\nPackage zref Info: New property list: main on input line 759.\nPackage zref Info: New property: default on input line 760.\nPackage zref Info: New property: page on input line 761.\n)\n\\c@abspage=\\count368\nPackage zref Info: New property: abspage on input line 62.\n)\n\\mdf@templength=\\skip80\n\\c@mdf@globalstyle@cnt=\\count369\n\\mdf@skipabove@length=\\skip81\n\\mdf@skipbelow@length=\\skip82\n\\mdf@leftmargin@length=\\skip83\n\\mdf@rightmargin@length=\\skip84\n\\mdf@innerleftmargin@length=\\skip85\n\\mdf@innerrightmargin@length=\\skip86\n\\mdf@innertopmargin@length=\\skip87\n\\mdf@innerbottommargin@length=\\skip88\n\\mdf@splittopskip@length=\\skip89\n\\mdf@splitbottomskip@length=\\skip90\n\\mdf@outermargin@length=\\skip91\n\\mdf@innermargin@length=\\skip92\n\\mdf@linewidth@length=\\skip93\n\\mdf@innerlinewidth@length=\\skip94\n\\mdf@middlelinewidth@length=\\skip95\n\\mdf@outerlinewidth@length=\\skip96\n\\mdf@roundcorner@length=\\skip97\n\\mdf@footenotedistance@length=\\skip98\n\\mdf@userdefinedwidth@length=\\skip99\n\\mdf@frametitleaboveskip@length=\\skip100\n\\mdf@frametitlebelowskip@length=\\skip101\n\\mdf@frametitlerulewidth@length=\\skip102\n\\mdf@frametitleleftmargin@length=\\skip103\n\\mdf@frametitlerightmargin@length=\\skip104\n\\mdf@shadowsize@length=\\skip105\n\\mdf@frametitlebox=\\box49\n\\mdf@footnotebox=\\box50\n\\mdf@splitbox@one=\\box51\n\\mdf@splitbox@two=\\box52\n\\mdfsplitboxwidth=\\skip106\n\\mdfsplitboxtotalwidth=\\skip107\n\\mdfsplitboxheight=\\skip108\n\\mdfsplitboxdepth=\\skip109\n\\mdfsplitboxtotalheight=\\skip110\n\\mdfframetitleboxwidth=\\skip111\n\\mdfframetitleboxtotalwidth=\\skip112\n\\mdfframetitleboxheight=\\skip113\n\\mdfframetitleboxdepth=\\skip114\n\\mdfframetitleboxtotalheight=\\skip115\n\\mdffootnoteboxwidth=\\skip116\n\\mdffootnoteboxtotalwidth=\\skip117\n\\mdffootnoteboxheight=\\skip118\n\\mdffootnoteboxdepth=\\skip119\n\\mdffootnoteboxtotalheight=\\skip120\n\\mdftotallinewidth=\\skip121\n\\mdfboundingboxwidth=\\skip122\n\\mdfboundingboxtotalwidth=\\skip123\n\\mdfboundingboxheight=\\skip124\n\\mdfboundingboxdepth=\\skip125\n\\mdfboundingboxtotalheight=\\skip126\n\\mdf@freevspace@length=\\skip127\n\\mdf@horizontalwidthofbox@length=\\skip128\n\\mdf@verticalmarginwhole@length=\\skip129\n.................................................\n. LaTeX info: \"xparse/define-command\"\n. \n. Defining document command \\newmdtheoremenv with arg. spec. 'O{} m o m o ' on\n. line 501.\n.................................................\n.................................................\n. LaTeX info: \"xparse/define-command\"\n. \n. Defining document command \\mdtheorem with arg. spec. ' O{} m o m o ' on line\n. 581.\n.................................................\n\n(d:/texlive/2012/texmf-dist/tex/latex/mdframed/md-frame-0.mdf\nFile: md-frame-0.mdf 2012/04/08 v1.5: md-frame-0\n)\n\\c@mdf@zref@counter=\\count370\nPackage zref Info: New property: mdf@pagevalue on input line 782.\n\\mdf@horizontalspaceofbox=\\skip130\n)\n(d:/texlive/2012/texmf-dist/tex/latex/hyperref/hyperref.sty\nPackage: hyperref 2012/05/13 v6.82q Hypertext links for LaTeX\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty\nPackage: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO)\n\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty\nPackage: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO)\nPackage: hobsub 2012/05/28 v1.13 Construct package bundles (HO)\nPackage hobsub Info: Skipping package `infwarerr' (already loaded).\nPackage hobsub Info: Skipping package `ltxcmds' (already loaded).\nPackage hobsub Info: Skipping package `ifluatex' (already loaded).\nPackage hobsub Info: Skipping package `ifvtex' (already loaded).\nPackage: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO)\nPackage hobsub Info: Skipping package `ifpdf' (already loaded).\nPackage hobsub Info: Skipping package `etexcmds' (already loaded).\nPackage hobsub Info: Skipping package `kvsetkeys' (already loaded).\nPackage hobsub Info: Skipping package `kvdefinekeys' (already loaded).\nPackage hobsub Info: Skipping package `pdftexcmds' (already loaded).\nPackage: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO)\nPackage: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO\n)\nPackage: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO)\nPackage: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO)\n)\nPackage hobsub Info: Skipping package `hobsub' (already loaded).\nPackage: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO)\nPackage: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO)\nPackage: xcolor-patch 2011/01/30 xcolor patch\nPackage: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO)\nPackage hobsub Info: Skipping package `atbegshi' (already loaded).\nPackage: refcount 2011/10/16 v3.4 Data extraction from label references (HO)\nPackage: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO)\n)\n\\@linkdim=\\dimen279\n\\Hy@linkcounter=\\count371\n\\Hy@pagecounter=\\count372\n\n(d:/texlive/2012/texmf-dist/tex/latex/hyperref/pd1enc.def\nFile: pd1enc.def 2012/05/13 v6.82q Hyperref: PDFDocEncoding definition (HO)\nNow handling font encoding PD1 ...\n... no UTF-8 mapping file for font encoding PD1\n)\n\\Hy@SavedSpaceFactor=\\count373\n\n(d:/texlive/2012/texmf-dist/tex/latex/latexconfig/hyperref.cfg\nFile: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive\n)\nPackage hyperref Info: Hyper figures OFF on input line 4062.\nPackage hyperref Info: Link nesting OFF on input line 4067.\nPackage hyperref Info: Hyper index ON on input line 4070.\nPackage hyperref Info: Plain pages OFF on input line 4077.\nPackage hyperref Info: Backreferencing OFF on input line 4082.\nPackage hyperref Info: Implicit mode ON; LaTeX internals redefined.\nPackage hyperref Info: Bookmarks ON on input line 4300.\n\\c@Hy@tempcnt=\\count374\nLaTeX Info: Redefining \\url on input line 4653.\n\\Fld@menulength=\\count375\n\\Field@Width=\\dimen280\n\\Fld@charsize=\\dimen281\nPackage hyperref Info: Hyper figures OFF on input line 5773.\nPackage hyperref Info: Link nesting OFF on input line 5778.\nPackage hyperref Info: Hyper index ON on input line 5781.\nPackage hyperref Info: backreferencing OFF on input line 5788.\nPackage hyperref Info: Link coloring OFF on input line 5793.\nPackage hyperref Info: Link coloring with OCG OFF on input line 5798.\nPackage hyperref Info: PDF/A mode OFF on input line 5803.\nLaTeX Info: Redefining \\ref on input line 5843.\nLaTeX Info: Redefining \\pageref on input line 5847.\n\\Hy@abspage=\\count376\n\\c@Item=\\count377\n\\c@Hfootnote=\\count378\n)\n\nPackage hyperref Message: Driver (autodetected): hpdftex.\n\n(d:/texlive/2012/texmf-dist/tex/latex/hyperref/hpdftex.def\nFile: hpdftex.def 2012/05/13 v6.82q Hyperref driver for pdfTeX\n\\Fld@listcount=\\count379\n\\c@bookmark@seq@number=\\count380\n\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty\nPackage: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO)\nPackage uniquecounter Info: New unique counter `rerunfilecheck' on input line 2\n82.\n)\n\\Hy@SectionHShift=\\skip131\n)\n\nPackage hyperref Warning: Option `backref' has already been used,\n(hyperref)                setting the option has no effect on input line 292.\n\n\nPackage hyperref Warning: Option `pagebackref' has already been used,\n(hyperref)                setting the option has no effect on input line 292.\n\n\nPackage hyperref Warning: Option `hyperindex' has already been used,\n(hyperref)                setting the option has no effect on input line 292.\n\nPackage hyperref Info: Option `colorlinks' set `false' on input line 292.\nPackage hyperref Info: Option `breaklinks' set `true' on input line 292.\n\nPackage hyperref Warning: Option `bookmarks' has already been used,\n(hyperref)                setting the option has no effect on input line 292.\n\nPackage hyperref Info: Option `bookmarksopen' set `false' on input line 292.\n)\nPackage biblatex Info: Trying to load language 'english'...\nPackage biblatex Info: ... file 'english.lbx' found.\n (d:/texlive/2012/texmf-dist/tex/latex/biblatex/lbx/english.lbx\nFile: english.lbx 2011/11/13 v1.7 biblatex localization\n)\n\nPackage biblatex Warning: 'babel' detected but 'csquotes' missing.\n(biblatex)                Loading 'csquotes' recommended.\n\n\\@quotelevel=\\count381\n\\@quotereset=\\count382\n(./main.aux)\n\\openout1 = `main.aux'.\n\nLaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C00/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C05/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C09/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C10/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C20/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C19/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C40/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C42/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C43/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C50/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C52/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C49/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C60/mj/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C61/mj/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C63/mj/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C64/mj/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C65/mj/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C70/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C31/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C32/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C33/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C34/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C35/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C36/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C37/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C80/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C81/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C01/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C11/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C21/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C41/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for C62/song/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 76.\nLaTeX Font Info:    ... okay on input line 76.\nLaTeX Font Info:    Try loading font information for T1+ptm on input line 76.\n (d:/texlive/2012/texmf-dist/tex/latex/psnfss/t1ptm.fd\nFile: t1ptm.fd 2001/06/04 font definitions for T1/ptm.\n)\n*geometry* driver: auto-detecting\n*geometry* detected driver: pdftex\n*geometry* verbose mode - [ preamble ] result:\n* driver: pdftex\n* paper: a4paper\n* layout: <same size as paper>\n* layoutoffset:(h,v)=(0.0pt,0.0pt)\n* modes: twoside \n* h-part:(L,W,R)=(91.04872pt, 415.41043pt, 91.04872pt)\n* v-part:(T,H,B)=(85.35826pt, 674.33032pt, 85.35826pt)\n* \\paperwidth=597.50787pt\n* \\paperheight=845.04684pt\n* \\textwidth=415.41043pt\n* \\textheight=674.33032pt\n* \\oddsidemargin=18.77873pt\n* \\evensidemargin=18.77873pt\n* \\topmargin=-8.91173pt\n* \\headheight=14.5pt\n* \\headsep=10.0pt\n* \\topskip=11.0pt\n* \\footskip=27.46295pt\n* \\marginparwidth=116.0pt\n* \\marginparsep=7.0pt\n* \\columnsep=10.0pt\n* \\skip\\footins=10.0pt plus 4.0pt minus 2.0pt\n* \\hoffset=0.0pt\n* \\voffset=0.0pt\n* \\mag=1000\n* \\@twocolumnfalse\n* \\@twosidetrue\n* \\@mparswitchtrue\n* \\@reversemarginfalse\n* (1in=72.27pt=25.4mm, 1cm=28.453pt)\n\n(d:/texlive/2012/texmf-dist/tex/context/base/supp-pdf.mkii\n[Loading MPS to PDF converter (version 2006.09.02).]\n\\scratchcounter=\\count383\n\\scratchdimen=\\dimen282\n\\scratchbox=\\box53\n\\nofMPsegments=\\count384\n\\nofMParguments=\\count385\n\\everyMPshowfont=\\toks41\n\\MPscratchCnt=\\count386\n\\MPscratchDim=\\dimen283\n\\MPnumerator=\\count387\n\\makeMPintoPDFobject=\\count388\n\\everyMPtoPDFconversion=\\toks42\n)\nLaTeX Info: Redefining \\microtypecontext on input line 76.\nPackage microtype Info: Generating PDF output.\nPackage microtype Info: Character protrusion enabled (level 2).\nPackage microtype Info: Using default protrusion set `alltext'.\nPackage microtype Info: Automatic font expansion enabled (level 2),\n(microtype)             stretch: 20, shrink: 20, step: 1, non-selected.\nPackage microtype Info: Using default expansion set `basictext'.\nPackage microtype Info: No tracking.\nPackage microtype Info: No adjustment of interword spacing.\nPackage microtype Info: No adjustment of character kerning.\n (d:/texlive/2012/texmf-dist/tex/latex/microtype/mt-ptm.cfg\nFile: mt-ptm.cfg 2006/04/20 v1.7 microtype config. file: Times (RS)\n)\nPackage biblatex Info: Input encoding 'utf8' detected.\nPackage biblatex Info: Automatic encoding selection.\n(biblatex)             Assuming data encoding 'utf8'.\n\\openout3 = `main.bcf'.\n\nPackage biblatex Info: Trying to load bibliographic data...\nPackage biblatex Info: ... file 'main.bbl' found.\n (./main.bbl)\nPackage biblatex Info: Reference section=0 on input line 76.\nPackage biblatex Info: Reference segment=0 on input line 76.\n\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty\nPackage: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf\n\n(d:/texlive/2012/texmf-dist/tex/latex/oberdiek/grfext.sty\nPackage: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)\n)\nPackage grfext Info: Graphics extension search list:\n(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE\nG,.JBIG2,.JB2,.eps]\n(grfext)             \\AppendGraphicsExtensions on input line 452.\n\n(d:/texlive/2012/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg\nFile: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv\ne\n))\nABD: EveryShipout initializing macros\n\\AtBeginShipoutBox=\\box54\nPackage hyperref Info: Link coloring OFF on input line 76.\n\n(d:/texlive/2012/texmf-dist/tex/latex/hyperref/nameref.sty\nPackage: nameref 2010/04/30 v2.40 Cross-referencing by name of section\n\n(d:/texlive/2012/texmf-dist/tex/generic/oberdiek/gettitlestring.sty\nPackage: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)\n)\n\\c@section@level=\\count389\n)\nLaTeX Info: Redefining \\ref on input line 76.\nLaTeX Info: Redefining \\pageref on input line 76.\nLaTeX Info: Redefining \\nameref on input line 76.\n\n(./main.out) (./main.out)\n\\@outlinefile=\\write6\n\\openout6 = `main.out'.\n\n\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/UTF8.bdg\nFile: UTF8.bdg 2012/05/07 4.8.3\n)\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/UTF8.enc\nFile: UTF8.enc 2012/05/07 4.8.3\n)\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/UTF8.chr\nFile: UTF8.chr 2012/05/07 4.8.3\n)\nLaTeX Font Info:    Try loading font information for T1+pag on input line 89.\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/t1pag.fd\nFile: t1pag.fd 2001/06/04 font definitions for T1/pag.\n)\nLaTeX Font Info:    Try loading font information for C70+gbsn on input line 90.\n\n\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/c70gbsn.fd\nFile: c70gbsn.fd 2012/05/07 4.8.3\n)\n(d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/c70gbsn.fdx\nFile: c70gbsn.fdx 2012/05/07 4.8.3\n)\n<Pictures/background.pdf, id=136, 584.1825pt x 835.12pt>\nFile: Pictures/background.pdf Graphic file (type pdf)\n\n<use Pictures/background.pdf>\nPackage pdftex.def Info: Pictures/background.pdf used on input line 99.\n(pdftex.def)             Requested size: 584.18106pt x 835.11795pt.\n [1\n\n\n{d:/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./Pictures/back\nground.pdf>]\nLaTeX Font Info:    Try loading font information for OMS+ptm on input line 103.\n\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/omsptm.fd\nFile: omsptm.fd \n)\nLaTeX Font Info:    Font shape `OMS/ptm/m/n' in size <10.95> not available\n(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 103.\n\nUnderfull \\hbox (badness 10000) in paragraph at lines 103--104\n\n []\n\n\nUnderfull \\hbox (badness 10000) in paragraph at lines 106--107\n\n []\n\n\nUnderfull \\hbox (badness 10000) in paragraph at lines 108--109\n\n []\n\n[2] <Pictures/chapter_head_1.pdf, id=161, 597.432pt x 298.716pt>\nFile: Pictures/chapter_head_1.pdf Graphic file (type pdf)\n\n<use Pictures/chapter_head_1.pdf>\nPackage pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 120.\n(pdftex.def)             Requested size: 597.50787pt x 298.77907pt.\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <20.74> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 120.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <20.74> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 120.\n (./main.toc\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <12> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 5.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <12> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 5.\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <14.4> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 5.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <14.4> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 5.\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <10.95> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 5.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <10.95> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 5.\n [3\n\n <./Pictures/chapter_head_1.pdf>])\n\\tf@toc=\\write7\n\\openout7 = `main.toc'.\n\n [4]\nChapter 1.\n\\c@ttl@toc@default=\\count390\n<Pictures/chapter_head_2.pdf, id=255, 3581.38pt x 1790.69pt>\nFile: Pictures/chapter_head_2.pdf Graphic file (type pdf)\n\n<use Pictures/chapter_head_2.pdf>\nPackage pdftex.def Info: Pictures/chapter_head_2.pdf used on input line 132.\n(pdftex.def)             Requested size: 597.50787pt x 298.75726pt.\n (./main.ptc\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <9> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 8.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <9> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 8.\n)\nLaTeX Font Info:    Try loading font information for OT1+ztmcm on input line 14\n8.\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/ot1ztmcm.fd\nFile: ot1ztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm.\n)\nLaTeX Font Info:    Try loading font information for OML+ztmcm on input line 14\n8.\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/omlztmcm.fd\nFile: omlztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OML/ztmcm.\n)\nLaTeX Font Info:    Try loading font information for OMS+ztmcm on input line 14\n8.\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/omsztmcm.fd\nFile: omsztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/ztmcm.\n)\nLaTeX Font Info:    Try loading font information for OMX+ztmcm on input line 14\n8.\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/omxztmcm.fd\nFile: omxztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMX/ztmcm.\n)\nLaTeX Font Info:    Try loading font information for OT1+ptm on input line 148.\n\n\n(d:/texlive/2012/texmf-dist/tex/latex/psnfss/ot1ptm.fd\nFile: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.\n)\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <10.95> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 148.\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <8> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 148.\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <6> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 148.\n\n(d:/texlive/2012/texmf-dist/tex/latex/microtype/mt-msa.cfg\nFile: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS)\n)\n(d:/texlive/2012/texmf-dist/tex/latex/microtype/mt-msb.cfg\nFile: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS)\n)\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <9> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 148.\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <7> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 148.\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <5> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 148.\nLaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <10.95> not available\n(Font)              Font shape `T1/ptm/b/n' tried instead on input line 169.\n [5\n\n\n <./Pictures/chapter_head_2.pdf>] [6\n\n]\nChapter 2.\nFile: Pictures/chapter_head_2.pdf Graphic file (type pdf)\n<use Pictures/chapter_head_2.pdf>\nPackage pdftex.def Info: Pictures/chapter_head_2.pdf used on input line 178.\n(pdftex.def)             Requested size: 597.50787pt x 298.75726pt.\n (./main.ptc)\nPackage mdframed Info: mdframed works in twoside mode on input line 187.\nPackage mdframed Info: mdframed detected package amsthm \n changed the theoerem header of amsthm\n(mdframed)              on input line 187.\nLaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <10> not available\n(Font)              Font shape `T1/ptm/b/n' tried instead on input line 187.\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <10> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 187.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <10> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 187.\nPackage mdframed Info: mdframed works in twoside mode on input line 198.\nPackage mdframed Info: mdframed detected package amsthm \n changed the theoerem header of amsthm\n(mdframed)              on input line 198.\nPackage mdframed Info: mdframed works in twoside mode on input line 208.\nPackage mdframed Info: mdframed detected package amsthm \n changed the theoerem header of amsthm\n(mdframed)              on input line 208.\n [7]\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <10> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 237.\nLaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <7.4> not available\n(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 237.\nPackage mdframed Info: mdframed works in twoside mode on input line 246.\nPackage mdframed Info: mdframed detected package amsthm \n changed the theoerem header of amsthm\n(mdframed)              on input line 246.\nLaTeX Font Info:    Font shape `T1/pag/bx/n' in size <6> not available\n(Font)              Font shape `T1/pag/b/n' tried instead on input line 281.\nLaTeX Font Info:    Font shape `T1/pag/b/n' in size <6> not available\n(Font)              Font shape `T1/pag/db/n' tried instead on input line 281.\n [8]\nPackage mdframed Info: mdframed works in twoside mode on input line 301.\nPackage mdframed Info: mdframed detected package amsthm \n changed the theoerem header of amsthm\n(mdframed)              on input line 301.\n [9] [10\n\n]\nChapter 3.\nFile: Pictures/chapter_head_1.pdf Graphic file (type pdf)\n<use Pictures/chapter_head_1.pdf>\nPackage pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 329.\n(pdftex.def)             Requested size: 597.50787pt x 298.77907pt.\n (./main.ptc)\n<Pictures/placeholder.jpg, id=390, 351.3125pt x 193.72375pt>\nFile: Pictures/placeholder.jpg Graphic file (type jpg)\n\n<use Pictures/placeholder.jpg>\nPackage pdftex.def Info: Pictures/placeholder.jpg used on input line 352.\n(pdftex.def)             Requested size: 175.6558pt x 96.86163pt.\n [11 <./Pictures/placeholder.jpg>] [12\n\n]\nFile: Pictures/chapter_head_1.pdf Graphic file (type pdf)\n\n<use Pictures/chapter_head_1.pdf>\nPackage pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 360.\n(pdftex.def)             Requested size: 597.50787pt x 298.77907pt.\n [13] [14\n\n] (./main.ind\nFile: Pictures/chapter_head_1.pdf Graphic file (type pdf)\n\n<use Pictures/chapter_head_1.pdf>\nPackage pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 1.\n(pdftex.def)             Requested size: 597.50787pt x 298.77907pt.\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 3--4\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 10--11\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 16--17\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 25--26\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 31--32\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 40--41\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 46--47\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 55--56\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 61--62\n[][] \n []\n\n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 70--71\n[][] \n []\n\n! Argument of \\CJK@XXX has an extra }.\n<inserted text> \n                \\par \nl.76 ...e\\sffamily\\bfseries\\textcolor{black}{}}};\n                                                  \\vspace*{0.2cm}\\nopagebreak\n? \nRunaway argument?\n! Paragraph ended before \\CJK@XXX was complete.\n<to be read again> \n                   \\par \nl.76 ...e\\sffamily\\bfseries\\textcolor{black}{}}};\n                                                  \\vspace*{0.2cm}\\nopagebreak\n? \n\nOverfull \\hbox (2.20001pt too wide) in paragraph at lines 76--77\n[][] \n []\n\n[15\n\n] [16\n\n])\n\\tf@ptc=\\write8\n\\openout8 = `main.ptc'.\n\nPackage atveryend Info: Empty hook `BeforeClearDocument' on input line 381.\nPackage atveryend Info: Empty hook `AfterLastShipout' on input line 381.\n (./main.aux)\nPackage atveryend Info: Executing hook `AtVeryEndDocument' on input line 381.\nPackage atveryend Info: Executing hook `AtEndAfterFileList' on input line 381.\nPackage rerunfilecheck Info: File `main.out' has not changed.\n(rerunfilecheck)             Checksum: 793CF455949FF4FA2470D523F2E2199F;1852.\nPackage logreq Info: Writing requests to 'main.run.xml'.\n\\openout1 = `main.run.xml'.\n\n ) \nHere is how much of TeX's memory you used:\n 29666 strings out of 493488\n 506647 string characters out of 3144749\n 801283 words of memory out of 3000000\n 32086 multiletter control sequences out of 15000+200000\n 121765 words of font info for 236 fonts, out of 3000000 for 9000\n 957 hyphenation exceptions out of 8191\n 58i,15n,57p,849b,3137s stack positions out of 5000i,500n,10000p,200000b,50000s\n{d:/texlive/2012/texmf-dist/fonts/enc/dvips/base/8r.enc}<d:/texlive/2012/texm\nf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb><d:/texlive/2012/texmf-dist/fo\nnts/type1/public/amsfonts/cm/cmmi10.pfb><d:/texlive/2012/texmf-dist/fonts/type1\n/public/amsfonts/cm/cmr10.pfb><d:/texlive/2012/texmf-dist/fonts/type1/public/am\nsfonts/cm/cmsy10.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu\n50.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu52.pfb><d:/tex\nlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu5b.pfb><d:/texlive/2012/texm\nf-dist/fonts/type1/arphic/gbsnu/gbsnu5e.pfb><d:/texlive/2012/texmf-dist/fonts/t\nype1/arphic/gbsnu/gbsnu66.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gb\nsnu/gbsnu67.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu6d.pf\nb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu73.pfb><d:/texlive/\n2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu7b.pfb><d:/texlive/2012/texmf-dis\nt/fonts/type1/arphic/gbsnu/gbsnu7c.pfb><d:/texlive/2012/texmf-dist/fonts/type1/\narphic/gbsnu/gbsnu7e.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/g\nbsnu80.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu82.pfb><d:\n/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu88.pfb><d:/texlive/2012/\ntexmf-dist/fonts/type1/arphic/gbsnu/gbsnu89.pfb><d:/texlive/2012/texmf-dist/fon\nts/type1/arphic/gbsnu/gbsnu8b.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphi\nc/gbsnu/gbsnu8d.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu9\n0.pfb><d:/texlive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu95.pfb><d:/texl\nive/2012/texmf-dist/fonts/type1/arphic/gbsnu/gbsnu97.pfb><d:/texlive/2012/texmf\n-dist/fonts/type1/arphic/gbsnu/gbsnu98.pfb><d:/texlive/2012/texmf-dist/fonts/ty\npe1/public/amsfonts/symbols/msam10.pfb><d:/texlive/2012/texmf-dist/fonts/type1/\npublic/amsfonts/symbols/msbm10.pfb><d:/texlive/2012/texmf-dist/fonts/type1/publ\nic/rsfs/rsfs10.pfb><d:/texlive/2012/texmf-dist/fonts/type1/urw/avantgar/uagd8a.\npfb><d:/texlive/2012/texmf-dist/fonts/type1/urw/avantgar/uagk8a.pfb><d:/texlive\n/2012/texmf-dist/fonts/type1/urw/symbol/usyr.pfb><d:/texlive/2012/texmf-dist/fo\nnts/type1/urw/symbol/usyr.pfb><d:/texlive/2012/texmf-dist/fonts/type1/urw/times\n/utmb8a.pfb><d:/texlive/2012/texmf-dist/fonts/type1/urw/times/utmr8a.pfb><d:/te\nxlive/2012/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>\nOutput written on main.pdf (16 pages, 433819 bytes).\nPDF statistics:\n 575 PDF objects out of 1000 (max. 8388607)\n 431 compressed objects within 5 object streams\n 79 named destinations out of 1000 (max. 500000)\n 62317 words of extra memory for PDF output out of 74296 (max. 10000000)\n\n"
  },
  {
    "path": "docs/main.out",
    "content": "\\BOOKMARK [0][-]{chapter.1}{\\174\\373\\176\\337\\133\\211\\210\\305}{}% 1\n\\BOOKMARK [1][-]{section.1.1}{\\202\\176\\163\\233\\155\\113\\213\\325}{chapter.1}% 2\n\\BOOKMARK [1][-]{section.1.2}{Citation}{chapter.1}% 3\n\\BOOKMARK [1][-]{section.1.3}{Lists}{chapter.1}% 4\n\\BOOKMARK [2][-]{subsection.1.3.1}{Numbered List}{section.1.3}% 5\n\\BOOKMARK [2][-]{subsection.1.3.2}{Bullet Points}{section.1.3}% 6\n\\BOOKMARK [2][-]{subsection.1.3.3}{Descriptions and Definitions}{section.1.3}% 7\n\\BOOKMARK [0][-]{chapter.2}{In-text Elements}{}% 8\n\\BOOKMARK [1][-]{section.2.1}{Theorems}{chapter.2}% 9\n\\BOOKMARK [2][-]{subsection.2.1.1}{Several equations}{section.2.1}% 10\n\\BOOKMARK [2][-]{subsection.2.1.2}{Single Line}{section.2.1}% 11\n\\BOOKMARK [1][-]{section.2.2}{Definitions}{chapter.2}% 12\n\\BOOKMARK [1][-]{section.2.3}{Notations}{chapter.2}% 13\n\\BOOKMARK [1][-]{section.2.4}{Remarks}{chapter.2}% 14\n\\BOOKMARK [1][-]{section.2.5}{Corollaries}{chapter.2}% 15\n\\BOOKMARK [1][-]{section.2.6}{Propositions}{chapter.2}% 16\n\\BOOKMARK [2][-]{subsection.2.6.1}{Several equations}{section.2.6}% 17\n\\BOOKMARK [2][-]{subsection.2.6.2}{Single Line}{section.2.6}% 18\n\\BOOKMARK [1][-]{section.2.7}{Examples}{chapter.2}% 19\n\\BOOKMARK [2][-]{subsection.2.7.1}{Equation and Text}{section.2.7}% 20\n\\BOOKMARK [2][-]{subsection.2.7.2}{Paragraph of Text}{section.2.7}% 21\n\\BOOKMARK [1][-]{section.2.8}{Exercises}{chapter.2}% 22\n\\BOOKMARK [1][-]{section.2.9}{Problems}{chapter.2}% 23\n\\BOOKMARK [1][-]{section.2.10}{Vocabulary}{chapter.2}% 24\n\\BOOKMARK [0][-]{chapter.3}{Presenting Information}{}% 25\n\\BOOKMARK [1][-]{section.3.1}{Table}{chapter.3}% 26\n\\BOOKMARK [1][-]{section.3.2}{Figure}{chapter.3}% 27\n\\BOOKMARK [0][-]{chapter*.2}{Bibliography}{}% 28\n\\BOOKMARK [1][-]{section*.3}{Books}{chapter*.2}% 29\n\\BOOKMARK [1][-]{section*.4}{Articles}{chapter*.2}% 30\n\\BOOKMARK [0][-]{section*.5}{Index}{}% 31\n"
  },
  {
    "path": "docs/main.ptc",
    "content": "\\boolfalse {citerequest}\\boolfalse {citetracker}\\boolfalse {pagetracker}\\boolfalse {backtracker}\\relax \n\\defcounter {refsection}{0}\\relax \n\\select@language {english}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\numberline {1}系统安装}{5}{chapter.1}\n\\ttl@starttoc {default@1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {1.1}艾玛测试}{5}{section.1.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {1.2}Citation}{5}{section.1.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {1.3}Lists}{5}{section.1.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {1.3.1}Numbered List}{5}{subsection.1.3.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {1.3.2}Bullet Points}{5}{subsection.1.3.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {1.3.3}Descriptions and Definitions}{5}{subsection.1.3.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\numberline {2}In-text Elements}{7}{chapter.2}\n\\ttl@stoptoc {default@1}\n\\ttl@starttoc {default@2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.1}Theorems}{7}{section.2.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.1.1}Several equations}{7}{subsection.2.1.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.1.2}Single Line}{7}{subsection.2.1.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.2}Definitions}{7}{section.2.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.3}Notations}{8}{section.2.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.4}Remarks}{8}{section.2.4}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.5}Corollaries}{8}{section.2.5}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.6}Propositions}{8}{section.2.6}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.6.1}Several equations}{8}{subsection.2.6.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.6.2}Single Line}{8}{subsection.2.6.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.7}Examples}{8}{section.2.7}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.7.1}Equation and Text}{8}{subsection.2.7.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.7.2}Paragraph of Text}{9}{subsection.2.7.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.8}Exercises}{9}{section.2.8}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.9}Problems}{9}{section.2.9}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.10}Vocabulary}{9}{section.2.10}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\numberline {3}Presenting Information}{11}{chapter.3}\n\\ttl@stoptoc {default@2}\n\\ttl@starttoc {default@3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {3.1}Table}{11}{section.3.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {3.2}Figure}{11}{section.3.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\leavevmode {\\color {ocre}Bibliography}}{13}{chapter*.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{Books}{13}{section*.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{Articles}{13}{section*.4}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\leavevmode {\\color {ocre}Index}}{15}{section*.5}\n\\contentsfinish \n"
  },
  {
    "path": "docs/main.run.xml",
    "content": "<?xml version=\"1.0\" standalone=\"yes\"?>\n<!-- logreq request file -->\n<!-- logreq version 1.0 / dtd version 1.0 -->\n<!-- Do not edit this file! -->\n<!DOCTYPE requests [\n  <!ELEMENT requests (internal | external)*>\n  <!ELEMENT internal (generic, (provides | requires)*)>\n  <!ELEMENT external (generic, cmdline?, input?, output?, (provides | requires)*)>\n  <!ELEMENT cmdline (binary, (option | infile | outfile)*)>\n  <!ELEMENT input (file)+>\n  <!ELEMENT output (file)+>\n  <!ELEMENT provides (file)+>\n  <!ELEMENT requires (file)+>\n  <!ELEMENT generic (#PCDATA)>\n  <!ELEMENT binary (#PCDATA)>\n  <!ELEMENT option (#PCDATA)>\n  <!ELEMENT infile (#PCDATA)>\n  <!ELEMENT outfile (#PCDATA)>\n  <!ELEMENT file (#PCDATA)>\n  <!ATTLIST requests\n    version CDATA #REQUIRED\n  >\n  <!ATTLIST internal\n    package CDATA #REQUIRED\n    priority (9) #REQUIRED\n    active (0 | 1) #REQUIRED\n  >\n  <!ATTLIST external\n    package CDATA #REQUIRED\n    priority (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8) #REQUIRED\n    active (0 | 1) #REQUIRED\n  >\n  <!ATTLIST provides\n    type (static | dynamic | editable) #REQUIRED\n  >\n  <!ATTLIST requires\n    type (static | dynamic | editable) #REQUIRED\n  >\n  <!ATTLIST file\n    type CDATA #IMPLIED\n  >\n]>\n<requests version=\"1.0\">\n  <internal package=\"biblatex\" priority=\"9\" active=\"0\">\n    <generic>latex</generic>\n    <provides type=\"dynamic\">\n      <file>main.bcf</file>\n    </provides>\n    <requires type=\"dynamic\">\n      <file>main.bbl</file>\n    </requires>\n    <requires type=\"static\">\n      <file>blx-compat.def</file>\n      <file>biblatex.def</file>\n      <file>alphabetic.bbx</file>\n      <file>standard.bbx</file>\n      <file>alphabetic.cbx</file>\n      <file>biblatex.cfg</file>\n      <file>english.lbx</file>\n    </requires>\n  </internal>\n  <external package=\"biblatex\" priority=\"5\" active=\"0\">\n    <generic>biber</generic>\n    <cmdline>\n      <binary>biber</binary>\n      <infile>main</infile>\n    </cmdline>\n    <input>\n      <file>main.bcf</file>\n    </input>\n    <output>\n      <file>main.bbl</file>\n    </output>\n    <provides type=\"dynamic\">\n      <file>main.bbl</file>\n    </provides>\n    <requires type=\"dynamic\">\n      <file>main.bcf</file>\n    </requires>\n    <requires type=\"editable\">\n      <file>bibliography.bib</file>\n    </requires>\n  </external>\n</requests>\n"
  },
  {
    "path": "docs/main.tex",
    "content": "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n% The Legrand Orange Book\n% LaTeX Template\n% Version 1.4 (12/4/14)\n%\n% This template has been downloaded from:\n% http://www.LaTeXTemplates.com\n%\n% Original author:\n% Mathias Legrand (legrand.mathias@gmail.com)\n%\n% License:\n% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)\n%\n% Compiling this template:\n% This template uses biber for its bibliography and makeindex for its index.\n% When you first open the template, compile it from the command line with the \n% commands below to make sure your LaTeX distribution is configured correctly:\n%\n% 1) pdflatex main\n% 2) makeindex main.idx -s StyleInd.ist\n% 3) biber main\n% 4) pdflatex main x 2\n%\n% After this, when you wish to update the bibliography/index use the appropriate\n% command above and make sure to compile with pdflatex several times \n% afterwards to propagate your changes to the document.\n%\n% This template also uses a number of packages which may need to be\n% updated to the newest versions for the template to compile. It is strongly\n% recommended you update your LaTeX distribution if you have any\n% compilation errors.\n%\n% Important note:\n% Chapter heading images should have a 2:1 width:height ratio,\n% e.g. 920px width and 460px height.\n%\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n%----------------------------------------------------------------------------------------\n%\tPACKAGES AND OTHER DOCUMENT CONFIGURATIONS\n%----------------------------------------------------------------------------------------\n\n\\documentclass[11pt,fleqn]{book} % Default font size and left-justified equations\n\n\\usepackage[top=3cm,bottom=3cm,left=3.2cm,right=3.2cm,headsep=10pt,a4paper]{geometry} % Page margins\n\\usepackage{CJKutf8}\n \n\n\\usepackage{xcolor} % Required for specifying colors by name\n\\definecolor{ocre}{RGB}{243,102,25} % Define the orange color used for highlighting throughout the book\n\n% Font Settings\n\\usepackage{avant} % Use the Avantgarde font for headings\n%\\usepackage{times} % Use the Times font for headings\n\\usepackage{mathptmx} % Use the Adobe Times Roman as the default text font together with math symbols from the Sym­bol, Chancery and Com­puter Modern fonts\n\n\\usepackage{microtype} % Slightly tweak font spacing for aesthetics\n\\usepackage[utf8]{inputenc} % Required for including letters with accents\n\\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs\n\n% Bibliography\n\\usepackage[style=alphabetic,sorting=nyt,sortcites=true,autopunct=true,babel=hyphen,hyperref=true,abbreviate=false,backref=true,backend=biber]{biblatex}\n\\addbibresource{bibliography.bib} % BibTeX bibliography file\n\\defbibheading{bibempty}{}\n\n% Index\n\\usepackage{calc} % For simpler calculation - used for spacing the index letter headings correctly\n\\usepackage{makeidx} % Required to make an index\n\\makeindex % Tells LaTeX to create the files required for indexing\n\n%----------------------------------------------------------------------------------------\n\n\\input{structure} % Insert the commands.tex file which contains the majority of the structure behind the template\n\n\\begin{document}\n\\begin{CJK*}{UTF8}{gbsn}\n\n%----------------------------------------------------------------------------------------\n%\tTITLE PAGE\n%----------------------------------------------------------------------------------------\n\n\\begingroup\n\\thispagestyle{empty}\n\\AddToShipoutPicture*{\\put(6,5){\\includegraphics[scale=1]{background}}} % Image background\n\\centering\n\\vspace*{9cm}\n\\par\\normalfont\\fontsize{35}{35}\\sffamily\\selectfont\nUBUNTU常见问题解答\\par % Book title\n\\vspace*{1cm}\n{\\Huge jianying Li}\\par % Author name\n\\endgroup\n\n%----------------------------------------------------------------------------------------\n%\tCOPYRIGHT PAGE\n%----------------------------------------------------------------------------------------\n\n\\newpage\n~\\vfill\n\\thispagestyle{empty}\n\n\\noindent Copyright \\copyright\\ 2014 李建赢\\\\ % Copyright notice\n\n\n\\noindent \\textsc{http://ubtamator.github.io/}\\\\ % URL\n\n\\noindent Licensed under GPL V3. For view detail : http://www.gnu.org/copyleft/gpl.html\\\\ % License information\n\n\\noindent \\textit{First printing, March 2013} % Printing/edition date\n\n%----------------------------------------------------------------------------------------\n%\tTABLE OF CONTENTS\n%----------------------------------------------------------------------------------------\n\n\\chapterimage{chapter_head_1.pdf} % Table of contents heading image\n\n\\pagestyle{empty} % No headers\n\n\\tableofcontents % Print the table of contents itself\n\n\\cleardoublepage % Forces the first chapter to start on an odd page so it's on the right\n\n\\pagestyle{fancy} % Print headers again\n\n%----------------------------------------------------------------------------------------\n%\tCHAPTER 1\n%----------------------------------------------------------------------------------------\n\n\\chapterimage{chapter_head_2.pdf} % Chapter heading image\n\n\\chapter{系统安装}\n\n\\section{艾玛测试}\\index{艾玛测试}\n\n前面老师是傻逼\n\n%------------------------------------------------\n\n\\section{Citation}\\index{Citation}\n\nThis statement requires citation \\cite{book_key}; this one is more specific \\cite[122]{article_key}.\n\n%------------------------------------------------\n\n\\section{Lists}\\index{Lists}\n\nLists are useful to present information in a concise and/or ordered way\\footnote{Footnote example...}.\n\n\\subsection{Numbered List}\\index{Lists!Numbered List}\n\n\\begin{enumerate}\n\\item The first item\n\\item The second item\n\\item The third item\n\\end{enumerate}\n\n\\subsection{Bullet Points}\\index{Lists!Bullet Points}\n\n\\begin{itemize}\n\\item The first item\n\\item The second item\n\\item The third item\n\\end{itemize}\n\n\\subsection{Descriptions and Definitions}\\index{Lists!Descriptions and Definitions}\n\n\\begin{description}\n\\item[Name] Description\n\\item[Word] Definition\n\\item[Comment] Elaboration\n\\end{description}\n\n%----------------------------------------------------------------------------------------\n%\tCHAPTER 2\n%----------------------------------------------------------------------------------------\n\n\\chapter{In-text Elements}\n\n\\section{Theorems}\\index{Theorems}\n\nThis is an example of theorems.\n\n\\subsection{Several equations}\\index{Theorems!Several Equations}\nThis is a theorem consisting of several equations.\n\n\\begin{theorem}[Name of the theorem]\nIn $E=\\mathbb{R}^n$ all norms are equivalent. It has the properties:\n\\begin{align}\n& \\big| ||\\mathbf{x}|| - ||\\mathbf{y}|| \\big|\\leq || \\mathbf{x}- \\mathbf{y}||\\\\\n&  ||\\sum_{i=1}^n\\mathbf{x}_i||\\leq \\sum_{i=1}^n||\\mathbf{x}_i||\\quad\\text{where $n$ is a finite integer}\n\\end{align}\n\\end{theorem}\n\n\\subsection{Single Line}\\index{Theorems!Single Line}\nThis is a theorem consisting of just one line.\n\n\\begin{theorem}\nA set $\\mathcal{D}(G)$ in dense in $L^2(G)$, $|\\cdot|_0$. \n\\end{theorem}\n\n%------------------------------------------------\n\n\\section{Definitions}\\index{Definitions}\n\nThis is an example of a definition. A definition could be mathematical or it could define a concept.\n\n\\begin{definition}[Definition name]\nGiven a vector space $E$, a norm on $E$ is an application, denoted $||\\cdot||$, $E$ in $\\mathbb{R}^+=[0,+\\infty[$ such that:\n\\begin{align}\n& ||\\mathbf{x}||=0\\ \\Rightarrow\\ \\mathbf{x}=\\mathbf{0}\\\\\n& ||\\lambda \\mathbf{x}||=|\\lambda|\\cdot ||\\mathbf{x}||\\\\\n& ||\\mathbf{x}+\\mathbf{y}||\\leq ||\\mathbf{x}||+||\\mathbf{y}||\n\\end{align}\n\\end{definition}\n\n%------------------------------------------------\n\n\\section{Notations}\\index{Notations}\n\n\\begin{notation}\nGiven an open subset $G$ of $\\mathbb{R}^n$, the set of functions $\\varphi$ are:\n\\begin{enumerate}\n\\item Bounded support $G$;\n\\item Infinitely differentiable;\n\\end{enumerate}\na vector space is denoted by $\\mathcal{D}(G)$. \n\\end{notation}\n\n%------------------------------------------------\n\n\\section{Remarks}\\index{Remarks}\n\nThis is an example of a remark.\n\n\\begin{remark}\nThe concepts presented here are now in conventional employment in mathematics. Vector spaces are taken over the field $\\mathbb{K}=\\mathbb{R}$, however, established properties are easily extended to $\\mathbb{K}=\\mathbb{C}$.\n\\end{remark}\n\n%------------------------------------------------\n\n\\section{Corollaries}\\index{Corollaries}\n\nThis is an example of a corollary.\n\n\\begin{corollary}[Corollary name]\nThe concepts presented here are now in conventional employment in mathematics. Vector spaces are taken over the field $\\mathbb{K}=\\mathbb{R}$, however, established properties are easily extended to $\\mathbb{K}=\\mathbb{C}$.\n\\end{corollary}\n\n%------------------------------------------------\n\n\\section{Propositions}\\index{Propositions}\n\nThis is an example of propositions.\n\n\\subsection{Several equations}\\index{Propositions!Several Equations}\n\n\\begin{proposition}[Proposition name]\nIt has the properties:\n\\begin{align}\n& \\big| ||\\mathbf{x}|| - ||\\mathbf{y}|| \\big|\\leq || \\mathbf{x}- \\mathbf{y}||\\\\\n&  ||\\sum_{i=1}^n\\mathbf{x}_i||\\leq \\sum_{i=1}^n||\\mathbf{x}_i||\\quad\\text{where $n$ is a finite integer}\n\\end{align}\n\\end{proposition}\n\n\\subsection{Single Line}\\index{Propositions!Single Line}\n\n\\begin{proposition} \nLet $f,g\\in L^2(G)$; if $\\forall \\varphi\\in\\mathcal{D}(G)$, $(f,\\varphi)_0=(g,\\varphi)_0$ then $f = g$. \n\\end{proposition}\n\n%------------------------------------------------\n\n\\section{Examples}\\index{Examples}\n\nThis is an example of examples.\n\n\\subsection{Equation and Text}\\index{Examples!Equation and Text}\n\n\\begin{example}\nLet $G=\\{x\\in\\mathbb{R}^2:|x|<3\\}$ and denoted by: $x^0=(1,1)$; consider the function:\n\\begin{equation}\nf(x)=\\left\\{\\begin{aligned} & \\mathrm{e}^{|x|} & & \\text{si $|x-x^0|\\leq 1/2$}\\\\\n& 0 & & \\text{si $|x-x^0|> 1/2$}\\end{aligned}\\right.\n\\end{equation}\nThe function $f$ has bounded support, we can take $A=\\{x\\in\\mathbb{R}^2:|x-x^0|\\leq 1/2+\\epsilon\\}$ for all $\\epsilon\\in\\intoo{0}{5/2-\\sqrt{2}}$.\n\\end{example}\n\n\\subsection{Paragraph of Text}\\index{Examples!Paragraph of Text}\n\n\\begin{example}[Example name]\n\\lipsum[2]\n\\end{example}\n\n%------------------------------------------------\n\n\\section{Exercises}\\index{Exercises}\n\nThis is an example of an exercise.\n\n\\begin{exercise}\nThis is a good place to ask a question to test learning progress or further cement ideas into students' minds.\n\\end{exercise}\n\n%------------------------------------------------\n\n\\section{Problems}\\index{Problems}\n\n\\begin{problem}\nWhat is the average airspeed velocity of an unladen swallow?\n\\end{problem}\n\n%------------------------------------------------\n\n\\section{Vocabulary}\\index{Vocabulary}\n\nDefine a word to improve a students' vocabulary.\n\n\\begin{vocabulary}[Word]\nDefinition of word.\n\\end{vocabulary}\n\n%----------------------------------------------------------------------------------------\n%\tCHAPTER 3\n%----------------------------------------------------------------------------------------\n\n\\chapterimage{chapter_head_1.pdf} % Chapter heading image\n\n\\chapter{Presenting Information}\n\n\\section{Table}\\index{Table}\n\n\\begin{table}[h]\n\\centering\n\\begin{tabular}{l l l}\n\\toprule\n\\textbf{Treatments} & \\textbf{Response 1} & \\textbf{Response 2}\\\\\n\\midrule\nTreatment 1 & 0.0003262 & 0.562 \\\\\nTreatment 2 & 0.0015681 & 0.910 \\\\\nTreatment 3 & 0.0009271 & 0.296 \\\\\n\\bottomrule\n\\end{tabular}\n\\caption{Table caption}\n\\end{table}\n\n%------------------------------------------------\n\n\\section{Figure}\\index{Figure}\n\n\\begin{figure}[h]\n\\centering\\includegraphics[scale=0.5]{placeholder}\n\\caption{Figure caption}\n\\end{figure}\n\n%----------------------------------------------------------------------------------------\n%\tBIBLIOGRAPHY\n%----------------------------------------------------------------------------------------\n\n\\chapter*{Bibliography}\n\\addcontentsline{toc}{chapter}{\\textcolor{ocre}{Bibliography}}\n\\section*{Books}\n\\addcontentsline{toc}{section}{Books}\n\\printbibliography[heading=bibempty,type=book]\n\\section*{Articles}\n\\addcontentsline{toc}{section}{Articles}\n\\printbibliography[heading=bibempty,type=article]\n\n%----------------------------------------------------------------------------------------\n%\tINDEX\n%----------------------------------------------------------------------------------------\n\n\\cleardoublepage\n\\phantomsection\n\\setlength{\\columnsep}{0.75cm}\n\\addcontentsline{toc}{chapter}{\\textcolor{ocre}{Index}}\n\\printindex\n\n%----------------------------------------------------------------------------------------\n\\end{CJK*}\n\\end{document}"
  },
  {
    "path": "docs/main.toc",
    "content": "\\boolfalse {citerequest}\\boolfalse {citetracker}\\boolfalse {pagetracker}\\boolfalse {backtracker}\\relax \n\\defcounter {refsection}{0}\\relax \n\\select@language {english}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\numberline {1}系统安装}{5}{chapter.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {1.1}艾玛测试}{5}{section.1.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {1.2}Citation}{5}{section.1.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {1.3}Lists}{5}{section.1.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {1.3.1}Numbered List}{5}{subsection.1.3.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {1.3.2}Bullet Points}{5}{subsection.1.3.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {1.3.3}Descriptions and Definitions}{5}{subsection.1.3.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\numberline {2}In-text Elements}{7}{chapter.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.1}Theorems}{7}{section.2.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.1.1}Several equations}{7}{subsection.2.1.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.1.2}Single Line}{7}{subsection.2.1.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.2}Definitions}{7}{section.2.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.3}Notations}{8}{section.2.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.4}Remarks}{8}{section.2.4}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.5}Corollaries}{8}{section.2.5}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.6}Propositions}{8}{section.2.6}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.6.1}Several equations}{8}{subsection.2.6.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.6.2}Single Line}{8}{subsection.2.6.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.7}Examples}{8}{section.2.7}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.7.1}Equation and Text}{8}{subsection.2.7.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {subsection}{\\numberline {2.7.2}Paragraph of Text}{9}{subsection.2.7.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.8}Exercises}{9}{section.2.8}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.9}Problems}{9}{section.2.9}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {2.10}Vocabulary}{9}{section.2.10}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\numberline {3}Presenting Information}{11}{chapter.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {3.1}Table}{11}{section.3.1}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{\\numberline {3.2}Figure}{11}{section.3.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\leavevmode {\\color {ocre}Bibliography}}{13}{chapter*.2}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{Books}{13}{section*.3}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {section}{Articles}{13}{section*.4}\n\\defcounter {refsection}{0}\\relax \n\\contentsline {chapter}{\\leavevmode {\\color {ocre}Index}}{15}{section*.5}\n\\contentsfinish \n"
  },
  {
    "path": "docs/structure.tex",
    "content": "%----------------------------------------------------------------------------------------\n%\tVARIOUS REQUIRED PACKAGES\n%----------------------------------------------------------------------------------------\n\n\\usepackage{titlesec} % Allows customization of titles\n\n\\usepackage{graphicx} % Required for including pictures\n\\graphicspath{{Pictures/}} % Specifies the directory where pictures are stored\n\n\\usepackage{lipsum} % Inserts dummy text\n\n\\usepackage{tikz} % Required for drawing custom shapes\n\n\\usepackage[english]{babel} % English language/hyphenation\n\n\\usepackage{enumitem} % Customize lists\n\\setlist{nolistsep} % Reduce spacing between bullet points and numbered lists\n\n\\usepackage{booktabs} % Required for nicer horizontal rules in tables\n\n\\usepackage{eso-pic} % Required for specifying an image background in the title page\n\n%----------------------------------------------------------------------------------------\n%\tMAIN TABLE OF CONTENTS\n%----------------------------------------------------------------------------------------\n\n\\usepackage{titletoc} % Required for manipulating the table of contents\n\n\\contentsmargin{0cm} % Removes the default margin\n% Chapter text styling\n\\titlecontents{chapter}[1.25cm] % Indentation\n{\\addvspace{15pt}\\large\\sffamily\\bfseries} % Spacing and font options for chapters\n{\\color{ocre!60}\\contentslabel[\\Large\\thecontentslabel]{1.25cm}\\color{ocre}} % Chapter number\n{}  \n{\\color{ocre!60}\\normalsize\\sffamily\\bfseries\\;\\titlerule*[.5pc]{.}\\;\\thecontentspage} % Page number\n% Section text styling\n\\titlecontents{section}[1.25cm] % Indentation\n{\\addvspace{5pt}\\sffamily\\bfseries} % Spacing and font options for sections\n{\\contentslabel[\\thecontentslabel]{1.25cm}} % Section number\n{}\n{\\sffamily\\hfill\\color{black}\\thecontentspage} % Page number\n[]\n% Subsection text styling\n\\titlecontents{subsection}[1.25cm] % Indentation\n{\\addvspace{1pt}\\sffamily\\small} % Spacing and font options for subsections\n{\\contentslabel[\\thecontentslabel]{1.25cm}} % Subsection number\n{}\n{\\sffamily\\;\\titlerule*[.5pc]{.}\\;\\thecontentspage} % Page number\n[] \n\n%----------------------------------------------------------------------------------------\n%\tMINI TABLE OF CONTENTS IN CHAPTER HEADS\n%----------------------------------------------------------------------------------------\n\n% Section text styling\n\\titlecontents{lsection}[0em] % Indendating\n{\\footnotesize\\sffamily} % Font settings\n{}\n{}\n{}\n\n% Subsection text styling\n\\titlecontents{lsubsection}[.5em] % Indentation\n{\\normalfont\\footnotesize\\sffamily} % Font settings\n{}\n{}\n{}\n \n%----------------------------------------------------------------------------------------\n%\tPAGE HEADERS\n%----------------------------------------------------------------------------------------\n\n\\usepackage{fancyhdr} % Required for header and footer configuration\n\n\\pagestyle{fancy}\n\\renewcommand{\\chaptermark}[1]{\\markboth{\\sffamily\\normalsize\\bfseries\\chaptername\\ \\thechapter.\\ #1}{}} % Chapter text font settings\n\\renewcommand{\\sectionmark}[1]{\\markright{\\sffamily\\normalsize\\thesection\\hspace{5pt}#1}{}} % Section text font settings\n\\fancyhf{} \\fancyhead[LE,RO]{\\sffamily\\normalsize\\thepage} % Font setting for the page number in the header\n\\fancyhead[LO]{\\rightmark} % Print the nearest section name on the left side of odd pages\n\\fancyhead[RE]{\\leftmark} % Print the current chapter name on the right side of even pages\n\\renewcommand{\\headrulewidth}{0.5pt} % Width of the rule under the header\n\\addtolength{\\headheight}{2.5pt} % Increase the spacing around the header slightly\n\\renewcommand{\\footrulewidth}{0pt} % Removes the rule in the footer\n\\fancypagestyle{plain}{\\fancyhead{}\\renewcommand{\\headrulewidth}{0pt}} % Style for when a plain pagestyle is specified\n\n% Removes the header from odd empty pages at the end of chapters\n\\makeatletter\n\\renewcommand{\\cleardoublepage}{\n\\clearpage\\ifodd\\c@page\\else\n\\hbox{}\n\\vspace*{\\fill}\n\\thispagestyle{empty}\n\\newpage\n\\fi}\n\n%----------------------------------------------------------------------------------------\n%\tTHEOREM STYLES\n%----------------------------------------------------------------------------------------\n\n\\usepackage{amsmath,amsfonts,amssymb,amsthm} % For math equations, theorems, symbols, etc\n\n\\newcommand{\\intoo}[2]{\\mathopen{]}#1\\,;#2\\mathclose{[}}\n\\newcommand{\\ud}{\\mathop{\\mathrm{{}d}}\\mathopen{}}\n\\newcommand{\\intff}[2]{\\mathopen{[}#1\\,;#2\\mathclose{]}}\n\\newtheorem{notation}{Notation}[chapter]\n\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n%%%%%%%%%%%%%%%%%%%% dedicated to boxed/framed environements %%%%%%%%%%%%%%\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\\newtheoremstyle{ocrenumbox}% % Theorem style name\n{0pt}% Space above\n{0pt}% Space below\n{\\normalfont}% % Body font\n{}% Indent amount\n{\\small\\bf\\sffamily\\color{ocre}}% % Theorem head font\n{\\;}% Punctuation after theorem head\n{0.25em}% Space after theorem head\n{\\small\\sffamily\\color{ocre}\\thmname{#1}\\nobreakspace\\thmnumber{\\@ifnotempty{#1}{}\\@upn{#2}}% Theorem text (e.g. Theorem 2.1)\n\\thmnote{\\nobreakspace\\the\\thm@notefont\\sffamily\\bfseries\\color{black}---\\nobreakspace#3.}} % Optional theorem note\n\\renewcommand{\\qedsymbol}{$\\blacksquare$}% Optional qed square\n\n\\newtheoremstyle{blacknumex}% Theorem style name\n{5pt}% Space above\n{5pt}% Space below\n{\\normalfont}% Body font\n{} % Indent amount\n{\\small\\bf\\sffamily}% Theorem head font\n{\\;}% Punctuation after theorem head\n{0.25em}% Space after theorem head\n{\\small\\sffamily{\\tiny\\ensuremath{\\blacksquare}}\\nobreakspace\\thmname{#1}\\nobreakspace\\thmnumber{\\@ifnotempty{#1}{}\\@upn{#2}}% Theorem text (e.g. Theorem 2.1)\n\\thmnote{\\nobreakspace\\the\\thm@notefont\\sffamily\\bfseries---\\nobreakspace#3.}}% Optional theorem note\n\n\\newtheoremstyle{blacknumbox} % Theorem style name\n{0pt}% Space above\n{0pt}% Space below\n{\\normalfont}% Body font\n{}% Indent amount\n{\\small\\bf\\sffamily}% Theorem head font\n{\\;}% Punctuation after theorem head\n{0.25em}% Space after theorem head\n{\\small\\sffamily\\thmname{#1}\\nobreakspace\\thmnumber{\\@ifnotempty{#1}{}\\@upn{#2}}% Theorem text (e.g. Theorem 2.1)\n\\thmnote{\\nobreakspace\\the\\thm@notefont\\sffamily\\bfseries---\\nobreakspace#3.}}% Optional theorem note\n\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n%%%%%%%%%%%%% dedicated to non-boxed/non-framed environements %%%%%%%%%%%%%\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\\newtheoremstyle{ocrenum}% % Theorem style name\n{5pt}% Space above\n{5pt}% Space below\n{\\normalfont}% % Body font\n{}% Indent amount\n{\\small\\bf\\sffamily\\color{ocre}}% % Theorem head font\n{\\;}% Punctuation after theorem head\n{0.25em}% Space after theorem head\n{\\small\\sffamily\\color{ocre}\\thmname{#1}\\nobreakspace\\thmnumber{\\@ifnotempty{#1}{}\\@upn{#2}}% Theorem text (e.g. Theorem 2.1)\n\\thmnote{\\nobreakspace\\the\\thm@notefont\\sffamily\\bfseries\\color{black}---\\nobreakspace#3.}} % Optional theorem note\n\\renewcommand{\\qedsymbol}{$\\blacksquare$}% Optional qed square\n\\makeatother\n\n% Defines the theorem text style for each type of theorem to one of the three styles above\n\\newcounter{dummy} \n\\numberwithin{dummy}{section}\n\\theoremstyle{ocrenumbox}\n\\newtheorem{theoremeT}[dummy]{Theorem}\n\\newtheorem{problem}{Problem}[chapter]\n\\newtheorem{exerciseT}{Exercise}[chapter]\n\\theoremstyle{blacknumex}\n\\newtheorem{exampleT}{Example}[chapter]\n\\theoremstyle{blacknumbox}\n\\newtheorem{vocabulary}{Vocabulary}[chapter]\n\\newtheorem{definitionT}{Definition}[section]\n\\newtheorem{corollaryT}[dummy]{Corollary}\n\\theoremstyle{ocrenum}\n\\newtheorem{proposition}[dummy]{Proposition}\n\n%----------------------------------------------------------------------------------------\n%\tDEFINITION OF COLORED BOXES\n%----------------------------------------------------------------------------------------\n\n\\RequirePackage[framemethod=default]{mdframed} % Required for creating the theorem, definition, exercise and corollary boxes\n\n% Theorem box\n\\newmdenv[skipabove=7pt,\nskipbelow=7pt,\nbackgroundcolor=black!5,\nlinecolor=ocre,\ninnerleftmargin=5pt,\ninnerrightmargin=5pt,\ninnertopmargin=5pt,\nleftmargin=0cm,\nrightmargin=0cm,\ninnerbottommargin=5pt]{tBox}\n\n% Exercise box\t  \n\\newmdenv[skipabove=7pt,\nskipbelow=7pt,\nrightline=false,\nleftline=true,\ntopline=false,\nbottomline=false,\nbackgroundcolor=ocre!10,\nlinecolor=ocre,\ninnerleftmargin=5pt,\ninnerrightmargin=5pt,\ninnertopmargin=5pt,\ninnerbottommargin=5pt,\nleftmargin=0cm,\nrightmargin=0cm,\nlinewidth=4pt]{eBox}\t\n\n% Definition box\n\\newmdenv[skipabove=7pt,\nskipbelow=7pt,\nrightline=false,\nleftline=true,\ntopline=false,\nbottomline=false,\nlinecolor=ocre,\ninnerleftmargin=5pt,\ninnerrightmargin=5pt,\ninnertopmargin=0pt,\nleftmargin=0cm,\nrightmargin=0cm,\nlinewidth=4pt,\ninnerbottommargin=0pt]{dBox}\t\n\n% Corollary box\n\\newmdenv[skipabove=7pt,\nskipbelow=7pt,\nrightline=false,\nleftline=true,\ntopline=false,\nbottomline=false,\nlinecolor=gray,\nbackgroundcolor=black!5,\ninnerleftmargin=5pt,\ninnerrightmargin=5pt,\ninnertopmargin=5pt,\nleftmargin=0cm,\nrightmargin=0cm,\nlinewidth=4pt,\ninnerbottommargin=5pt]{cBox}\n\n% Creates an environment for each type of theorem and assigns it a theorem text style from the \"Theorem Styles\" section above and a colored box from above\n\\newenvironment{theorem}{\\begin{tBox}\\begin{theoremeT}}{\\end{theoremeT}\\end{tBox}}\n\\newenvironment{exercise}{\\begin{eBox}\\begin{exerciseT}}{\\hfill{\\color{ocre}\\tiny\\ensuremath{\\blacksquare}}\\end{exerciseT}\\end{eBox}}\t\t\t\t  \n\\newenvironment{definition}{\\begin{dBox}\\begin{definitionT}}{\\end{definitionT}\\end{dBox}}\t\n\\newenvironment{example}{\\begin{exampleT}}{\\hfill{\\tiny\\ensuremath{\\blacksquare}}\\end{exampleT}}\t\t\n\\newenvironment{corollary}{\\begin{cBox}\\begin{corollaryT}}{\\end{corollaryT}\\end{cBox}}\t\n\n%----------------------------------------------------------------------------------------\n%\tREMARK ENVIRONMENT\n%----------------------------------------------------------------------------------------\n\n\\newenvironment{remark}{\\par\\vspace{10pt}\\small % Vertical white space above the remark and smaller font size\n\\begin{list}{}{\n\\leftmargin=35pt % Indentation on the left\n\\rightmargin=25pt}\\item\\ignorespaces % Indentation on the right\n\\makebox[-2.5pt]{\\begin{tikzpicture}[overlay]\n\\node[draw=ocre!60,line width=1pt,circle,fill=ocre!25,font=\\sffamily\\bfseries,inner sep=2pt,outer sep=0pt] at (-15pt,0pt){\\textcolor{ocre}{R}};\\end{tikzpicture}} % Orange R in a circle\n\\advance\\baselineskip -1pt}{\\end{list}\\vskip5pt} % Tighter line spacing and white space after remark\n\n%----------------------------------------------------------------------------------------\n%\tSECTION NUMBERING IN THE MARGIN\n%----------------------------------------------------------------------------------------\n\n\\makeatletter\n\\renewcommand{\\@seccntformat}[1]{\\llap{\\textcolor{ocre}{\\csname the#1\\endcsname}\\hspace{1em}}}                    \n\\renewcommand{\\section}{\\@startsection{section}{1}{\\z@}\n{-4ex \\@plus -1ex \\@minus -.4ex}\n{1ex \\@plus.2ex }\n{\\normalfont\\large\\sffamily\\bfseries}}\n\\renewcommand{\\subsection}{\\@startsection {subsection}{2}{\\z@}\n{-3ex \\@plus -0.1ex \\@minus -.4ex}\n{0.5ex \\@plus.2ex }\n{\\normalfont\\sffamily\\bfseries}}\n\\renewcommand{\\subsubsection}{\\@startsection {subsubsection}{3}{\\z@}\n{-2ex \\@plus -0.1ex \\@minus -.2ex}\n{.2ex \\@plus.2ex }\n{\\normalfont\\small\\sffamily\\bfseries}}                        \n\\renewcommand\\paragraph{\\@startsection{paragraph}{4}{\\z@}\n{-2ex \\@plus-.2ex \\@minus .2ex}\n{.1ex}\n{\\normalfont\\small\\sffamily\\bfseries}}\n\n%----------------------------------------------------------------------------------------\n%\tHYPERLINKS IN THE DOCUMENTS\n%----------------------------------------------------------------------------------------\n\n% For an unclear reason, the package should be loaded now and not later\n\\usepackage{hyperref}\n\\hypersetup{hidelinks,backref=true,pagebackref=true,hyperindex=true,colorlinks=false,breaklinks=true,urlcolor= ocre,bookmarks=true,bookmarksopen=false,pdftitle={Title},pdfauthor={Author}}\n\n%----------------------------------------------------------------------------------------\n%\tCHAPTER HEADINGS\n%----------------------------------------------------------------------------------------\n\n% The set-up below should be (sadly) manually adapted to the overall margin page septup controlled by the geometry package loaded in the main.tex document. It is possible to implement below the dimensions used in the goemetry package (top,bottom,left,right)... TO BE DONE\n\n\\newcommand{\\thechapterimage}{}\n\\newcommand{\\chapterimage}[1]{\\renewcommand{\\thechapterimage}{#1}}\n\n% Numbered chapters with mini tableofcontents\n\\def\\thechapter{\\arabic{chapter}}\n\\def\\@makechapterhead#1{\n\\thispagestyle{empty}\n{\\centering \\normalfont\\sffamily\n\\ifnum \\c@secnumdepth >\\m@ne\n\\if@mainmatter\n\\startcontents\n\\begin{tikzpicture}[remember picture,overlay]\n\\node at (current page.north west)\n{\\begin{tikzpicture}[remember picture,overlay]\n\\node[anchor=north west,inner sep=0pt] at (0,0) {\\includegraphics[width=\\paperwidth]{\\thechapterimage}};\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n% Commenting the 3 lines below removes the small contents box in the chapter heading\n\\fill[color=ocre!10!white,opacity=.6] (1cm,0) rectangle (8cm,-7cm);\n\\node[anchor=north west] at (1.1cm,.35cm) {\\parbox[t][8cm][t]{6.5cm}{\\huge\\bfseries\\flushleft \\printcontents{l}{1}{\\setcounter{tocdepth}{2}}}};\n\\draw[anchor=west] (5cm,-9cm) node [rounded corners=20pt,fill=ocre!10!white,text opacity=1,draw=ocre,draw opacity=1,line width=1.5pt,fill opacity=.6,inner sep=12pt]{\\huge\\sffamily\\bfseries\\textcolor{black}{\\thechapter. #1\\strut\\makebox[22cm]{}}};\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\\end{tikzpicture}};\n\\end{tikzpicture}}\n\\par\\vspace*{230\\p@}\n\\fi\n\\fi}\n\n% Unnumbered chapters without mini tableofcontents (could be added though) \n\\def\\@makeschapterhead#1{\n\\thispagestyle{empty}\n{\\centering \\normalfont\\sffamily\n\\ifnum \\c@secnumdepth >\\m@ne\n\\if@mainmatter\n\\begin{tikzpicture}[remember picture,overlay]\n\\node at (current page.north west)\n{\\begin{tikzpicture}[remember picture,overlay]\n\\node[anchor=north west,inner sep=0pt] at (0,0) {\\includegraphics[width=\\paperwidth]{\\thechapterimage}};\n\\draw[anchor=west] (5cm,-9cm) node [rounded corners=20pt,fill=ocre!10!white,fill opacity=.6,inner sep=12pt,text opacity=1,draw=ocre,draw opacity=1,line width=1.5pt]{\\huge\\sffamily\\bfseries\\textcolor{black}{#1\\strut\\makebox[22cm]{}}};\n\\end{tikzpicture}};\n\\end{tikzpicture}}\n\\par\\vspace*{230\\p@}\n\\fi\n\\fi\n}\n\\makeatother"
  },
  {
    "path": "dotfile/.bashrc",
    "content": "export TERM='xterm-256color'\nexport LANG=en_US.UTF-8\nexport LC_CTYPE=\"en_US.UTF-8\"\nexport LC_ALL=en_US.UTF-8\nTZ='Asia/Shanghai'; export TZ\nstty stop ''\nstty start ''\nstty -ixon\nstty -ixoff\nPS1=\"[\\[\\e[32m\\]#\\##\\[\\e[31m\\]\\u@\\[\\e[36m\\]\\h \\w]\\$\\[\\e[m\\]\"\nalias resetenv='curl https://raw.githubusercontent.com/lijianying10/FixLinux/master/script/env.sh | bash'\n\nexport GOPATH=/go\nexport PATH=$PATH:/go/bin/:/usr/local/go/bin/:/usr/local/node/bin/\n"
  },
  {
    "path": "dotfile/.tmux.conf",
    "content": "# 0 is too far from ` ;)\nset -g base-index 1\n\n# Automatically set window title\nset-window-option -g automatic-rename on\nset-option -g set-titles on\n\nset -g default-terminal screen-256color\nset -g status-keys vi\nset -g history-limit 10000\n\nsetw -g mode-keys vi\nsetw -g monitor-activity on\n\nbind-key v split-window -h\nbind-key s split-window -v\n\nbind-key -n M-S resize-pane -D 2\nbind-key -n M-W resize-pane -U 2\nbind-key -n M-A resize-pane -L 2\nbind-key -n M-D resize-pane -R 2\n\n# Vim style pane selection\nbind h select-pane -L\nbind j select-pane -D\nbind k select-pane -U\nbind l select-pane -R\n\n# Use Alt-vim keys without prefix key to switch panes\n#bind -n M-h select-pane -L\n#bind -n M-j select-pane -D\n#bind -n M-k select-pane -U\n#bind -n M-l select-pane -R\n\n# Use Alt-arrow keys without prefix key to switch panes\n#bind -n M-Left select-pane -L\n#bind -n M-Right select-pane -R\n#bind -n M-Up select-pane -U\n#bind -n M-Down select-pane -D\n\n# Shift arrow to switch windows\nbind -n M-h previous-window\nbind -n M-l next-window\n\nbind -n M-a select-pane -L  # move left\nbind -n M-s select-pane -D  # move down\nbind -n M-w select-pane -U  # move up\nbind -n M-d select-pane -R  # move right\n\nbind -n M-q split-window -h\nbind -n M-e split-window -v\n\nbind -n M-r command-prompt \"rename-window '%%'\"\n\n# No delay for escape key press\nset -sg escape-time 0\n\n# Reload tmux config\nbind r source-file ~/.tmux.conf\n\n# THEME\nset -g status-bg black\nset -g status-fg white\nset -g window-status-current-bg white\nset -g window-status-current-fg black\n#set -g window-status-current-attr bold\nset -g status-interval 1\nset -g status-left-length 30\n#set -g status-left '#[fg=green](#S) #(whoami)'\nset -g status-right '#[fg=green]#(freem)#[default] #[fg=yellow]#(cut -d \" \" -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M:%S#[default] #[fg=white]#(date +%s)#[default]'\n"
  },
  {
    "path": "dotfile/.vimrc",
    "content": "filetype off                  \" required\n\n\" Specify a directory for plugins\n\" - For Neovim: ~/.local/share/nvim/plugged\n\" - Avoid using standard Vim directory names like 'plugin'\ncall plug#begin('~/.vim/plugged')\n\" Initialize plugin system\nPlug 'fatih/vim-go'\nPlug 'mileszs/ack.vim'\nPlug 'majutsushi/tagbar'\nPlug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }\nPlug 'vim-airline/vim-airline'\nPlug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }\nPlug 'junegunn/fzf.vim'\n\" for HTML\nPlug 'mattn/emmet-vim'\n\" for typescript\nPlug 'leafgarland/typescript-vim'\n\" for JS\nPlug 'pangloss/vim-javascript'\n\" for SNIP tool\nPlug 'SirVer/ultisnips'\n\" Snippets are separated from the engine. Add this if you want them:\nPlug 'honza/vim-snippets'\nPlug 'w0rp/ale'\nPlug 'joshdick/onedark.vim'\nPlug 'neoclide/coc.nvim', {'branch': 'release'}\nPlug 'google/vim-maktaba'\nPlug 'bazelbuild/vim-bazel'\nPlug 'tmhedberg/simpylfold'\ncall plug#end()\n\nlet g:python3_host_prog = '/usr/bin/python3'\n\" let g:python_host_prog = '/usr/bin/python'\nlet g:loaded_python_provider=1\nlet g:python_host_skip_check=1\n\n\" 代码高亮用的\nsyntax enable\nfiletype plugin on\nset number\nset noswapfile\nlet g:go_fmt_command = \"goimports\" \"保存的时候自动运行goimports\nlet g:go_highlight_build_constraints = 1\nlet g:go_highlight_extra_types = 1\nlet g:go_highlight_fields = 1\nlet g:go_highlight_functions = 1\nlet g:go_highlight_methods = 1\nlet g:go_highlight_operators = 1\nlet g:go_highlight_structs = 1\nlet g:go_highlight_types = 1\nlet g:go_def_mode='gopls'\nlet g:go_info_mode='gopls'\n\n\" 颜色配置\ncolorscheme onedark\n\n\" 标签分析\nlet g:tagbar_type_go = {\n    \\ 'ctagstype' : 'go',\n    \\ 'kinds'     : [\n        \\ 'p:package',\n        \\ 'i:imports:1',\n        \\ 'c:constants',\n        \\ 'v:variables',\n        \\ 't:types',\n        \\ 'n:interfaces',\n        \\ 'w:fields',\n        \\ 'e:embedded',\n        \\ 'm:methods',\n        \\ 'r:constructor',\n        \\ 'f:functions'\n    \\ ],\n    \\ 'sro' : '.',\n    \\ 'kind2scope' : {\n        \\ 't' : 'ctype',\n        \\ 'n' : 'ntype'\n    \\ },\n    \\ 'scope2kind' : {\n        \\ 'ctype' : 't',\n        \\ 'ntype' : 'n'\n    \\ },\n    \\ 'ctagsbin'  : 'gotags',\n    \\ 'ctagsargs' : '-sort -silent'\n    \\ }\n\n\" 标签映射\n\" execute \"set <M-i>=\\ei\"\n\" execute \"set <M-o>=\\eo\"\n\" execute \"set <M-p>=\\ep\"\n\" execute \"set <M-u>=\\eu\"\n\" execute \"set <M-l>=\\el\"\n\" execute \"set <M-n>=\\en\"\n\" execute \"set <M-y>=\\ey\"\n\" execute \"set <M-c>=\\ec\"\n\nnmap <M-p> :TagbarToggle<CR>\nimap <M-p> <esc>:TagbarToggle<CR>i\nnmap <M-u> :NERDTreeToggle<CR>\nimap <M-u> <esc>:NERDTreeToggle<CR>\nnmap <C-c> :q<CR>\nnmap <M-o> :tabn<CR>\nimap <M-o> <esc>:tabn<CR>\nnmap <M-i> :tabp<CR>\nimap <M-i> <esc>:tabp<CR>\nnmap <M-l> :w<CR>:GoMetaLinter<CR>\nnmap <M-n> <Plug>(coc-definition)\nnmap <C-z> :undo<CR>\nnmap <M-y> :GoErrCheck<CR>\nnmap <C-s> :w<CR>\nimap <C-s> <esc>:w<CR>\nimap <M-c> <esc>:pc<CR>\nnmap <M-c> :pc<CR>\nnmap <leader>r :Ack<space>\nnmap <leader>t :FZF<CR>\n\nset backspace=indent,eol,start \" 让backspace能正常工作的配置\n\n\" 这是对PowerLine的设置\nset encoding=utf-8\nset laststatus=2\nlet g:Powerline_symbols='unicode'\n\n\" tab设置\nset ts=4\nset expandtab\n\n\" 解决esc延迟问题\nset timeoutlen=1000 ttimeoutlen=0\n\n\"高亮显示搜索匹配到的字符串\nset hlsearch\n\n\"在搜索模式下，随着搜索字符的逐个输入，实时进行字符串匹配，并对首个匹配到的字符串高亮显示\nset incsearch\n\n\" 解决Tmux下 背景颜色不一致的问题\nset t_ut=\n\n\" tab 也使用airline\nlet g:airline#extensions#tabline#enabled = 1\n\n\" 使用Powerline字体\nlet g:airline_powerline_fonts = 1\nlet g:ackprg = 'ack -s -H --nopager --nocolor --nogroup --column --smart-case'\n\nfunction SetClipData()\n  let clipdata = getreg(\"\")\n  call system(\"echo -n '\".clipdata.\"' > /tmp/clipdata\")\nendfunction\n\nfunc GetClipData()\n    let clipdata = system(\"cat /tmp/clipdata\")\n    call append(getpos(\".\")[1],split(clipdata,\"\\n\"))\nendfunction\n\nnmap <leader>c :call SetClipData()<CR>\nnmap <leader>v :call GetClipData()<CR>\ninoremap { {}<ESC>i\ninoremap ( ()<ESC>i\ninoremap \" \"\"<ESC>i\ninoremap ' ''<ESC>i\n\naugroup gopkgs\n  autocmd!\n  autocmd FileType go command! -buffer Import exe 'GoImport' fzf#run({'source': 'gopkgs'})[0]\n  autocmd FileType go command! -buffer Doc exe 'GoDoc' fzf#run({'source': 'gopkgs'})[0]\naugroup END\n\n\" for js check\nlet g:javascript_plugin_jsdoc = 1\nlet g:javascript_plugin_ngdoc = 1\nlet g:javascript_plugin_flow = 1\n\n\" Snippets tool config\n\" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.\nlet g:UltiSnipsExpandTrigger=\"<tab>\"\nlet g:UltiSnipsJumpForwardTrigger=\"<c-b>\"\nlet g:UltiSnipsJumpBackwardTrigger=\"<c-z>\"\n\n\" If you want :UltiSnipsEdit to split your window.\nlet g:UltiSnipsEditSplit=\"vertical\"\n\n\" tabs for golang\nau FileType go set noexpandtab\nau FileType go set shiftwidth=4\nau FileType go set softtabstop=4\nau FileType go set tabstop=4\n\n\" For ale\nlet g:ale_linters = {'go': ['golint']}\n\" Error and warning signs.\nlet g:ale_sign_error = '⤫'\nlet g:ale_sign_warning = '⚠'\n\" Enable integration with airline.\nlet g:airline#extensions#ale#enabled = 1\n\n\" For ack\n\" Real time preview\nlet g:ackpreview=1\n\n\" Offset while scroll line\nset scrolloff=6\n\nset completeopt-=preview\n\n\" -------------------------------------------------------------------------------------------------\n\" coc.nvim default settings\n\" -------------------------------------------------------------------------------------------------\n\n\" TextEdit might fail if hidden is not set.\nset hidden\n\n\" Some servers have issues with backup files, see #649.\nset nobackup\nset nowritebackup\n\n\" Give more space for displaying messages.\nset cmdheight=2\n\n\" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable\n\" delays and poor user experience.\nset updatetime=300\n\n\" Don't pass messages to |ins-completion-menu|.\nset shortmess+=c\n\n\" Use tab for trigger completion with characters ahead and navigate.\n\" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by\n\" other plugin before putting this into your config.\ninoremap <silent><expr> <TAB>\n      \\ pumvisible() ? \"\\<C-n>\" :\n      \\ <SID>check_back_space() ? \"\\<TAB>\" :\n      \\ coc#refresh()\ninoremap <expr><S-TAB> pumvisible() ? \"\\<C-p>\" : \"\\<C-h>\"\n\nfunction! s:check_back_space() abort\n  let col = col('.') - 1\n  return !col || getline('.')[col - 1]  =~# '\\s'\nendfunction\n\n\" Use <c-space> to trigger completion.\nif has('nvim')\n  inoremap <silent><expr> <c-space> coc#refresh()\nelse\n  inoremap <silent><expr> <c-@> coc#refresh()\nendif\n\n\" Make <CR> auto-select the first completion item and notify coc.nvim to\n\" format on enter, <cr> could be remapped by other vim plugin\ninoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()\n                              \\: \"\\<C-g>u\\<CR>\\<c-r>=coc#on_enter()\\<CR>\"\n\n\" Use `[g` and `]g` to navigate diagnostics\n\" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.\nnmap <silent> [g <Plug>(coc-diagnostic-prev)\nnmap <silent> ]g <Plug>(coc-diagnostic-next)\n\n\" GoTo code navigation.\nnmap <silent> gd <Plug>(coc-definition)\nnmap <silent> gy <Plug>(coc-type-definition)\nnmap <silent> gi <Plug>(coc-implementation)\nnmap <silent> gr <Plug>(coc-references)\n\n\" Use K to show documentation in preview window.\nnnoremap <silent> K :call <SID>show_documentation()<CR>\n\nfunction! s:show_documentation()\n  if (index(['vim','help'], &filetype) >= 0)\n    execute 'h '.expand('<cword>')\n  elseif (coc#rpc#ready())\n    call CocActionAsync('doHover')\n  else\n    execute '!' . &keywordprg . \" \" . expand('<cword>')\n  endif\nendfunction\n\n\" Highlight the symbol and its references when holding the cursor.\nautocmd CursorHold * silent call CocActionAsync('highlight')\n\n\" Symbol renaming.\nnmap <leader>rn <Plug>(coc-rename)\n\n\" Formatting selected code.\nxmap <leader>f  <Plug>(coc-format-selected)\nnmap <leader>f  <Plug>(coc-format-selected)\n\naugroup mygroup\n  autocmd!\n  \" Setup formatexpr specified filetype(s).\n  autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')\n  \" Update signature help on jump placeholder.\n  autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')\naugroup end\n\n\" Applying codeAction to the selected region.\n\" Example: `<leader>aap` for current paragraph\nxmap <leader>a  <Plug>(coc-codeaction-selected)\nnmap <leader>a  <Plug>(coc-codeaction-selected)\n\n\" Remap keys for applying codeAction to the current buffer.\nnmap <leader>ac  <Plug>(coc-codeaction)\n\" Apply AutoFix to problem on the current line.\nnmap <leader>qf  <Plug>(coc-fix-current)\n\n\" Map function and class text objects\n\" NOTE: Requires 'textDocument.documentSymbol' support from the language server.\nxmap if <Plug>(coc-funcobj-i)\nomap if <Plug>(coc-funcobj-i)\nxmap af <Plug>(coc-funcobj-a)\nomap af <Plug>(coc-funcobj-a)\nxmap ic <Plug>(coc-classobj-i)\nomap ic <Plug>(coc-classobj-i)\nxmap ac <Plug>(coc-classobj-a)\nomap ac <Plug>(coc-classobj-a)\n\n\" Remap <C-f> and <C-b> for scroll float windows/popups.\nif has('nvim-0.4.0') || has('patch-8.2.0750')\n  nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : \"\\<C-f>\"\n  nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : \"\\<C-b>\"\n  inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? \"\\<c-r>=coc#float#scroll(1)\\<cr>\" : \"\\<Right>\"\n  inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? \"\\<c-r>=coc#float#scroll(0)\\<cr>\" : \"\\<Left>\"\n  vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : \"\\<C-f>\"\n  vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : \"\\<C-b>\"\nendif\n\n\" Use CTRL-S for selections ranges.\n\" Requires 'textDocument/selectionRange' support of language server.\n\" nmap <silent> <C-s> <Plug>(coc-range-select)\n\" xmap <silent> <C-s> <Plug>(coc-range-select)\n\n\" Add `:Format` command to format current buffer.\ncommand! -nargs=0 Format :call CocAction('format')\n\n\" Add `:Fold` command to fold current buffer.\ncommand! -nargs=? Fold :call     CocAction('fold', <f-args>)\n\n\" Add `:OR` command for organize imports of the current buffer.\ncommand! -nargs=0 OR   :call     CocAction('runCommand', 'editor.action.organizeImport')\n\n\" Add (Neo)Vim's native statusline support.\n\" NOTE: Please see `:h coc-status` for integrations with external plugins that\n\" provide custom statusline: lightline.vim, vim-airline.\nset statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}\n\n\" Mappings for CoCList\n\" Show all diagnostics.\nnnoremap <silent><nowait> <space>a  :<C-u>CocList diagnostics<cr>\n\" Manage extensions.\nnnoremap <silent><nowait> <space>e  :<C-u>CocList extensions<cr>\n\" Show commands.\nnnoremap <silent><nowait> <space>c  :<C-u>CocList commands<cr>\n\" Find symbol of current document.\nnnoremap <silent><nowait> <space>o  :<C-u>CocList outline<cr>\n\" Search workspace symbols.\nnnoremap <silent><nowait> <space>s  :<C-u>CocList -I symbols<cr>\n\" Do default action for next item.\nnnoremap <silent><nowait> <space>j  :<C-u>CocNext<CR>\n\" Do default action for previous item.\nnnoremap <silent><nowait> <space>k  :<C-u>CocPrev<CR>\n\" Resume latest coc list.\nnnoremap <silent><nowait> <space>p  :<C-u>CocListResume<CR>\n\n\" -------------------------------------------------------------------------------------------------\n\" coc.nvim default settings end\n\" -------------------------------------------------------------------------------------------------\n\n\" disable vim-go :GoDef short cut (gd)\n\" this is handled by LanguageClient [LC]\nlet g:go_def_mapping_enabled = 0\n\n\" set number line width 1\nset nuw=1\n\n\" disable vim-go gopls\nlet g:go_gopls_enabled=0\n\n\" enable fold\nset foldmethod=syntax\nset foldlevel=4\nlet g:SimpylFold_docstring_preview=1\n"
  },
  {
    "path": "dotfile/coc-settings.json",
    "content": "{\n  \"languageserver\": {\n    \"golang\": {\n      \"command\": \"gopls\",\n      \"rootPatterns\": [\"go.mod\"],\n      \"filetypes\": [\"go\"]\n    }\n  }\n}\n"
  },
  {
    "path": "gh60.c",
    "content": "#include \"keymap_common.h\"\n\nconst uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n    /* 0: qwerty */\n    KEYMAP_ANSI(\n        GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC, \\\n        TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS, \\\n        ESC,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,  \\\n        LSFT,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,          FN0, \\\n        LCTL,LGUI,LALT,          SPC,                     DEL, UP,HOME, END),\n    /* 1: colemak */\n    KEYMAP_ANSI(\n        GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC, \\\n        TAB, Q,   W,   F,   P,   G,   J,   L,   U,   Y,   SCLN,LBRC,RBRC,BSLS, \\\n        BSPC,A,   R,   S,   T,   D,   H,   N,   E,   I,   O,   QUOT,     ENT,  \\\n        LSFT,Z,   X,   C,   V,   B,   K,   M,   COMM,DOT, SLSH,          RSFT, \\\n        LCTL,LGUI,LALT,          SPC,                     FN0, RGUI,APP, RCTL),\n    /* 2: dvorak */\n    KEYMAP_ANSI(\n        GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   LBRC,RBRC,BSPC, \\\n        TAB, QUOT,COMM,DOT, P,   Y,   F,   G,   C,   R,   L,   SLSH,EQL, BSLS, \\\n        CAPS,A,   O,   E,   U,   I,   D,   H,   T,   N,   S,   MINS,     ENT,  \\\n        LSFT,SCLN,Q,   J,   K,   X,   B,   M,   W,   V,   Z,             RSFT, \\\n        LCTL,LGUI,LALT,          SPC,                     FN0, RGUI,APP, RCTL),\n    /* 3: workman */\n    KEYMAP_ANSI(\n        GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC, \\\n        TAB, Q,   D,   R,   W,   B,   J,   F,   U,   P,   SCLN,LBRC,RBRC,BSLS, \\\n        BSPC,A,   S,   H,   T,   G,   Y,   N,   E,   O,   I,   QUOT,     ENT,  \\\n        LSFT,Z,   X,   M,   C,   V,   K,   L,   COMM,DOT, SLSH,          RSFT, \\\n        LCTL,LGUI,LALT,          SPC,                     FN0, RGUI,APP, RCTL),\n    /* 4: Poker with Arrow */\n    KEYMAP_ANSI(\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \\\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \\\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS, \\\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,          UP,   \\\n        TRNS,TRNS,TRNS,          TRNS,                    TRNS,LEFT,DOWN,RGHT),\n    /* 5: Poker with Esc */\n    KEYMAP_ANSI(\n        TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \\\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \\\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS, \\\n        TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,          TRNS, \\\n        TRNS,TRNS,TRNS,          TRNS,                    TRNS,TRNS,TRNS,TRNS),\n    /* 6: Poker Fn\n     * ,-----------------------------------------------------------.\n     * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|       |\n     * |-----------------------------------------------------------|\n     * |     |FnQ| Up|   |   |   |   |   |   |Cal|   |Hom|Ins|FnL  |\n     * |-----------------------------------------------------------|\n     * |      |Lef|Dow|Rig|   |   |Psc|Slk|Pau|   |Tsk|End|        |\n     * |-----------------------------------------------------------|\n     * |        |Del|   |Web|Mut|VoU|VoD|   |PgU|PgD|Del|          |\n     * |-----------------------------------------------------------|\n     * |    |    |    |         FnS            |    |    |    |    |\n     * `-----------------------------------------------------------'\n     * Fn:  to Fn overlay\n     * FnL: to Layout selector overaly\n     * FnQ: toggle Esc overlay\n     * FnS: toggle Arrow overlay\n     */\n    KEYMAP_ANSI(\n        GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS, \\\n        TRNS,FN2, UP,  TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4,  \\\n        TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END,      TRNS, \\\n        TRNS,DEL, TRNS,WHOM,MUTE,VOLD,VOLU,MPLY,MPRV,MNXT,MSTP,           TRNS, \\\n        TRNS,TRNS,TRNS,          FN1,                     TRNS,DOWN,LEFT,RIGHT),\n    /* 7: Layout selector\n     * ,-----------------------------------------------------------.\n     * | Lq| Lc| Ld| Lw|   |   |   |   |   |   |   |   |   |       |\n     * |-----------------------------------------------------------|\n     * |     |Lq |Lw |   |   |   |   |   |   |   |   |   |   |     |\n     * |-----------------------------------------------------------|\n     * |      |   |   |Ld |   |   |   |   |   |   |   |   |        |\n     * |-----------------------------------------------------------|\n     * |        |   |   |Lc |   |   |   |   |   |   |   |          |\n     * |-----------------------------------------------------------|\n     * |    |    |    |                        |    |    |    |    |\n     * `-----------------------------------------------------------'\n     * Lq: set Qwerty layout\n     * Lc: set Colemak layout\n     * Ld: set Dvorak layout\n     * Lw: set Workman layout\n     */\n    KEYMAP_ANSI(\n        TRNS, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \\\n        TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \\\n        TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS, \\\n        TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,          TRNS, \\\n        TRNS,TRNS,TRNS,          TRNS,                    TRNS,TRNS,TRNS,TRNS),\n};\nconst uint16_t PROGMEM fn_actions[] = {\n    /* Poker Layout */\n    [0] = ACTION_LAYER_MOMENTARY(6),  // to Fn overlay\n    [1] = ACTION_LAYER_TOGGLE(4),     // toggle arrow overlay\n    [2] = ACTION_LAYER_TOGGLE(5),     // toggle Esc overlay\n    [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc)\n    [4] = ACTION_LAYER_MOMENTARY(7),  // to Layout selector\n    [5] = ACTION_DEFAULT_LAYER_SET(0),  // set qwerty layout\n    [6] = ACTION_DEFAULT_LAYER_SET(1),  // set colemak layout\n    [7] = ACTION_DEFAULT_LAYER_SET(2),  // set dvorak layout\n    [8] = ACTION_DEFAULT_LAYER_SET(3),  // set workman layout\n};\n\n#ifdef KEYMAP_IN_EEPROM_ENABLE\nuint16_t keys_count(void) {\n    return sizeof(keymaps) / sizeof(keymaps[0]) * MATRIX_ROWS * MATRIX_COLS;\n}\n\nuint16_t fn_actions_count(void) {\n    return sizeof(fn_actions) / sizeof(fn_actions[0]);\n}\n#endif"
  },
  {
    "path": "golangdev/Dockerfile",
    "content": "FROM ubuntu:20.04\n\nENV GOPATH=\"/go\" PATH=\"/go/bin:/usr/local/go/bin:$PATH:/usr/local/node/bin/\" TZ=Asia/Shanghai\nRUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone &&\\\napt-get update &&\\\napt-get install -y --no-install-recommends telnet dnsutils mercurial build-essential curl git m4 texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev zip unzip locales xfonts-utils fontconfig ctags cmake libc6-dev pkg-config libelf1 wget iputils-ping software-properties-common ninja-build gettext libtool libtool-bin autotools-dev automake sudo python3-pip python3-setuptools ssh-client supervisor nginx tmux screen openssh-server ack-grep python3-dev &&\\\nmkdir /go && mkdir /var/run/sshd && chmod 0755 /var/run/sshd &&\\\nwget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz && tar xf node-v14.15.4-linux-x64.tar.xz && mv node-v14.15.4-linux-x64 /usr/local/node && rm node-v14.15.4-linux-x64.tar.xz && \\\nwget https://github.com/krallin/tini/releases/download/v0.19.0/tini-amd64 -O /bin/tini && chmod +x /bin/tini &&\\\nwget https://github.com/neovim/neovim/archive/v0.4.4.tar.gz && tar xf v0.4.4.tar.gz && rm v0.4.4.tar.gz && cd neovim-0.4.4 && mkdir .deps && cd .deps && cmake ../third-party/ && make -j8 && cd .. && mkdir build && cd build && cmake .. && make -j8 && make install && cd / && rm -rf /neovim-0.4.4/ &&\\\ncurl -fsSL \"https://dl.google.com/go/go1.15.8.linux-amd64.tar.gz\" -o golang.tar.gz \\\n        && echo \"d3379c32a90fdf9382166f8f48034c459a8cc433730bc9476d39d9082c94583b golang.tar.gz\" | sha256sum -c - \\\n        && tar -C /usr/local -xzf golang.tar.gz \\\n        && rm golang.tar.gz &&\\\ncurl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim &&\\\ncurl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.vimrc -o ~/.vimrc &&\\\ncurl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.bashrc -o ~/.bashrc &&\\\nmkdir -p ~/.config && mkdir -p /root/.vim/ &&\\\nln -s /root/.vim /root/.config/nvim &&\\\nln -s /root/.vimrc /root/.vim/init.vim &&\\\ncurl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/coc-settings.json -o /root/.config/nvim/coc-settings.json &&\\\nmkdir -p ~/.vim/colors/ &&\\\nnpm install --global yarn &&\\\nnpm install -g neovim &&\\\npip3 install neovim --upgrade && nvim -i NONE -c PlugInstall! -c quitall &&\\\nnvim +GoInstallBinaries +qall &&\\\necho \"en_US.UTF-8 UTF-8\" > /etc/locale.gen &&\\\nlocale-gen \"en_US.UTF-8\"&& mkdir ~/.fonts/ &&\\\ncd ~/.fonts/ &&\\\ngit clone https://github.com/eugeii/consolas-powerline-vim.git &&\\\ncd consolas-powerline-vim/ &&\\\ncp *.ttf .. &&\\\ncd .. &&\\\nrm -rf consolas-powerline-vim/ &&\\\nmkfontscale &&\\\nmkfontdir &&\\\nfc-cache -vf\n\nENTRYPOINT [\"/bin/tini\", \"--\"]\nCMD [\"/usr/bin/sleep\", \"200d\"]\n"
  },
  {
    "path": "mesos/docker-systemd/docker.service",
    "content": "Description=Docker Application Container Engine\nDocumentation=https://docs.docker.com\nAfter=network.target docker.socket\nRequires=docker.socket\n\n[Service]\nType=notify\nEnvironmentFile=/run/flannel/subnet.env\n# the default is not to use systemd for cgroups because the delegate issues still\n# exists and systemd currently does not support the cgroup feature set required\n# for containers run by docker\nExecStart=/usr/bin/docker daemon --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} \nMountFlags=slave\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nTimeoutStartSec=0\n# set delegate yes so that systemd does not reset the cgroups of docker containers\nDelegate=yes\n\n[Install]\nWantedBy=multi-user.target\n"
  },
  {
    "path": "mesos/docker-systemd/system-docker.service",
    "content": "[Unit]\nDescription=Docker Application Container Engine\nDocumentation=https://docs.docker.com\nAfter=network.target system-docker.socket\nRequires=system-docker.socket\n\n[Service]\nType=notify\n# the default is not to use systemd for cgroups because the delegate issues still\n# exists and systemd currently does not support the cgroup feature set required\n# for containers run by docker\nExecStart=/usr/bin/docker daemon  --exec-root=/var/run/system-docker -H unix:///var/run/system-docker.sock -p /var/run/system-docker.pid -g /var/lib/system-docker/\nMountFlags=slave\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nTimeoutStartSec=0\n# set delegate yes so that systemd does not reset the cgroups of docker containers\nDelegate=yes\n\n[Install]\nWantedBy=multi-user.target\n"
  },
  {
    "path": "mesos/docker-systemd/system-docker.socket",
    "content": "[Unit]\nDescription=Docker Socket for the API\nPartOf=system-docker.service\n\n[Socket]\nListenStream=/var/run/system-docker.sock\nSocketMode=0660\nSocketUser=root\nSocketGroup=docker\n\n[Install]\nWantedBy=sockets.target\n"
  },
  {
    "path": "mesos/master.sh",
    "content": "set -e\nset -x\ndocker run --rm -v /opt/:/data/ afafaf.newb.xyz/zookeeper:3.3.6\ndocker run --rm -v /opt/:/data/ afafaf.newb.xyz/etcd:2.3.7\ndocker run --rm -v /opt/:/data/ afafaf.newb.xyz/mesos:0.28.2\ndocker run --rm -v /opt/:/data/ afafaf.newb.xyz/marathon:1.1.1\ndocker run --rm -v /opt/:/data/ afafaf.newb.xyz/jdk:8u91\n\necho \"Now instal\"\n\nmkdir -p /opt/etcd-2.3.7\nmv /opt/etcd /opt/etcd-2.3.7\nmv /opt/etcdctl /opt/etcd-2.3.7\ncd /opt\ntar xf jdk-8u91-linux-x64.tar.gz\ntar xf marathon-1.1.1.tgz\ntar xf mesos-0.28.2.tar.gz\ntar xf zookeeper-3.3.6.tar.gz\nrm jdk-8u91-linux-x64.tar.gz marathon-1.1.1.tgz mesos-0.28.2.tar.gz zookeeper-3.3.6.tar.gz\n"
  },
  {
    "path": "mesos/mesos-flannel-slave.sh",
    "content": "# Config\nREG=docker.elenet.me/jianying.li\n##REG=index.alauda.cn/philo\n##REG=afafaf.newb.xyz\nHostIP=192.168.56.101\n#HostIP=192.168.81.110\nIFACE=eth0\n\nZKID=1\nZKIPS=$HostIP\nETCDNAME=etcd0\nETCDCLUSTER='etcd0=http://$HostIP:2380'\n\n# systemd:\n\nwget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/docker.service -O /usr/lib/systemd/system/docker.service\nwget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.service -O /usr/lib/systemd/system/system-docker.service\nwget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.socket -O /usr/lib/systemd/system/system-docker.socket\n\n# start system-docker\nsystemctl daemon-reload\nsystemctl restart system-docker\n\n \n# deploy flannel:\n\ndocker -H unix:///var/run/system-docker.sock pull $REG/flannel:0.5.5\ndocker -H unix:///var/run/system-docker.sock tag $REG/flannel:0.5.5 flannel:0.5.5\n\n#runflannel:\n\ndocker -H unix:///var/run/system-docker.sock run --name flannel -it -d -v /run/flannel/:/run/flannel/ --net=host --privileged flannel:0.5.5 /opt/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=\"http://$HostIP:4001,http://$HostIP:2379\"\n\n# run user-docker\nsystemctl restart docker\n\n# run mesos-slave\n\ndocker -H unix:///var/run/system-docker.sock run -d \\\n-e MESOS_HOSTNAME=$HostIP \\\n-e MESOS_IP=$HostIP \\\n-e MESOS_MASTER=zk://$HostIP:2181,$HostIP:2181/mesos \\\n-v /sys/fs/cgroup:/sys/fs/cgroup \\\n-v /root/:/root/ \\\n-v /var/run/docker.sock:/var/run/docker.sock \\\n--name mesos-slave --net host --privileged --restart always \\\n$REG/mesos-slave:0.28.1-centos-7\n\n"
  },
  {
    "path": "mesos/mesos-flannel.sh",
    "content": "# Config\nREG=docker.elenet.me/jianying.li\n##REG=index.alauda.cn/philo\n##REG=afafaf.newb.xyz\nHostIP=192.168.56.101\n#HostIP=192.168.81.110\nIFACE=eth0\n\nZKID=1\nZKIPS=$HostIP\nETCDNAME=etcd0\nETCDCLUSTER='etcd0=http://$HostIP:2380'\n\n# systemd:\n\nwget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/docker.service -O /usr/lib/systemd/system/docker.service\nwget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.service -O /usr/lib/systemd/system/system-docker.service\nwget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.socket -O /usr/lib/systemd/system/system-docker.socket\n\n# start system-docker\nsystemctl daemon-reload\nsystemctl restart system-docker\n\n# get-etcd:\ndocker -H unix:///var/run/system-docker.sock pull  $REG/etcd:2.3.7\ndocker -H unix:///var/run/system-docker.sock tag $REG/etcd:2.3.7 etcd:2.3.7\n\n\n#system-docker-etcd:\n\n\ndocker -H unix:///var/run/system-docker.sock run -it --net=host --privileged -d --name etcd etcd:2.3.7\\\n /etcd -name etcd0 \\\n -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \\\n -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \\\n -initial-advertise-peer-urls http://${HostIP}:2380 \\\n -listen-peer-urls http://0.0.0.0:2380 \\\n -initial-cluster-token etcd-cluster-1 \\\n -initial-cluster etcd0=http://${HostIP}:2380 \\\n -initial-cluster-state new\n \n# deploy flannel:\n\ndocker -H unix:///var/run/system-docker.sock pull $REG/flannel:0.5.5\ndocker -H unix:///var/run/system-docker.sock tag $REG/flannel:0.5.5 flannel:0.5.5\n\n# Add flannel subnet:\ndocker -H unix:///var/run/system-docker.sock exec -it etcd /etcdctl set /coreos.com/network/config '{ \"Network\": \"10.1.0.0/16\" }'\n\n#docker -H unix:///var/run/system-docker.sock run -it --rm --net=host  etcd:2.3.7 /etcdctl set /coreos.com/network/config '{ \"Network\": \"10.1.0.0/16\" }'\n\n#curl -L -X PUT http://127.0.0.1:2379/v2/keys/coreos.com/network/config -d value='{ \"Network\": \"10.1.0.0/16\" }'\n\n#runflannel:\n\ndocker -H unix:///var/run/system-docker.sock run --name flannel -it -d -v /run/flannel/:/run/flannel/ --net=host --privileged flannel:0.5.5 /opt/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=\"http://$HostIP:4001,http://$HostIP:2379\"\n\n\n#run zk\ndocker -H unix:///var/run/system-docker.sock run -d -it \\\n-e MYID=$ZKID \\\n-e SERVERS=$ZKIPS \\\n-v /var/lib/zookeeper:/root/zookeeperbackup \\\n--name=zookeeper --net=host --privileged --restart=always $REG/zookeeper:3.4.7-centos-7\n\n# run Mesos\n\ndocker -H unix:///var/run/system-docker.sock run -d \\\n-e MESOS_HOSTNAME=$HostIP \\\n-e MESOS_IP=$HostIP \\\n-e MESOS_QUORUM=1 \\\n-e MESOS_ZK=zk://$HostIP:2181,$HostIP:2181/mesos \\\n--name mesos-master --net host  --privileged --restart always $REG/mesos-master:0.28.1-centos-7\n\n#run marathon\n\ndocker -H unix:///var/run/system-docker.sock run -d \\\n-e MARATHON_HOSTNAME=$HostIP \\\n-e MARATHON_HTTPS_ADDRESS=$HostIP \\\n-e MARATHON_HTTP_ADDRESS=$HostIP \\\n-e MARATHON_MASTER=zk://$HostIP:2181,$HostIP:2181/mesos \\\n-e MARATHON_ZK=zk://$HostIP:2181,$HostIP:2181/mesos \\\n--name marathon --net host --privileged --restart always $REG/marathon:1.1.1-centos-7\n\n# run user-docker\nsystemctl restart docker\n\n# run mesos-slave\n\ndocker -H unix:///var/run/system-docker.sock run -d \\\n-e MESOS_HOSTNAME=$HostIP \\\n-e MESOS_IP=$HostIP \\\n-e MESOS_MASTER=zk://$HostIP:2181,$HostIP:2181/mesos \\\n-v /sys/fs/cgroup:/sys/fs/cgroup \\\n-v /root/:/root/ \\\n-v /var/run/docker.sock:/var/run/docker.sock \\\n--name mesos-slave --net host --privileged --restart always \\\n$REG/mesos-slave:0.28.1-centos-7\n\n# run in single docker\n\n#docker -H unix:///var/run/system-docker.sock run -d \\\n#-v /sys/fs/cgroup:/sys/fs/cgroup \\\n#-v /var/run/docker.sock:/var/run/docker.sock \\\n#--name marathon --net host --privileged --restart always \\\n#$REG/mesos-single-docker:1\n\ncat > /root/dns.cfg <<EOF\n{\n  \"zk\": \"zk://$HostIP:2181/mesos\",\n  \"masters\": [\"$HostIP:5050\"],\n  \"refreshSeconds\": 60,\n  \"ttl\": 5,\n  \"domain\": \"mesos\",\n  \"port\": 53,\n  \"resolvers\": [\"223.5.5.5\"],\n  \"timeout\": 5,\n  \"httpon\": true,\n  \"dnson\": true,\n  \"httpport\": 8123,\n  \"externalon\": true,\n  \"SOAMname\": \"ns1.mesos\",\n  \"SOARname\": \"root.ns1.mesos\",\n  \"SOARefresh\": 60,\n  \"SOARetry\":   600,\n  \"SOAExpire\":  86400,\n  \"SOAMinttl\": 60,\n  \"IPSources\": [\"netinfo\", \"mesos\", \"host\"]\n}\nEOF\n\nwget http://git.oschina.net/lijianying10/mesos-dep/raw/master/mesos-dns-v0.5.2-linux-amd64 -O /root/mesos-dns\n\ncat > /root/dns.json << EOF\n{\n    \"cmd\": \"/root/mesos-dns -config=/root/dns.cfg\",\n    \"cpus\": 0.3,\n    \"mem\": 128,\n    \"id\": \"mesos-dns\",\n    \"instances\": 1,\n    \"constraints\": [[\"hostname\", \"CLUSTER\", \"$HostIP\"]]\n}\nEOF\n\nchmod +x mesos-dns\ncurl -i -H 'Content-Type: application/json' -d @dns.json http://$HostIP:8080/v2/apps\n\n"
  },
  {
    "path": "mesos/mesos-systemd/multinode/gen.py",
    "content": "import sys\nMasterHost= '192.168.122.86,192.168.122.87,192.168.122.88'\nSlaveHosts= '192.168.122.89'.split(',')\nMasterHosts=MasterHost.split(',')\n\nQUORUM=0\n\nif len(MasterHosts)==1:\n    QUORUM=1\n\nif len(MasterHosts)==3:\n    QUORUM=2\n\nif len(MasterHosts)==5:\n    QUORUM=3\n\nif QUORUM==0:\n    print \"Humber master host error\"\n    sys.exit(1)\n\nidx=0\nETCDCLUSTER=''\nETCDENDPOINTS=''\nZKP=''\nfor HostIP in MasterHosts:\n   ETCDCLUSTER+=\"etcd\"+str(idx)+\"=http://\"+HostIP+\":2380,\"\n   ETCDENDPOINTS+=\"http://\"+HostIP+\":4001,http://\"+HostIP+\":2379,\"\n   ZKP+=HostIP+\":2181,\"\n   idx+=1\nETCDCLUSTER = ETCDCLUSTER[0:-1]\nETCDENDPOINTS= ETCDENDPOINTS[0:-1]\nZKP= \"zk://\"+ZKP[0:-1]+\"/mesos\"\n\nSlaveScript=open(\"slave.sh\",'r').read()\nMasterScript=open(\"master.sh\",'r').read()\n\ndef Gen(ip,script,ix,ismaster):\n    RES=\"\"\n    if ismaster:\n        RES+=\"NUMHOSTS='\"+str(len(MasterHosts)) + \"'\\n\"\n        RES+=\"ZKID='\"+str(ix+1)+\"'\\n\"\n        RES+=\"ETCDNAME='etcd\"+str(ix)+\"'\\n\"\n    RES+=\"ZKP='\"+ZKP+\"'\\n\"\n    RES+=\"HostIP='\"+ip+\"'\\n\"\n    RES+=\"QUORUM='\"+str(QUORUM)+\"'\\n\"\n    RES+=\"ZKIPS='\" + MasterHost + \"'\\n\"\n    RES+=\"ETCDCLUSTER='\"+ETCDCLUSTER+\"'\\n\"\n    RES+=\"ETCDENDPOINTS='\"+ETCDENDPOINTS+\"'\\n\"\n    RES+=\"set -x\\n\"\n    RES+=\"set -e\\n\"\n    open('out/'+ip+'.sh','w').write(RES+script)\n\nidxm=0\nfor HostIP in MasterHosts:\n    Gen(HostIP,MasterScript,idxm,1)\n    idxm+=1\n\nidx=0\nfor HostIP in SlaveHosts:\n    Gen(HostIP,SlaveScript,idx,0)\n    idx+=1\n\n\nRES=\"\"\nfor HostIP in MasterHosts+SlaveHosts:\n    RES+=\"scp \"+HostIP+\".sh root@\"+HostIP+\":install.sh\\n\"\nopen('out/scp.sh','w').write(RES)\n\n"
  },
  {
    "path": "mesos/mesos-systemd/multinode/master.sh",
    "content": "\nset -x\nset -e\n\nIFACE='ens3'\n\necho $ZKID > /var/lib/zookeeper/myid\nif [ -n \"$ZKIPS\" ]; then\n    printf '%s' \"$ZKIPS\" | awk 'BEGIN { RS = \",\" }; { printf \"server.%i=%s:2888:3888\\n\", NR, $0 }' >> /etc/zookeeper/conf/zoo.cfg\nfi\nsudo systemctl restart zookeeper\nsleep 3\necho $ZKP >/etc/mesos/zk\necho $QUORUM > /etc/mesos-master/quorum\necho $HostIP > /etc/mesos-master/hostname\necho $HostIP > /etc/mesos-master/ip\necho $HostIP > /etc/mesos-slave/hostname\necho $HostIP > /etc/mesos-slave/ip\necho 'mesos,docker' > /etc/mesos-slave/containerizers\nsystemctl restart mesos-master\nsystemctl restart mesos-slave\n\ncat > /etc/systemd/system/etcd.service << EOF\n[Unit]\nDescription=etcd key-value store\nDocumentation=https://github.com/coreos/etcd\n\n[Service]\nExecStart=/bin/etcd -name ${ETCDNAME} \\\n -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \\\n -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \\\n -initial-advertise-peer-urls http://${HostIP}:2380 \\\n -listen-peer-urls http://0.0.0.0:2380 \\\n -initial-cluster-token etcd-cluster-1 \\\n -initial-cluster $ETCDCLUSTER \\\n -initial-cluster-state new\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\nsystemctl daemon-reload\nsystemctl restart etcd\nsleep 5\netcdctl set /coreos.com/network/config '{ \"Network\": \"10.1.0.0/16\" }'\n\n\nsystemctl restart marathon\n\ncat > /etc/systemd/system/flannel.service << EOF\n[Unit]\nDescription=flannel vlan network\nAfter=network.target docker.socket\n\n[Service]\nExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\nsystemctl daemon-reload\nsystemctl restart flannel\n\ncat > /usr/lib/systemd/system/docker.service << EOF\nDescription=Docker Application Container Engine\nDocumentation=https://docs.docker.com\nAfter=network.target docker.socket\nRequires=docker.socket\n\n[Service]\nType=notify\nEnvironmentFile=/run/flannel/subnet.env\n# the default is not to use systemd for cgroups because the delegate issues still\n# exists and systemd currently does not support the cgroup feature set required\n# for containers run by docker\nExecStart=/usr/bin/docker daemon --storage-driver=overlay --log-driver=journald --bip=\\${FLANNEL_SUBNET} --mtu=\\${FLANNEL_MTU}\nMountFlags=slave\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nTimeoutStartSec=0\n# set delegate yes so that systemd does not reset the cgroups of docker containers\nDelegate=yes\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\nsleep 2\nsystemctl daemon-reload\nsystemctl restart docker"
  },
  {
    "path": "mesos/mesos-systemd/multinode/slave.sh",
    "content": "\nset -x\nset -e\n\nIFACE='ens3'\n\necho $ZKP >/etc/mesos/zk\necho $HostIP > /etc/mesos-slave/hostname\necho $HostIP > /etc/mesos-slave/ip\necho 'mesos,docker' > /etc/mesos-slave/containerizers\nsystemctl restart mesos-slave\n\ncat > /etc/systemd/system/flannel.service << EOF\n[Unit]\nDescription=flannel vlan network\nAfter=network.target docker.socket\n\n[Service]\nExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\nsystemctl daemon-reload\nsystemctl restart flannel\nsleep 2\n\ncat > /usr/lib/systemd/system/docker.service << EOF\nDescription=Docker Application Container Engine\nDocumentation=https://docs.docker.com\nAfter=network.target docker.socket\nRequires=docker.socket\n\n[Service]\nType=notify\nEnvironmentFile=/run/flannel/subnet.env\n# the default is not to use systemd for cgroups because the delegate issues still\n# exists and systemd currently does not support the cgroup feature set required\n# for containers run by docker\nExecStart=/usr/bin/docker daemon --storage-driver=overlay --log-driver=journald --bip=\\${FLANNEL_SUBNET} --mtu=\\${FLANNEL_MTU}\nMountFlags=slave\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nTimeoutStartSec=0\n# set delegate yes so that systemd does not reset the cgroups of docker containers\nDelegate=yes\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\nsleep 2\nsystemctl daemon-reload\nsystemctl restart docker"
  },
  {
    "path": "mesos/mesos-systemd/singlenode/localinstall.sh",
    "content": "\n\n# CONFIG\n\nHostIP='172.16.30.65'\nIFACE='em1'\n\nZKID='1'\nETCDNAME='etcd0'\nHostIP='172.16.30.65'\nZKIPS='172.16.30.65'\nETCDCLUSTER='etcd0=http://172.16.30.65:2380'\nETCDENDPOINTS='http://172.16.30.65:4001,http://172.16.30.65:2379'\nZKP='zk://172.16.30.65:2181/mesos'\nQUORUM=1\n\nset -x\nset -e\n\n\necho $HostIP > /etc/mesos-slave/hostname\necho $HostIP > /etc/mesos-master/hostname\necho 'mesos,docker' > /etc/mesos-slave/containerizers\necho $ZKID > /var/lib/zookeeper/myid\nsudo systemctl start zookeeper\necho $ZKP >/etc/mesos/zk\necho $QUORUM > /etc/mesos-master/quorum\nsystemctl start mesos-master\nsystemctl start mesos-slave\n\ncat > /etc/systemd/system/etcd.service << EOF\n[Unit]\nDescription=etcd key-value store\nDocumentation=https://github.com/coreos/etcd\n\n[Service]\nExecStart=/bin/etcd -name etcd0 \\\n -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \\\n -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \\\n -initial-advertise-peer-urls http://${HostIP}:2380 \\\n -listen-peer-urls http://0.0.0.0:2380 \\\n -initial-cluster-token etcd-cluster-1 \\\n -initial-cluster $ETCDCLUSTER \\\n -initial-cluster-state new\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\nsystemctl daemon-reload\nsystemctl start etcd\nsleep 5\netcdctl set /coreos.com/network/config '{ \"Network\": \"10.1.0.0/16\" }'\n\n\n\ncat > /etc/systemd/system/flannel.service << EOF\n[Unit]\nDescription=flannel vlan network\nAfter=network.target docker.socket\n\n[Service]\nExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\nsystemctl daemon-reload\nsystemctl start flannel\n\ncat > /usr/lib/systemd/system/docker.service << EOF\nDescription=Docker Application Container Engine\nDocumentation=https://docs.docker.com\nAfter=network.target docker.socket\nRequires=docker.socket\n\n[Service]\nType=notify\nEnvironmentFile=/run/flannel/subnet.env\n# the default is not to use systemd for cgroups because the delegate issues still\n# exists and systemd currently does not support the cgroup feature set required\n# for containers run by docker\nExecStart=/usr/bin/docker daemon --log-driver=journald --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}\nMountFlags=slave\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nTimeoutStartSec=0\n# set delegate yes so that systemd does not reset the cgroups of docker containers\nDelegate=yes\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\n\nsystemctl daemon-reload\nsystemctl restart docker\n"
  },
  {
    "path": "mesos/mesos-systemd/singlenode/netinstall.sh",
    "content": "set -x\nset -e\n\n#config\n\nHostIP='192.168.56.112'\nIFACE='enp0s3'\n\n# package install \n\nsudo rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm\nsudo yum -y install mesos marathon mesosphere-zookeeper\n\n## ETCD install\ncurl -L  https://github.com/coreos/etcd/releases/download/v2.3.7/etcd-v2.3.7-darwin-amd64.zip -o etcd-v2.3.7-darwin-amd64.zip\nunzip etcd-v2.3.7-darwin-amd64.zip\ncd etcd-v2.3.7-darwin-amd64\nmv etcd /bin/\nmv etcdctl /bin/\n\ncd ..\nwget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz\ntar xf flannel-0.5.5-linux-amd64.tar.gz\ncd flannel-0.5.5-linux-amd64\nmv flanneld /bin/ \n\necho $HostIP > /etc/mesos-slave/hostname\necho 'mesos,docker' > /etc/mesos-slave/containerizers\necho 1 > /var/lib/zookeeper/myid\nsudo systemctl start zookeeper\necho zk://$HostIP:2181/mesos >/etc/mesos/zk\necho 1 > /etc/mesos-master/quorum\nsystemctl start mesos-master\nsystemctl start mesos-slave\n\ncat > /etc/systemd/system/etcd.service << EOF\n[Unit]\nDescription=etcd key-value store\nDocumentation=https://github.com/coreos/etcd\n\n[Service]\nExecStart=/bin/etcd -name etcd0 \\\n -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \\\n -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \\\n -initial-advertise-peer-urls http://${HostIP}:2380 \\\n -listen-peer-urls http://0.0.0.0:2380 \\\n -initial-cluster-token etcd-cluster-1 \\\n -initial-cluster etcd0=http://${HostIP}:2380 \\\n -initial-cluster-state new\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\nsystemctl daemon-reload\nsystemctl start etcd\nsleep 2\netcdctl set /coreos.com/network/config '{ \"Network\": \"10.1.0.0/16\" }'\n\ncat > /etc/systemd/system/flannel.service << EOF\n[Unit]\nDescription=flannel vlan network\nAfter=network.target docker.socket\n\n[Service]\nExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS\nRestart=always\nRestartSec=10s\nLimitNOFILE=40000\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\nsystemctl daemon-reload\nsystemctl start flannel\n\ncat > /usr/lib/systemd/system/docker.service << EOF\nDescription=Docker Application Container Engine\nDocumentation=https://docs.docker.com\nAfter=network.target docker.socket\nRequires=docker.socket\n\n[Service]\nType=notify\nEnvironmentFile=/run/flannel/subnet.env\n# the default is not to use systemd for cgroups because the delegate issues still\n# exists and systemd currently does not support the cgroup feature set required\n# for containers run by docker\nExecStart=/usr/bin/docker daemon --log-driver=journald --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}\nMountFlags=slave\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nTimeoutStartSec=0\n# set delegate yes so that systemd does not reset the cgroups of docker containers\nDelegate=yes\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\n\nsystemctl daemon-reload\nsystemctl restart docker\n"
  },
  {
    "path": "mesos/repush.sh",
    "content": "#!/bin/bash\necho \"docker tag $2/$1 $3/$1\"\necho \"docker push $3/$1\"\n\n\n"
  },
  {
    "path": "mesos/slave.sh",
    "content": ""
  },
  {
    "path": "note/779MGO设计调优.md",
    "content": "#MGO 设计调优。\n> 真的是那句话，不是你不行，知识你不了解。而已。\n\n\n1. 肯定是不能加两个索引了。\n  1. 索引的代价实在是太大了，不但占用内存还还大量损失查询性能，真心不能忍耐啊。\n1. 设计的时候DBRef肯定是需要的，直接用有意义的ID查询肯定是性能最好的。\n1. 控制key的数量肯定是必须的。比如说用户数量就是key的数量这就够了。别整那么多。collection不然损失性能。\n  1. 如果真的想控制数量的话，那么数据关联肯定是十分必须的。\n1. 流量控制肯定也是必须的。\n    1. 流量的来源在于Find直接返回所有查询结果。卧槽。直接吃掉所有流量。\n    1. 直接用FindOne 避免查询多个结果回来肯定是必须的\n    1. FindOne就够了吗？我确实遇到这个坑了。在[博文](http://www.cnblogs.com/crazylights/archive/2013/05/08/3068098.html)中已经提到关于这种情况适用filter的方法了。直接参考就OK了。\n    ```js\n    FindOne({_id:xxx},{Items:{\"$slice\":[3,1]}})\n    ```\n    > 虽然适用了这种方法来设计，使得查询结果减少流量降低了。但是依然存在问题\n      1. 一定更要注意，不能直接dbref因为slice不好加啊。可以用过顺序id加分页，或者算时间。233 很实用，典型的用空间换时间。\n\n    ```js\n    db.user.findOne({user_id:2}, {\"book.price\":1,\"book.price.\":{$slice:[-10,4]}})\n\n    解释下其含义哈：\n    1. user集合\n    2. user.book.price 表示用户拥有书籍， 书籍呢有很多价格列表\n    3. 注意红色字体  \"book.price.\" 末尾必须有个点\n    4. 查找价格列表里的4条数据， 从右边第10个位置开始便宜\n    ```\n    但是也有不同的语法说明，到时候试试吧。\n\n1. update 要做精细修改。\n\n\n  ```go\n  比如Update({_id:xxx},{$set:{\"Items.3.Item.Health\":38}});//修改第三把武器的健康值\n  ```\n\n  > 至于一次修改和批量修改，MongoDB默认100ms flush一次(2.x),只要两次修改比较贴近,被一起保存的可能性很高。\n\n  上面这些是引用别人说的话,还是全要直接精细修改，然后数据库会自动一起修改的，性能不成问题\n\n1. 最后几点注意\n  1. 控制io（系统吞吐）这事整个系统的核心，也是系统性能的核心。\n  2. 控制内存（不要让index膨胀）\n    1. 控制index个数，\n    1. 控制key的个数\n  3. CPU控制不要让js做大量的计算，能迁移到客户端的计算就迁移到客户端，让他们算完之后在通讯\n  4. 第一个性能不够的估计是硬盘，可以通过RAID或者企业级SSD搞定整个问题。\n\n## Golang MGO驱动使用\n\n[ref1](http://golangtc.com/t/53d0d2e1320b525265000052)\n\n[ref2](http://jimmykuu.sinaapp.com/static/books/mgo_guide/index.html)\n"
  },
  {
    "path": "note/788MongoDB存储过程性能调优.md",
    "content": "#MongoDB 存储过程的使用以及性能调优方案。\nAUTH：PHILO\n> [在2012年的一个blog里面看到了一个关于性能问题](在2012年的一个blog里面看到了一个关于性能问题)\n\n虽然MongoDB给了我们很多驱动可以用，但是都没有mongodb的shell来的方便。\n就比如说最近需要做的DBRef嵌套类型的数据要做CRUD如果使用mog驱动的话会非常麻烦。\n因此我们这里来做个试验，首先给`test`数据库添加初始化数据添加Server-side script \n以及测试\n\n## mongo 添加数据\n\n```js\ndb.people.insert({\"_id\":\"test\",\"phone\",\"233333\"}) //输入原始数据\n\n\n// 数据库修改函数\n// update之后返回修改后的数据。\npeopleUpdate=function(id,phone){\ndb.people.update({\n\"_id\":id,\n},{$set:{\nphone:phone\n}});\nreturn db.people.findOne({\"_id\":id});\n}\n\n//添加数据库函数\n db.system.js.insert({\"_id\":\"peopleUpdatePhone\",\"value\": peopleUpdate });\n // 修改数据库函数\n db.system.js.update({\"_id\":\"peopleUpdatePhone\"},{$set:{\"value\": peopleUpdate }})\n //执行数据库函数\n db.eval(\"peopleUpdatePhone('test','23333test')\")\n\n```\n测试之后在mongo shell里面是ok的。\n\n## golang 调用函数并返回\n```\npackage main\n\nimport (\n        \"labix.org/v2/mgo\"\n        \"labix.org/v2/mgo/bson\"\n       )\n\nfunc main() {\n\tsession, err := mgo.Dial(\"\")\n\tif err != nil {\n\t    panic(err)\n\t}\n\tdefer session.Close()\n\n\tsession.SetMode(mgo.Monotonic, true)\n\n\tdb := session.DB(\"test\")\n\tvar result interface{}\n\tdb.Run(bson.M{\"eval\": \"peopleUpdatePhone('test','new test');\"},&result)\n}\n```\n\n如上面代码所示，就可以执行修改了。\n但是要注意[锁的问题](http://francs3.blog.163.com/blog/static/405767272012112811268129/)：eval会产生写入锁。结果你懂得。\n\n## 性能测试。\n> 我直接测试了调用main函数10000次\n\n1. eval \n\t1. 在测试中eval表现不佳，因为会锁库。\n\t1. 顺便吐槽一下mongodb的锁那真的是相当的大。\n\t1. 最后测试我每等到结果，甚至有几次修改一次要用4秒钟。（因为之前的锁没打开。）\n1. runCommand\n\t1. 会快很多很多\n\t1. 2w次update同一个key的操作大概是3s。\n\n\n\n##总结\n1. 我用的是MBP MGX82\n2. 虽然性能不是很好（跟MYSql还是差很多）但是以及够支持一般的应用了\n3. 不是MongoDB不暴力，仅仅是因为我不懂而已。\n\n\n"
  },
  {
    "path": "note/790heredocJS多行字符串.md",
    "content": "\nfunction heredoc(fn) {\n    return fn.toString().split('\\n').slice(1,-1).join('\\n') + '\\n'\n    }\n\nvar tmpl = heredoc(function(){/*\n!!! 5\nhtml\ninclude header\nbody\n//if IE 6\n.alert.alert-error\ncenter 对不起，我们不支持IE6，请升级你的浏览器\na(href=\"http://windows.microsoft.com/zh-CN/internet-explorer/download-ie\") | IE8官方下载\na(href=\"https://www.google.com/intl/en/chrome/browser/\") | Chrome下载\ninclude head\n.container\n.row-fluid\n.span8\nblock main\ninclude pagerbar\n.span4\ninclude sidebar\ninclude footer\ninclude script\n*/});\n"
  },
  {
    "path": "note/AboutRancherOS.md",
    "content": "0.4.1 以及之前一个版本的RC可以通过这样添加不安全REPO：\n\nros c set rancher.docker.args '[daemon, --log-opt, max-size=25m, --log-opt, max-file=2, -s, overlay, -G,docker, -H, 'unix:///var/run/docker.sock', --userland-proxy=false,--insecure-registry,c.reg:5000]'\n\n重启不会丢失。\n\n"
  },
  {
    "path": "note/AndroidAutoBuild.md",
    "content": "http://developer.android.com/intl/pt-br/tools/building/building-cmdline.html#ReleaseMode\nhttp://developer.android.com/intl/pt-br/tools/publishing/app-signing.html\nhttp://developer.android.com/intl/pt-br/tools/help/proguard.html\n"
  },
  {
    "path": "note/DatatablesNote.md",
    "content": "# datatables (datatables.net)\ndt 是非常常见的数据控件但是好用的开源的可以商业化的真心不多\n但是这个就是一个非常灵活的demo。\n\n参考：\n[javascript as data source](http://www.datatables.net/examples/data_sources/js_array.html)\n\n## 数据刷新：\n\n### initial情况参考：\n```javascript\n$('#example').dataTable( {\n    \"destroy\": true,//如果需要重新加载的时候请加上这个\n    \"data\": dataSet,\n    \"columns\": [\n        { \"title\": \"Engine\" },\n        { \"title\": \"Browser\" },\n        { \"title\": \"Platform\" },\n        { \"title\": \"Version\", \"class\": \"center\" },\n        { \"title\": \"Grade\", \"class\": \"center\" }\n    ]\n} );   \n```\n加上上面注释的数据主要是因为DT不可以reinitial\n\n# 2014年12月1日补充\n\n还总是有那么几列不听话什么的。\n宽度上很不好看\n```javascript\n$('#example').dataTable( {\n\"autoWidth\": true,\n\"data\": dataset,\n\"columns\": [\n{ \"title\": \"index\",\"width\": \"5%\"  },\n{ \"title\": \"guid\" },\n{ \"title\": \"file\" },\n{ \"title\": \"Version\"},\n{ \"title\": \"author\" }\n]\n} );   \n```\n\n"
  },
  {
    "path": "note/GitMultRemote.md",
    "content": "# git添加多个repo\n\n```bash\ngit remote add coding pathTogit.git\ngit push coding\n```\n第一句是添加远端镜像， coding是名字，后面的parameter是地址\n别忘了在push的时候加上参数就行了\n"
  },
  {
    "path": "note/GolangWebManual.md",
    "content": "#Golang web 代码COPY手册\n我们从来都不开发代码，我们只是代码的搬运工。\n**-- 阿飞**\n\n希望大家都变卡卡西。 **--啊贱**\n\n大家copy愉快，文档只做参考。不行的地方别忘了给我发issue。\n\n## golang web 开发check list\n### 本章节提供golang web开发的知识面参考。\n1. 基础知识全部略过，包含内容：\n  1. 流程控制\n  2. OOP\n  3. 基础语法知识\n1. 路由器\n  1. 手动路由\n  2. 自动路由\n2. 页面加载\n  1. 纯静态页面（推荐，前后分离，工程好做。）\n  2. 模板页面（gtpl模板，浪费cpu以及调试困难等因素还是算了）\n1. 表示层脚本(JS)\n  1. require.js\n  2. jquery\n1. 业务层\n  1. Get\n  3. post\n  3. 资源获取url\n1. 持久层\n  1. 框架\n  1. Mysql\n  1. MongoDB\n1. 数据库参考\n  1. 设计参考\n1. 持久层驱动下载\n1. 单元测试注意事项\n\n## 路由器\n> 路由器是整个网站对外的灵魂，如果路由做的不好URL会非常恶心。\n所以这部分设计成第一个要说的内容。\n\n> 路由分两种一种是手动路由为了通过tul调度固定的功能，另外一点就是资源\n的获取，通过url的分析来模仿静态页的方式来获取资源（类似get）\n\n> 自动路由，主要使用OOP的COMMAND模式来实现。所有功能使用post，\n统一入口，方便权限管理，安全管理，跨域管理。\n\n### 手动路由\n\n```go\npackage main\n\nimport (\n  \"log\"\n  \"net/http\"\n  )\n\n  func main() {\n    RouterBinding() // 路由绑定函数\n    err := http.ListenAndServe(\":9090\", nil) //设置监听的端口\n    if err != nil {\n      log.Fatal(\"ListenAndServe: \", err)\n    }\n  }\n\n```\n在httpserver运行之前先绑定路由\n\n#### 手动路由的绑定\n1. 静态文件\n```go\nhttp.Handle(\"/pages/\", http.StripPrefix(\"/pages/\", http.FileServer(http.Dir(\"./pages\"))))\n```\n1. 固定函数与资源获取\n\n  他们都是一样的\n  ```go\n  http.HandleFunc(\"/images/\", fileUpload.DownloadPictureAction)\n  ```\n\n\n### 自动路由\n> TODO:坑\n\n\n## 页面加载\n1. 纯静态页（HTML）\n> 直接交给路由就行了。自动就访问那个文件夹了。其他功能再补充吧。\n主要好处前后分离，能上CDN就是通讯次数多了。不过通过优化改善之类的都还ok啦。\n\n2. 模板页面的加载\n\n```go\ncommonPage, err := template.ParseFiles(\"pages/common/head.gtpl\", //加载模板\n\"pages/common/navbar.gtpl\", \"pages/common/tail.gtpl\")\nif err != nil {\n  panic(err.Error())\n}\nnavArgs := map[string]string{\"Home\": \"home\", \"User\": \"yupengfei\"}//复杂的参数开始往里塞\n\nknowledgePage, err := template.ParseFiles(\"pages/knowledge/knowledge.gtpl\")\nknowledgeArgs := map[string]interface{}{\"Head\": \"This is a test title\",\n\"Author\": \"kun.wang\", \"PublishDatetime\": \"2014-09-14\",\n\"Content\": template.HTML(\"<p style=\\\"text-indent: 2em\\\">为什么要用语义呢？</p>\")}//不是不好，只是做字符串分析会影响工程效率\ncommonPage.ExecuteTemplate(w, \"header\", nil)// render 开始\ncommonPage.ExecuteTemplate(w, \"navbar\", navArgs)\nknowledgePage.ExecuteTemplate(w, \"knowledge\", knowledgeArgs)\ncommonPage.ExecuteTemplate(w, \"tail\", nil)\n```\n\n仅提供关键代码。\n其他的自行打开脑洞吧。\n > 1. 其他的都还挺好，就是页面渲染用服务器是不是有点太奢侈了。\n > 2. 然后就是一堆参数来回塞入，进去\n > 3. 最后终于开始渲染了\n > 4. 总结：虽然减少的通讯次数，但是没办法上CDN蛋疼，另外，模板的mapping蛋疼。\n\n## 表示层脚本\n\n表示层脚本做的比较困难也不是很好学。\n但是一旦搞定了，代码的复用性会有非常可观的提升。\n>就普通情况而言JS开发效率是非常高的灵活度高，并且使用的是客户端的cpu\n性能好，免费资源多，学习的人也多，好招聘。（济南除外）\n\n\n### require.js\n\n1. 加载\n\n  ```js\n  <script data-main=\"/reqmod/login_main\" language=\"JavaScript\" defer async=\"true\" src=\"js/r.js\"></script>\n  ```\n  整个网页之留这么一个加载脚本的入口（每个页面最好只有一个js文件）\n\n  【好处】\n\n  1. js是延迟加载。不会出现网页卡死的情况\n  2. 最大化使用缓存。（HTTP 304）\n\n  【坏处】\n\n  1. 学习比较难\n  2. 网站更新始终有缓存没更新的浏览器。造成错误（所以有些情况客户自己就知道多刷新几次了，已经成用户习惯了）\n\n  【参数解释】\n\n  1. `data-main` 业务逻辑入口，载入当前字符串.js这个文件\n  2. `language` 不解释\n  3. `defer async` 字面意思\n  4. `src` r.js就是require.js的意思。代码到处都能搞到。\n\n2. 页面Business\n  1. 加载依赖文件\n  ```js\n  require.baseUrl = \"/\"\n  require.config({\n    baseUrl: require.baseUrl,\n    paths: {\n      \"jquery\": \"js/jquery-1.10.2.min\",\n      \"domready\" : \"reqmod/domReady\",\n      \"pm\" : \"reqmod/pmodal\",\n      \"cookie\":\"reqmod/cookie\",\n      \"user\":\"reqmod/user\",\n      \"bootstrap\": \"reqmod/bootstrap.min\",\n      \"nav\":\"reqmod/nav\"\n    },\n    shim: {\n      'bootstrap': {\n        deps: ['jquery']\n      }\n    }\n  });\n  ```\n  直接copy全搞定。\n\n  1. 执行页面business\n    > 执行里面做的最多的就是dom跟事件绑定而已。加载各种js库直接引用。\n    代码美观，开发效率，执行效率都是非常棒的。\n\n    ```js\n    require(['nav','domready', 'jquery', 'user','pm'], function (nav,doc, $, user,pm){\n      //binding event is ok！\n      doc(function () {\n        pm.load();//加载各种插件HTML模板之类的都ok\n        $('#btn_login')[0].onclick = function(){user.login();}//button 事件绑定\n\n      });\n    });\n    ```\n    1. `require` 这个函数里面第一个参数是上面声明的里面的key\n    1. `function` 中的参数跟左边的对应，如果没有操作符，或者知识依赖于`$`（JQuery） 那么只在第一个参数中声明就ok了。**注意顺序是对应的**\n    1. `doc` dom ready API 是等待dom加载完成之后执行的函数\n\n    【总结】\n\n    1. 有了这个库之后页面只需要一个js文件，再也不乱了。\n    1. 有了这个库之后页面事件绑定只需要id（或者说DOM能找到就ok）\n\n  1. 页面MODEL\n    ```js\n    define(['jquery','reqmod/cookie','user','bootstrap'],function ($,cookie,user){\n      var nav_load = function () {\n        $.get('/nav.html', function(result){\n          var newNode = document.createElement(\"div\");\n          newNode.innerHTML = result;\n          $('body')[0].insertBefore(newNode,$('body')[0].firstChild);\n          //document.body.innerHTML = result + document.body.innerHTML;\n          $('#btn_login')[0].onclick = function(){user.login();}\n          $('#btn_reg')[0].onclick = function(){window.location='/register.html'}\n          $.post('/login_check',{},function(data){\n            if(data==0){\n              Form_login.style.display=\"\"\n            }\n            else{\n              form_userInfo.style.display=\"\"\n            }\n          })\n        });\n\n      }\n\n      return {\n        load :nav_load\n      };\n    });\n    ```\n    这个人require很像，但是函数叫`define`\n    参数全是一样的\n    但是\n\n    【注意】\n    > 这里引用的路径（单引号里面的依赖）一定要跟页面主business文件中有path配置，不然就要写网站绝对路径。T.T吃了不止一次亏。\n\n    【函数的定义】\n\n    ```js\n    var nav_load = function () {}\n    ```\n    只接受var匿名函数定义。\n\n    【最后的return】\n\n    注意其实就是个微型路由。假定你又很多调试方案，来回测试的时候使用不同的业务直接修改路由就行了。很方便。\n\n### JQuery\n >  TODO: 坑\n\n## 业务层\n  1. GET分析\n   > TODO: 坑\n\n  1. Post分析\n    ```go\n    func XXXAction(w http.ResponseWriter, r *http.Request) {\n      r.parseForm() //有这个才能获取参数\n      r.Form[\"Email\"] // 获取Email 参数（String）\n    }\n    ```\n    然后做业务就行了。\n\n  1. 资源入口函数资源require分析（url分析固定写法）\n    ```go\n    func Foo(w http.ResponseWriter, r *http.Request) {\n      queryFile := strings.Split(r.URL.Path, \"/\")\n      queryResource := queryFile[len(queryFile)-1] // 解析文件\n    }\n    ```\n    完成字符串分割之后，按照需求来获取资源就可以了。\n## 持久层\n  ### 框架\n  > 没映射不开心，\n\n    1. 我得兼容所有的系统，所以要设定专门的object做数据库的CRUD\n    2. OBJ GET SET ok~\n\n  ### Mysql\n  > 在观察代码的时候有个方便的方法就是去掉异常处理的部分 if err XXXXX那些都去掉。就好看多了\n\n  > 怎么说呢golang的err处理来回嵌套一次一次的，卧槽，让你迷糊都。之后会在utility\n  里面直接处理，会方便很多。\n\n  > 其实不管什么语言的Mysql驱动都是从PRO\\*C来的，所以会PRO\\*\\C之后，\n  啥都好说了就\n\n    1. Insert Delete Update\n    ```go\n    stmt, err := mysqlUtility.DBConn.Prepare(\"INSERT INTO credit (credit_code, user_code, credit_rank) VALUES (?, ?, ?)\")\n    if err != nil {\n      pillarsLog.PillarsLogger.Print(err.Error())\n      return false, err\n    }\n    defer stmt.Close()\n    _, err = stmt.Exec(credit.CreditCode, credit.UserCode, credit.CreditRank)\n    if err \t!= nil {\n      return false, err\n      } else {\n        return true, err\n      }\n    ```\n    这个SQL fetch做的还是算比较人道的。\n    1. Query\n    ```go\n    stmt, err := mysqlUtility.DBConn.Prepare(`SELECT commodity_code, commodity_name, description, picture,\n      price, storage, count, status,\n      insert_datetime, update_datetime FROM commodity WHERE commodity_code = ?`)\n      if err != nil {\n        return nil, err\n      }\n      defer stmt.Close()\n      result, err := stmt.Query(commodityCode)\n      if err != nil {\n        return nil, err\n      }\n      defer result.Close()\n      var commodity utility.Commodity\n      if result.Next() {\n        err = result.Scan(&(commodity.CommodityCode), &(commodity.CommodityName), &(commodity.Description),\n        &(commodity.Picture), &(commodity.Price), &(commodity.Storage), &(commodity.Count), &(commodity.Status),\n        &(commodity.InsertDatetime), &(commodity.UpdateDatetime))\n        if err != nil {\n          pillarsLog.PillarsLogger.Print(err.Error())\n          return nil, err\n        }\n      }\n      return &commodity, err\n    ```\n  ### Mongodb\n  ```go\n  err := \tmongoUtility.PictureCollection.Find(bson.M{\"picturecode\":*pictureCode}).One(&picture)\n  ```\n  啥都不说了。都再MongoDB参考书上呢，API都一样。（BSON显式声明除外。）\n\n##数据库设计参考\n  1. mysql数据库不能用id链接\n  1. mongodb index 代价很大，来个有意义的hash `_id` 比啥都强。\n\n## 单元测试注意事项\n  1. 测试命令 go test -v （没有其他参数了！！！） `如果不带-v只显示结果，不显示调试过程，主要是调试开发的时候用`\n  1. 文件格式 xxx_test.go 但是建议改成 xxx_test0.go 或者喜欢改成别的也可以。\n    1. 由于测试先行的原则，在开发的时候一次测试也就一两个函数。\n    1. 这样相当于把其他测试注释掉\n  1. 测试的时候的配置文件要放到测试目录下面。别忘了。\n  1. 还有系统要生成的（只做追加的打开找不到文件就启动不了。）持久化数据。要touch（新建）好\n  1. 心态，错误太多一个一个来，要有个好心态。\n  1. 运气，妈妈问你为啥跪着看LiteIDE你就说。。。。。。\n\n## 来吧LOG\n  1. 注意在调试中Log的不可缺失性。\n  ```Golang\n  //ignore import\n  pillarsLog.PillarsLogger.Println()\n  // 包括log时间，报错代码位置，以及报错内容，祝调试好运！\n  ```\n"
  },
  {
    "path": "note/HTMLinsertBefore.md",
    "content": "# HTML 头部插入的坑。\n\n1. 最近的项目都是需要navbar的。全部需要动态什么的。\n结果头部插入的时候就出现了很多坑。\n\n\n如果直接+html页面很多编辑器的页面就不干了。\n\n\n结果这能这样\n```HTML\n            var newNode = document.createElement(\"div\");\n            newNode.innerHTML = result;\n            $('body')[0].insertBefore(newNode,$('body')[0].firstChild);\n```\n虽然不完美（多加了一个DIV）\n但是还算能正常解决问题。\n"
  },
  {
    "path": "note/HomeBrew.md",
    "content": "之前也是用MacPorts这个不是很好用啊。\n首先是修改repo的问题没有搞定。\n然后是安装死慢的问题。卧槽简直了。\n后来还是发现HomeBrew比较靠谱。\n因为他的安装位置固定，然后基本上都是编译好了的直接给你用了。非常方便！\n官网 brew.sh 最下面有一个ruby 的脚本自动下载的哦。直接就安装了。\n全部同意就ok了。只不过是修改几个文件夹的权限，需要密码。\n之后brew install redis就能装软件了\n\n卸载MacPorts：\n```bash\nsudo port -f uninstall installed\nsudo rm -rf \\\n/opt/local \\\n/Applications/DarwinPorts \\\n/Applications/MacPorts \\\n/Library/LaunchDaemons/org.macports.* \\\n/Library/Receipts/DarwinPorts*.pkg \\\n/Library/Receipts/MacPorts*.pkg \\\n/Library/StartupItems/DarwinPortsStartup \\\n/Library/Tcl/darwinports1.0 \\\n/Library/Tcl/macports1.0 \\\n~/.macports\n```\n"
  },
  {
    "path": "note/MacAchieveEncoding.md",
    "content": "#mac 下始终有windows文件乱码问题\n解决方案：\n使用The Unarchiver For Mac \n[下载](http://www.onlinedown.net/softdown/175693_2.htm)\n"
  },
  {
    "path": "note/MetaRemap.md",
    "content": "ubuntu Super键改Meta键：\n\n```\nxmodmap -e 'keycode 133 = Meta_L'\n```\n"
  },
  {
    "path": "note/MyPHPEnv.md",
    "content": "# 我的php环境配置\n\n## 系统： mac 10.10.1\n首先先通过coding.net 安装homebrew\n\ngithub在中国几乎用不了？ 还是我网速慢，反正是clone不回来的。\n直接放到coding.net上克隆回来之后。\n下载代码回到本地\n之后移动相同的目录结构到/usr/local中就ok了。\n主要移动两个。一个是/bin/brew另外一个是Library这个文件夹就ok了。\n\n### 小bug解决。基本上权限问题，要不就是缺少目录什么的，都好解决。\n\n## 安装服务：\n```bash\nbrew install redis \nbrew install memcache\nbrew install automake\npecl install redis\npecl install memcache\n```\n当然pecl 是php自动更新模块的程序，非常方便，我就专注于开发，我不想专注于环境。2333\n## 服务启动：\nredis-server /usr/local/etc/redis.conf\n\n"
  },
  {
    "path": "note/PHPExtensionWindows.md",
    "content": "#安装php拓展在windows上\n\n## 首先windows编译很麻烦所以只能找几个靠谱的地方找我的拓展\n1. [memcache](http://pecl.php.net/package/memcache)\n3. [igbinary](http://windows.php.net/downloads/pecl/releases/igbinary/1.1.1/)\n2. [redis](http://windows.php.net/downloads/pecl/snaps/redis/)\n\n\n下载之后还是老规矩放在该放的位置上然后修改php.ini就ok了。\n"
  },
  {
    "path": "note/PythonEscape.md",
    "content": "#Python 的escape处理\nescape这种转义是非常常见的，js里面函数是escape()\npython下是：在urllib里面叫\nquote/unquote\n"
  },
  {
    "path": "note/RHELAddLocalRepo.md",
    "content": "RHEL添加本地源（光盘）\n```bash\ncat /etc/yum.repos.d/rhel-local.repo\n\n[rhel6.3-local]\nname=RHEL 6.3 local repository\nbaseurl=file:///opt/yum/rhel6.3/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release\nenabled=1\n```\n"
  },
  {
    "path": "note/Readme.md",
    "content": "# 我的笔记\n在这个笔记文件中我主要记录一下我自己平时的操作笔记之类的。\n也是会很欢乐的一个文件夹，当然也希望大家能给我提意见之类的。\n如果你熟悉我，很容易就找到我的Email的。\n\n当然我的笔记也是有搜索的，只要有Linux或者Mac的控制台就可以了。\n``` bash\ngrep -Fnr 'search key word' * \n```\n搜索就这么简单！\n\n然后这里也会成为我的Linux/Unix的学习笔记。\n"
  },
  {
    "path": "note/SetMysqlPassword.md",
    "content": "#修改mysql 密码\n\n## 方法1 （我常用的方法）\n比较简单\n```\nset password=password('1');\nflush privileges;\n```\n登陆的时候别忘了。 mysql -u root\n带上用户名\n此方法常用于新装不带密码的数据库。\n"
  },
  {
    "path": "note/SetPasswordMongo.md",
    "content": "#mongodb 密码设定\n```bash\nuse admin\ndb.addUser('root','123456')\ndb.system.users.find()\n#如果出现了你输入的账号就证明成功了\n```\n"
  },
  {
    "path": "note/SublimeLicense.md",
    "content": "----- BEGIN LICENSE -----\nAndrew Weber\nSingle User License\nEA7E-855605\n813A03DD 5E4AD9E6 6C0EEB94 BC99798F\n942194A6 02396E98 E62C9979 4BB979FE\n91424C9D A45400BF F6747D88 2FB88078\n90F5CC94 1CDC92DC 8457107A F151657B\n1D22E383 A997F016 42397640 33F41CFC\nE1D0AE85 A0BBD039 0E9C8D55 E1B89D5D\n5CDB7036 E56DE1C0 EFCC0840 650CD3A6\nB98FC99C 8FAC73EE D2B95564 DF450523\n------ END LICENSE ------\n"
  },
  {
    "path": "note/ToolBoxConfig.md",
    "content": "#ToolBox刚开始的使用注意事项\n\n刚开始Run起来之后不要着急使用。\n需要`docker-machine config default`\n配置一下你的环境\n然后需要设定env\n`docker-machine env default`\n然后会输出很多需要设定的环境变量。\n执行命令就行了\n"
  },
  {
    "path": "note/VirtualboxTray.md",
    "content": "VirtualBox tray\n\nVirtual box 变成托盘图标。非常方便\n\nVBoxHeadlessTray43Setup.exe\n\n这是文件名\n\nhttp://www.92wiki.com/hdwiki/index.php?doc-view-393\n\n官方网站\n\nhttp://www.toptensoftware.com/VBoxHeadlessTray/\n"
  },
  {
    "path": "note/WgetJdk.md",
    "content": "服务器上下载JDK最快的方法:\n[link](http://stackoverflow.com/questions/10268583/downloading-java-jdk-on-linux-via-wget-is-shown-license-page-instead)\n\n wget --no-check-certificate --no-cookies --header \"Cookie: oraclelicense=accept-securebackup-cookie\"  http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz\n\n在网页上点完同意之后就能看见最新版的下载链接了。非常方便。\n"
  },
  {
    "path": "note/aboutGIT.md",
    "content": "记住密码：\ngit config --global credential.helper store\n"
  },
  {
    "path": "note/baiduyunLocateError.md",
    "content": "主要是没设置的问题\n\n## 我的系统是：ubuntu 14.04\n```bash\nexport LC_ALL=en_US.UTF-8\nexport LANG=en_US.UTF-8\nexport LANGUAGE=en_US.UTF-8\n```\n"
  },
  {
    "path": "note/bootstrap弹出插件.md",
    "content": "# 很多时候需要数据弹窗。\n[bootstrap弹窗插件地址](http://getbootstrap.com/javascript/#modals)\n"
  },
  {
    "path": "note/brewMysqlInstallLog.md",
    "content": "```bash\nA \"/etc/my.cnf\" from another install may interfere with a Homebrew-built\nserver starting up correctly.\n\nTo connect:\n    mysql -uroot\n\nTo have launchd start mysql at login:\n    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents\nThen to load mysql now:\n    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist\nOr, if you don't want/need launchctl, you can just run:\n    mysql.server start\n==> /usr/local/Cellar/mysql/5.6.22/bin/mysql_install_db --verbose --user=developer --basedir=/us\n==> Summary\n🍺  /usr/local/Cellar/mysql/5.6.22: 9666 files, 339M\n```\n"
  },
  {
    "path": "note/butterFly_termial.md",
    "content": "http://paradoxxxzero.github.io/2014/02/28/butterfly.html \nhttp://paradoxxxzero.github.io/2014/03/21/butterfly-with-ssl-auth.html\n\n安装的时候注意ssl的devel libffi-dev就行了。\n瞅瞅错误基本上就能编译过去了。\n\n```sh\n$ sudo butterfly.server.py --generate-certs --host=\"192.168.0.1\" # Generate the root certificate for running on local network\n$ sudo butterfly.server.py --generate-user-pkcs=foo              # Generate PKCS#12 auth file for user foo\n```\ncd /etc/butterfly/ssl/\nbutterfly_ca.crt这个是要 import到浏览器里面的\nfoo.p12这个哈。也是要import到浏览器里面的\n之后访问host的那个ip地址就能用https 安全使用控制台了。\n\n```sh\n$ sudo butterfly.server.py --host=\"192.168.0.1\" # Run the server\n```\n这是运行啦~~~\n"
  },
  {
    "path": "note/dockerChangeStoragePosition.md",
    "content": "# docker 修改默认aufs存储位置\n\n在配置文件：\n/etc/defaults/docker 中\n添加\n\n```\nDOCKER_OPTS=\"-g /data/docker\"\n```\n\n其实就是docker daemon 中有个-g 用起来就好了\n"
  },
  {
    "path": "note/dockerPostgresql.md",
    "content": "RUN:\ndocker run -d -v /tmp:/tmp/dshare -v /tmp/pgdata:/psqldata -e PGDATA=/psqldata --name psqldb -e POSTGRES_PASSWORD=postgres postgres \n\ndocker run -d -v /tmp:/tmp/dshare -v /tmp/pgdata:/psqldata -e PGDATA=/psqldata --name psqldb -e POSTGRES_PASSWORD=postgres postgres  \n"
  },
  {
    "path": "note/dockerReg.md",
    "content": "RUN:\ndocker run -dt -p 80:5000 --name reg -v /Users/Li-jianying/dockerREG/:/tmp/registry registry\n\n"
  },
  {
    "path": "note/dockerRegV2.md",
    "content": "准备Cert\n\n```\nmkdir -p certs && openssl req \\\n  -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \\\n  -x509 -days 365 -out certs/domain.crt \n```\n\n启动Image\n\n```\ndocker run -it -d --name reg -p 5000:5000 --restart=always -v /opt/certs:/certs \\\n  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \\\n  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \\\n  -v /opt/reg:/var/lib/registry registry:2.2.1\n```\n"
  },
  {
    "path": "note/etcd.md",
    "content": "# ETCD 的学的使用与学习过程\n\n##  基础方面文档：\n[admin-guide](https://coreos.com/etcd/docs/latest/admin_guide.html)\n这个是一定要看的重点看etcdctl命令怎么用的，熟悉里面的也没啥用，还不如直接试用一下命令就行了\n\n[cluster-guide](https://coreos.com/etcd/docs/latest/clustering.html)\n\n前面启动三个节点的命令比较重要，其实关键在initial 里面先配置几个节点试试就行。\n\n## 动态节点添加\n\n```\n1. 在etcdctl 里面 etcdctl member add [name] [peerurl]\n2. 在添加的目标节点里面启动就行了。就这么简单。。。。输入完上面的命令之后会有提示环境变量怎么搞的，非常方便，\n当然我推荐的方式是直接使用命令行，毕竟涉及的东西越少越好，命令可以参考之前的cluster guide里面启动命令。\n需要修改的地方就是initial cluster参数，添加新的服务器就行，和最后的New改成exist就行了。\n```\n\n## 安全问题\n\n\n## 如何使用\n\n\n## 备份与灾难恢复。\n"
  },
  {
    "path": "note/golangProjectOnIdea.md",
    "content": "#配置golangproject在IDEA中\n1. 不要在意打开IDE时候的goroot 跟gopath错误\n2. 选择sdk File->Project structure 然后选择golang 的sdk\n3. 选择要运行的文件，在config里面有一个parameter 输入GOPATH \n    1. 把项目放到src目录下面。GOPATH是src的父目录（约定而已）\n"
  },
  {
    "path": "note/golangUnitTest.md",
    "content": "#golang中单元测试的坑。\n1. go test 后面是不加目录跟参数的\n如果需要的话可以加个go test -v\n2. 配置文件全部都需要copy位置。不然就会报错。\n因为没有办法更换run root\n"
  },
  {
    "path": "note/golang中的坑.md",
    "content": "#golang中的坑\n\n## 类型转换。\n1. golang中的类型转换全都是通过类似C语言这种的atoi itoa这种的\n1. session中的坑的解决办法\n```go\nstrconv.Itoa(int(userSession.Get(\"loginTime\").(int)))+\"<br/>\"\n```\n(import strconv)\n"
  },
  {
    "path": "note/iterm2的坑.md",
    "content": ""
  },
  {
    "path": "note/jsDownloadFile.md",
    "content": "#js生成文件并下载\n\n有些时候需要浏览器自己根据情况生成文件并且下载。\n直接调用下面方法就ok了。\n\n```js\nfunction downloadFile(fileName, content){\n    var aLink = document.createElement('a');\n    var blob = new Blob([content]);\n    var evt = document.createEvent(\"HTMLEvents\");\n    evt.initEvent(\"click\", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈\n    aLink.download = fileName;\n    aLink.href = URL.createObjectURL(blob);\n    aLink.dispatchEvent(evt);\n}\n```\n"
  },
  {
    "path": "note/json.toolunicodeescape.md",
    "content": "json tool 虽然好用，但是他有一个遇到中文就变unicode的问题\n然后我们修改一下源代码\n```\n 34         json.dump(obj, outfile, sort_keys=True,\n 35                   indent=4, separators=(',', ': '), ensure_ascii=False)\n```\n最后的ensure_ascii是关键\n"
  },
  {
    "path": "note/killall.md",
    "content": "apt-get install psmisc\n"
  },
  {
    "path": "note/liteIDE改装.md",
    "content": "#LiteIDE改装\n最近一直都在使用liteIDE做开发。公司的项目很紧张，但是在这个周末。还是偷偷的对liteIDE小不爽的地方进行了一些小的改造。\n\n## IDE上的run按钮就是运行当前的go文件。\n1. 首先我们项目运行只是运行统一或者少数的入口点每次点开固定的文档才能run真的是够了。\n另外一个主要的原因在于liteIDE没有project管理支持。\n2. 而且这个IDE貌似没有出很长时间一般的RCP平台都是有插件开发的。但是这没有插件开发（貌似是有。而且是用python写的）\n但是，没找到文档（截至 2015年1月19日）也是醉了。\n\n## 关键入口点还是我在google Code上找到的一个文档。\n在配置中的LiteBuild里面有一个gosrc.xml 这个配置文件能修改buttion调用的命令。\n好吧就只能用这个做自己脚本的入口了。\n```xml\n<action id=\"Run\" img=\"blue/run.png\" key=\"Ctrl+Alt+R;Ctrl+F5\" cmd=\"sh\" args=\"/Users/Li-jianying/run.sh\" output=\"true\" codec=\"utf-8\" readline=\"true\"/>\n```\n`cmd` `args` 就是它了。\n## 展开无限的联想\n首先用这个做了一个系统的统一入口点，我的主要问题在于项目选择上面。\n因为我项目不多，同时也就做两个项目所以直接就在脚本里面写好项目选择\n就可以了。类似这样。\n``` sh\necho \"项目选择器\"\nsh ~/h/run.sh\n```\n直接去run项目里面的run.sh\n就ok了。\n## 坑\n```sh\necho 'XXX项目启动脚本'\nexport C=$(cd `dirname $0`; pwd)\ncd $C\ngo run httpServer.go router.go pageload.go\n```\n别忘了cd进去你的项目文件目录。不然，我也不知道是那里。反正找不到脚本。\n然后你就run不了了。\n\n# Golang坑爹的Test\n1. \n"
  },
  {
    "path": "note/mongodbUse_id.md",
    "content": "使用有意义的 _id  在golang里面需要这样：\ntype test struct {\n    Id int `json:\"id\" bson:\"_id\"`\n}\n"
  },
  {
    "path": "note/puttySmallKeyboard.md",
    "content": "打开putty的配置 勾选Terminal-->Features下面的“Disable application keypad mode”即可。\n"
  },
  {
    "path": "note/puttyblue.md",
    "content": "打开putty，选择保存的一个session，或者已经打开某一个session。如果是打开了某一个session，则右键单击putty上边的边框，选择 \"change settings...” ，然后选择\"windows“ ---> \"colours\"  ---> \"select a colour to adjust\" ---> 选择要调整的颜色，我这里选择的是\"ANSI Blue\" ---> \"Modify\"，然后调整自己想要的颜色。\n我这里把原来的0 0 187 改成了85 85 255 （你懂的）\n"
  },
  {
    "path": "note/pythonSimpleHTTPSERVER.md",
    "content": "python -m SimpleHTTPServer \n"
  },
  {
    "path": "note/saveGitPassword.md",
    "content": "git config --global credential.helper store\n"
  },
  {
    "path": "note/ubuntuChangeRepo.sh",
    "content": "sed -i 's/us.archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list\n"
  },
  {
    "path": "note/viEscpaeDelays.md",
    "content": "http://www.johnhawthorn.com/2012/09/vi-escape-delays/\n"
  },
  {
    "path": "note/取消sshPublicKeyKnowHost认证.md",
    "content": "## 因为CoreOS每次启动之后都会更换public key\n\n操作：\nFile：~/.ssh/config\n```\nStrictHostKeyChecking no\nUserKnownHostsFile /dev/null\n```"
  },
  {
    "path": "note/科大lugDNS.md",
    "content": "202.38.93.153，202.141.162.123，202.141.176.93，防污染，支持tcp"
  },
  {
    "path": "prob/LFS journey.md",
    "content": "#LFS编译过程必备辅助手册\n\n## 前言\nLFS（Linux from scratch）是从源代码开始编译Linux操作系统。如果需要深度定制Linux操作系统或者需要\n更加深入学习Linux的学习者可以从这里开始您的旅途。这份意义的深渊不必多说。\n同时也希望您能加入我们一起开始这段旅程[→加入我们←](http://ubtamator.github.io/)\n\n从7月初开始我们团队里面两个人为了更加深入的学习Linux方面的知识。也为了瞻仰LFS大神们的光辉。\n开始了LFS的旅程，因为LFS官方文档写的虽然非常具体，但是多多少少对于一些Linux新手来说造成很多困扰。\n\n因此我们团队做完LFS之后写了这篇**辅助**性质的说明，对新手遇到问题的时候提供帮助。\n### 进行LFS旅程的前提条件\n1. 比较熟悉Linux操作\n1. 有一定Linux开发基础\n1. 在LFS之前有过从源码编译软件的经验。\n1. 有一定的英文基本功，除了看手册之外，有的时候抛出错误的时候应该有google查找并解决错误的能力。\n\n### 文档使用方法：\n1. 首先对本辅助文档完整的浏览一遍，这样有助于理解LFS的整个过程做什么\n1. 然后扫一遍LFS官方文档的目录，这样至少知道好每个章节的目的。\n1. 当你进行到LFS某一步时，遇到问题后可以对应上本辅助手册的具体问题的解决方案\n\n### LFS全过程概括\n1. 对磁盘跟用户的准备\n2. 建立temp系统\n3. 编译LFS系统\n4. 最后调整\n\n### LFS 编译完成的成果\nLFS在编译完成的最后除了Linux基础内核目录结构（bin etc lib proc dev等等这些）还有一个tools这个目录（过程概括中的2），它的存在是为了编译LFS整个系统的。所以在第五章这一部分中,就是利用ubuntu或是centos主机系统的编译环境（称之为HOST）来编译出tools这个目录下的编译环境。\n\n**`提示`**：其实制作LFS所有用到工具链接，就是在ubuntu或centos下编译出一个新的交叉编译器(就是/tools目录下的所有工具)，而这个新的交叉编译器在编译出来后，就不会依赖于现有操作系统编译器和库文件(ubuntu or centos)，此时我们就可以利用这个全新的交叉编译工具(/tools目录下的所有工具)制造属于我们自己的Linux了，利用这新的工具，从源码开始编译出所有我们需要的软件和库，最后编译Linux内核，设置bash脚本，启动脚本，tmpfs文件系统需要的配置文件，整个LFS的过程就结束了。\n\n##A： Linux发行版本的选择\n1. CentOS 6.3 （虚拟机双硬盘）\n2. Ubuntu 14.04 with GCC4.4（64bit） （笔记本电脑+双硬盘+LFS系统构建在SSD硬盘上）\n3. 在以上两种Linux发行版上分别进行编译运行,且最终都取得成功。\n4. 使用LFS官网上LFS7.5的源码进行编译制作\n\n##B：前四章的内容：硬盘分区、用户准备篇\n主机所用操作系统的准备工作: (ubuntu14.04 64位下需要安装的软件)\n> 1.在ubunt下安装bison（ubuntu下默认没有安装）\n``` \nsudo apt-get install bison \n#LFS 手册要求\n``` \n2.不能用gcc4.8，需要换成gcc4.4（ubuntu14.04默认gcc4.8)\n```\n sudo apt-get install gcc-4.4 g++-4.4\n sudo rm `which gcc`\n sudo rm  `which g++`\n sudo ln -sv /usr/bin/gcc-4.4  /usr/bin/gcc\n sudo ln -sv /usr/bin/g++-4.4  /usr/bin/g++\n```\n**这里CentOS没有什么特别要说的。主要因为全部都用默认的，就可以了。各种依赖C6-Media就可以解决**\n3.到LFS官网上下载LFS7.5的所有源码:\n[ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/](ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/)\n\n####1.磁盘分区准备\n1.  plan: 准备一个10到20GB的分区，这一步请谨慎操作\n1.  action: 创建分区(表)并格式化\n`创建分区表请使用fdisk , 如果需要图形界面下的请使用GPartion如果这两种工具都不会请到windows下分区（无需格式化）`\n```\n#格式化分区\nsudo mkfs -v -t ext4  /dev/sdaX #这里的X是填上自己的分区号\n```\nPS:因为现在计算机的内存都比较大，所以可以不需要swap分区。（第一次进行LFS，一个根(/)分区就够了，等以后有经验了，在进行多分区的操作）\n\n####2.用户准备\n\n直接参考手册上的来就行了。\n小建议：`PS1='[\\[\\e[32m\\]#\\##\\[\\e[31m\\]\\u@\\[\\e[36m\\]\\h \\w]\\$\\[\\e[m\\]' PS1修改成这个变量看着能舒服点。` \n\n\n`注意`：每次开机，或是重启后，在进入lfs用户前，都要对 LFS变量进行检查，查看LFS=/mnt/lfs变量是否存在，然后对lfs使用的分区进行挂载\n### `前四章的小结：`\n>1. 这一部分没有什么难点，准备硬盘分区是因为要让LFS作为独立的硬盘来启动。新建分区、格式化分区、准备lfs用户是Linux操作的基础素质。\n**`注意`** ：为了下面的编译过程能更快，可以在输入make命令时在后面加入-j4，使用4个进程进行同时编译，在多核处理器上编译的速度有明显提升\n\n\n---\n####`开始进入编译代码的环境`（每次开机或重启动后需要进行下面步骤进入lfs用户环境）\n>1.  首先导入LFS变量\n```\nexport LFS=/mnt/lfs\n#建议放到/etc/profile下方便一直用\n```\n2.  然后挂载LFS的分区\n```\nsudo mount -v -t ext4 /dev/sdaX $LFS  #X为你的LFS硬盘分区号\n```\n3.  最后就可以切换到lfs用户了\n```\nsu - lfs  #注意中间这个 - 符号是一定要的，代表为lfs用户启动一个login shell \n```\n`补充`：通常我们在开机后，启动的第一个shell称之为login shell,当进入GUI界面后，不需要输入密码启动的shell称之为non-login shell。这两种shell是有区别的。大家都知道shell的运行是需要环境变量的支持的。配置这些环境变量的文件就是配置shell工作环境的文件。两种shell在读取配置文件时有很大的不同，下面是总结它们分别读取哪些配置文件：\n 1.  login shell 启动--->读取/etc/porfile文件--->读取~/.bash_profile文件\n 2. no-login shell 启动--->读取~/.bashrc文件\n 3.   ```exec env -i /bin/bash```命令会开启一个全新的non-login shell。\n \n**`注意`**：每次重新开机或重启后都需要进行下面的步骤，切换到lfs用户，因为对于新手来说，不可能一天就编译完lfs的所有源，可以把以上步骤保存到一个文件中，每次重启系统进行LFS之前，参照以上步骤进入到LFS编译环境。\n\n##C: 第五章的内容：编译得到\\$LFS/tools/目录下面的工具包\n- `第一步`，编译出一个全新的与主机系统无关的工具链接。（这些工具链包含了：compiler(就是我们常用的gcc,g++),assembler(就是把汇编程序变成a.obj文件的工具)，linker(就是把很多*.obj文件和库文件链接成可运行文件a.out的工具)，还有各类库文件(为后面编译其它的软件提供基础设施)，当然还有大量的其它工具）\n- `第二步`，得用第一步编译出来的工具，编译其它的工具（这里可以看出，在制作LFS的过程中，编译的先后顺序是非常生要的，因为有了鸡，才能下蛋）\n- `注意1`：上面两步编译出来的工具都会安装到  \\$LFS/tools目录下面（也就是/mnt/lfs/tools目录下面）。LFS手册中把这个称之为临时的文件系统，就是因为\\$LFS/tools这个目录在第6章结束时就会被删除，因为$LFS/tools已经使用完了，没有利用价值了。\n- `注意 2`：参照LFS手册上的指令进行编译，基本不会遇到错误，因为编译代码的步骤就是老三样：```configure && make && make install```,但是有一点，一定要注意，所有的安装包一打要打补丁，因为LFS手册没有强调打补丁的过程，所以自己如果发现这个源码包有补丁文件，一定要记得打上。\n- `注意 3`：因为需要编译的软件太多，到最后你可能不会愿意自已每个单词都输入到命令行进行编译，所以通常会直接复制LFS手册中的命令。但是复制时，请一定注意先把指令复制到一个空的文件编辑器中，然后检查一下，复制过来的内容是否正确，因为从PDF文件复制到文本中的内容，格式会发生很大的变化。这一点在你尝试的过程中就会发现了。然后在文本编译器或是vim中进行编辑后，在复制到lfs用户的命令行中。\n\n- `注意4`：在编译perl时，按照官方文档打补丁会出现readonly的错误，下面是是正确的操作命令\n```\ncd /mnt/lfs/sources\ntar xvf perl-5.16.2\ncd perl-5.16.2/hints\ncp linux.sh linux.sh.org\ncd ..\npatch -Np1 -i ../perl-5.16.2-libc-1.patch\ncd hints\ndiff linux.sh linux.sh.org   #输出打补丁情况，则为正常打补丁，编译过程参考手册\n```\n- `注意5`：手册上的configure的位置一定刚要注意有三种情况，第一种是在源代码目录之外进行configure，第二种是在源代码目录里面进行configure，第三种（特殊情况）是libstdc++是在gcc源码目录的子目录里面进行configure。所以在执行命令之前一定刚要看好执行命令的前提条件，不妨思考一下LFS的笔者为什么这么写。\n- `温馨提示`： 第一次编译GCC时可能会遇到环境问题，不要气馁，失败是正常的（我失败了10次以上）不过我们可以保证LFS手册上的命令质量是非常高的。经过亲身测试绝对没有错误。\n\n####进入第六章前的准备 \n由于第六章所有的操作都是在root用户下进行的，所以要把第五章编译好的\\$LFS/tools目录改为root用户所有，命令如下：(下面的命令，请用root身份运行)\n```\nexport LFS=/mnt/lfs\nchown -R  root:root $LFS/tools \n```\n\n##D: 开启第六章,构建真正的LFS系统\n从第六章开始我们就正式开始编译LFS系统了，大概几十个模块只要跟着脚本走一般都不会遇到问题。\n只是有几点需要注意。\n\n\n>1.  这个是需要正常运行的操作系统所以所有的patch补丁包一定都要打上。\n1. perl的patch包需要参考网上的一些文章来解决read only 的问题。（GOOGLE问题的第一个链接就是答案）\n1. 最开始的chroot是需要用root权限来实行的。\n1. dev下的设备挂载是要用lfs用户的最高权限来执行mount（也就是说需要给lfs用户添加到sudoers里面）\n1. 有的时候你需要终止你自己的工作。等其他时间继续编译lfs，你需要重新挂载dev目录 和chroot\n1. 在编译内核的时候你需要生成.config文件如果这个文件你自己调整的话始终都非非常费劲的对于内核新手来说最好的方案就是找个发型版本（eg.ubuntu 14.04）复制/boot里面的内核配置文件，不然会出现很多内核驱动不支持的现象。比如说网卡\n1. 在编译完了之后有很多脚本需要你进行执行的。\n      ** 但是一定要注意，脚本的选择比较多。选择合适你的脚本，另外脚本挺长，有的需要翻页。**\n1. /etc/sysconfig/console 这个脚本不需要建立。\n1. 在设定grub的脚本的时候一定要注意你自己bootlfs时候的参数是多少（比如说新建虚拟机之后你几块硬盘几号分区什么的。）\n"
  },
  {
    "path": "prob/LinuxHeaderInstall.md",
    "content": "Linux header 安装\n============================\n\n参考文章\n-----------------------\nhttp://www.2cto.com/os/201308/238749.html\n\n用于解决问题\n-----------------------\n安装VMtool时候 What is the location of the directory of C header files that match your running\nkernel? 提示需要安装Linux kernel header\n\n问题解决方法\n-------------------------\n```shell\nsudo apt-get update\nsudo apt-get install build-essential linux-headers-$(uname -r)\n#CentOS 下  包的名字叫 kernel-headers\n```\n第一行更新软件源\n\n第二行 build-essential 安装编译需要的编译器\n\nlinux-headers-$(uname -r) 自动选择对应内核版本的header包。\n\n"
  },
  {
    "path": "prob/Linux分区.md",
    "content": "# 1.关于Linux的分区\n\n标签（空格分隔）： 未分类\n\n---\n\n## 在Linux中什么是挂载点?\n\n- 挂载点实际上就是linux中的磁盘文件系统的入口目录.\n- 类似于windows中的用来访问不同分区的C:、D:、E:等盘符.\n- 其实windows也支持将一个磁盘分区挂在一个文件夹下面.\n- 只是我们C:、D:这样的盘符操作用惯了，一般没有将分区挂到文件夹。\n\n```\n以上阐述借鉴度娘,以下阐述出于自己总结\n```\n咱们可以吧Linux想象成一辆汽车 : \n发动机就是内核,其余的各种各种围绕着它进行生产和拼装,组成了一辆伟大的四个轮子.\n那么,可以理解为\"组装\"这个动作,就是Linux世界中将你硬盘上的分区去挂载(组装)到某一个目录下.\n\n---\n\n**言归正传安装Linux中如何分区:**\n咱们小白一开始愣头愣脑的下载好某个Linux的发行版后:\n假设您正确的制作了启动U盘,\\\n假设您正确的引导了U盘,\\\n假设您也正常的进行到磁盘分区的界面了(当然我建议您第一次安装的时候使用中文界面,会少跳很多坑.)\n\n当您来到分区页面的时候,我想不管是啥发行版,绝大多数的分区页面大致都是下图(1-1)这样的:\n\n![CentOS 6的第一步分区引导][1]\n\n\n  图:1-1\n  \n咱们来翻译一下:\n```\nUse All Space                 使用全部的空间\nReplace Existing Linux System 替换现有的Linux系统\nShrink Current System         缩减当前的系统空间\nUse Free Space                使用未使用的空间\nCreate Custom Layout          自定义分区\n```\n一共5个,1~4不用看,咱们直接选5\"Create Custom Layout\"然后直接下一步,之后你会看到图1-2.\n\n![此处输入图片的描述][2]\n\n\n  图1-2\n  \n上图的环境是一个虚拟机,玩过虚拟机的朋友大概都知道,一般都分了一个sda,那如果碰到要给服务器装,那么你做了几个VD这里就会显示几个sda*.\n要注意的是,我们是用U盘安装的那么U盘同样会被识别进来,那么很可能出现的情况就是,sda是U盘,sdb是硬盘,大家要注意一下.\n\n接下来就是重要的手动分区啦再这之前,先给对Linux分区毫无概念的兄弟一个基础资料[(请点击我)][3]:\n\n\n接下来点击Create出现新的窗口(图1-3):\n![创建标准分区][4]\n图1-4\n```\nStandard Partition   标准的分区模式\nRAID Partition       磁盘阵列分区，这里是软件磁盘阵列\nLVM Physical Volume  LVM物理卷，这是LVM的分区模式\n```\n选择第一个创建一个标准的分区.\n![设置挂载点][5]\n上图(图1-5)就是小白们不太明白的地方了吧,回过去想想挂载点的概念你应该会明白的.\n##假设今天有同事过生日,而你负责分蛋糕,但是呢每个同事的胃口各有大小,有的人甚至都不能多吃奶油,这样你就要考虑如何分配这块大蛋糕(硬盘)给每个肠胃条件不同的同事(例如:\"同事boot\",\"同事/\",\"同事swap\",\"同事home\")进行合理分配.\n\n这样解释的话,应该明白了吧,下面说说常规分法:\n\n 1. 虚拟机下:/boot=200MB swap=你物理机内存的两倍 /=剩余所有\n 2. 服务器环境:/boot=400MB swap=如果是好服务器其实可以不分的..  /=剩余所有\n\n以上这些都不是绝对的,比如说我有时候安装系统,我就直接/+swap....不要喷我.\n\n\n\n\n##**2.使用 GParted 为你的Linux分区**\n在使用Linux的过程中,随着软件的安装和数据的膨胀,有时候会发现划分给Linux分区需要进行调整.\n如果直接使用分区命令fdisk调整分区大小,往往意味着分区数据的丢失.\nLVM技术可以避免分区数据丢失，但在使用中有许多限制.\n本文介绍一种使用gparted进行Linux分区调整的方法，它比较适合个人计算机中的硬盘分区调整，同时也可避免数据丢失.\n\n如果是用虚拟机要引导ISO请参考以下文章:http://jingyan.baidu.com/article/f0e83a25f1fc9922e591012e.html\n\n###**虚拟机下对GParted_ISO的引导以及分区流程**\n首先,咱们通过livecd的方式引导GParted:\n通过vm的设置挂载GParted的ISO来启动已经安装好的linux后启动界面如下图2-1:\n![GParted引导][6]\n通过方向键定位到 GParted Live(Default settings)回车进入.\n之后一系列黑屏+字母(不要管它).\n接着会出现如下界面(图2-2):\n![一路回车][7]\n有人要看不懂了(对,一开始我也看不懂,小弟我1级英语都没过!),但是你要的只是回车只要回车就可以,一路回车最终你会看到(图2-3):\n![主界面][8]\n守得云开见月明~~~类似于DG的东西呈现在你眼前,这下熟悉了吧~\n上图中,大家看到因为是虚拟机硬盘,我除了分了boot和swap之外其余容量全都给了根,为了便于做教程我特地割了6~7个G出来作为\"unallocated\"(啥?问我怎么割的?看图2-4):\n![分割][9]\n懂了吧,接下来是给这个割出来的空间创建新分区(图2-5):\n![合并][10]\n做完之后新分区就出来了(图2-6):\n![最后][11]\n最后出现了sda4新的分区,当然要注意的是这个sda4在linux下是没有作用的,需要去挂载这个分区,我们在之后会提到\"在linux中如何挂载硬盘分区\"挂载的就是这个sda4\n\n\n##**3.在linux中如何挂载硬盘分区**\n\n\n  [1]: http://hiphotos.baidu.com/exp/pic/item/966aca0735fae6cd25c6f8c80eb30f2443a70fed.jpg\n  [2]: http://hiphotos.baidu.com/exp/pic/item/9e7ce6dcd100baa1f24c14124610b912c9fc2ef3.jpg\n  [3]: http://www.cnblogs.com/kzloser/articles/2673771.html\n  [4]: http://hiphotos.baidu.com/exp/pic/item/0db52fadcbef7609a44bca362fdda3cc7dd99e9c.jpg\n  [5]: http://hiphotos.baidu.com/exp/pic/item/b8405490f603738d28da5f8bb21bb051f919ec4c.jpg\n  [6]: http://img1.ph.126.net/02bOyioWYQq_C5Tx7B_5kw==/6608261695516619317.jpg\n  [7]: http://img2.ph.126.net/aaHsj9QW-Xb7_78ZZMP02Q==/1337569089429442568.jpg\n  [8]: http://img0.ph.126.net/0kk_EoYTW_hI0pzYmntjvw==/2669790154200977454.jpg\n  [9]: http://img1.ph.126.net/TLmXfGQY4bIslgP_Il_XzA==/1140536605732506364.jpg\n  [10]: http://img2.ph.126.net/ajm4rD-HFJViFdBsJH8O6w==/57139420373174084.jpg\n  [11]: http://img2.ph.126.net/pxbM3oOPbx98iPekpufmCw==/4807029652365046394.jpg\n"
  },
  {
    "path": "prob/Linux虚拟机网络配置.md",
    "content": "Linux虚拟机网卡配置\n========================\n\n写在前面\n--------------------------\n本文再网上有很多参考\n本文也转载自很多文章节选一些有用的段落来做参考\n\n虚拟机3种有用的网卡配置模式\n------------------------------\n### Bridged（桥接）方式\n用这种方式,虚拟系统的IP可设置成与本机系统在同一网段,虚拟机相当于网络内的一台独立的机器,与本机共同插在一个集线器上,网络内其他机器可访问虚拟机,虚拟机也可访问网络内其他机器,当然与本机系统的双向访问也不成问题. \n### NAT(网络地址转换）方式\n这种方式也可以实现本机系统与虚拟系统的双向访问.但网络内其他机器不能访问虚拟机,虚拟系统可通过本机系统用NAT协议访问网络内其他机器.\n### host-only方式 \n这种方式只能进行虚拟机和主机之间的网络通信,既网络内其他机器不能访问虚拟系统,虚拟系统也不能访问其他机器. \n### 小结\n桥接方式主要是克隆物理机器的网络环境，可以让虚拟机放在真实网络里面做service。\n\nNAT方式主要是虚拟机用来上网用的。\n\nHost-only 主要是通过虚拟机与物理机做一个私有网络来做网络连接。\n\n\n\nLinux网络设置\n----------------------\n再ubuntu 14.04中 网卡的配置文件在 /net/network/interfaces 这里\n再RH系列（RHEL CentOS Fedora）中配置文件在 /net/networks这里\n\n最常用配置：\n\n```\nauto eth1\niface eth1 inet dhcp\n```\n\n让系统自动配置\n至于设定ip地址什么的还是百度一下特定情况比较靠谱\n一般情况下虚拟机默认DHCP 得到ip地址就够用了。\n\nLinux网络配置其他情况\n----------------------------\n### 命令临时配置网络\n参考： http://www.cnblogs.com/bo083/archive/2012/11/23/2785172.html\n### 文件配置里面再上文也有。\n不过想要自己手动配置还是需要先了解很多网络概念\n例如网卡的编号eth 网关 子网掩码 路由 等等。"
  },
  {
    "path": "prob/MacTheme.md",
    "content": "\nUbuntu 14.04 下的MAC OS X\t 主题安装\t\n====================\n\n安装 MAC OS X 主题会帮助你的 Ubuntu 14.04 看起来更像MAC OS X。在这里我们介绍的Macbuntu安装包包含了GTK 主题，这些主题是专门为ubuntu unity定制的。图标主题可以为ubuntu 14.04使用，包括登陆界面引导启动的背景，登陆用户，甚至包括了lightdm 使用webkit的登陆界面。这个安装包是nobslab在bluedxca93的帮助下从gnome-look.org网站上开发的。\n\n最终效果图：\n![demo](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-os-x-theme.jpg)\n\n`files:`\n\n![files](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-os-x-theme-desktop.jpg)\n\n\n`music`\n\n![music](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-os-x-theme-music.jpg)\n\n## 第一步：下载壁纸\n\n`预览图：`\n\n![preview](http://smashingweb.info/wp-content/uploads/2014/04/mac-os-x-wallpapers-for-ubuntu-1404.jpg)\n\n第一步要做的事仅仅是下载Mac OS X 的壁纸，下载连接在 [这里](http://drive.noobslab.com/data/Mac-13.10/MBuntu-Wallpapers.zip)这个压缩包的大小有39.2MB。\n`解压之后右键点击桌面->修改背景图片->选择下载的背景`\n## 安装主题修改工具\n为了修改GTK主题，图标，系统主题，光标，字体我们需要安装unity tweak。要安装unity tweak在ubuntu14.04上通过使用如下命令：\n\n```shell\nsudo apt-get install unity-tweak-tool\n```\n当然你也可以通过安装ubuntu-tweak来实现主题更换\n```shell\nsudo add-apt-repository ppa:tualatrix/ppa\nsudo apt-get update\nsudo apt-get install ubuntu-tweak\n```\n\n`效果图：`\n\n![](http://smashingweb.info/wp-content/uploads/2014/04/Unity_tweak_tool_1.jpeg)\n\n##在ubuntu14.04上安装Mac OS X主题\n为了修改上文所说的内容。我们需要打开终端运行如下命令：\n```bash\nsudo add-apt-repository ppa:noobslab/themes\nsudo apt-get update\nsudo apt-get install mac-ithemes-v3\nsudo apt-get install mac-icons-v3\n```\n现在打开刚才安装的工具来选择主题，在GTK主题上选择MBuntu。再本地tab上选择Mbuntu-osx在光标tab上选择Mac-cursors.\n\n`如图所示`\n\n![](http://smashingweb.info/wp-content/uploads/2014/04/select-mac-theme-ubuntu-1404.jpg)\n![](http://smashingweb.info/wp-content/uploads/2014/04/select-mac-icons-ubuntu-1404.jpg)\n![](http://smashingweb.info/wp-content/uploads/2014/04/select-mac-cursors-ubuntu-1404.jpg)\n\n现在unity桌面看起来就像Mac了。你已经有了mac的图标，mac的窗口样式，mac的鼠标指针样式。\n\n## 安装类似Mac OS X样式的DOCK在ubuntu14.04上\n\nDocky是再UBUNTU平台上一个非常轻量级的类似Mac OS X 的dock。 它拥有mac一样的鼠标浮动效果。想要安装需要在终端上运行如下代码：\n```shell\nsudo add-apt-repository ppa:docky-core/ppa\nsudo apt-get update\nsudo apt-get install docky\n```\n### 安装Mac doc主题：\n下载 [Mac 主题](http://drive.noobslab.com/data/Mac-14.04/Mac-OS-Lion%28Docky%29.tar)从unity启动器上运行docky。你就能看到docky运行再你的屏幕底端了，点击第一个docky配置按钮，选择`3D mode`点击下载主题按钮在上面选择Buyi-idock主题，现在你将会获得Mac OS X很像的dock了。\n\n`配置图：`\n\n![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-osx-dock.jpg)\n\n`效果图：`\n\n![](http://smashingweb.info/wp-content/uploads/2014/04/docky-theme-ubuntu-1404.jpg)\n\n##隐藏unity 启动器\n再外观->行为中可以关闭启动器，\n![](http://smashingweb.info/wp-content/uploads/2014/04/mac-hide-launcher.jpg)\n\n## 替换左上角的Ubuntu桌面为Mac OS X\n想要修改成为Mac OS X执行下面命令\n```shell\ncd && wget -O Mac.po http://drive.noobslab.com/data/Mac-14.04/change-name-on-panel/mac.po\ncd /usr/share/locale/en/LC_MESSAGES; sudo msgfmt -o unity.mo ~/Mac.po;rm ~/Mac.po;cd\n```\n\n想要改回来执行下面命令\n\n```shell\ncd && wget -O Ubuntu.po http://drive.noobslab.com/data/Mac-14.04/change-name-on-panel/ubuntu.po\ncd /usr/share/locale/en/LC_MESSAGES; sudo msgfmt -o unity.mo ~/Ubuntu.po;rm ~/Ubuntu.po;cd\n```\n\n`效果图：`\n\n![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-logo.jpg)\n\n##替换延迟滚动条为正常滚动条\n想要修改成为正常执行下面命令\n```shell\ngsettings set com.canonical.desktop.interface scrollbar-mode normal\n```\n\n想要改回来执行下面命令\n\n```shell\ngsettings reset com.canonical.desktop.interface scrollbar-mode\n```\n\n## 替换启动屏幕图片\n![](http://smashingweb.info/wp-content/uploads/2014/04/mac-boot-splash-1-4-11.png)\n在这个小章节里面将会为ubuntu 14.04修改启动图片，包括载入动画跟苹果LOGO\n命令如下\n```shell\nsudo add-apt-repository ppa:noobslab/themes\nsudo apt-get update\nsudo apt-get install mbuntu-bscreen-v3\n```\n想要修改回来：\n```shell\nsudo apt-get remove mbuntu-bscreen-v3\n```\n\n##修改Ubuntu14.04的登陆画面成为Mac OS X的样式\n![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-osx-login.jpg)\n安装：\n```shell\nsudo add-apt-repository ppa:noobslab/themes\nsudo apt-get update\nsudo apt-get install mbuntu-lightdm-v3\n```\n修改回来：\n```shell\nsudo apt-get remove mbuntu-lightdm-v3\n```\n\n##去掉ubuntu 14.04锁屏的图标\n![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-lock-screen.jpg)\n去掉logo:\n```shell\nsudo xhost +SI:localuser:lightdm\nsudo su lightdm -s /bin/bash\ngsettings set com.canonical.unity-greeter draw-grid false;exit\nsudo mv /usr/share/unity-greeter/logo.png /usr/share/unity-greeter/logo.png.backup\n```\n如果想改回来：\n```shell\nsudo xhost +SI:localuser:lightdm\nsudo su lightdm -s /bin/bash\ngsettings set com.canonical.unity-greeter draw-grid true;exit\nsudo mv /usr/share/unity-greeter/logo.png.backup /usr/share/unity-greeter/logo.png\n```\n\n##ubuntu14.04安装Mac字体\n下载与安装字体：\n```shell\nwget -O mac-fonts.zip http://drive.noobslab.com/data/Mac-14.04/macfonts.zip\nsudo unzip mac-fonts.zip -d /usr/share/fonts; rm mac-fonts.zip\nsudo fc-cache -f -v\n```\n配置：\n启动tweak tool在字体选择上选择苹果系列的字体或者lucida Mac 字体，然后根据你的屏幕来调整字体。\n![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-osx-fonts.jpg)\n\n##小伙伴们的测试结果\n![](../picture/MacTheme/1.jpg)\n![](../picture/MacTheme/2.jpg)\n![](../picture/MacTheme/3.jpg)\n![](../picture/MacTheme/4.jpg)\n##更多帮助登陆[ubtamator](http://ubtamator.github.io/)\n##寻找小伙伴，群：55958311\n\n> 翻译：PHILO \n\n> 内容调整：PHILO\n\n> 原文地址：http://smashingweb.info/mac-os-x-theme-for-ubuntu-14-04-macbuntu-transformation-pack/#userconsent#\n"
  },
  {
    "path": "prob/PHP-RSA加密跨域通讯实战.md",
    "content": "#PHP-RSA加密跨域通讯实战\n###AUTH：PHILO EMAIL：lijianying12 at gmail.com\n\n基于POST GET 的http通讯虽然非常成熟，但是很容易被人监听。\n并且如果使用跨域jsonp的通讯很容易在历史记录中发现通讯网址以及参数。为了克服这些问题，\n并且降低服务器成本，我们没有使用SSL而使用\nRSA加密。文章中的php加密解密 JS的加密解密 互相加密解密\n都能验证通过。\n\n其中PHP依赖常见的OPENSSL LIB 。 JS依赖 jsencrypt。\n\n我们使用jsonp get RSA加密通讯好处如下：\n\n1. 前后分离适合cdn加速。 \n1. 安全跨域更适合松散结构的网站。\n1. 不用去买ssl证书了。\n\n## 首先要生成密匙对\n```shell\nopenssl genrsa 1024 > private.key\nopenssl rsa -in private.key -pubout > public.key\n```\n\n##JS的RSA加密流程\n\n下载最新版本请移步到github：[jsencrypt](https://github.com/travist/jsencrypt) 代码在目录BIN下面是否用压缩的根据情况决定。\n\n### 生成KEY\n```js\nvar keySize = 1024; //加密强度\nvar crypt = new JSEncrypt({default_key_size: keySize});  //RSA 操作对象\n//方法1 (async)\ncrypt.getKey(function () {\n\tcrypt.getPrivateKey();\n\tcrypt.getPublicKey();\n});\n//方法2：\ncrypt.getKey();\ncrypt.getPrivateKey();\ncrypt.getPublicKey();\n```\n\n### 客户端加密场景：\n```js\nvar crypt1 = new JSEncrypt(); //新建rsa对象\n        var publickey = '\\\n        -----BEGIN PUBLIC KEY-----\\\n        MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3N8LJFqlsa6loCgFpgZVMr/Sx\\\n        DMQY7pr0euNQfh2g+UVPbB0MGhoc7nWL0FQhCgDedbjQw/nGFStFx7W1+0o1oRTY\\\n        u5ebNVivZSobraUv7LJvwT8O66Zs8cxbKLqQ/nE/WwJvXomSIckH6R8iOUO8/QT9\\\n        kv6/L0Uma3qA07pmDQIDAQAB\\\n        -----END PUBLIC KEY-----\\\n                ';\ncrypt1.setPublicKey(publickey );//添加来自服务端的publickey\ncrypt1.encrypt('abc'); //返回值为加密后的结果\n```\n\n### 客户端解密场景:\n```js\n        var privatekey = '-----BEGIN RSA PRIVATE KEY-----\\\n        MIICXQIBAAKBgQC3N8LJFqlsa6loCgFpgZVMr/SxDMQY7pr0euNQfh2g+UVPbB0M\\\n        Ghoc7nWL0FQhCgDedbjQw/nGFStFx7W1+0o1oRTYu5ebNVivZSobraUv7LJvwT8O\\\n        66Zs8cxbKLqQ/nE/WwJvXomSIckH6R8iOUO8/QT9kv6/L0Uma3qA07pmDQIDAQAB\\\n        AoGBAKba3UWModbfZXQeSJLxNCqWw9zJp3ydL/keQQ35DLqgyIJAD2QKEWXvtJUT\\\n        sMo19fyicSGOmFXQyYvPCKkmpLkOMAj1XaNpSMtSrcMx+gC01PO6Ey9rsUxW1g3u\\\n        fpqbEk9E3a5AtCS0I61nbUpRL6rqMtR5o2wcNR3TLtJt7pjxAkEA7hlFJKU1zWGp\\\n        OvvkJDnHc2NOCEJoGjqCR9wwv96+/xAykl2laI6WvEbbhjoO0+8+d17oigjhneS5\\\n        2UKFcfqw7wJBAMT+MCQ5TYLQlvjrBaDMqOdLsqtaDE6CpkrgwV820QMvHOo3R4Xd\\\n        uSbrA2tOr9t2/x+FzF971lRGdPFIch9UYMMCQQCZtO6SDaWCBP3++gX57OL5dq41\\\n        XsldxU+9nERMWTvr5UUAgDv8F7Dvsr6dFHXmE5i77yUnlzwvdi0UOIF1Z2U5AkBV\\\n        wyRKYPgx34Ya0JcerntKV1Zt60I4XADx0G/feAn/DN/VyENHMISPQPm4GgXN0jy4\\\n        CJQ1bcCd6B65fQTSRvXpAkA2Vv5yXzeKDls/AyxHEoros/VYftVc1HOFC++q13Rw\\\n        NH2rnlRT8FMTFEqL9MYRqvvYAFf5VmH0M1Nx5t4LRN+l\\\n        -----END RSA PRIVATE KEY-----\\\n                ';\nvar crypt2 = new JSEncrypt();//新建加密对象\ncrypt2.setPrivateKey(privatekey);//给加密对象设置privatekey\ncrypt2.getPublicKey();//Tip 我们是不需要存储publickey的直接用private能得到publickey\ncrypt2.decrypt(\"MeUqWB5LwTh8crzPqbZtEtKuZxYvPWH9CTCChK1qoBzIgIXGPCdzNMbiH0cCYHl5qWSERIDOgDIgv4dXsIMjEJ5q0cp/qNQYHM5va0iw0UvKvQB1E8aWtY2nFEPy4F+ArQ0Mj/ijr/CntEP1jHKC3WU9nu2kYrBIBnbj14Bs+kI=\");//调用解密方法\n```\n\n####但是虽然写到了这里，加密方面还是不够用，因为1024长度的RSA加密最多只能加密长度为117的字符串。而URL长度最多为4k因此这里我们要让加密长度达到2691以达到能用的程度。\n\n那么这种加密长度大概能容纳多少数据呢？\n我们借助[json-generator](http://www.json-generator.com/)来帮忙生成JSON\n```js\n    sdata =[\n        {\n            \"_id\": \"542f9ac2359c7d881bc0298e\",\n            \"index\": 0,\n            \"guid\": \"db1dacc1-b870-4e3c-bc1a-80dfd9506610\",\n            \"isActive\": false,\n            \"balance\": \"$1,570.15\",\n            \"picture\": \"http://placehold.it/32x32\",\n            \"age\": 36,\n            \"eyeColor\": \"blue\",\n            \"name\": \"Effie Barr\",\n            \"gender\": \"female\",\n            \"company\": \"ZORK\",\n            \"email\": \"effiebarr@zork.com\",\n            \"phone\": \"+1 (802) 574-3379\",\n            \"address\": \"951 Cortelyou Road, Wikieup, Colorado, 4694\",\n            \"about\": \"Sunt reprehenderit do laboris velit qui elit duis velit qui. Nostrud sit eiusmod cillum exercitation veniam ad sint irure cupidatat sunt consectetur magna. Amet nisi velit laboris amet officia et velit nisi nostrud ipsum. Cupidatat et fugiat esse minim occaecat cillum enim exercitation laboris velit nisi est enim aute. Enim do pariatur\\r\\n\",\n            \"registered\": \"2014-05-08T15:26:35 -08:00\",\n            \"latitude\": 48.576424,\n            \"longitude\": 146.634137,\n            \"tags\": [\n                \"esse\",\n                \"proident\",\n                \"quis\",\n                \"consectetur\",\n                \"magna\",\n                \"tempor\",\n                \"anim\"\n            ],\n            \"friends\": [\n                {\n                    \"id\": 0,\n                    \"name\": \"Trisha Cannon\"\n                },\n                {\n                    \"id\": 1,\n                    \"name\": \"Todd Bullock\"\n                },\n                {\n                    \"id\": 2,\n                    \"name\": \"Eileen Drake\"\n                },\n                {\n                    \"id\": 3,\n                    \"name\": \"Ferrell Kelly\"\n                },\n                {\n                    \"id\": 4,\n                    \"name\": \"Fischer Blankenship\"\n                },\n                {\n                    \"id\": 5,\n                    \"name\": \"Morales Mann\"\n                },\n                {\n                    \"id\": 6,\n                    \"name\": \"Brandie Pittman\"\n                },\n                {\n                    \"id\": 7,\n                    \"name\": \"Virgie Kerr\"\n                }\n            ],\n            \"greeting\": \"Hello, Effie Barr! You have 1 unread messages.\",\n            \"favoriteFruit\": \"apple\"\n        },\n        {\n            \"_id\": \"542f9ac21c260d03e763a4f2\",\n            \"index\": 1,\n            \"guid\": \"9e3a3d8a-26f8-46b7-aca0-336a194808b1\",\n            \"isActive\": true,\n            \"balance\": \"$3,617.89\",\n            \"picture\": \"http://placehold.it/32x32\",\n            \"age\": 31,\n            \"eyeColor\": \"brown\",\n            \"name\": \"Butler Best\",\n            \"gender\": \"male\",\n            \"company\": \"SPORTAN\",\n            \"email\": \"butlerbest@sportan.com\",\n            \"phone\": \"+1 (905) 428-3046\",\n            \"address\": \"798 Joval Court, Wanship, Delaware, 8974\",\n            \"about\": \"Nostrud occaecat id sunt pariatur ad nisi do veniam sit officia non consequat amet fugiat. Est eiusmod labore ut cillum qui eu elit ut eiusmod exercitation. Ut anim nostrud eiusmod voluptate tempor proident id do pariatur. In Lorem ullamco ea irure adipisicing. Quis est dolor ex commodo aliqua nisi elit sit elit anim fugiat sunt amet. Enim consequat ipsum occaecat ipsum tempor deserunt dolor veniam nostrud. Anim cillum ullamco cupidatat aute velit fugiat sit enim in amet anim mollit dolor eiusmod.\\r\\n\",\n            \"registered\": \"2014-08-02T06:15:44 -08:00\",\n            \"latitude\": -20.529765,\n            \"longitude\": 2.396578,\n            \"tags\": [\n                \"consequat\",\n                \"enim\",\n                \"magna\",\n                \"sunt\",\n                \"Lorem\",\n                \"quis\",\n                \"commodo\"\n            ],\n            \"friends\": [\n                {\n                    \"id\": 0,\n                    \"name\": \"Kenya Rice\"\n                },\n                {\n                    \"id\": 1,\n                    \"name\": \"Hale Knowles\"\n                },\n                {\n                    \"id\": 2,\n                    \"name\": \"Michael Stephens\"\n                },\n                {\n                    \"id\": 3,\n                    \"name\": \"Holder Bailey\"\n                },\n                {\n                    \"id\": 4,\n                    \"name\": \"Garner Luna\"\n                },\n                {\n                    \"id\": 5,\n                    \"name\": \"Alyce Sawyer\"\n                },\n                {\n                    \"id\": 6,\n                    \"name\": \"Rivas Owens\"\n                },\n                {\n                    \"id\": 7,\n                    \"name\": \"Jan Petersen\"\n                }\n            ],\n            \"greeting\": \"Hello, Butler Best! You have 8 unread messages.\",\n            \"favoriteFruit\": \"banana\"\n        }\n    ]\n```\n\n表单json能达到这么长已经是很极端的情况了。因此这种方法绝对是够用的。\n\n###长表单内容加解密方法：\n```js\nfunction encrypt_data(publickey,data)\n{\n\tif(data.length> 2691){return;} // length limit\n\tvar crypt = new JSEncrypt();\n\tcrypt.setPublicKey(publickey);\n\tcrypt_res = \"\";\n\tfor(var index=0; index < (data.length - data.length%117)/117+1 ; index++)\n\t{\n\t\tvar subdata = data.substr(index * 117,117);\n\t\tcrypt_res += crypt.encrypt(subdata);\n\t}\n\treturn crypt_res;\n}\nfunction decrypt_data(privatekey,data)\n{\n\tvar crypt = new JSEncrypt();\n\tcrypt.setPrivateKey(privatekey);\n\tdatas=data.split('=');\n\tvar decrypt_res=\"\";\n\tdatas.forEach(function(item)\n\t{\n\t\tif(item!=\"\"){de_res += crypt.decrypt(item);}\n\t});\n\treturn decrypt_res;\n}\n```\n\n\n## PHP的RSA加密\n\n### php加密解密类\n\n首先要检查phpinfo里面有没有openssl支持\n\n```php\nclass mycrypt {  \n  \n    public $pubkey;  \n    public $privkey;  \n  \n    function __construct() {  \n                $this->pubkey = file_get_contents('./public.key');  \n                $this->privkey = file_get_contents('./private.key');  \n    }  \n  \n    public function encrypt($data) {  \n        if (openssl_public_encrypt($data, $encrypted, $this->pubkey))  \n            $data = base64_encode($encrypted);  \n        else  \n            throw new Exception('Unable to encrypt data. Perhaps it is bigger than the key size?');  \n  \n        return $data;  \n    }  \n  \n    public function decrypt($data) {  \n        if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey))  \n            $data = $decrypted;  \n        else  \n            $data = '';  \n  \n        return $data;  \n    }  \n  \n}  \n```\n\n**密匙文件位置问题，是放到访问接口的附近就可以了如果是CI的话就放到index.php旁边就行了。**\n但是要注意一点，一定要做访问设置，不然key会暴出来的，那时候信息一旦截获就惨了。\n\n### 类的使用\n```php\n$rsa = new mycrypt();  \necho $rsa -> encrypt('abc');  \necho $rsa -> decrypt('W+ducpssNJlyp2XYE08wwokHfT0bm87yBz9vviZbfjAGsy/U9Ns9FIed684lWjYyyofi/1YWrU0Mp8vLOYi8l6CfklBY=');  \n```\n\n###长数据加密解密\n```php\nfunction encrypt_data($publickey,$data)\n{\n    $rsa = new mycrypt();\n    if($publickey != \"\"){\n        $rsa -> pubkey = $publickey;\n    }\n    $crypt_res = \"\";\n    for($i=0;$i<((strlen($data) - strlen($data)%117)/117+1); $i++)\n    {\n        $crypt_res = $crypt_res.($rsa -> encrypt(mb_strcut($data, $i*117, 117, 'utf-8')));\n    }\n    return $crypt_res;\n}\nfunction decrypt_data($privatekey,$data)\n{\n    $rsa = new mycrypt();\n    if($privatekey != \"\"){  // if null use default\n        $rsa ->privkey = $privatekey;\n    }\n    $decrypt_res = \"\";\n    $datas = explode('=',$data);\n    foreach ($datas as $value)\n    {\n        $decrypt_res = $decrypt_res.$rsa -> decrypt($value);\n    }\n    return $decrypt_res;\n}\n```\n## JSONP 跨域通讯\n我们经过千辛万苦经过加密终于能做到通讯安全了。\n当然我们的下一步是通过JSONP 的get通讯来实现跨域通讯啦。\n经过测试：我们的JS中最长的Case url长度是3956\n在加上跨域url callbac参数，经过测试正好差20到4095 （一般的URI长度限制为4K）\n\n```js\n$.ajax({  \n\ttype:\"get\",  \n\tasync:false,  // 设置同步通讯或者异步通讯\n\turl:\"http://22500e31b5a12457.sinaapp.com/ubtamat/getPubKey?c=hknHQKIy3dyeeajyAwZ+raUkV1ezFbgU8zk+54cNQtrcEGozUjXpYhbC6fxz2hCOgp9feIsM1xKJFm5pkAGQ2UcUOc5EJNCAz6L0mXkZbTBmh3PufWxOE7TaicqRCRtZGGNB2qpm2WruXjYg1lPcrPz/rhFZx4DSJvEHkCm7ZU0=......(加密后的结果太长，省略)\",  \n\tdataType:\"jsonp\",\n\tjsonp: \"\",\n}); \n```\n\n\n```php\n     header(\"Content-type: application/javascript; charset=utf-8\");\n     $response = \"console.log('test response!')\";\n     $callback = $this->input->GET('callback');\n     echo $callback.$response;\n```\nPHP代码是CI框架controler中的部分代码\n并且经过了必要的裁剪。\n更加细节的参数都放到GET里面就可以了。\n处理之后按照上面的形式处理返回值就ok\n如果你配置成功了，你将会在网页的控制台上看到自己动态的，\n或者像我一样静态的控制台输出。\n如果要是想获取数据到网页的话还是要借助**回调函数**来实现\n\n## JSONP跨域获取通讯结果\n\n请看下面代码：\n\n客户端代码\n```js\nvar global = null;\nfunction jpc(result)\n{\n\tglobal = result.msg;\n}\n\n$.ajax({  \n\ttype:\"get\",  \n\tasync:false,  // 设置同步通讯或者异步通讯\n\turl:\"http://22500e31b5a12457.sinaapp.com/ubtamat/getPubKey\",  \n\tdataType:\"jsonp\",\n\tjsonp: \"jpc\",\n}); \n```\n\n服务器端代码\n```php\nheader(\"Content-type: application/javascript; charset=utf-8\");\n$response = \"jpc({'msg':123456})\";\n$callback = $this->input->GET('callback');\necho $callback.$response;\n```\n此次通讯的结果会在jcp当中调用执行，并且返回的内容会记录到 global 变量当中\n\n## 实战\n从上文中，我们已经找到了整个加密过程方法了，但是距离实战还是有一定距离的。\n首先我们实战的话需要克服接口比较少，功能比较多，单个接口维护用时比较长的问题。\n\n为了解决上面的问题我们做出如下设计。\n\n###客户端方面：\n设计一个通讯类：只管跟服务器通讯。别的业务什么都不管。\n```JS\n//create connection object.\nvar ConnServ = new Object();\n\nConnServ.tmpResponse = \"not initial\";\n\n//call back function register slot.\nConnServ.CallBackFunction=function(){console.log(\n    \"call back function set error ! U must set a business call back function!\"\n)};\n\n//input only encrypted data!!!\n//send data to server\nConnServ.send=function(data)\n{\n    data = data.replace(/\\+/g,\"$\");  //replace all + as $\n    $.ajax({\n        type:\"get\",\n        async:false,  \n        url:\"http://22500e317.sinaapp.com/ubtamat?c=\"+data,\n        dataType:\"jsonp\",\n        jsonp: \"jpc\"\n    });\n    return \"Send Finish\";\n}\n\n//default call back funcation\nfunction jpc(res)\n{\n    ConnServ.tmpResponse = res.msg;\n    ConnServ.CallBackFunction();\n}\n\n\n//public key store.\nConnServ.getpublickey = function()\n{\n    return \"\\-\" +\n        \"----BEGIN PUBLIC KEY----- \" +\n...................................................\n        \"-----END PUBLIC KEY-----\";\n}\n```\n在上面代码中请注意，RSA加密过后的字符串当中有一个非法字符+要转换成其他合法字符发送到服务器才可以。\n不然参数会错误。\n等传输到服务器中自己转换回来在解密就好了。\n\n###服务器端方面：\n首先我们接收到消息之后要对消息进行解密，之后根据报文内容选择服务器上的功能。然后把其他参数输入到业务类中执行即可。\n因此我们使用了命令模式来实现单一接口的丰富业务功能。\n其他的我们需要对CI框架的配置进行调整：\n首先global config里面需要调整 $config['global_xss_filtering'] = FALSE; 因为如果传输过来的报文解密不了就直接抛弃不进行处理（防止CC攻击第一层）这样就从url上防止了攻击的可能性。\n当然我们还是没有完全避免注入风险这时我们就需要在业务类里面调用安全模块：\n```php\n $this->security->xss_clean()\n```\n来实现第二层的XSS攻击。这是服务器端设计主要需要说的位置。\n\n#### 服务器获取数据处理全过程\n1. 从get接口获得参数c的加密数据\n1. 对数据进行RSA解密。\n1. 判断数据包时间戳。如果超时直接抛弃（防止从浏览器记录中直接发送request到服务器，下面是安全方面的说明）\n\t- 首先如果不修改数据只修改时间戳不可能从截获的数据报文中实现，因为需要重新加密，如果想得到内容需要服务器上的privatekey解密保证安全\n\t- 如果数据包截获直接发送数据包在超时范围内直接获取数据包内容，也不能实现攻击，因为在客户端有临时RSA密匙对生成并且在发送的时候会同时发送publickey 给服务器做session的存储内容并且伪装客户的客户端没有privatekey所以获取任何关于登陆之后的消息根本无法解析。\n1. 对解密后的数据进行xss检查\n1. 解析报文中需要调用什么功能直接调用反射得到业务类的实例\n1. 调度业务类，并且把得到的参数赋值给业务执行函数的参数。\n\n#### 服务器处理数据过程只跟业务有关\n\n#### 服务器返回数据全过程\n1. 业务处理完成之后针对每一个用户的登陆情况对返回值进行加密。\n2. response\n\n#### 以上业务涉及的部分代码（给出的代码未涉及以上说的安全部分。）\n\n```php\n//CI 控制器里面的方法\npublic function index()\n{\n\theader(\"Content-Type: text/html;charset=UTF-8\");\n\t$callback = $this -> input->GET('callback');\n\t$input_data = str_replace(\"$\",\"+\",$this->input->GET('c'));\n\t$input_data =$this -> rsa->decrypt_data($input_data);\n\tif($input_data == \"\"){return;}//如果数据不对解析就会失败，直接抛弃数据包，避免cracker构造数据包问题\n\t//这里插入时间戳检查代码\n\t//这插入xss检查\n\t$output_data = command($input_data);\n\t$response = \"jpc({'msg':\".$output_data.\"})\";\n\t$callback = $this->input->GET('callback');\n\techo $callback.$response;\n}\n```\n\n```php\n//命令模式中的业务调度方法\nfunction command($input)\n{\n    try\n    {\n        $obj_input = json_decode($input);\n        $action = $obj_input -> {\"action\"};\n        $business_action = new ReflectionClass($action);\n        $instance  = $business_action->newInstanceArgs();\n        $output = $instance->Action($obj_input);\n\t\t//对output变量进行rsa加密\n        return \"'\".$output.\"'\"; // here only accept string\n    }\n    catch(Exception $e)\n    {\n        return  \"'\".$e->getMessage().\"'\";\n    }\n}\n```\n\n#### 以下是配合业务进行的工具函数：\n```php\n//命令接口定义\ninterface ICommand {\n    function Action($arg_obj);\n} \n```\n\n```php\n//把此函数放到system/core/common.php\n//实现了输入一个文件夹就自动加载所有文件夹中的所有的类。\nif ( ! function_exists('require_once_dir'))\n{\n    function require_once_dir($path)\n    {\n        $dir_list = scandir($path);\n        foreach($dir_list as $file)\n        {\n            if ( $file != \"..\" && $file != \".\" )\n            {\n                require_once($path.\"/\".$file);\n            }\n        }\n    }\n}\n\n//使用：\n//在application/config/autoload.php中添加类似如下代码：\nrequire_once_dir(APPPATH.\"/controllers/lib\");\nrequire_once_dir(APPPATH.\"/controllers/actions\");\n```\n\n#### 以下是实现业务的例子：\n```php\nclass register implements  ICommand{\n    public function Action($arg_obj)\n    {\n        return \"we are do nothing: \".json_encode($arg_obj);\n    }\n}\n```\n\n通过以上基本方法，我们可以实现，只要业务继承我们声明的接口就可以开始写业务了。\n别的什么都不用管，专注于业务即可，其他的安全、IO等问题都已经一并解决。\n并且每一个业务都进行了rsa加密xss攻击过滤伪造数据包攻击。\n以及在response加密只能是固定客户端才能看到报文内容的全过程。\n但是一定要注意一点，注册这个业务后面要嵌套登陆进行，不然看不到返回值。\n\n\n#### 数据包必须包含的要素：\n\n1. acton （业务名）\n1. req_time (请求时间)\n1. public_key (如果是注册跟登陆时候需要提交临时公匙)\n\n##总结\n因为时间仓促所以只能写到这里了。\n如果您发现了我文章中的bug欢迎发email批评指正。非常感谢！\n同时本方案也会成为我们开源社区linux52.com后台系统中的接口设计方案。\n当然我们社区所有维护的文档都会进行反复验证，如果出问题我们会及时更新。\n以维护文档的正确性。\n点击[=这=里=](https://github.com/lijianying10/FixLinux/blob/master/prob/PHP-RSA%E5%8A%A0%E5%AF%86%E8%B7%A8%E5%9F%9F%E9%80%9A%E8%AE%AF%E5%AE%9E%E6%88%98.md)查看文档最新版本。\n\n##关键词\nphp js rsa get jsonp 跨域 安全\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "prob/PHPweb开发学习路线.md",
    "content": "# PHPweb开发学习路线\n\n本文适用人群：不是网站开发新手。懂得基本http通讯。\n\n文档目的：帮助需要的人快速入门php快速完成自己的需求。\n\n本文设定世界观：\n\n1. 学习的语言没有好坏之分，只有特征是否适合你使用。\n1. 学习一门编程语言只是为了实现自己的想法而不是为了语言而学。当然如果您学习的只是为了人前炫技，\n    那么请您右转直走。红叉不送。\n##如果您是开发新手：\n\n1. 那么请先熟悉一下开发环境，先安装环境，按照一般的环境配置教程搞出hello world！\n1. 然后从程序的基本原理出发，先从熟悉变量的定义，修改开始熟悉。\n1. 然后熟悉逻辑顺序，循环分支，判断熟悉一下。\n1. 然后是函数，对象的熟悉，\n\n**注意：**\n\n1. 只需要熟悉基本算法就可以了。\n1. 功能性的API可以在需求中自己慢慢熟悉。\n1. 多写几个case之后，就可以开始下面的学习路线了。\n\n\n##大体学习路线：\n\n1. 首先需要对http通讯要有一个长足的了解。\n1. 从原理上理解mvc\n1. 之后你再web开发上需要什么你就到php里面找什么去。\n\n## 为啥要加前两点？\n\n加上前两点之后就可以把php的学习从被动变成主动，并且对学习其他编程语言\nweb分布式等等灵活的建站方法一网打尽。\n\n## 更加具体的好处：\n\n如果刚开始的时候确实能理解网站服务器的运行方式跟基本通讯是怎么做到的。\n那么学习php就跟查资料差不多了。我们只需要根据我们想要的东西到网上查询\n到书上看，或者看视频你获取直接经验，都可以以带着问题跟目的的方式去学PHP\n这样就可以很快的切入实战了。\n\n# 以下部分知识我个人的粗浅理解，仅供参考\n\n## 当一个浏览器requre一个业务ajax post连接的时候发生的一系列的事情：\n\n1. 首先访问DNS服务器，负责对request的连接位置进行服务器定位。（数据包中的**remote address**）\n    比如说有一些网站有很多个服务器，现在DNS服务器可以根据你不同线路访问来的reques进行分流。\n    比如说你request里面的位置信息（IP）地址是联通的，那么DNS服务器会返回该网站联通网络的服务器。\n    以做到更好的上网体验。不仅仅是选择网络往往CDN分布式资源下载这种服务会根据你的地区和网络选择服务器来获取资源。\n1. 通过DNS得到具体哪个服务器的地址，以及服务器上的地址位置之后，就可以开始进行表单输入(**request method**：POST)了。(**request URL**)\n1. 网络通讯可以正式开始了。\n    1. 通讯的时候双方都是有一组headers来标记通讯的内容。\n    1. 遵循你来我往的无状态连接（短链接只连接一次的无状态连接）\n    1. 浏览器向服务器发送的数据包内容（关键部分）\n        1. accept 下所有的内容都是关于告诉服务器我能接受什么样的返回格式\n        1. UserAgent 浏览器版本定义\n        1. Query string parameter 表单内所有需要传输给服务器的数据\n        1. Cookie 你懂得\n\n    1. 服务器向浏览器返回的数据包内容解析：\n        1. Set-Cookiei 通知浏览器保存cookie\n        1. Content-Encoding 返回的编码格式\n        1. 之后就是response的内容了。当然是没有限制的，图片文字都可以，大小不限，大小不限的意思就是http下载了。\n1. 通讯结束后有一个通讯状态的code 就是传说中的200 为成功， 大名鼎鼎的404都是来自这的。\n\n\n"
  },
  {
    "path": "prob/qqOnLinux.md",
    "content": "# Linux系统下QQ使用方法\n# AUTH:服部半藏 EDIT:PHILO\nQQ作为常用的即时通讯工具，在我们的生活中扮演了很重要的角色。但是QQ在windows，MAC OSX和移动设备上使用起来很方便，但是在Linux上的表现却不尽如人意。下面就介绍几种常用的方法。\n## Web QQ\nWEB QQ（Web QQ腾讯公司推出的使用网页方式上QQ的服务，特点是无需下载和安装QQ软件，只要能打开Web QQ的网站就可以登录QQ与好友保持联系。具有Web产品固有的便利性，同时在Web上最大限度的保持了客户端软件的操作习惯。更丰富的好友动态、更开阔的聊天模式、更实时的资讯查看、还有休闲音乐伴随，Web QQ将为我们提供一个愉快的网络起点。2009年9月15日正式上线。）\n\n### [webqq 传送门](http://web2.qq.com/) \n\n### 使用方法\n+ 打开浏览器，输入webqq，点击搜索\n\n![w1](../picture/wqq/w1.png)\n\n+ 找到“我的QQ – 能在网页上直接聊QQ”单击进入\n\n![w2](../picture/wqq/w2.png)\n\n+ 打开后显示如下界面（在这里要提示一下smart QQ是在原版QQ上做的改善，只保留了常用的几个功能，更像是手机QQ，而原版web QQ则偏重于娱乐，里面可以添加各种小应用，更像是一个操作系统，以个人喜好而定）\n\n![w3](../picture/wqq/w3.png)\n\n+ 我们先选择原版web QQ，单击后进入一个类似于windows桌面的界面，里面有一些预设的小应用，当然也可以自己添加。\n\n![w4](../picture/wqq/w4.png)\n\n+ 点击左边栏的QQ图标，会弹出登陆框，这时输入用户名密码，点击登录即可。\n\n![w5](../picture/wqq/w5.png)\n\n+ 登陆后的界面如图所示\n\n![w6](../picture/wqq/w6.png)\n\n+ 点击smart QQ后会弹出如下界面，直接登陆即可\n\n![w7](../picture/wqq/w7.png)\n\n+ 陆后界面如下，非常类似于手机QQ\n\n![w8](../picture/wqq/w8.png)\n\n\n## Lwqq安装及使用方法\n\n### 安装篇：\n\n+ 在左边栏找到软件中心并单击打开\n\n![lw1](../picture/lwqq/l1.jpg)\n\n\n+ 搜索软件pidgin Internet message并安装\n\n![lw2](../picture/lwqq/l2.jpg)\n\n\n+ 依次输入下面三条命令\n\n```bash\nsudo add-apt-repository ppa:lainme/pidgin-lwqq\nsudo apt-get update\nsudo apt-get install pidgin-lwqq \n#end of install\n```\n\n\n### 使用篇\n+ 首先在侧边栏找到pidgin并单击打开\n\n![lw3](../picture/lwqq/l3.jpg)\n\n+ 看到欢迎界面后单击“add”按钮添加账号\n\n![lw4](../picture/lwqq/l4.jpg)\n\n\n+ 在Protocol下拉菜单里找到WebQQ并单击\n\n![lw5](../picture/lwqq/l5.jpg)\n\n+ 输入用户名和密码单击”add“即可登录\n\n![lw6](../picture/lwqq/l6.jpg)\n\n\n+ 登陆后效果图\n\n![lw7](../picture/lwqq/l7.jpg)\n\n\n\n## 至于wineqq 当然会介绍啦\n[下载地址](http://www.longene.org/forum/viewtopic.php?t=4700)\n\n### 优点： 界面漂亮\n### 缺点： 兼容性插件 64bit需要装32比他的库 ， 不稳定。\n\n## 注意： 进入网页下载后一定要看安装说明。\n\n```\n首先安装wineQQ2013地址（http://pan.baidu.com/s/1c0y7Ros）\n如果是32位操作系统，第一次使用时输入命令\nsudo bash /opt/longene/qq/qq.sh\n然后即可运行，以后运行时按windows键，输入QQ，看到QQ的图标单击即可\n\n\n\n对于64位操作系统，由于缺少32位库，因此操作相对麻烦\n依次执行命令\nsudo apt-get install lib32ncurses5\nsudo apt-get install lib32z1\nsudo apt-get install lib32bz2-1.0\nsudo apt-get install libgtk2.0-0:i386\n执行完之后就可以像32位系统一样操作了，第一次使用时输入命令\nsudo bash /opt/longene/qq/qq.sh\n然后即可运行，以后运行时按windows键，输入QQ，看到QQ的图标单击即可\n```\n\n\n\n## Android QQ\nloading...\n\n"
  },
  {
    "path": "prob/test.py",
    "content": "#encoding:utf-8\nimport json\nimport urllib\nimport urllib2\nimport sys\nimport yaml\nimport os\n# 依赖解决： pip install pyyaml\ncase = yaml.load(file(sys.argv[1])) #从控制台输入配置文件\n\nDevCode=\"273c5cd2d4cce23c32dc5655685aff4c\" # ajax通用安全参数接入，不推荐Cookie操作因为每次ajax都会传送Cookie。流量很高。\nReqToken=\"\"\nAccessToken=\"\"\nGindex=0\nbaseurl = 'http://127.0.0.1:9090'\n\n# post ajax post helper\ndef post(url,value):\n    print \"post to :\",baseurl+url\n    data = urllib.urlencode(value)\n    req = urllib2.Request(baseurl+url, data)\n    response = urllib2.urlopen(req)\n    the_page = response.read()\n    return the_page\n\n# check_error 针对ajax返回结果判断服务器有没有报错\ndef check_error(resp):\n    if json.loads(resp)['status']['code'] != '200':\n        print resp\n        print 'response error'\n        return 1\n    return 0\n\n# inittoken_customer customer 类型token 初始化，其实是帮助登录的\ndef inittoken_customer():\n    resp = post(\"XXXXXXXXXXXXXXXXXXXX\",{\n        'XXXXXXXXXXXX':\"ea66f04\",\n        'XXXXXXXXX':\"c7465f402bb3f02a585f57c634d579fc\"\n        })\n    if check_error(resp) != 0 :\n        return\n    ReqToken = json.loads(resp)[\"data\"][0]['request_token']\n    return ReqToken\n\n# inittoken_shop 跟上面类似是商家端\ndef inittoken_shop():\n    resp = post(\"XXXXXXXXXXXXXXXXXXXX\",{\n        'XXXXXXXXXXXXXXXXXXXX':\"f8ccab8\",\n        'XXXXXXXXXXXXXXXXXXXX':\"273c5cdbd4cce2cc32dc5655685a6f4c\"\n        })\n    if check_error(resp) != 0 :\n        return\n    ReqToken = json.loads(resp)[\"data\"][0]['request_token']\n    return ReqToken\n\n# login_customer 客户登录\ndef login_customer():\n    resp = post(\"XXXXXXXXXXXXXXXXXXXX\",{\n        'XXXXXXXXXXXXXXXXXXXX':ReqToken,\n        'username':\"XXXXXXXXXXXXXXXXXXXX@nou.com.cn\",\n        'password':\"123\",\n        'code':DevCode\n        })\n    if check_error(resp) != 0 :\n        return\n    return json.loads(resp)[\"data\"][0]['access_token']\n\n# login_customer 商家登录\ndef login_shop():\n    resp = post(\"XXXXXXXXXXXXXXXXXXXX\",{\n        'XXXXXXXXXXXXXXXXXXXX':ReqToken,\n        'username':\"XXXXXXXXXXXXXXXXXXXX@gmail.com\",\n        'password':\"123\",\n        'code':DevCode\n        })\n    if check_error(resp) != 0 :\n        return\n    return json.loads(resp)[\"data\"][0]['access_token']\n\n# get_token_time 查看token剩余有效时间\ndef get_token_time(token):\n    resp = post(\"XXXXXXXXXXXXXXXXXXXX\",{\n        'XXXXXXXXXXXXXXXXXXXX':token,\n        })\n    return resp\n\n# printJSON 格式化JSON输出\ndef printJSON(src):\n    print json.dumps(json.loads(src),indent=2)\n\n\n## 开始主要测试业务\n\n# init token\n\nbaseurl = case['server'] # 登录\nif case['login']=='customer':\n    ReqToken = inittoken_customer()\n    AccessToken = login_customer()\nelse:\n    ReqToken = inittoken_shop()\n    AccessToken = login_shop()\n\n# 执行yaml中的test case\nfor testcase in case['case']:\n    if testcase['data'] == 'null':\n        testcase['data'] = dict()\n    testcase['data']['access_token']=AccessToken\n    testcase['data']['request_token']=ReqToken\n    testcase['data']['code']=DevCode\n    printJSON(post(testcase['src'],testcase['data']))\n"
  },
  {
    "path": "pythondev/.vimrc",
    "content": "set nocompatible              \" be iMproved, required\nfiletype off                  \" required\n\n\" set the runtime path to include Vundle and initialize\nset rtp+=~/.vim/bundle/Vundle.vim\ncall vundle#begin()\n\" alternatively, pass a path where Vundle should install plugins\n\"call vundle#begin('~/some/path/here')\n\n\" let Vundle manage Vundle, required\nPlugin 'gmarik/Vundle.vim'\nPlugin 'Shougo/neocomplete.vim'\nPlugin 'majutsushi/tagbar.git'\nPlugin 'scrooloose/nerdtree.git'\nPlugin 'wincent/command-t'\nPlugin 'Lokaltog/vim-powerline'\n\" Plugin 'hdima/python-syntax'\ncall vundle#end()            \" required\nfiletype plugin indent on    \" required\nset shiftwidth=4\nset  wrap\n\" To ignore plugin indent changes, instead use:\n\"filetype plugin on\n\"\n\" Brief help\n\" :PluginList       - lists configured plugins\n\t\" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate\n\" :PluginSearch foo - searches for foo; append `!` to refresh local cache\n\" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal\n\"\n\" see :h vundle for more details or wiki for FAQ\n\" Put your non-Plugin stuff after this line\n\"\n\n\" 代码高亮用的\nsyntax enable\nfiletype plugin on\nset number\n\n\" 颜色配置\ncolorscheme molokai\n\n\" 标签映射\nexecute \"set <M-i>=\\ei\"\nexecute \"set <M-o>=\\eo\"\nexecute \"set <M-p>=\\ep\"\nexecute \"set <M-u>=\\eu\"\nexecute \"set <M-l>=\\el\"\nexecute \"set <M-n>=\\en\"\nexecute \"set <M-y>=\\ey\"\nexecute \"set <M-c>=\\ec\"\n\nnmap <M-p> :TagbarToggle<CR>\nimap <M-p> <esc>:TagbarToggle<CR>i\nnmap <M-u> :NERDTreeToggle<CR>\nimap <M-u> <esc>:NERDTreeToggle<CR>\nnmap <C-c> :q<CR>\nnmap <M-o> :tabn<CR>\nimap <M-o> <esc>:tabn<CR>\nnmap <M-i> :tabp<CR>\nimap <M-i> <esc>:tabp<CR>\nnmap <C-z> :undo<CR>\nnmap <C-s> :w<CR>\nimap <C-s> <esc>:w<CR>\nimap <M-c> <esc>:pc<CR>\nnmap <M-c> :pc<CR>\nnmap <M-l> :w<CR>:PymodeLint<CR>\nimap <M-l> <esc>:w<CR>:PymodeLint<CR>\n\n\" find reference用的是新开窗口 new是上下分，vnew是左右分\nlet g:pymode_rope_goto_definition_cmd = 'e'\nlet g:pymode_rope_goto_definition_bind = '<M-n>'\n\nset backspace=indent,eol,start \" 让backspace能正常工作的配置\n\n\" 这是对PowerLine的设置\nset encoding=utf-8\nset laststatus=2\nlet g:Powerline_symbols='unicode'\n\n\" tab设置\nset ts=4\nset expandtab\n"
  },
  {
    "path": "pythondev/Dockerfile",
    "content": "FROM python:2.7.10\n\nRUN apt-get update\nRUN apt-get install -y build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev\nRUN apt-get install -y rubygems vim-nox locales xfonts-utils fontconfig ctags ruby-dev\nRUN mkdir -p ~/.vim/bundle && git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim\nRUN curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/pythondev/.vimrc -o ~/.vimrc\nRUN curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.bashrc -o ~/.bashrc\nRUN mkdir ~/.vim/colors/ && curl -Ssl https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim -o ~/.vim/colors/molokai.vim\nRUN vim \"+PluginInstall\"  \"+qall\"\nRUN echo \"en_US.UTF-8 UTF-8\" > /etc/locale.gen && locale-gen \"en_US.UTF-8\"\nRUN mkdir ~/.font/ && cd ~/.font/ && git clone https://github.com/eugeii/consolas-powerline-vim.git && cd consolas-powerline-vim/ && cp *.ttf .. && cd .. && rm -rf consolas-powerline-vim/ && mkfontscale && mkfontdir && fc-cache -vf \nRUN cd ~/.vim/bundle/command-t/ruby/command-t && ruby extconf.rb && make \nRUN cd ~ && git clone git://github.com/klen/python-mode.git &&cd python-mode && cp -R * ~/.vim && cd ~ && rm -rf python-mode \nRUN git clone http://github.com/vim/vim && cd vim && ./configure --enable-pythoninterp=yes --enable-rubyinterp=yes --enable-luainterp=yes && make && make install && cd .. && rm -rf vim \n\n"
  },
  {
    "path": "rsakey/id_rsa.pub",
    "content": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcTvSn5METOJUKXRr+Sa92eL2PRZlHb5tdKMublwgvHWaYNxJyXrxCARmBCy8VAo6rb/OeTsyuMWjZ7fVpxKc32ZkcBoIRL7YNkAonO8nHMSLvWUSKkwo7wfWubJhBQtDjvJ40WIcECrFkssFxbcl9YuUeZjdclmcylBkfwzdHJl7c3NtOjtCosN1RUDQZZJEJzKpSNcYtX/D1fPY9MovDWAeQ+xcLb6Gy5rnCTfyGgZDowyDpFNNe+j0a9G1zjlEww3GvOD/UUIf7hDaji+HjO8/sLfHjfAWWULStoEl/aUoofs93QVQFxCPOeYnZR/QL8MkfXQmwme7Nv7xBeqrt Li-jianying@lijianyings-MacBook-Pro.local\n"
  },
  {
    "path": "script/caidanhezidev",
    "content": "tmux new -d -n 'vim' -s '菜单盒子开发'\ntmux new-window -n 'runner' -t 菜单盒子开发:2\ntmux new-window -n 'tester' -t 菜单盒子开发:3\ntmux new-window -n 'loger' -t 菜单盒子开发:4\ntmux new-window -n 'db' -t 菜单盒子开发:5\ntmux attach -t 菜单盒子开发\n"
  },
  {
    "path": "script/cleandocker",
    "content": "docker kill $(docker ps -qa); docker rm $(docker ps -qa);\n"
  },
  {
    "path": "script/db.sh",
    "content": "docker run -dt --name cmysql -e MYSQL_ROOT_PASSWORD=1 -p 3306:3306 mysql:5.6\ndocker run -dt --name credis -p 6379:6379 redis\n"
  },
  {
    "path": "script/e",
    "content": "docker exec -it $1 /bin/bash\n"
  },
  {
    "path": "script/env.sh",
    "content": "curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.vimrc -o ~/.vimrc\ncurl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.bashrc -o ~/.bashrc\ncat > ~/.gitconfig << EOF\n[push]\n    default = simple\n[credential]\n    helper = store\n[user]\n    name = 李建赢\n    email = lijianying12@gmail.com\nEOF\n\n\n\n"
  },
  {
    "path": "script/freem",
    "content": "free -h | awk 'NR==2{print $3}'\n"
  },
  {
    "path": "script/k",
    "content": "docker run -it --name kkk -d -p 445:22 -v /usr/local/bin/docker:/usr/local/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -e 'PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcTvSn5METOJUKXRr+Sa92eL2PRZlHb5tdKMublwgvHWaYNxJyXrxCARmBCy8VAo6rb/OeTsyuMWjZ7fVpxKc32ZkcBoIRL7YNkAonO8nHMSLvWUSKkwo7wfWubJhBQtDjvJ40WIcECrFkssFxbcl9YuUeZjdclmcylBkfwzdHJl7c3NtOjtCosN1RUDQZZJEJzKpSNcYtX/D1fPY9MovDWAeQ+xcLb6Gy5rnCTfyGgZDowyDpFNNe+j0a9G1zjlEww3GvOD/UUIf7hDaji+HjO8/sLfHjfAWWULStoEl/aUoofs93QVQFxCPOeYnZR/QL8MkfXQmwme7Nv7xBeqrt Li-jianying@lijianyings-MacBook-Pro.local'  kkk:kk1 \n"
  },
  {
    "path": "script/xdev",
    "content": "tmux new -d -n 'vim' -s $1\ntmux new-window -n 'runner' -t $1:2\ntmux new-window -n 'tester' -t $1:3\ntmux new-window -n 'loger' -t $1:4\ntmux new-window -n 'db' -t $1:5\ntmux attach -t $1\n"
  },
  {
    "path": "st2/Dockerfile",
    "content": "FROM ubuntu:16.04\nCOPY st2ctl st2.conf supervisord.conf docker-entrypoint.sh /\nRUN apt-get update && apt-get install -y build-essential wget gnupg-curl curl sudo apache2-utils vim apt-utils supervisor && os=ubuntu dist=xenial curl -s https://packagecloud.io/install/repositories/StackStorm/stable/script.deb.sh | sudo bash && apt-get update && apt-get install -y st2  && apt-key adv --fetch-keys http://nginx.org/keys/nginx_signing.key && echo 'deb http://nginx.org/packages/ubuntu/ xenial nginx' >> /etc/apt/sources.list.d/nginx.list && apt-get update && apt-get install -y st2web nginx && rm /etc/nginx/conf.d/default.conf && cp /usr/share/doc/st2/conf/nginx/st2.conf /etc/nginx/conf.d/ && curl -o /bin/kubectl https://storage.googleapis.com/kubernetes-release/release/v1.6.1/bin/linux/amd64/kubectl && chmod +x /bin/kubectl && wget https://github.com/krallin/tini/releases/download/v0.14.0/tini-amd64 -O /bin/tini && chmod +x /bin/tini && mv /st2.conf /etc/st2/ && mv supervisord.conf /etc/supervisor/supervisord.conf && mv /st2ctl /usr/bin/st2ctl && chmod +x /usr/bin/st2ctl && curl -SsL https://bootstrap.pypa.io/get-pip.py | python && pip install &&  wget https://get.docker.com/builds/Linux/x86_64/docker-17.05.0-ce.tgz && tar xf docker-17.05.0-ce.tgz && mv docker/docker /bin/docker && rm -rf docker docker-17.05.0-ce.tgz\nENTRYPOINT [\"/bin/tini\", \"--\"]\nCMD bash /docker-entrypoint.sh\n"
  },
  {
    "path": "st2/docker-entrypoint.sh",
    "content": "echo generate ssh key\nssh-keygen -f /root/.ssh/id_rsa -P \"\" && cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys\n\necho generate user\nprintf \"%s\\n\" \"${USER_NAME:?Need to set USER_NAME non-empty}\"\nprintf \"%s\\n\" \"${USER_PASSWORD:?Need to set USER_PASSWORD non-empty}\"\necho $USER_PASSWORD | sudo htpasswd -i /etc/st2/htpasswd $USER_NAME\n\necho generate cert\nsudo mkdir -p /etc/ssl/st2\nsudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/st2/st2.key -out /etc/ssl/st2/st2.crt \\\n-days 365 -nodes -subj \"/C=US/ST=California/L=Palo Alto/O=StackStorm/OU=Information \\\nTechnology/CN=$(hostname)\"\n\nprintf \"%s\\n\" \"${CONN_RMQ:?Need to set CONN_RMQ non-empty}\"\nprintf \"%s\\n\" \"${MONGO_HOST:?Need to set MONGO_HOST non-empty}\"\nprintf \"%s\\n\" \"${MONGO_DB:?Need to set MONGO_DB non-empty}\"\nprintf \"%s\\n\" \"${MONGO_PORT:?Need to set MONGO_PORT non-empty}\"\ncat >> /etc/st2/st2.conf <<EOF\n[system_user]\nuser = root\nssh_key_file = /root/.ssh/id_rsa\n\n[messaging]\nurl = $CONN_RMQ\n\n[ssh_runner]\nremote_dir = /tmp\n\n[database]\nhost = $MONGO_HOST\nport = $MONGO_PORT\ndb_name = $MONGO_DB\nEOF\n\n/usr/bin/supervisord -c /etc/supervisor/supervisord.conf"
  },
  {
    "path": "st2/st2.conf",
    "content": "# System-wide configuration\n\n[api]\n# Host and port to bind the API server.\nhost = 0.0.0.0\nport = 9101\nlogging = /etc/st2/logging.api.conf\nmask_secrets = True\n# allow_origin is required for handling CORS in st2 web UI.\n# allow_origin = http://myhost1.example.com:3000,http://myhost2.example.com:3000\n\n[stream]\nlogging = /etc/st2/logging.stream.conf\n\n[sensorcontainer]\nlogging = /etc/st2/logging.sensorcontainer.conf\n\n[rulesengine]\nlogging = /etc/st2/logging.rulesengine.conf\n\n[actionrunner]\nlogging = /etc/st2/logging.actionrunner.conf\nvirtualenv_opts = --always-copy\n\n[resultstracker]\nlogging = /etc/st2/logging.resultstracker.conf\n\n[notifier]\nlogging = /etc/st2/logging.notifier.conf\n\n[exporter]\nlogging = /etc/st2/logging.exporter.conf\n\n[garbagecollector]\nlogging = /etc/st2/logging.garbagecollector.conf\n\n[auth]\nhost = 0.0.0.0\nport = 9100\nuse_ssl = False\ndebug = False\nenable = False\nlogging = /etc/st2/logging.auth.conf\n\nmode = standalone\n\n# Note: Settings below are only used in \"standalone\" mode\nbackend = flat_file\nbackend_kwargs = {\"file_path\": \"/etc/st2/htpasswd\"}\n\n# Base URL to the API endpoint excluding the version (e.g. http://myhost.net:9101/)\napi_url =\n\n[system]\nbase_path = /opt/stackstorm\n\n[webui]\n# webui_base_url = https://mywebhost.domain\n\n[syslog]\nhost = 127.0.0.1\nport = 514\nfacility = local7\nprotocol = udp\n\n[log]\nexcludes = requests,paramiko\nredirect_stderr = False\nmask_secrets = True\n\n[ssh_runner]\nremote_dir = /tmp\n"
  },
  {
    "path": "st2/st2ctl",
    "content": "#!/bin/bash\n# Licensed to the StackStorm, Inc ('StackStorm') under one or more\n# contributor license agreements.  See the NOTICE file distributed with\n# this work for additional information regarding copyright ownership.\n# The ASF licenses this file to You under the Apache License, Version 2.0\n# (the \"License\"); you may not use this file except in compliance with\n# the License.  You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nLOGFILE=\"/dev/null\"\nCOMPONENTS=\"st2actionrunner:* st2api st2stream st2auth st2garbagecollector st2notifier st2resultstracker st2rulesengine st2sensorcontainer st2chatops mistral\"\nSTANCONF=\"/etc/st2/st2.conf\"\n\n# Ensure global environment is sourced if exists\n# Does not happen consistently with all OSes we support.\n[ -r /etc/environment ] && . /etc/environment\n\n\nfunction print_usage() {\n    echo \"Usage: st2ctl {start, stop, restart, status}\"\n    echo\n    echo \"Usage: st2ctl {restart-component}\"\n    echo \"positional arguments:\"\n    echo \"  component           Name of the st2 service to restart.\"\n    echo \"                      ${COMPONENTS}\"\n    echo\n    echo \"Usage: st2ctl {reopen-log-files}\"\n    echo \"positional arguments:\"\n    echo \"  component           Name of the st2 service to reopen the log files for.\"\n    echo \"                      ${COMPONENTS}\"\n    echo\n    echo \"Usage: st2ctl {reload, clean}\"\n    echo \"optional arguments:\"\n    echo \"  --register-all                Register all.\"\n    echo \"  --register-triggers           Register all triggers.\"\n    echo \"  --register-sensors            Register all sensors.\"\n    echo \"  --register-rules              Register all rules.\"\n    echo \"  --register-runners            Register all runners.\"\n    echo \"  --register-actions            Register all actions.\"\n    echo \"  --register-aliases            Register all aliases.\"\n    echo \"  --register-policies           Register all policies.\"\n    echo \"  --register-configs            Register all configuration files.\"\n    echo \"  --register-setup-virtualenvs  Create Python virtual environments for all the registered packs.\"\n    echo \"  --register-fail-on-failure    Exit with non-zero if some resource registration fails. Deprecated. This is now a default behavior.\"\n    echo \"  --register-no-fail-on-failure Don't exit with non-zero if some resource registration fails.\"\n    echo \"  --verbose                     Output additional debug and informational messages.\"\n    echo \"\"\n    echo \"Most commands require elevated privileges.\"\n}\n\nfunction must_be_root() {\n    if [ $(id -u) -ne 0 ]; then\n        echo \"Please run this command with root privileges\"\n        exit 1\n    fi\n}\n\nfunction validate_in_components() {\n  COM=${1}\n\n  if [ -z ${COM} ]; then\n    echo -e \"\\e[31mError: Component is required! \\e[0m\\n\"\n    print_usage\n    exit 1\n  fi\n\n  if [[ \" ${COMPONENTS} \" != *\" ${COM} \"* ]]; then\n    echo -e \"\\e[31mError: Invalid component provided: ${COM} \\e[0m\\n\"\n    print_usage\n    exit 1\n  fi\n}\n\nfunction st2start() {\n  for COM in ${COMPONENTS}; do\n    service_manager ${COM} start\n  done\n}\n\nfunction st2stop() {\n  for COM in ${COMPONENTS}; do\n    service_manager ${COM} stop\n  done\n}\n\nfunction service_manager() {\n  local svcname=$1 action=$2\n  if [ -d /run/systemd/system ]; then\n    # systemd is running\n    systemctl $action $svcname\n  elif [ $(cat /proc/1/comm) = init ] && (/sbin/initctl version 2>/dev/null | grep -q upstart) &&\n          [ -f /etc/init/${svcname}.conf ]; then\n    # init is running, and is upstart and service config is available\n    # ! upstart running detection is a MUST, since upstart can be just\n    # ! installed on a platform but not used (ex: docker container, centos).\n    /sbin/initctl $action $svcname\n  elif command -v service > /dev/null 2>&1; then\n    supervisorctl $action $svcname\n  elif [ -x /etc/init.d/${1} ]; then\n    /etc/init.d/$svcname $action\n  else\n    echo -e \"\\e[31mError: Unknown service manager, we ONLY support systemd, upstart and sysv! \\e[0m\\n\"\n    exit 1\n  fi\n}\n\n# Next candidate for removal\n# after we implement native `service st2component reopen` (nginx example) for each component\nfunction reopen_component_log_files() {\n  COM=${1}\n\n  PID=`ps ax | grep -v grep | grep -v st2ctl | grep \"${COM}\" | awk '{print $1}'`\n  if [[ ! -z ${PID} ]]; then\n    for p in ${PID}; do\n      echo \"Sending SIGUSR1 to ${COM} PID: ${p}\"\n      kill -USR1 ${p}\n    done\n  else\n    echo \"${COM} is not running\"\n    return 1\n  fi\n}\n\nfunction register_content() {\n  ALLOWED_REGISTER_FLAGS='--register-all --register-actions --register-aliases --register-runners --register-policies --register-rules --register-sensors --register-triggers --register-configs --register-setup-virtualenvs --register-fail-on-failure --register-no-fail-on-failure --verbose'\n  DEFAULT_REGISTER_FLAGS='--register-runners --register-actions --register-aliases --register-sensors --register-triggers --register-configs --register-rules'\n\n  SUDO_FLAGS='--register-setup-virtualenvs'\n  flags=\"${@}\"\n\n  if [ ! -z ${1} ]; then\n    for flag in ${flags}; do\n      if [[ \" ${SUDO_FLAGS} \" == *\" $flag \"* && \"$(id -u)\" != \"0\" ]]; then\n        echo -e \"\\e[31mError: \\\"sudo\\\" required for: ${flag} \\e[0m\\n\"\n        exit 1\n      fi\n      if [[ \" ${ALLOWED_REGISTER_FLAGS} \" != *\" $flag \"* ]]; then # argument not allowed\n        echo -e \"\\e[31mError: Invalid flag provided: ${flag} \\e[0m\\n\"\n        print_usage\n        exit 1\n      fi\n    done\n  fi\n\n  if [ -z ${1} ]; then\n    REGISTER_FLAGS=${DEFAULT_REGISTER_FLAGS}\n  elif [ ${1} == '--verbose' ] && [ -z ${2} ]; then\n    REGISTER_FLAGS=\"$DEFAULT_REGISTER_FLAGS ${1}\"\n  else\n    REGISTER_FLAGS=${flags}\n  fi\n\n  echo \"Registering content...[flags = --config-file ${STANCONF} ${REGISTER_FLAGS}]\"\n  st2-register-content --config-file ${STANCONF} ${REGISTER_FLAGS}\n}\n\nfunction clean_db() {\n  echo \"Dropping st2 Database...\"\n  mongo st2 --eval \"db.dropDatabase();\"\n}\n\nfunction clean_logs() {\n  echo \"Cleaning st2 Logs...\"\n  rm -Rf /var/log/st2/*\n}\n\nfunction getpids() {\n  echo \"##### st2 components status #####\"\n  COMPONENTS=${COMPONENTS/mistral/mistral-server mistral-api}\n\n  for COM in ${COMPONENTS}; do\n    PID=`ps ax | grep -v grep | grep -v st2ctl | grep \"${COM}\" | awk '{print $1}'`\n\n    if [[ ! -z ${PID} ]]; then\n      for p in ${PID}; do\n        echo \"${COM} PID: ${p}\"\n      done\n    else\n      echo \"${COM} is not running.\"\n    fi\n  done\n}\n\n\ncase ${1} in\n  start)\n    must_be_root\n    st2start\n    getpids\n    ;;\n  stop)\n    must_be_root\n    st2stop\n    ;;\n  restart)\n    must_be_root\n    st2stop\n    sleep 1\n    st2start\n    getpids\n    ;;\n  restart-component)\n    must_be_root\n    validate_in_components ${2}\n    service_manager ${2} restart\n    ;;\n  reopen-log-files)\n    must_be_root\n    validate_in_components ${2}\n    if reopen_component_log_files ${2}; then\n      sleep 1\n      getpids\n    fi\n    ;;\n  reload)\n    register_content ${@:2}\n    exit_code=$?\n    getpids\n    # Note: We want to preserve st2-register-content \"fail on failure\" behavior\n    # and propagate the correct exit code and exit with non zero on failure\n    exit ${exit_code}\n    ;;\n  clean)\n    must_be_root\n    echo \"This will drop the database and delete all logs.  Are you sure [y/n]?\"\n    read verify\n    if [[ \"$verify\" == \"y\" ]]; then\n      st2stop\n      clean_db\n      clean_logs\n      register_content ${@:2}\n      st2start\n      getpids\n    else\n      exit\n    fi\n    ;;\n  status)\n    getpids\n    ;;\n  *)\n    print_usage\n    exit 1\n    ;;\nesac\n"
  },
  {
    "path": "st2/supervisord.conf",
    "content": "; supervisor config file\n\n[unix_http_server]\nfile=/var/run/supervisor.sock   ; (the path to the socket file)\nchmod=0700                       ; sockef file mode (default 0700)\n\n[inet_http_server]\nport = 127.0.0.1:9001\n\n[supervisord]\nlogfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)\npidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)\nchildlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)\nnodaemon=true\n\n[supervisorctl]\nserverurl=http://127.0.0.1:9001\n; the below section must remain in the config file for RPC\n; (supervisorctl/web interface) to work, additional interfaces may be\n; added by defining them in separate rpcinterface: sections\n[rpcinterface:supervisor]\nsupervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface\n\n; The [include] section can just contain the \"files\" setting.  This\n; setting can list multiple files (separated by whitespace or\n; newlines).  It can also contain wildcards.  The filenames are\n; interpreted as relative to this file.  Included files *cannot*\n; include files themselves.\n\n[include]\nfiles = /etc/supervisor/conf.d/*.conf\n\n[program:st2actionrunner]\ncommand=/opt/stackstorm/st2/bin/st2actionrunner --config-file /etc/st2/st2.conf\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2actionrunner.log\nstderr_logfile = /var/log/st2actionrunner.log\nuser=root\nnumprocs=10\nprocess_name=st2actionrunner%(process_num)s\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2api]\ncommand=/opt/stackstorm/st2/bin/gunicorn_pecan /opt/stackstorm/st2/lib/python2.7/site-packages/st2api/gunicorn_config.py -k eventlet -b 127.0.0.1:9101 --workers 1 --threads 1 --graceful-timeout 10 --timeout 30\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2api.log\nstderr_logfile = /var/log/st2api.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=5\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2auth]\ncommand=/opt/stackstorm/st2/bin/gunicorn_pecan /opt/stackstorm/st2/lib/python2.7/site-packages/st2auth/gunicorn_config.py -k eventlet -b 127.0.0.1:9100 --workers 1 --threads 1 --graceful-timeout 10 --timeout 30\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2auth.log\nstderr_logfile = /var/log/st2auth.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2garbagecollector]\ncommand=/opt/stackstorm/st2/bin/st2garbagecollector --config-file /etc/st2/st2.conf\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2garbagecollector.log\nstderr_logfile = /var/log/st2garbagecollector.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2notifier]\ncommand=/opt/stackstorm/st2/bin/st2notifier --config-file /etc/st2/st2.conf\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2notifier.log\nstderr_logfile = /var/log/st2notifier.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2resultstracker]\ncommand=/opt/stackstorm/st2/bin/st2resultstracker --config-file /etc/st2/st2.conf\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2resultstracker.log\nstderr_logfile = /var/log/st2resultstracker.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2sensorcontainer]\ncommand=/opt/stackstorm/st2/bin/st2sensorcontainer --config-file /etc/st2/st2.conf\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2sensorcontainer.log\nstderr_logfile = /var/log/st2sensorcontainer.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2rulesengine]\ncommand=/opt/stackstorm/st2/bin/st2rulesengine --config-file /etc/st2/st2.conf\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2rulesengine.log\nstderr_logfile = /var/log/st2rulesengine.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:st2stream]\ncommand=/opt/stackstorm/st2/bin/gunicorn_pecan /opt/stackstorm/st2/lib/python2.7/site-packages/st2stream/gunicorn_config.py -k eventlet -b 127.0.0.1:9102 --workers 1 --threads 10 --graceful-timeout 10 --timeout 30\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/st2stream.log\nstderr_logfile = /var/log/st2stream.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n[program:nginx]\ncommand=/usr/sbin/nginx -g 'daemon off;'\nredirect_stderr = true\nstdout_logfile_maxbytes = 200MB\nstdout_logfile_backups = 20\nstdout_logfile = /var/log/nginx.log\nstderr_logfile = /var/log/nginx.log\nuser=root\nnumprocs=1\nautorestart=true\nstartsecs=10\nstopwaitsecs = 60\nkillasgroup=true\n\n"
  }
]