deepin-boot-maker_5.6.12+dfsg/0000755000175000017500000000000014122571023015741 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/deepin-boot-maker.pro0000644000175000017500000000034614122570751021777 0ustar ephraimephraimTEMPLATE = subdirs CONFIG += ordered SUBDIRS += \ src \ linux { manual_dir.files = $$PWD/src/help/deepin-boot-maker manual_dir.path = /usr/share/deepin-manual/manual-assets/application INSTALLS += manual_dir } deepin-boot-maker_5.6.12+dfsg/copyright0000644000175000017500000000146014122570751017704 0ustar ephraimephraimCopyright (C) 2011~2015 Deepin, Inc. 2011~2015 He Li Author: He Li Maintainer: He Li This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . The backend is fork from unetboot, which licensed under the GNU GPL v2 and above. deepin-boot-maker_5.6.12+dfsg/.clog.toml0000644000175000017500000000017214122570751017647 0ustar ephraimephraim[clog] repository = "https://github.com/linuxdeepin/deepin-boot-maker" from-latest-tag = true changelog = "CHANGELOG.md" deepin-boot-maker_5.6.12+dfsg/INSTALL.md0000644000175000017500000000251314122570751017401 0ustar ephraimephraim# Installation If you want binary install, please see [README](README.md). ## Linux Platform ### Development Environment - Release base debian ### Install Build Dependencies ```bash sudo apt-get install debhelper python qt5-default qt5-qmake qttools5-dev-tools lib-dev lib-dev libdtkwidget-dev ``` ### Build Deepin Boot Maker ``` mkdir build cd build qmake -r .. make ``` ## Windows Platform ### Development Environment - Windows 10 64bit - Microsoft Visual C++ 2017 - Windows SDK - Qt5.8 - Dtk ### Build Qt static ``` configure -prefix "C:\Qt\QtStatic\5.8\vs2017" -release -platform win32-msvc2010 \ -no-qml-debug -confirm-license -opensource -static -qt-pcre -no-icu -no-sql-sqlite \ -no-nis -no-cups -no-iconv -no-dbus -nomake examples -no-sql-odbc -no-compile-examples \ -skip qtwebkit -skip qtwebkit-examples -skip qtactiveqt -no-openssl -qt-zlib \ -qt-libpng -qt-freetype -qt-libjpeg -opengl es2 -angle ``` ### Build Dtk TODO ### Build Deepin Boot Maker ``` mkdir build cd build qmake -r .. nmake ``` ## Mac OSX Platform ### Development Environment - Mac OS 10.12 - Qt5.8 ### Set Qt PATH ``` export QtInstallPath=/User/yourhome/Qt5.8/5.8/clang_64 export PATH=$QtInstallPath/bin:$PATH ``` ### Build Dtk TODO ### Build Deepin Boot Maker ``` mkdir build cd build qmake -r .. make macdeployqt src/app/deepin-boot-maker.app ``` deepin-boot-maker_5.6.12+dfsg/LICENSE0000644000175000017500000010451314122570751016761 0ustar ephraimephraim GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . deepin-boot-maker_5.6.12+dfsg/debian/0000755000175000017500000000000014122570763017175 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/debian/rules0000755000175000017500000000041114122570751020246 0ustar ephraimephraim#!/usr/bin/make -f export QT_SELECT=qt5 include /usr/share/dpkg/default.mk override_dh_auto_configure: dh_auto_configure -- DAPP_VERSION=$(DEB_VERSION_UPSTREAM) DEFINES+="VERSION=$(DEB_VERSION_UPSTREAM)" LIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) %: dh $@ deepin-boot-maker_5.6.12+dfsg/debian/copyright0000644000175000017500000000227314122570751021131 0ustar ephraimephraimFormat: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: deepin-boot-maker Source: https://github.com/linuxdeepin/deepin-boot-maker Upstream-Contact: https://github.com/linuxdeepin/deepin-boot-maker/issues Files: * Copyright: 2014 Li He 2015-2021 Wuhan Deepin Technology Co., Ltd. License: GPL-3+ Files: debian/* Copyright: Deepin Technology Co., Ltd. License: GPL-3+ License: GPL-3+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". deepin-boot-maker_5.6.12+dfsg/debian/deepin-boot-maker.lintian-overrides0000644000175000017500000000020414122570751026050 0ustar ephraimephraim# the deepin-boot-maker manual pages are in the deepin-manual package. deepin-boot-maker: no-manual-page usr/bin/deepin-boot-maker deepin-boot-maker_5.6.12+dfsg/debian/watch0000644000175000017500000000030414122570751020220 0ustar ephraimephraim# Compulsory line, this is a version 4 file version=4 opts=dversionmangle=s/\.dfsg// \ https://github.com/linuxdeepin/deepin-boot-maker/tags \ (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate deepin-boot-maker_5.6.12+dfsg/debian/changelog0000644000175000017500000000161214122570751021044 0ustar ephraimephraimdeepin-boot-maker (5.6.12+dfsg-1) unstable; urgency=low * New upstream version 5.6.12. * debian/patches: + Remove 0001-fix-geticon.patch + Remove 0002-fix-spelling-mistake.patch + Add deepin0003-add-dtk-theme-env-values.patch -- Ma Aiguo Wed, 22 Sep 2021 13:45:05 +0800 deepin-boot-maker (5.6.5+dfsg-3) UNRELEASED; urgency=medium * Trim trailing whitespace. * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository, Repository-Browse. -- Debian Janitor Sun, 05 Sep 2021 13:50:53 -0000 deepin-boot-maker (5.6.5+dfsg-2) unstable; urgency=medium * Team upload. * Upload to unstable. -- Boyuan Yang Fri, 21 May 2021 15:51:46 -0400 deepin-boot-maker (5.6.5+dfsg-1) experimental; urgency=low * Initial package (Closes: #872632) -- Ma Aiguo Fri, 19 Mar 2021 19:32:15 +0800 deepin-boot-maker_5.6.12+dfsg/debian/control0000644000175000017500000000214714122570751020601 0ustar ephraimephraimSource: deepin-boot-maker Section: misc Priority: optional Maintainer: Debian Deepin Packaging Team Uploaders: Ma Aiguo , Build-Depends: debhelper-compat (= 13), python3, qt5-qmake, qttools5-dev-tools, qtbase5-dev, libqt5svg5-dev, pkg-config, libxcb-util0-dev, libmtdev-dev, libxrender-dev, libglib2.0-dev, libfontconfig-dev, libegl1-mesa-dev, libstartup-notification0-dev, libdtkwidget-dev (>= 5.2.2) Standards-Version: 4.6.0 Homepage: https://github.com/linuxdeepin/deepin-boot-maker Vcs-Git: https://salsa.debian.org/pkg-deepin-team/deepin-boot-maker.git Vcs-Browser: https://salsa.debian.org/pkg-deepin-team/deepin-boot-maker Package: deepin-boot-maker Architecture: i386 amd64 arm64 mips64el Depends: ${shlibs:Depends}, ${misc:Depends}, p7zip-full, mtools, udisks2, syslinux [linux-amd64 linux-i386], syslinux-common [linux-amd64 linux-i386],genisoimage,dde-qt5integration Description: Simple tool for user to create a boot usb stick quickly and easily It's designed to support deepin system iso, it can works for debian and ubuntu iso too. deepin-boot-maker_5.6.12+dfsg/debian/source/0000755000175000017500000000000014122570751020472 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/debian/source/format0000644000175000017500000000001414122570751021700 0ustar ephraimephraim3.0 (quilt) deepin-boot-maker_5.6.12+dfsg/debian/patches/0000755000175000017500000000000014122570751020621 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/debian/patches/series0000644000175000017500000000005314122570751022034 0ustar ephraimephraimdeepin0003-add-dtk-theme-env-values.patch deepin-boot-maker_5.6.12+dfsg/debian/patches/deepin0003-add-dtk-theme-env-values.patch0000644000175000017500000000133014122570751030077 0ustar ephraimephraimFrom e16bfe006b90801ab8fa13acacc4497012e70ba4 Mon Sep 17 00:00:00 2001 From: Ma Aiguo Date: Wed, 22 Sep 2021 14:32:53 +0800 Subject: [PATCH] add dtk theme env values --- src/app/main.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/main.cpp b/src/app/main.cpp index 411ad72..976db6f 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -81,6 +81,11 @@ int main(int argc, char **argv) #endif #endif + if (!QString(qgetenv("XDG_CURRENT_DESKTOP")).toLower().startsWith("deepin")) { + + setenv("XDG_CURRENT_DESKTOP", "Deepin", 1); + } + DApplication::loadDXcbPlugin(); DApplication app(argc, argv); app.setAttribute(Qt::AA_UseHighDpiPixmaps); -- 2.33.0 deepin-boot-maker_5.6.12+dfsg/debian/upstream/0000755000175000017500000000000014122570751021032 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/debian/upstream/metadata0000644000175000017500000000042714122570751022540 0ustar ephraimephraim--- Bug-Database: https://github.com/linuxdeepin/deepin-boot-maker/issues Bug-Submit: https://github.com/linuxdeepin/deepin-boot-maker/issues/new Repository: https://github.com/linuxdeepin/deepin-boot-maker.git Repository-Browse: https://github.com/linuxdeepin/deepin-boot-maker deepin-boot-maker_5.6.12+dfsg/docs/0000755000175000017500000000000014122570751016700 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/docs/deepin-boot-maker.png0000644000175000017500000014014114122570751022711 0ustar ephraimephraimPNG  IHDR x+˟sRGBbiTXtXML:com.adobe.xmp Screenshot n.@IDATx Uy 0jР[/q59D%㩘ӣMZ|iՐ`O9s4mE`"6`H# s3w3Ì^X/,398N`ߣrT}e78vo'}'" " c8Ȣ0VI|| 4 &0n- (7C͋x&0ޞxwCc9 } Բ{ }s!t" " J`[dQ:E`?O[ƬetqI!jVD@N2cV0Vюh7G'" " Bq 9iݢ aXjLD@D` 95grgwk_" " ',(wB% /" "0*wƌ?V(CcmGtn/ݾ" " p /=P,?1ƁƑK A,PpL'8KOBi!O~2-.4 -h??p: GSP}P O oB-D M!-2E@D@Dx $ % SlaO;Qt~y!`x(P U`˥id8=e%>ڂs!y!-@HC" " cp t;x}iQ,zG>ڂqy!ܟ yɛ.v4ɲ @ԅi!ܟ~C^1 W1 &XTIpOM勀O`3=}'77bIpO]:Lo8NJc!0Np 3tɶi:XN '񉸪qU0PxH/" " #I -Nt|WK4G?\JGEON:']IIg>{]|ʔ)VTTL=W" " "0J:;;:&xg:ˌ2s%egzRj* %~ {򗿼vҢ '" " eWmmkڞ߼y I!|'á\7P~(w4:`}p!iqվ+8!,'" " ={3ϼ7^\ zO1vrcS ½6BN~9>kN;$'" " )S(Ӹ2.Ⱥ d.LHM${pFR&CZY?dGK&a ?*++Ύ.ȿp#A6}懴PvR7pB8BCZ(;lZHr!\gZV'r٬WؼPAk@b>- 1y| y  m!H0tLO_KH aJqTnSwaIGՌ p-)O'B+4?8cqaoei!>t㣒k>`gsmz9,D@D@D` /N䐘vɴd8Y.LRz) Ғ~?xww]ro[c>i[iݵʲ0$*$" "0B(낌K=.Lp+ KDdZ'BcK eSIе"O=g+ 2J~IyB&CkcKpg8ēJ@;;GsT~<+++LƯI5 ֟ҊٵxPp(<\P +*.lo_?JBhXB !_D@K/tH3g-YdHeZ}vm Z(\B* ARi?a_*`ykMpOV ?nElu/hAG%MF{ԯ;ϽR R7N0eArA#ybe '.e ;A]0c %⸆ij͗7YkE}ڢW]֗i}@JBJJF!zD?Z. $)CzOu|J6$6s~}F;qk^ED@D@D`C?fw!>B]h* fJP?{㚄wϱ|) eeeq" " "p28ҎJ+w\f^lO=dm?3Z9kg˒p\dUYD@D( du5!?Y.7( @R`* 'NaEtCATJ.Fb'ZQHC,> t#U" " GG`e [p4pTVD@D@Nv(BYf( UWɿL 07D@D@D`5a<<ƃ@|+" "pRm<( '7G7-" " c)h " " "0F HQ%" " cXP(o,D@D@Dx P'K?>\,( C .(pitѫ7@roQ6Qqu&" " "08(mjp*!" " oOcYQx{]8" Ea}X6) M\8"0UzqPE@D@L`˷(  /) Sۊǩ% Eaxy5x[8u3" " "0( /O&" " o+RVnFD@D@D@D@DmE@7h^;􁴿jyguȵڭq{ /jMQ{;okng[s5FXN{{G9M_"vvMTY|^s >קl3Knjh֗~Z=e]vڋ{^n[v73o{m{7~/j*#p'BW>IB^+yFWwf/7 @8|#؃-`O}UvwD9|-/SK٩(tDJUɞ6mxVM!#w{l#r_mߺJ!Hnܾg 5_~F56k{;UUi::?]?λj87r?->pyvXOIec2kYh#-Xm`%~Ic=VYxb>i܎YAy]1!!Xheb3m %HD{vY@xն|{V_kp{xSi|.>:g-Ϧ Zk. V|0ꦦDTߋk8DvQ'wƯ%,|y1qѥd+PGS ؒ {Q؇/G>Vp5 +kpM5Nupu>CQn./X=y~Z%w]%vmfr>Զ5;ȗY%i٭}*ȏo]>ߍaٖ-K~nD۲:;AݜݸTwOޞU(ֲ%pGqs-4]<Ug{v fFׂg (t{dW/kٚ]1WpmB-;PcEBv. ߙYH B_*rPᢌ; ee e!e"e#e$e%e&e'e()/V>Quo!EvA/rE`(Kϵ`shnStoi*{#T#W:غν:š{7o~Z[R{Xl}7 em}[7۞^w:~HO⮆Q9c[]iKރ':6.Xn|ʕ)0}׾~Xk¨mY垼}߳)bOv|)_:9cٲekvց٭r֥yeo|Ʋ(IJ;-P /qg?i5ᙹu_;lk>o}/t~!kD]`fgNvO/,E?-̚ ]eO H?-葷ػ&S͹=ɪ0?Y2v/`hos>ְJ[q]{/]jf]=βorۖҿ^W>bҐw>ؚ/ѹjd)30&,Wekw_;3ngDn ^.Bؾ O024B~jg؂/-z1`7Qn[q7'|p9Kn>?g(Ur=oC|WlqcӶV߳uU79Sl[5-lOɗ#n|еږ{xᅵX̻C$,kͶwn{ WԦ >^95iKBˢ0&ӱ6Lv߾Spt_vӆi3fxB(.*?! k)=ؔ]XK,m!ȫm]3EbAF fUI3dPhˎʍmr>E!#^p-;d7mڜݼ` ]-x^[p(dWmڒݲe7mnw}Ǯ ݘDaּ+Póҟ%GPJyqm! 1Ce8*Ǣ@ߕqaQ8 KQ8_e[ྃكՒ=kt4hAnOȟ 5ޖݲvUvժUիWc4SZ+k7ɫelgWl+T2ٵ p1H?(eWG&t >-Aq;XcXGyҲ'jJK6lg-te[͞u^a4@e}-*aTP /INRf{<mϮ[, WnX.׆ kŶ em-,(3l]XEseV=˹?ڲEMMXPMƅpKnpr"mw|~YsZn1{K7Ye6[kXRfey~,]9}QLaVAU3nm-6]'3ên. =[6'o[ndKָUS?6yw7]b3b.?l̶V|J+avڪ{Ned2O>7g3{:lwM%f1r)TmPmziaMS..R[zM&8i sů.^Rlv}CVQݒr_k=!w'ĊڵD؞zu|cdWRq^F|ug[d#~Qbiv߸]ECu]~վɕ`-N|36b*^m[mW,u} $lac*x1u^gsKf=nsg'JM-[mzMx7G̰݀8?{l<{r^=ؕ4uJiw^w?M &۹瞳|քQOqyXmvuWgͷf.W4|YeuYmVSXю=ePl mݕcWfZK'8ipeU~X@tpȨ {ݎ 56sB_ykGҪiVXw>eWl.㕓a׿`\ W|5fYk[F0d$]Ɍ]L# ҧmwpn^Ηwc`&{<#QȽGu.e^1 ҿ,޽RB(MTɉݰ~qF,`l?ؼY%نUl6ԖÊp ¹^lbo=bDs>pO}&v]܋e7,?mεnA^a_^SSm\iH>Ѐ5vQsDU]f'ﴋ 7߽®ݞ}p[m'vv'BS.ˊq8op8V]TdV+챭{!|woxiV{_(غ m]|7;n'/V>bFkyY>t3 Wܴ(lx=ʷt*M/WoDE%}m#:.Zg1" EaHkopOW|Jf?*Gp&@jiQ>])KJgG=ٵKsy[.vC;$7¡}E7)=S;E=^  ɝ-Ӹ2|'?K'3xC%Ixb9 ̉Z _+zdgO?⟴C"L1a\Í7?Tև nbǛ]~vZˇ: Iۭ욵iƿey vm=&kfX߀14,\l5r'}n\8`'󮢢 )mxb(s5CM=Q'/?v?m\+j5r5bh^=-.S>vi]z]힗ܺV^aSk{7`?><@2aZZ[xB;cxﶟ9N??W--|X@7;:G~&_'ݖJm%GWoN_' WY]ru8\sg_P+d_p; λ˖a mkuCΚ,^춫GHIꙥ݉g؃ċB!kD፹ |_䎝\цjK5&XE_@k D`dYa; Ϛ}޲ }ٍ/?_o׭31} 48QMF`O/5Vx?Kxb5˞xz=)..<'10P f"+*J\.~ݳWS%7>֯т%_XJ~G8k֞\<]7mdq >sNYiY;eK;l<~WM[l%QclņͶuL0ǷlddЦv'=$,\eKr|Vϸ.7|gOpB"0Ng$N )pb/l׬Jπ͎22F$^i^wM~޷˧G9GO`ힹzCWNC55pȸҷ\ viE"h}KR.)N%_;N,k#1܄h^8T㾽UW̰Һvh\Y^*e2וL":oݞYrmhw I?sBݵKq7=իVj-Z٤#f3>eڂEO=vSbWJ?}Y^{ٜ [n*{򏯷۱H%f]k-'7]vt6?}~Sm$j!9r8f_jNG! )\ܖW#?6{>މGć\`vmZOOPS^M{:܆=֟h}(k.)(ۓ7_0>8G4.P6)Ɨ/ Vm_̕ +%%T ޽O䊔GAبf4NSS#W ϒHN>l?zG3Ǟ.YȲ"GtcV$1{Gl7sTGyn>}ixq!w}9Pb}-TvQZo\`+7`_'3+3~n봟hmm?]<ǯY4rY {~kVXVN) mu_-zr8efŷnWN{^;1^Z{΀EN/:,k^`5i2Yk\bݓm~sǽf&Y3-`]֊OtK;ͻv'l)?ucnM+em5#[n|E>]n?!XpѽiFoy =SvWݐ8j<۶EsXV+o2g?7/ua#6b"ڰؾg le!{s=k_e^=ſ| 5p>|U _  'oNupſ  ѫr/ݐ }UKg,]]i{[WN[)w [Wu>1;VuYlok 2te^'-mȵnj?uz SgU;Ɍ8ɰؘj7VoD8<ʼn!6'̝0k~vBߛc EGYw.>@BDFHJLNPS^A1dTwRjy(vkmEÅv[BV(=c?Cљ~E s켼G5< yђ y/qݖڿ|`+^ڳͷ3ԟE >dgEO6۸1W?>/ ԲcdNR-,]m?yȻd(-|u@2W0nRjү̷oaSXdXT*UlSCW_vgYg-\n3{>>;V롍Vs4nx*]_9 77[/&w[9߱y ]Kwl S3;{\z[[>j燆 ~MxYV>svmklׯ>Vl-E/r_RE P &˅pgQbPku=uX2 K/9؇5l>]t݇,p/餦/ۚoob׿mo_`y{Lϋw7ڳ랷voUPd,x^/;_*^O )üq8~2F\48!,?O pKB (_D@D"0^ j9(H`Bb|YFnED@D@&D@D@D`8n˿aj$" " "0 pܚ˘#"0xRH) ê x #(#xiEaDw݂ #( @aR sQ#j0^RNtu)" " A`D-qIQHQ\D@D@D &p"QՈ;V@D@D@D`N0A!0VYN^E@D@.1!NJ0v?&LD@D@NbRN_." " 0!勀IL@IE@D@D`0R#|8 HQ8?|ݺ F@`/" " '1) '[SĹ i"RD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD HQQ( " " "& E!MDq" " " iRD !D@cQQѰD@) c3шD`XR ip0VH(,?YVaO@4B2gŐFpP&-C~d r_(KpA)"әLw[[YWY&TTcS%*(J6pemJYZYdʲN(8!a|E@) HE A)uifۋf(PY1,C)(da)@إC9Z+ePu+/ս6cBfԘՔy Bq1ZOYؤ0 c1i"З@ A t:"ak+N "PM\L(-rI,p"Sz8)v`;ptա~+:y=k~ףۓ=Vv CP¸0L"ch\"P@ `=Mb{S dgTi>>N52ŝRD2%HQDҨ8d׎tef9d7If$LQP)H+ >08!c1hp" XNu%r+ xa&UU<|dg0БPHJ'Py1J@%p(>`@]gviVWMOIЧE C"0& HQ%9A2a^TxKls^(8?2kM(b'حE@IDATY/}Z *B?(ZTkT;lӉ|`uhx V?vCij^{ fL-wcjpIe͸4) $!'chD"JBPb%f5b!@vAA຃ANN;ˡ `Ls~Ō<2DeCZb~ cbb#PdmOc54; O, B.HYp~" EaL}`E؇l,_'$;EP(|w:Ʊd;!_)R+h ٶ`O2hXz0Xbja[b{^򖅤u,eD`0v> D 0[Ne>t|bMnʀ^P$ƈZT8|Z{lWy>, ԄdYSwf,Ec.Z%JWSf?-@>00Ө$0=Юl2CR6P.Q橍%4W|W>l3(LTxl굽XЍN X獗md)%־ۺ&l˘p.a>F * qRF:JBPhn߆9 E|vEOxšfAx{t./_"A ugy*N3re̕ey^Bk{%ᤒη,ZvwRtA9/e!5RF :@k~}eLy"~;=e*/seB=3 ٻȈ>z"E.8Xi9+oY\>zqiʳO7DܵbuqTBdU …D@F, #WM@@nyQaf@sanGzA@ FA+ P 15Pš˸cN;z}d{8)~yELH)a;\_rt}Eee}{͵@eaUЩX eaƆ\*r" #D@U"P@P5Git,^cvNjlO9Kڱ[b4 Z}} BN9py! &:bBQ˴@9qdPoGJJfM:/qjx€oguY&Q@/Be'A1 ^Q5ԃ@Q" Ea@(КД)_bB< xh@e)j,@xs:1wetkmn#]kBV,t;//ЩЕt&M0ɊK>[^ةpt 9N8)( CQnF;VYJNF"~NzAIք-qf4W@!&E|NІȖ-(7׾S PMCi40+E, -He![-4$@Pr"0( ?S(}Pe#XIXxÎЧə 3ʁqY>3-OA@]5a+CnA.T*J]VN+;SB GPeX;Q|؋=8[Ӻ:1kCb{bK€iϱZ+UMCW`I` uÍS l-u .,:(znXKJ㠨Jʉ) #V-#YO;  }HQ6B em孃xESR+/Ú>Қ*( yo+).`Օ;BeBX\RaePz80NoELě+ʀjv xe9 .壴)(m=8Ve cQ @9~RZ>(xQY؏iZj*9APƅ^1Ol3/QbKw9kwWX/_T ȋX }PqV^ T[iuuhv;Teux3E9'E_scM|G]l@9%~};O(RQcq좺8S}~WbDV" $LaWB_5) n #)y8gLE§1 eD, g݆B@m8g+v` I5NIzxx$d6kkobHndthe;,E!lud>YPt]B~20X[|FT #и@P~K'XʁT$22e-<)LPxnwO5+ AFI%P&ԩ x@w>84\NGa qgavr^Iʅ_ř+I!" F_D@F|E,xr0"* 2`?)sy:j~=\\-'|Gpڰe2X BL&ri Dֆ|V =P"H!Z0B`լ|ҥ߆%~" #N1KyHa֡vuBhvfpfBS BoO[>kF ) oP0_5v*N H׉H6n+qg[l59 8"(^ 8!CpWC3o7>4Syc84N?tZW&زpwY("@L;hZ\*/d.p(N͋}7|(ܖ[&K\!+. '|* P0(M`2*J݂F.jdxZ;KX66&Ps]T ([q~DpA/BDM ͱl m1Dvg(pPXJPX,wE- ; ~8EPƊېRFZX9/]aQ"epP \3 Wo7N_,҂AJWu\XX(/_ж/OXQ}*~Tx<}WN3AND` 1ݪ89VpΚ '\S J9) e 2dsg8!ͩ !Xˣ8..Hu#@) !OCsT?߷X@pC -9'x/@DRQj ݅ܮ.(C=QRY\%ѻ=%Ilh#p`z$b);a -NLpbdFZ'|eWnꡘoqRF:RB>;+AyIE ˱N JG >d@*pz!_Tqq# a$2&˅9A%B/ne{nk //4>J<-ؾCND` "#ލ:@rK"e΢A{a4N9SeX]|,C0&Waxyr{[T$8nFv&ۦ+r`)(9 ^ A;rqA)paܨ4 't/*m 4" O`hߏZJx"="?}w1" \^>J W[[mG5՝ +$`#iǡLn9lv$p d5 -G:q?=lWb̢"HN/y6 >2 LDS"\/<,x0t"5 < [ND` HQq@ y_.jJGX A$+c-\绲LcoY(Ż*`˞XUim/uFoe𹹟ZHN/TmTcNW ۤUSPHn迤 Xt>o"*q vъ10>" O S2 EO ( ^Q aV/_<݀0:tCTODMpPغݒ@=7VBbWD]\ h]:APv528aS|$Ԃn .ʂڢB3މ{T^SVND`doBIE_藿Ni±8LsSȧR'LFwNp>DV8nCaWEqGeuNC t (ĩe F:zQQߧtRZe=VY)q P A<_F1f A4wL'7WPS7 WDłNufLt(@Ngs cPbUqAďVآbS 0 p*qFe(XEA ȉ0Pդ$ Fo[,$9 \ i/'dcL0=_z!CdB>S5|>FYcApؓ1mt6Q8rr'9vhCn#0<R@ǝݘ*rWEG6q]eO&,Փ*u|do\ a7Vg0}_Q鹲>"(02\ժu䕭`!F >NuX>-Mm \YGND`dв)'"0ܓ9ڧ'gp, \ʽn(4)L2NТ"YCBu٧ل,B9wA4mvFDu\h ]Y<?ni8&꜒@^Vƅ"\{T\,B޸|P f r$SECD`X Ȣ08՘&|EwJk8B• SxxvyY X+OB|BG|l+gmqaKtxэ,@pל2*kXJE9kf1]*2.B[+ϺT8`'.ƶH*!(8@!@@(@V'/*ZH~xn9ͪߪV:UpxG M@&} <ա2Ge+O'U١p!?DeEw,cpcreP9jr&?V&~Q*꿔:%`|I!N?o&* G 323[fL7r" O@3U"ЇXlT,tVu[^+7d( n:WB |"ŝwQZ\'[Pv`bXGBšV+*jRAY) У__ :2'!Hƾ0Β`B#'A@hPV'5*IBP,40ªP)ӼٞB?v6weDs5vPAt,[/*bP3Jv|Fcf-9`Yhǂ3kW~ցf`Lиrp0D՞ @JR!^ԍ Ӡ(~JxRhҹ'h%we)4O˸S+BۈVf#•c>%KQwçccC t_76;3M' RND` HQyA 6^ICMp!v?XglB jJHy*GA GS@mg`w^scC=9 ysxx n ^1m8尲wS RHUNFE@  GE:Nҽuʫ`U"3JO#LE^9!p<0=XW00ݥG˰gt`9ޡT!펮.\?=P&hM8U#NVޙHU\{?̾BDŠ}!qG bQ 1(~>h1LLGРϸD[Ph$%.Ee}g;v{z_z眪:uwuoV$nH@# l]]h(wQVWuA~2p`? ̃p]ßpp6Z\Ɉ>uq?@&i+ezy=]Fm_Z.^(- +bܗ mvEX0@ zwz64HwZA]j؆245R,v)\EV)^WM؆eمw $7 p[)׿OpkNY>VmUѼ5 XL0_J1˓C^Q.Wna"^ @M@TA.~(h _B'%т<٦w,΂,6W&(#:W*`>/QP#p&tq~5`t-Q;B8P5g8h݌R0RVv=/ @w`݄EC8PhAC*&ȯ;ʏ#6/ۢl;肭TCm:Co6¾hy4ˡy =+Z°]4@cP"fyq~Ac[WSrwn4)K& '@؉-r,*L~E~j~뒑-@\@i]HP~pSx! pQM ;~Կ'ҾYYlחejg[bۈM` ڀ$HhaTK"; ˖{8l7A;mD$(t?c@1tsU`AD-݅Jf,쐝!)業vtiY-&Uێ.-vq !>$ha1X#eU?1Q Ah y6rYڥLwyLEAE}ORzGŇ߼Q$Ļ%D=GBϱfO$C ,PÁKU졨Vy Sq PejYdm/R&1 m; 9V4Eԗ'zW8ЯHh7-<(ڿۨouxElV rþ-e򋻓`A AA2@`г ,D2YY[ELKtE]Rdq.̺(KaYE_cm% "M4r}jbp!KS0_ ) )S_&1zP÷oF$} (Xp`2HzC͎H > EE*P'[%k.8rh xD<}12p6b x#,(ijR1_ Zd[%HX%}݈v+?è^I`IAiDB 4hFCڎۚwGu<{@]ϕA,2 W,ŸEYƾ)12,АHJ! E\Z*USk&5@٣?X~ R$7-Z𢡄  @`л; lWA3~$˹M(M݅*w@\/qE_nIA`;Zp¶H.9Ww؇KCO1L|$K@"!B6C)4Hp ">Ug"y z9{$ n`A:6U P ?W-wVZP"K巜5`\;4=,A|8x>j L!I%m}Q/6ɩ> 8l'("% 7. hRD${({L;H, ڑ aXS'9C9+%~y2RܿP$G~/..blC7%o>D-rlϴh5࠭j>eт`sa瀉ҏ;'Q?'&궀 "0>P{`sn*Z P+kdE4ȫ@ؤ k.A0C7u: "@8۫miK)kcc=u ]IqD$(IH ]0-Xx]7#?W0(Os)Ŗ܁Ғ4襉V3 OB̑A61CH)@X/AD LԊ~Q`@Wk{Wm^;ր l$XcI/ @z`灣 `-{]xua΂f k0vF/Jm)ŽblG,z5  R}eRw! K[)+K{4cX]5vA z87+AMA$"@!GC;A+l1ՅXu]pU@ TןV+GaK-vh)߭)@] y#߶>J!~‚~K!Gt*!oUQ"G\V(mGqs(zD0H`cұcT5D$>(ϹHH ! Kz TZJȓE.$y-!;rM֯J m[(D ,Hv$CL$@MBzbayjcy#HwWj?R2\(Iғ$@OB#WxUZ^ *BM&D*ԧ{Vetw먓 7 }~8:[ud Vf8k2{.mfka$@}s8RHJ]_L9\f㖹zz+$(sǑ@$@$ [e"   (R   !@ HHH` +HHH( @B a    HHBB4   `$@$@$@ 0PH$@$@$@ oHHH ! ѰHHH $$@!!V 0P%K(Ac" D($"r؉@%r^TlZOٳ4[5[iNNBըl[W?_5\mJ/ǦU;q"ܱFF0~\T~w(|ϊЦX|b#uΝ9 U qa_yKƍHRxNv 6s#VoK?,Auc1 >|f/~ {f.Nh>NZ4 :oW><L=@D$XXHrv .cg]^#'Gq!2yY~-3wa ^ѷkߋ %_hyƩK~$Ȋw,f*>MUr$,*x}O%;'`ј}P&>B=s/ðC^~>AL~W7 LŽ.á_%`L_q8Sqg_b*V[-b=qw۶C0t.̺[qq2:vn.Cj|Wa +ZR|.C<нxs+uc>_֒E>@)ud,p!f5/-|`B'\RM_Ceų1ZVU=GIѰHvhE !sq1vpU3pnKQl E8m"{<*̑8,לY  @& 5+0s8oaUxoQǵo̳_sv \1eLVQO?κs>>"jJ5Ðwh)v?b܃AL8 O3+H0PhcA1LIDAT8mXII|ms3~1k_|{~#~]ns] !nY~?6J [~73vCe3`Q|Q|pąⲃ? apU'e"z5^S&~g.VU:>cZLFr9=G ѣ%(&rFb8oy8K#0-0A{(<'Xl4ȥGCXT2ZZ|#X< H` +H'P nvDYK#Q&&4'机MX:J?Gx> gL(-,x)pWOcSnĥE;* [WHDu&B--+ zO9985A;[u_b#~pk~ gq{'atbLyEoQ(;pǷg-3r|yE}5־ph\p,Ys,g7b#qg)1.7;d¨=Ŋupp|FOťg *秺|%}YWq8#oSv^Vףb* &MH%^kF77aY8?>i;iXt]BSì)2[r9Ge9r<{FPD$@VšpEg>2 ͫtl롯k=tudkk3"Ho"Dd o(g Za2_]]__Y ]ސt!JEA aK0Pu*kP$TPu%BQ*0ىq>J:TP36>]*:s~a $r9.[kvd!Yǫ|HQPOe'K?&قSd:[o񤖹4U  E X3 @\ ba! `$@$@$@ 0PH$@$@$@ oHHH ! ѰHHH $$@!!V 0P   ($D     7@$@$@$hXA$@$@$@HHH` +HHH( @B a    HHBB4 Az T7 NPb &@!/gG% ht }/߆5KU[u[|>[| x/˱f{" @ɀ9p $@$?ѿHFlۆ|CX}fLMذ9hn@IA=S\89ҌH/`ЗN$0|)&6d EQKhLM0|PToZmn Fvv=PGy~܈'>؎q hN$C_;c/ Bn uV[+ϣJU v qDAA>d95x{2yQ ʙ`[3gNJ]C8`k~׮!l\w?,=FŘr^^yq%IY=Q*Trqؔ[5 &@!GG]K M+qם!MnGb޻xXT|0.>1~\zG~pH)(71f.;/~cе'H = 0PHQ@ߺj47V㳍a;*{7Ioe'A͛<>4\4(NчNqp}܄jS#l 2rv$C`Xȓo8 w|_1xz|ְt;4hWz,+F(g'&H`?3gIASKZCNœcFvzq(:/m{ls eTH2@ViuI-sƅUK+gD2 @F:Q&R.05 jE*e)ILdI$~=23$@$@$@. . $@$@$@1(`HHH%@AHHH ̐ (4 `   u    bp0C$@$@$`ҠN$@$@$CB fHHH\ \IHHb0P KK: @  18!  p 0PpiP'  !@!3$@$@$@. . $@$@$@1rbr̐@ 6nzĈ12lKV}>ξ:c< ($:[o񤖹fh^{dK^ bȕcdkk3"HHH #dee()I͎l?Z,!Ay<閩,K18!  p 0PpiP'  !@!3$@$@$@. . $@$@$@1(`HHH%@AHHH ̐ (4 `   u    bp0C$@$@$`ҠN$@$@$CB fHHH\ \IHHb0P KK: @  18!  p 0PpiP'  !@!3$@$@$@. . $@$@$@1(`HHH%@AV7ǠN1  ϹL{@u^a[iɯyׯ69xV jH`'Y{ ɩ³U5X=&Vm]y-CoE/9na8V‰)iўr)8Z4(2򽧫p7ˊY -ůp߅՘k⥲_P/I5JrpȤ3jpf+QNs?/-(]5[[ih^W,\6]Z @ Ԉћ z ъe/ԢBjjjW/>JH_N)#HL`cJZ\K1VW4ⱃp֡mCCpzG-?nj>};V⻒3k*됯Ĝ9Ux-Tm׌˯)A .ecc\fЂ{a19xhq|"o5MfLR7tAƼOOp&{6jۆϤR.݊i ƹc`Z=(矛k0EFG1^v~Մs$P(SwVl% f|v `0#~sdwE[KjPa>F}x%.<UY_N]A>H#P-'p5_وC.fJ_I(W0jzG|j*>u!,W+YqA͸W0s 5Xj+VoŃrwJa18zX:K`ˏ lWgaAYɖuVv1= g\Msp˲  ^TR.㮔{ =?R>?L-VV꿗:/}!>c qc6< 8wd8 7<|v`vt\]e7{fr쮬5 4 +XH}2tD$Po1^ +Ki`"岛.OЂ/݂| oZPlǛ؂!'p9݊0hGo,0kq# _Տ}L><gM-a5⁵1[8}پqN27Y?VY<wT>mX׿O+"Y*Yyu)؄׵QJE !7߽&rC+WsrR/A+AcBHpGm?' %r *B}B>7۞Jr ӻ.|{n;./*%rO+1àXVU3?.vy8}Z}K#?8yy#f'"MMlxW_{>~9Oܗ㢧)[ T', @vBWy 5QMQO[pǕ`lCn+*s$pyqrG?؀-o#"; Pvx ot~{=f}" bߚK,GegPW~ȥ>k׷@V3<ɶ=F$kb_惭H%_~O5^_,wg=kzR?„#‹Y?N\{hBvWNSrhp F| Gbj0eAn!k'_;ȸ -݌B|`L#0sE445ṶoO{Z.'kѯOi1Q'' ?-.oJHܴ즡1 QC/skݑ3eW4nɊWd"ԊbEQ!. K].H >V_" h 5\`n|#KpHF em\-8vV+67ܽ-{EEx OVxJAc0mFZ 1 gW)F 0!r.dlu}/b@⊿v;^ \up6dzS=q T6l -ߊ}Ԋ(uIN4͖_lOzD.H:/ ,҂t 8<2+_|kZ!G`Ƚ'M Q"4Wͫ^grõ%9pkVb4&7Ly*|-µ=,G.$c= @ 0P<3 r^) dA=mo1ӁVӖk o{v+.I0bB~I6J.ɳ 63JPw\~UE٘1ȃ4g.j@1T.1w r)'$X֊T⾯ $P=9Y0xA+5k[W|Kpm$9[7rf*}YP,c5WP*>r+ƾdሓMxwuI-~(|{6tC5G@! D$@$@iBBHHґt<+  ir"8   HG pL$@$@$&%PH;=q$@$@@Z(5 9 "RJ @@W'IHH`-HHH`oO='N$@$@ 0PHΈ$@$@$Nz? t9  H3 p8$@$@$Iݺ@g$@$@$ПtwЭQN:Q+ }:q5ha ْHWdgJ@r:iw&]SWon>}1 @_",Ö:_^,dѧXcw_zH{}iW݋$Ʊ 86\>{S@[#TzahaHH {q]n1 =  $@@@ZZ2a&? }j|إ1b8I$$X2w0W p;:޼QR# " E'CnR ; HHH J @! t?t Wo3P-HH }$q$@$xU8 i /tX?{Inޜp x!x=״s3O=E՟vZӸc'eqʁ#ΚǤx7q贓0Bݿ}[x'_sGnc"k$)-9]$kHv@ҕ%Y]eh_Zʒ\ 0]eH7ɂ7P̺j,ֽ,۾;wwkߦ̗ !x~|"lꂩʞx`?\ݷkVK}ʻcrDqm\t׻@ NJS/4g2}zaocҼՙLֿٙLfSwXRM6dcFQX0iߠ`ߓ]4L\rL/|ƾ;ՙLL&OV?.ZB_;cd/\3nV?5d~M[T%۹?(" m^&‹ՏmFn>VW4 ޽mڙO֟ueLL[T8M_~3?&͏dΤ߿L՟Ӥ5ovIBz$\/8{15NRhmUjꬿdó7~xfu$omUjӛC `7IH$RS:'s6QvMigϗY'c6鷏go6~]GVޞGL#@w,٦ ME L7閩ޑ7i/I+Sdv&:M'ϷۤMcLΤ|gyFpBp C nCʷmv&Qխ3ݤz2޾}6鷷r~}X;֙nsˬ~{+7Gܣ༩PO T$(_`}E>j6Zg/XV,(Hlo6ޯv&}6o~{$~{Ʀz2{^۸)++??.|[ #vkҼ#ش}2{^۸|x޷~ޯ6no~{O6?>Z{|tig%oo}ҳտ}YƤUiխ̤6i&}jgejcLZۻmWvm߿vqr?|d2{kև+}ݶ[ogyI+7gL&Wfk}m߿vr?|d2{kև+}ݶӟ?G}Ak_^~}ԩo(mQ~5i>_g&Sy^8.is² @!=CGaoj&Ձ's近l=jd+Ťtd}l}#Ťrd9&W_;&H%oc1\=~͏]KBVozB7"}#1dupۛn'ױY߮7oc'w6쮍p}n'c0ݷ߇t>Y?I}G>\ߦ= >3PHA Фzpuc 뵭ٸ̧թz+Ӽ͏IrW1>\ϯ׶f2Vh~͏I,ɛP?f2VL'7?&͇]IǤpuߧ?>^ۚ|Z]%7?&>t$o~L&C[J2͛7h'- 0PHӒxPS W[t*o??ڛn#mܲxg~L%ښHxc2cL&vtv&;͏I?>YǤ̟oo~Mv}1X1gv&g~LZ;Wui;tK+KiJBxfYسA|Y~R2˻5^J6}||{'kuۘo8j2yOcJQ?G[¿-3T''j쓕}lrl㕙oWm,ۇdzHeR}M<\=m2mųwpx)_dzWf_xn϶#e֗Ka6cpx̷6V&*2}OcJ EGg IM>,D^}Ƕ|o&x{xigs}Ύ}ok;۟;gWOS,:;yMl9z:Wt֝ϝssk=Lˆ{Sे?GuG4O~oYTsSqM7O}\M7t?Gt{O,_~O\I2PC'_/iW Z& 4l- }1P)q𢒋ErPpp;_X#0IA ATgJo Č}qA_a1|!rb7St²Z t~% d  r&9   *] @ >Z{PA8 ӌ$b.Α-%  ȿ$@@vv~% @Н-hFpn h40 a@VVpnB*~[It 4Jr#%?(s$@$@$3x뛻YxeZuL@K&F'$ = `ܢZ/ {Bhim յ,^m,#[zFC= =`2޸ogg73sˍ z3Kמe$@ h2aOVtGMdJ-^WyЏho< Eq$x:b]Ҳ3ڄM3gMMM՞-$@$@$ЧZvUW&\kmk+I-\­3ݕ25pѼ+Uzꊷz_EEE%RD$@$@}\n|o{+g_8{-d:/?x|{)Y}{mܙԞ[g+UwA=d3]erˡ*5i]&Y}2' ]Ԏ֛J;tf)6^%^r'0ly˻5/vSWփv֑ei{I^a; >՗n`eR3./׼\[k'HH:O֜lޭ3ݕy XDsMWizG%PyW #2 X:[llUZ[)ȁs&t$_ߗ:{.q-- fgeV]+ lmnLeCh 1I1XcG2fY[\8 #+͛׭%e>2Wz_6n~y|gRA MB^ h v,P{R\AE?ê͏)|NB$>H'^œZf嶣yW7_LuMVXXޤMk_fkevꭝ×ZoekҶr퓉HH $zw}T Tkvm:?o~.:P t02ky @4H:i n?V]=^^RIT|- pך]T\*2V̗piX@&h5Z%gn::+sezז {NHqrMwk^ ܼ[/#|.¿=($-693ay NG2)Q[%e [b6!&L'/z2--3ݗƕˤ_=v5Pk0hT;_2kk\4?,@p_|]~ru'&@nٰz8J::'U@am})1uk'w5PH8bsxytW;oo6ZnT7DRLdVJ[GHH׻yI-C4ΤtZ֣-&6Zt+4K\u;,J5¥˭ޗv̓ '[{=;tW-(,Xse~LZ;-+PЁlA5ݕ`vf:`y6*MwU[+ջIH29%>ne*~iٛ.E2]zTD ַW5@h|8[`~ͷJt[/;jcHH 3:,6Զ[tXVfdmL'[RBGԅW2˛slWkҼ%*]wWv$@$_ ؚU:7ݗz5wݞzAkϟR'evXvLZIӼ% @fM|mg+w5H0xLol:${bGE_fySZMwkMꋉHHvQn{-2$o_fn](d-Z^MTm,@{|rg"ڷ'ݶٱHH zYV= fcHs]w˜̯[o+U]z VoUɵj|HH } tvMdJWo/HP;Ujbxm-=VKّ(o*5p.7^Yg][$@$@@8^[f+UJ-2?Y<|4wMw~^deyMn}$oXkHHH @9^[fD[^edryWߣف-&m&gm;;xƳe @uF֞?e~ml~UW ^GvmVyW]$@$@$*D [O2WcrxcLVM-r :_{~ם-3O$@$@!hNV֛HƫҲD kv8K֟[o/՝k?o䮶K$@$@I o}ϷGеm.=tAGfdwu';j-HHH .خdyo֭=h/.\;$@$@$Е[:˛qzWk}t`Bn6&/W&wmw=zH]E XI;^}2^{uf-2_Q8 ve۸yWwuΎڸ /QkCHHz@-wu|ݒLGxϛdrW%z  E`WpO;(,ٴWg}P @Oh/hǙ($:t>!(V @;:w־*ҎvKIHHs: tԮsu(;t$  $6 g' mWt+IH OOX-6DI$@$5ni%t_gHHH l'e)$@$@$@$+8}̓ @{w;}#  ~N~R8} ~?CQ0O$@$@$%3u^GHH - dIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH bT[YIENDB`deepin-boot-maker_5.6.12+dfsg/src/0000755000175000017500000000000014122570751016537 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/0000755000175000017500000000000014122570751020034 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/.gitignore0000755000175000017500000000002014122570751022017 0ustar ephraimephraiminclude lib usr deepin-boot-maker_5.6.12+dfsg/src/vendor/env.pri0000644000175000017500000000063714122570751021346 0ustar ephraimephraimCONFIG += link_pkgconfig DEFINES += QT_MESSAGELOGCONTEXT unix { isEmpty(PREFIX) { PREFIX = /usr } } win32{ DEFINES += DTK_STATIC_LIB } NO_BOOTLOADER=TRUE ARCH = $$QMAKE_HOST.arch isEqual(ARCH, i386) | isEqual(ARCH, x86_64) { NO_BOOTLOADER=FALSE } isEqual(NO_BOOTLOADER, TRUE) { DEFINES += DBM_NO_BOOTLOADER } win32{ DEFINES -= DBM_NO_BOOTLOADER } mac* { DEFINES -= DBM_NO_BOOTLOADER } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/0000755000175000017500000000000014122570751020623 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/0000755000175000017500000000000014122570751022320 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/.gitignore0000755000175000017500000000007714122570751024317 0ustar ephraimephraimbuild bin *~ *.pro.user *.pro.user.* *.log *.ts *.qm .DS_Store deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/DiskUtil/0000755000175000017500000000000014122570751024050 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/DiskUtil/DiskUtil.cpp0000644000175000017500000007107314122570751026314 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "DiskUtil.h" #include "../FileSystem/FileSystem.h" #include "../Cmd/Cmd.h" #include "Syslinux.h" #include #include #include #ifdef Q_OS_WIN32 #include #include #include #endif namespace XAPI { #ifdef Q_OS_WIN32 BOOL GetStorageDeviceNumberByHandle(HANDLE handle, const STORAGE_DEVICE_NUMBER *sdn) { BOOL result = FALSE; DWORD count; if (DeviceIoControl(handle, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, (LPVOID)sdn, sizeof(*sdn), &count, NULL)) { result = TRUE; } else { qWarning("GetDriveNumber: DeviceIoControl failed"); } return (result); } int GetPartitionDiskNum(QString targetDev) { QString driverName = "\\\\.\\" + targetDev.remove('\\'); WCHAR wdriverName[1024] = { 0 }; driverName.toWCharArray(wdriverName); HANDLE handle = CreateFile(wdriverName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (handle == INVALID_HANDLE_VALUE) { qWarning() << "Open Dev Failed: " << driverName << GetLastError(); return -1; } STORAGE_DEVICE_NUMBER sdn; if (GetStorageDeviceNumberByHandle(handle, &sdn)) { CloseHandle(handle); return sdn.DeviceNumber; } CloseHandle(handle); return -1; } QString GetPartitionLabel(const QString &targetDev) { QString devname = QString("%1:\\").arg(targetDev.at(0)); WCHAR wLabel[1024] = { 0 }; if (!GetVolumeInformation(LPWSTR(devname.utf16()), wLabel, 1023, NULL, NULL, NULL, NULL, 0)) { return ""; } return QString("").fromWCharArray(wLabel); } qint64 GetPartitionFreeSpace(const QString &targetDev) { QString devname = QString("%1:\\").arg(targetDev.at(0)); ULARGE_INTEGER FreeAv, TotalBytes, FreeBytes; if (!GetDiskFreeSpaceEx(LPWSTR(devname.utf16()), &FreeAv, &TotalBytes, &FreeBytes)) { return 0; } return FreeBytes.QuadPart; } BOOL GetPartitionByHandle(HANDLE handle, PARTITION_INFORMATION &partInfo) { DWORD count; BOOL result = DeviceIoControl( (HANDLE) handle, // handle to a partition IOCTL_DISK_GET_PARTITION_INFO, // dwIoControlCode NULL, // lpInBuffer 0, // nInBufferSize (LPVOID) &partInfo, // output buffer (DWORD) sizeof(partInfo), // size of output buffer (LPDWORD) &count, // number of bytes returned (LPOVERLAPPED) NULL // OVERLAPPED structure ); if (FALSE == result) { qWarning() << "IOCTL_DISK_GET_PARTITION_INFO Failed" << GetLastError(); } return result; } /* return physic driver name like "\\\\.\\PHYSICALDRIVE1"; */ QString GetPartitionDisk(const QString &targetDev) { QString physicalDevName; int deviceNum = GetPartitionDiskNum(targetDev); if (-1 != deviceNum) { physicalDevName = QString("\\\\.\\PHYSICALDRIVE%1").arg(deviceNum); } return physicalDevName; } BOOL PreventRemovalOfDisk(HANDLE handle, BOOLEAN preventRemoval) { DWORD dwBytesReturned; PREVENT_MEDIA_REMOVAL PMRBuffer; PMRBuffer.PreventMediaRemoval = preventRemoval; return DeviceIoControl(handle, IOCTL_STORAGE_MEDIA_REMOVAL, &PMRBuffer, sizeof(PREVENT_MEDIA_REMOVAL), NULL, 0, &dwBytesReturned, NULL); } BOOL AutoEjectDisk(HANDLE handle) { DWORD dwBytesReturned; return DeviceIoControl(handle, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &dwBytesReturned, NULL); } HANDLE OpenDisk(const QString &targetDev) { HANDLE handle; TCHAR szVolumeName[8]; TCHAR driveLetter[2]; targetDev.left(2).toWCharArray(driveLetter); wsprintf(szVolumeName, TEXT("\\\\.\\%c:"), driveLetter[0]); handle = CreateFile(szVolumeName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); return handle; } BOOL CloseDisk(HANDLE handle) { return CloseHandle(handle); } BOOL LockDisk(HANDLE handle) { if (!DeviceIoControl(handle, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, NULL, 0)) { CloseDisk(handle); return FALSE; } return TRUE; } void UnlockDisk(HANDLE handle) { DeviceIoControl(handle, IOCTL_DISK_UPDATE_PROPERTIES, NULL, 0, NULL, 0, NULL, 0); DeviceIoControl(handle, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, NULL, 0); } BOOL DismountDisk(HANDLE handle) { DWORD dwBytesReturned; return DeviceIoControl(handle, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL); } BOOL EjectDisk(const QString &targetDev) { HANDLE handle = OpenDisk(targetDev); if (handle == INVALID_HANDLE_VALUE) { return FALSE; } if (LockDisk(handle) && DismountDisk(handle)) { // Set prevent removal to false and eject the volume. if (PreventRemovalOfDisk(handle, FALSE) && AutoEjectDisk(handle)) { qDebug() << "disk has been auto ejected"; } } if (!CloseDisk(handle)) { return FALSE; } return TRUE; } XSys::Result InstallSyslinux(const QString &targetDev) { // install syslinux XSys::SynExec("label", QString(" %1:UOS").arg(targetDev[0])); QString sysliuxPath = XSys::FS::InsertTmpFile(QString(":/blob/syslinux/win32/syslinux.exe")); return XSys::SynExec(sysliuxPath, QString(" -i -m -a %1:").arg(targetDev[0])); } XSys::Result InstallBootloader(const QString &targetDev) { qDebug() << "FixUsbDisk Begin! " << targetDev; int deviceNum = GetPartitionDiskNum(targetDev); QString xfbinstDiskName = QString("(hd%1)").arg(deviceNum); // HANDLE handle = LockDisk(targetDev); // fbinst format QString xfbinstPath = XSys::FS::InsertTmpFile(QString(":/blob/xfbinst/xfbinst.exe")); XSys::Result ret = XSys::SynExec(xfbinstPath, QString(" %1 format --fat32 --align --force") .arg(xfbinstDiskName)); if (!ret.isSuccess()) { return ret; } // install fg.cfg QString tmpfgcfgPath = XSys::FS::InsertTmpFile(QString(":/blob/xfbinst/fb.cfg")); XSys::SynExec(xfbinstPath, QString(" %1 add-menu fb.cfg \"%2\" ") .arg(xfbinstDiskName) .arg(tmpfgcfgPath)); QString driverLetter = QString("%1:").arg(targetDev[0]); XSys::SynExec("label", QString("%1 UOS").arg(driverLetter)); // install syslinux QString sysliuxPath = XSys::FS::InsertTmpFile(QString(":/blob/syslinux/win32/syslinux.exe")); XSys::SynExec(sysliuxPath, QString(" -i %1").arg(driverLetter)); // get pbr file ldlinux.bin qDebug() << "dump pbr begin"; QString tmpPbrPath = XSys::FS::TmpFilePath("ldlinux.bin"); QFile pbr(tmpPbrPath); pbr.open(QIODevice::WriteOnly); QString targetPhyName = "\\\\.\\" + QString(targetDev).remove('\\'); QFile targetPhy(targetPhyName); targetPhy.open(QIODevice::ReadOnly); pbr.write(targetPhy.read(512)); targetPhy.close(); pbr.close(); qDebug() << "dump pbr end"; // add pbr file ldlinux.bin XSys::SynExec(xfbinstPath, QString(" %1 add ldlinux.bin \"%2\" -s") .arg(xfbinstDiskName) .arg(tmpPbrPath)); return XSys::Result(XSys::Result::Success, "", targetDev); } XSys::Result UmountDisk(const QString &targetDev) { if (targetDev.isEmpty()) { return XSys::Result(XSys::Result::Failed, "empty target dev"); } if (EjectDisk(targetDev)) { return XSys::Result(XSys::Result::Success, ""); } else { qDebug() << "UmountDisk failed" << targetDev; return XSys::Result(XSys::Result::Failed, "Umount disk failed"); } } bool CheckFormatFat32(const QString &targetDev) { XSys::Result result = XSys::SynExec("cmd", QString("/C \"chcp 437 & fsutil fsinfo volumeinfo %1\" ").arg(targetDev)); if (result.result().contains("File System Name : FAT32", Qt::CaseInsensitive)) { return true; } return false; } const QString MountPoint(const QString &targetDev) { return QString(targetDev).remove("/").remove("\\") + "/"; } bool Mount(const QString &/*targetDev*/, const QString &/*path*/) { return true; } #endif #ifdef Q_OS_UNIX const QString MountPoint(const QString &targetDev) { /* 文件系统 挂载点 udev /dev tmpfs /run */ XSys::Result ret = XSys::SynExec("df", "--output=source,target"); if (!ret.isSuccess()) { qWarning() << "call df failed" << ret.result(); } QStringList mounts = ret.result().split("\n").filter(targetDev); if (0 == mounts.size()) { return ""; } QString mountinfo = mounts.last(); mountinfo.remove(targetDev); return mountinfo.mid(mountinfo.indexOf('/')); } bool Mount(const QString &targetDev, const QString &path) { XSys::SynExec("mkdir", QString(" -p %1").arg(path)); XSys::Result ret = XSys::SynExec("mount", QString(" %1 %2").arg(targetDev).arg(path)); return ret.isSuccess(); } #endif #ifdef Q_OS_LINUX QString GetPartitionDisk(QString targetDev) { if (targetDev.contains(QRegExp("p\\d$"))) { return QString(targetDev).remove(QRegExp("p\\d$")); } else { return QString(targetDev).remove(QRegExp("\\d$")); } } bool CheckFormatFat32(const QString &targetDev) { XSys::Result ret = XSys::SynExec("blkid", "-s TYPE " + targetDev); if (ret.isSuccess() && ret.result().contains("vfat", Qt::CaseInsensitive)) { return true; } return false; } QString GetPartitionLabel(const QString &targetDev) { XSys::Result ret = XSys::SynExec("blkid", "-s LABEL -o value " + targetDev); if (!ret.isSuccess()) { return ""; } return ret.result(); } qint64 GetPartitionTotalSpace(const QString &targetDev) { XSys::Result ret = XSys::SynExec("df", "--output=size " + targetDev); if (!ret.isSuccess()) { return 0; } qDebug() << "result" << ret.result().split("\n").at(ret.result().split("\n").count() - 2); return ret.result().split("\n").at(ret.result().split("\n").count() - 2).toLongLong(); } qint64 GetPartitionFreeSpace(const QString &targetDev) { XSys::Result ret = XSys::SynExec("df", "--output=avail " + targetDev); if (!ret.isSuccess()) { return 0; } qDebug() << "result" << ret.result().split("\n").at(ret.result().split("\n").count() - 2); return ret.result().split("\n").at(ret.result().split("\n").count() - 2).toLongLong(); } XSys::Result InstallSyslinux(const QString &targetDev, const QString &images) { // install syslinux QString rawtargetDev = GetPartitionDisk(targetDev); XSys::Result ret = XSys::Syslinux::InstallBootloader(targetDev); if (!ret.isSuccess()) { return ret; } ret = XSys::Syslinux::InstallMbr(rawtargetDev); if (!ret.isSuccess()) { return ret; } // make active ret = XSys::SynExec(XSys::FS::SearchBin("sfdisk"), QString("%1 -A %2").arg(rawtargetDev, QString(targetDev).remove(rawtargetDev).remove("p"))); if (!ret.isSuccess()) { return ret; } // rename label ret = XSys::SynExec(XSys::FS::SearchBin("fsck"), QString("-y %1").arg(targetDev)); /*QProcess cannot handle Chinese paths*/ QStringList args; args << "-i" << images << "-d"; XSys::Result ret3 = XSys::SynExec("isoinfo", args); if (!ret3.isSuccess()) { qWarning() << "call isoinfo failed" << ret3.result(); } QStringList volume = ret3.result().split("\n").filter("Volume id"); QString tem = volume.takeAt(0); if (tem.contains("Volume id: deepin", Qt::CaseInsensitive)) { ret = XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 DEEPINOS").arg(targetDev)); } else if (tem.contains("Volume id: uos", Qt::CaseInsensitive)) { ret = XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 UOS").arg(targetDev)); } else { ret = XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 UNKNOWN").arg(targetDev)); } XSys::DiskUtil::Mount(targetDev); return ret; } XSys::Result InstallBootloader(const QString &diskDev, const QString &images) { //change the partion if (!XSys::DiskUtil::UmountDisk(diskDev)) { return XSys::Result(XSys::Result::Failed, "", diskDev); } QStringList args; args << diskDev << "-I" ; XSys::SynExec("umount", diskDev); XSys::SynExec("umount", diskDev); XSys::SynExec("mkfs.fat", args.join(" ")); // pre format QString newTargetDev = diskDev + "1"; QString xfbinstDiskName = QString("\"(hd%1)\"").arg(diskDev[diskDev.length() - 1].toLatin1() - 'a'); // fbinst: format XSys::SynExec("umount", diskDev); XSys::SynExec("umount", diskDev); QString xfbinstResource = "/usr/bin/xfbinst_x32"; if (QSysInfo::buildCpuArchitecture() == "x86_64") { xfbinstResource = "/usr/bin/xfbinst_x64"; } QString xfbinstPath = XSys::FS::InsertTmpFile(xfbinstResource); qDebug() << "load" << xfbinstResource << xfbinstPath; XSys::Result ret = XSys::SynExec("chmod", " +x " + xfbinstPath); if (!ret.isSuccess()) { return ret; } ret = XSys::SynExec(xfbinstPath, QString(" %1 format --fat32 --align --force").arg(xfbinstDiskName)); if (!ret.isSuccess()) { return ret; } // fbinst: install fg.cfg QString tmpfgcfgPath = XSys::FS::InsertTmpFile(QString(":/blob/xfbinst/fb.cfg")); XSys::SynExec("umount", diskDev); XSys::SynExec("umount", diskDev); ret = XSys::SynExec(xfbinstPath, QString(" %1 add-menu fb.cfg %2 ").arg(xfbinstDiskName).arg(tmpfgcfgPath)); if (!ret.isSuccess()) { return ret; } // after format, diskdev change to /dev/sd?1 if (!XSys::DiskUtil::UmountDisk(diskDev)) { return XSys::Result(XSys::Result::Failed, "", diskDev); } ret = XSys::SynExec("partprobe", QString(" %1").arg(diskDev)); // if (!ret.isSuccess()) { return ret; } // rename label fix bug 20233 区分社区版专业版镜像设置U盘卷标名 ret = XSys::SynExec(XSys::FS::SearchBin("fsck"), QString("-y %1").arg(newTargetDev)); QStringList isoArgs; isoArgs << "-i" << images << "-d"; XSys::Result ret3 = XSys::SynExec("isoinfo", isoArgs); if (!ret3.isSuccess()) { qWarning() << "call isoinfo failed" << ret3.result(); } QStringList volume = ret3.result().split("\n").filter("Volume id"); QString tem = volume.takeAt(0); if (tem.contains("Volume id: deepin", Qt::CaseInsensitive)) { ret = XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 DEEPINOS").arg(newTargetDev)); } else if (tem.contains("Volume id: uos", Qt::CaseInsensitive)) { ret = XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 UOS").arg(newTargetDev)); } else { ret = XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 UNKNOWN").arg(newTargetDev)); } // install syslinux XSys::Syslinux::InstallBootloader(newTargetDev); // dd pbr file ldlinux.bin QString tmpPbrPath = XSys::FS::TmpFilePath("ldlinux.bin"); ret = XSys::SynExec("dd", QString(" if=%1 of=%2 bs=512 count=1").arg(newTargetDev).arg(tmpPbrPath)); if (!ret.isSuccess()) { return ret; } // fbinst: add pbr file ldlinux.bin ret = XSys::SynExec(xfbinstPath, QString(" %1 add ldlinux.bin %2 -s").arg(xfbinstDiskName).arg(tmpPbrPath)); if (!ret.isSuccess()) { return ret; } // mount QString mountPoint = QString("/usr/bin/%1").arg(XSys::FS::TmpFilePath("")); ret = XSys::SynExec("mkdir", QString(" -p %1").arg(mountPoint)); if (!ret.isSuccess()) { return ret; } ret = XSys::SynExec("chmod", " a+wrx " + mountPoint); if (!ret.isSuccess()) { return ret; } XSys::DiskUtil::Mount(newTargetDev); // QString mountCmd = "-o " // "flush,rw,nosuid,nodev,shortname=mixed," // "dmask=0077,utf8=1,showexec %1 %2"; // the disk must be mount // int retryTimes = 5; // do { // qDebug() << "Try mount the disk " << (6 - retryTimes) << " first time"; // UmountDisk(diskDev); // QThread::sleep(5); // XSys::SynExec("partprobe", QString(" %1").arg(diskDev)); // QThread::sleep(5); // XSys::SynExec("mount", isoinfomountCmd.arg(newTargetDev).arg(mountPoint)); // QThread::sleep(5); // retryTimes--; // } while((MountPoint(newTargetDev) == "") && retryTimes); // // how ever, if mount failed, check before install. return XSys::Result(XSys::Result::Success, "", newTargetDev); } #endif #ifdef Q_OS_MAC QString removAroundSpace(QString raw) { QString out; for (int i = 0; i < raw.length(); ++i) { if (' ' != raw.at(i)) { out = raw.right(raw.length() - i); break; } } raw = out; for (int i = 0; i < raw.length(); ++i) { if (' ' != raw.at(raw.length() - i)) { out = raw.left(raw.length() - i); break; } } return out; } QString GetPartitionLabel(const QString &targetDev) { XSys::Result ret = XSys::SynExec("diskutil", "info " + targetDev); if (!ret.isSuccess()) { qDebug() << "Call df Failed"; return ""; } QString r = ret.result().split("\n").filter("Volume Name:").first().remove("Volume Name:"); return removAroundSpace(r); } qint64 GetPartitionFreeSpace(const QString &targetDev) { XSys::Result ret = XSys::SynExec("df", "-b"); if (!ret.isSuccess()) { qDebug() << "Call df Failed"; return 0; } return ret.result().split("\n").filter(targetDev).first().split(" ").filter(QRegExp("[^\\s]")).at(3).toLongLong() * 512; } QString GetPartitionDisk(QString targetDev) { return QString(targetDev).remove(QRegExp("s\\d$")); } XSys::Result UmountDisk(const QString &targetDev) { return XSys::SynExec("diskutil", QString("unmountDisk force %1").arg(GetPartitionDisk(targetDev))); } bool CheckFormatFat32(const QString &targetDev) { XSys::Result ret = XSys::SynExec("diskutil", "info " + targetDev); QString partitionType = ret.result().split("\n").filter("Partition Type:").first(); if (partitionType.contains(QRegExp("_FAT_32"))) { return true; } return false; } QString Resource(const QString &name) { QDir res = QDir(QCoreApplication::applicationDirPath()); res.cdUp(); res.cd("Resources"); return res.absoluteFilePath(name); } XSys::Result InstallSyslinux(const QString &targetDev) { // rename to DEEPINOS XSys::SynExec("diskutil", QString("rename %1 UOS").arg(targetDev)); // install syslinux UmountDisk(targetDev); QString sysliuxPath = Resource("syslinux-mac"); XSys::SynExec(sysliuxPath, QString(" -i %1").arg(targetDev)); // dd pbr file ldlinux.bin UmountDisk(targetDev); QString tmpPbrPath = XSys::FS::InsertTmpFile(Resource("mbr.bin")); XSys::SynExec("dd", QString(" if=%1 of=%2 ").arg(tmpPbrPath).arg( GetPartitionDisk(targetDev))); UmountDisk(targetDev); QThread::sleep(2); return XSys::SynExec("diskutil", QString("mount %1").arg(targetDev)); } static void SureUmount(const QString &targetDev) { UmountDisk(targetDev); QThread::sleep(1); UmountDisk(targetDev); QThread::sleep(1); } XSys::Result InstallBootloader(const QString &diskDev) { QString targetDev = diskDev + "s1"; QString xfbinstDiskName = QString("\"(hd%1)\"").arg(diskDev[diskDev.length() - 1]); // format with xfbinst QString xfbinstPath = Resource("xfbinst"); SureUmount(targetDev); XSys::SynExec(xfbinstPath, QString(" %1 format --fat32 --align --force").arg(xfbinstDiskName)); // install fg.cfg QString tmpfgcfgPath = XSys::FS::InsertTmpFile(QString(":/blob/xfbinst/fb.cfg")); SureUmount(targetDev); XSys::SynExec(xfbinstPath, QString(" %1 add-menu fb.cfg %2 ").arg(xfbinstDiskName).arg(tmpfgcfgPath)); // rename to DEEPINOS XSys::SynExec("diskutil", QString("mountDisk %1").arg(diskDev)); XSys::SynExec("diskutil", QString("rename %1 UOS").arg(targetDev)); // install syslinux SureUmount(targetDev); QString sysliuxPath = Resource("syslinux-mac"); UmountDisk(targetDev); XSys::SynExec(sysliuxPath, QString(" -i %1").arg(targetDev)); // dd pbr file ldlinux.bin QString tmpPbrPath = XSys::FS::TmpFilePath("ldlinux.bin"); UmountDisk(targetDev); XSys::SynExec("dd", QString(" if=%1 of=%2 bs=512 count=1").arg(targetDev).arg(tmpPbrPath)); // add pbr file ldlinux.bin UmountDisk(targetDev); XSys::SynExec(xfbinstPath, QString(" %1 add ldlinux.bin %2 -s").arg(xfbinstDiskName).arg(tmpPbrPath)); XSys::SynExec("diskutil", QString("mountDisk %1").arg(diskDev)); return XSys::Result(XSys::Result::Success, "", targetDev); } #endif } // End XAPI // ////////////////////////////////////// namespace XSys { namespace DiskUtil { PartionFormat GetPartitionFormat(const QString &targetDev) { if (XAPI::CheckFormatFat32(targetDev)) { return PF_FAT32; } return PF_RAW; } QString GetPartitionLabel(const QString &targetDev) { return XAPI::GetPartitionLabel(targetDev); } bool FormatPartion(const QString& targetDev) { return XSys::SynExec("mkfs.fat", targetDev).isSuccess(); } QStringList GetPartionOfDisk(const QString& strDisk) { QStringList strPartions; XSys::Result result = XSys::SynExec("lsblk", "-P -o name,type"); if (result.isSuccess()) { QString strResult = result.result(); QStringList strLines = strResult.split("\n"); foreach (QString strLine, strLines) { if (strLine.contains(strDisk)) { QStringList strPairs = strLine.split(" "); if (strPairs.size() != 2) { strPartions.clear(); break; } QString strName; QString strType; foreach (QString strPair, strPairs) { QStringList strValues = strPair.split("="); if (0 == strValues[0].compare("NAME", Qt::CaseInsensitive)) { strName = strValues[1]; } else { strType = strValues[1]; } } strName = strName.remove("\""); strType = strType.remove("\""); if((strName == strDisk) &&(strType != "disk")) { strPartions.clear(); break; } else { if (strType == "part") { strPartions.push_back(strName); } } } } } return strPartions; } bool SetActivePartion(const QString& strDisk, const QString& strPartion) { QString strTemp = strPartion; QString strIndex = strTemp.remove(strDisk); XSys::Result ret = XSys::SynExec(XSys::FS::SearchBin("sfdisk"), QString("%1 -A %2").arg(strDisk).arg(strIndex)); return ret.isSuccess(); } void SetPartionLabel(const QString& strPartion, const QString& strImage) { /*QProcess cannot handle Chinese paths*/ XSys::SynExec(XSys::FS::SearchBin("fsck"), QString("-y %1").arg(strPartion)); QStringList args; args << "-i" << strImage << "-d"; XSys::Result ret3 = XSys::SynExec("isoinfo", args); if (!ret3.isSuccess()) { qWarning() << "call isoinfo failed" << ret3.result(); return; } QStringList volume = ret3.result().split("\n").filter("Volume id"); QString tem = volume.takeAt(0); QStringList strValues = tem.split(":"); QString strName = QString("UNKNOWN"); QString strTemp; if (2 == strValues.size()) { strTemp = strValues.at(1); strTemp = strTemp.trimmed(); } //标签名最长长度为十一位 strName = strTemp.isEmpty()?strName:(strTemp.length() > 11)?strTemp.left(11):strTemp; XSys::SynExec(XSys::FS::SearchBin("fatlabel"), QString(" %1 \"%2\"").arg(strPartion).arg(strName)); } qint64 GetPartitionTotalSpace(const QString &targetDev) { return XAPI::GetPartitionTotalSpace(targetDev); } qint64 GetPartitionFreeSpace(const QString &targetDev) { return XAPI::GetPartitionFreeSpace(targetDev); } QString GetPartitionDisk(const QString &targetDev) { return XAPI::GetPartitionDisk(targetDev); } XSys::Result EjectDisk(const QString &targetDev) { return XSys::SynExec("udisksctl", QString("power-off -b %1").arg(GetPartitionDisk(targetDev))); } bool UmountPartion(const QString& strPartionName) { bool bRet = false; //对一个分区进行unmount,最多尝试5次。 int iCount= 5; QString strMountPt = XSys::DiskUtil::MountPoint(strPartionName); if (!strMountPt.isEmpty()) { do { XSys::Result result = XSys::SynExec("udisksctl", QString("unmount -b %1").arg(strPartionName)); if (!result.isSuccess()) { bRet = false; break; } strMountPt = XSys::DiskUtil::MountPoint(strPartionName); if (strMountPt.isEmpty()) { bRet = true; break; } else { iCount--; } } while (iCount > 0); } else { bRet = true; } //经测试在服务器版上执行udiskctrl unmount命令时会失败,但是执行umount却能成功。固失败之后补加一个umount流程。 if (!bRet) { iCount = 5; strMountPt = XSys::DiskUtil::MountPoint(strPartionName); if (!strMountPt.isEmpty()) { do { XSys::Result result = XSys::SynExec("umount", strPartionName); if (!result.isSuccess()) { bRet = false; break; } strMountPt = XSys::DiskUtil::MountPoint(strPartionName); if (strMountPt.isEmpty()) { bRet = true; break; } else { iCount--; } } while (iCount > 0); } else { bRet = true; } } return bRet; } bool UmountDisk(const QString &targetDev) { bool bRet = false; int iIndex = targetDev.lastIndexOf("/"); if (iIndex < 0) { return false; } QString strPath = targetDev.left(iIndex + 1); QString strKey = targetDev.right(targetDev.length() - iIndex - 1); if (strKey.isEmpty()) { return false; } QStringList strPartions = GetPartionOfDisk(strKey); foreach (QString strPartion, strPartions) { QString strVal = strPath + strPartion; bRet = UmountPartion(strVal); if (!bRet) { break; } } return bRet; } QString MountPoint(const QString &targetDev) { return XAPI::MountPoint(targetDev); } bool Mount(const QString &targetDev, const QString &path) { return XAPI::Mount(targetDev, path); } bool Mount(const QString &targetDev) { #ifdef Q_OS_LINUX return XSys::SynExec("udisksctl", QString("mount -b %1").arg(targetDev)).isSuccess(); #endif return true; } } namespace Bootloader { Result InstallBootloader(const QString &diskDev, const QString &images) { return XAPI::InstallBootloader(diskDev, images); } } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/DiskUtil/Syslinux.cpp0000644000175000017500000001121614122570751026413 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "Syslinux.h" #include "../FileSystem/FileSystem.h" #include "../Cmd/Cmd.h" #include #include namespace XSys { namespace Syslinux { #ifdef Q_OS_LINUX QString SearchMbr() { QStringList paths; paths.push_back("/usr/lib/syslinux/mbr/"); paths.push_back("/usr/lib/SYSLINUX/"); // debian paths.push_back("/usr/lib/syslinux/"); // ubuntu paths.push_back("/usr/lib/syslinux/bios/"); // arch return XSys::FS::PathSearch("mbr.bin", paths); } #endif QString SearchMoudle(const QString &moduleName) { #ifdef Q_OS_LINUX QStringList paths; paths.push_back("/usr/lib/syslinux/modules/bios/"); //debain paths.push_back("/usr/lib/syslinux/"); //ubuntu paths.push_back("/usr/lib/syslinux/bios/"); //arch return XSys::FS::PathSearch(moduleName, paths); #endif #ifdef Q_OS_MAC return ":blob/syslinux/macosx/" + moduleName; #endif #ifdef Q_OS_WIN32 return ":blob/syslinux/win32/" + moduleName; #endif } Result InstallBootloader(const QString &device) { #ifdef Q_OS_LINUX return XSys::SynExec(XSys::FS::SearchBin("syslinux"), QString(" -i %1").arg(device)); #else Q_UNUSED(device); return Result(Result::Success, "", ""); #endif } Result InstallMbr(const QString &device) { #ifdef Q_OS_LINUX QString mbrPath = SearchMbr(); return XSys::SynExec("dd", QString(" if=%1 of=%2 bs=440 count=1").arg(mbrPath).arg(device)); #else Q_UNUSED(device); return Result(Result::Success, "", ""); #endif } Result InstallModule(const QString &installDirectory) { QStringList modulelist; modulelist.append("gfxboot.c32"); modulelist.append("chain.c32"); modulelist.append("menu.c32"); modulelist.append("vesamenu.c32"); #ifndef Q_OS_MAC modulelist.append("libcom32.c32"); modulelist.append("libutil.c32"); #endif foreach (QString filename, modulelist) { qDebug() << "Install Module" << filename << SearchMoudle(filename); if (!XSys::FS::InsertFile(SearchMoudle(filename), QDir::toNativeSeparators(installDirectory + filename))) { return Result(Result::Failed, "Insert Module File Failed: " + SearchMoudle(filename) + " to " + QDir::toNativeSeparators(installDirectory + filename)); } } return Result(Result::Success, "", ""); } Result ConfigSyslinx(const QString &targetPath) { // rename isolinux to syslinux QString syslinxDir = QString("%1/syslinux/").arg(targetPath); if (!XSys::FS::RmDir(syslinxDir)) { return Result(Result::Failed, "Remove Dir Failed: " + syslinxDir); } QString isolinxDir = QString("%1/isolinux/").arg(targetPath); if (!XSys::FS::MoveDir(isolinxDir, syslinxDir)) { return Result(Result::Failed, "Move Dir Failed: " + isolinxDir + " to " + syslinxDir); } qDebug() << "Move " << isolinxDir << " ot " << syslinxDir; QString syslinxCfgPath = QString("%1/syslinux/syslinux.cfg").arg(targetPath); if (!XSys::FS::RmFile(syslinxCfgPath)) { return Result(Result::Failed, "Remove File Failed: " + syslinxCfgPath); } QString isolinxCfgPath = QString("%1/syslinux/isolinux.cfg").arg(targetPath); qDebug() << "Rename " << isolinxCfgPath << " ot " << syslinxCfgPath; if (!XSys::FS::CpFile(isolinxCfgPath, syslinxCfgPath)) { return Result(Result::Failed, "Copy File Failed: " + isolinxCfgPath + " to " + syslinxCfgPath); } qDebug() << "InstallModule to" << syslinxDir; XSys::Syslinux::InstallModule(syslinxDir); // bugfix // TODO: we change syslinux to 6.02, but gfxboot will not work // so use a syslinux.cfg will not use gfxboot and vesamenu // if (!XSys::FS::InsertFile(":/blob/syslinux/syslinux.cfg", QDir::toNativeSeparators(syslinxDir + "syslinux.cfg"))) { // return Result(Result::Failed, "Insert Config File Failed: :/blob/syslinux/syslinux.cfg to " + QDir::toNativeSeparators(syslinxDir + "syslinux.cfg")); // } return Result(Result::Success, ""); } } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/DiskUtil/DiskUtil.h0000644000175000017500000000356114122570751025756 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "../Common/Result.h" #include #include namespace XSys { namespace DiskUtil { enum PartionFormat { PF_FAT32, PF_NTFS, PF_RAW, }; bool UmountDisk(const QString &targetDev); bool UmountPartion(const QString& strPartionName); XSys::Result EjectDisk(const QString &targetDev); void detach(); bool Mount(const QString &targetDev); bool Mount(const QString &targetDev, const QString &path); QString MountPoint(const QString &targetDev) ; PartionFormat GetPartitionFormat(const QString &targetDev); QString GetPartitionDisk(const QString &targetDev); qint64 GetPartitionFreeSpace(const QString &targetDev); qint64 GetPartitionTotalSpace(const QString &targetDev); QString GetPartitionLabel(const QString &targetDev); bool FormatPartion(const QString& targetDev); QStringList GetPartionOfDisk(const QString& strDisk); bool SetActivePartion(const QString& strDisk, const QString& strPartion); void SetPartionLabel(const QString& strPartion, const QString& strImage); } namespace Bootloader { Result InstallBootloader(const QString &diskDev, const QString &images); } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/DiskUtil/Syslinux.h0000644000175000017500000000207714122570751026065 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "../Common/Result.h" #include namespace XSys { namespace Syslinux { Result InstallModule(const QString &installDirectory); Result InstallBootloader(const QString &device); Result InstallMbr(const QString &device); Result ConfigSyslinx(const QString &targetDev); } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/Common/0000755000175000017500000000000014122570751023550 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/Common/Result.h0000644000175000017500000000245014122570751025200 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include namespace XSys { class Result { public: enum Status{ Success = 0, Failed = 1, }; Result(); Result(int code, const QString &msg, const QString &result="", const QString &cmd=""); Result(const Result &r); ~Result(); bool isSuccess() const; int code() const; const QString& cmd() const; const QString& errmsg() const; const QString& result() const; private: int code_; QString errmsg_; QString result_; QString cmd_; }; } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/Common/Result.cpp0000644000175000017500000000307014122570751025532 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "Result.h" #include namespace XSys { Result::Result() { this->code_ = Success; } Result::Result(int code, const QString &errmsg, const QString &result, const QString &cmd) { this->code_ = code; this->errmsg_ = errmsg; this->result_ = result; this->cmd_ = cmd; } Result::Result(const Result &r) { this->code_ = r.code_; this->errmsg_ = r.errmsg_; this->result_ = r.result_; this->cmd_ = r.cmd_; } Result::~Result() { } bool Result::isSuccess() const { return (Success == this->code_); } int Result::code() const{ return this->code_; } const QString& Result::cmd() const{ return this->cmd_; } const QString& Result::errmsg() const{ return this->errmsg_; } const QString& Result::result() const{ return this->result_; } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/LICENSE0000644000175000017500000010446214122570751023334 0ustar ephraimephraimGNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {one line to give the program's name and a brief idea of what it does.} Copyright (C) {year} {name of author} This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: {project} Copyright (C) {year} {fullname} This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/XSys0000644000175000017500000000020414122570751023145 0ustar ephraimephraim#pragma once #include "FileSystem/FileSystem.h" #include "DiskUtil/DiskUtil.h" #include "DiskUtil/Syslinux.h" #include "Cmd/Cmd.h" deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/libxsys.pro0000644000175000017500000000115514122570751024541 0ustar ephraimephraim#------------------------------------------------- # # Project created by QtCreator 2015-01-28T13:59:02 # #------------------------------------------------- QT -= gui TARGET = xsys TEMPLATE = lib CONFIG += staticlib DEFINES += QT_MESSAGELOGCONTEXT SOURCES += \ DiskUtil/DiskUtil.cpp \ Common/Result.cpp \ Cmd/Cmd.cpp \ FileSystem/FileSystem.cpp \ DiskUtil/Syslinux.cpp HEADERS += \ XSys \ DiskUtil/DiskUtil.h \ Common/Result.h \ Cmd/Cmd.h \ FileSystem/FileSystem.h \ DiskUtil/Syslinux.h unix { isEmpty(PREFIX){ PREFIX = /usr } target.path = $${PREFIX}/lib/ } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/.gitrepo0000755000175000017500000000061514122570751023777 0ustar ephraimephraim; DO NOT EDIT (unless you know what you are doing) ; ; This subdirectory is a git "subrepo", and this file is maintained by the ; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme ; [subrepo] remote = git@github.com:Iceyer/libxsys.git branch = master commit = d67cd7b0a4a918a4b9705dc7fa67ef1d8c2e756e parent = 6589ed1afe9ee45dcb6ba2a07d99fef4998914c5 cmdver = 0.3.0 deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/README.md0000644000175000017500000000026014122570751023575 0ustar ephraimephraim# libxsys libxsys is a Qt base cross-platform system api library. This project is for deepin-boot-maker && deepin-system-installer to solve cross-platform disk/file issue. deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/Cmd/0000755000175000017500000000000014122570751023023 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/Cmd/Cmd.cpp0000644000175000017500000000775414122570751024247 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "Cmd.h" #include "../Common/Result.h" #include "../FileSystem/FileSystem.h" #include #include #include #include #include namespace XSys { static Result runApp(const QString &execPath, const QString &execParam, const QString &execPipeIn = "") { // QString outPipePath = FS::TmpFilePath("pipeOut"); QProcess app; app.setStandardInputFile(execPipeIn); // app.setStandardOutputFile(outPipePath); // app.setStandardErrorFile(outPipePath); app.start("\"" + execPath + "\"" + " " + execParam); if (!app.waitForStarted()) { qWarning() << "Cmd Exec Failed:" << app.errorString(); return Result(Result::Failed, app.errorString(), "", app.program()); } if (!app.waitForFinished(-1)) { qWarning() << "waitForFinished Failed:" << app.errorString(); return Result(Result::Failed, app.errorString(), "", app.program()); } auto standardError = app.readAllStandardError(); if (QProcess::NormalExit != app.exitStatus()) { qWarning() << "exitStatus error:" << app.exitStatus() << standardError << app.program(); return Result(Result::Failed, standardError, "", app.program()); } if (0 != app.exitCode()) { qWarning() << "exitCode error:" << app.exitCode() << standardError << app.program(); return Result(Result::Failed, standardError, "", app.program()); } Result rest(Result::Success, standardError, app.readAllStandardOutput()); return rest; } Result SynExec(const QString &exec, const QString ¶m, const QString &execPipeIn) { Result ret = runApp(exec, param, execPipeIn); qInfo() << "call:" << exec + " " + param << "with:" << execPipeIn ; qInfo() << "resut:" << ret.isSuccess() << ret.errmsg(); return ret; } static Result runApp(const QString &execPath, const QStringList &args) { // QString outPipePath = FS::TmpFilePath("pipeOut"); QProcess app; app.setProgram(execPath); app.setArguments(args); app.start(); if (!app.waitForStarted()) { qWarning() << "Cmd Exec Failed:" << app.errorString(); return Result(Result::Failed, app.errorString(), "", app.program()); } if (!app.waitForFinished(-1)) { qWarning() << "waitForFinished Failed:" << app.errorString(); return Result(Result::Failed, app.errorString(), "", app.program()); } auto standardError = app.readAllStandardError(); if (QProcess::NormalExit != app.exitStatus()) { qWarning() << "exitStatus error:" << app.exitStatus() << standardError << app.program(); return Result(Result::Failed, standardError, "", app.program()); } if (0 != app.exitCode()) { qWarning() << "exitCode error:" << app.exitCode() << standardError << app.program(); return Result(Result::Failed, standardError, "", app.program()); } Result rest(Result::Success, standardError, app.readAllStandardOutput()); return rest; } Result SynExec(const QString &exec, const QStringList &args) { Result ret = runApp(exec, args); if (exec.trimmed().toLower() != QString("isoinfo")) { qInfo() << "call:" << exec << args ; qInfo() << "resut:" << ret.isSuccess() << ret.errmsg(); } return ret; } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/Cmd/Cmd.h0000644000175000017500000000177314122570751023707 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "../Common/Result.h" class QString; namespace XSys { Result SynExec(const QString &exec, const QString ¶m, const QString &execPipeIn = ""); Result SynExec(const QString &exec, const QStringList &args); } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/FileSystem/0000755000175000017500000000000014122570751024404 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/FileSystem/FileSystem.h0000644000175000017500000000310614122570751026641 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include class QFile; namespace XSys { namespace FS { QString TmpFilePath(const QString &filename = "", const QString &distFilename = ""); QString InsertTmpFile(const QString &fileurl, const QString &distFilename = ""); bool InsertFile(const QString &fileurl, const QString &fullpath); bool InsertFileData(const QString &name, const QByteArray &data = ""); QString SynExec(const QString &exec, const QString ¶m, const QString &execPipeIn = ""); bool RmFile(QFile &file); bool RmFile(const QString &filename); bool CpFile(const QString &srcName, const QString &desName); bool MoveDir(const QString &oldName, const QString &newName); bool RmDir(const QString &dirpath); QString PathSearch(const QString &filename, const QStringList &pathlist); QString SearchBin(const QString &binName) ; } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/FileSystem/FileSystem.cpp0000644000175000017500000001323014122570751027173 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "FileSystem.h" #include #include #include #include #include #include #include static QString randString(const QString &str) { QString seedStr = str + QTime::currentTime().toString(Qt::SystemLocaleLongDate) + QString("%1").arg(qrand()); return QString("").append(QCryptographicHash::hash(seedStr.toLatin1(), QCryptographicHash::Md5).toHex()); } namespace XSys { namespace FS { QString TmpFilePath(const QString &filename, const QString &distFilename) { //fix bug 16574 非开发者模式第三方程序无法签名的问题,现将第三放程序写到/usr/bin下面,mac平台保持原样 #ifdef Q_OS_LINUX QString tmpDir = "/usr/bin/"; #endif #ifndef Q_OS_LINUX QString tmpDir = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first(); #endif static bool init = QDir(tmpDir).mkdir("xsys"); Q_UNUSED(init); QFileInfo fi(filename); QString ext = ""; if (!fi.suffix().isEmpty()) { ext = "." + fi.suffix(); } QString newFilename = distFilename; if (newFilename.isEmpty()) { newFilename = randString(filename) + ext; } qDebug() << "request create usr file" << filename << distFilename; auto tmppath = QDir::toNativeSeparators(QString(tmpDir + "/xsys/" + newFilename)); qDebug() << "create usr file" << tmppath; return tmppath; } bool InsertFileData(const QString &filename, const QByteArray &data) { QFile file(filename); if (!file.open(QIODevice::WriteOnly)) { qWarning() << "Insert Tmp FileData Failed, Can not open" << filename; return false; } if (!file.write(data)) { qWarning() << "Insert Tmp FileData Failed, Can not Write" << filename; return false; } file.close(); return true; #ifdef Q_OS_UNIX // SynExec("sync", ""); #endif } QString InsertTmpFile(const QString &fileurl, const QString &distFilename) { QString filename = TmpFilePath(fileurl, distFilename); QFile file(fileurl); if (!file.open(QIODevice::ReadOnly)) { qWarning() << "Insert Tmp File Failed, Can not open" << fileurl; return filename; } if (!InsertFileData(filename, file.readAll())) { qWarning() << "Insert Tmp File Failed" << fileurl; return filename; } file.close(); return filename; } bool InsertFile(const QString &fileurl, const QString &fullpath) { QFile file(fileurl); if (!file.open(QIODevice::ReadOnly)) { return false; } if (!InsertFileData(fullpath, file.readAll())) { return false; } file.close(); return true; } bool RmFile(QFile &fn) { if (!fn.exists()) { return true; } fn.setPermissions(QFile::WriteUser); return fn.remove(); #ifdef Q_OS_UNIX //SynExec("sync", ""); #endif } bool RmFile(const QString &filename) { QFile file(filename); return RmFile(file); } bool CpFile(const QString &srcName, const QString &desName) { bool ret = true; QFile srcFile(srcName); QFile desFile(desName); srcFile.open(QIODevice::ReadOnly); desFile.open(QIODevice::WriteOnly); QByteArray data = srcFile.readAll(); qint64 writeBytes = desFile.write(data); if (writeBytes != data.size()) { qWarning() << "Copy File Failed, " << srcName << " to " << desName; ret = false; } srcFile.close(); desFile.close(); #ifdef Q_OS_UNIX //SynExec("sync", ""); #endif return ret; } bool RmDir(const QString &dirpath) { bool result = true; QDir dir(dirpath); if (dir.exists(dirpath)) { Q_FOREACH (QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden | QDir::AllDirs | QDir::Files, QDir::DirsFirst)) { if (info.isDir()) { result = RmDir(info.absoluteFilePath()); } else { result = QFile::remove(info.absoluteFilePath()); } if (!result) { return result; } } result = dir.rmdir(dirpath); } #ifdef Q_OS_UNIX // SynExec("sync", ""); #endif return result; } bool MoveDir(const QString &oldName, const QString &newName) { RmFile(newName); RmDir(newName); QDir dir(oldName); return dir.rename(oldName, newName); #ifdef Q_OS_UNIX //SynExec("sync", ""); #endif } QString PathSearch(const QString &filename, const QStringList &pathlist) { for (int i = 0; i < pathlist.length(); ++i) { QDir path(pathlist.at(i)); QFile file(path.absoluteFilePath(filename)); if (file.exists()) { return file.fileName(); } } return ""; } QString SearchBin(const QString &binName) { QStringList paths; paths.push_back("/sbin/"); paths.push_back("/usr/sbin/"); paths.push_back("/bin/"); paths.push_back("/usr/bin/"); paths.push_back("/usr/local/bin/"); return PathSearch(binName, paths); } } } deepin-boot-maker_5.6.12+dfsg/src/vendor/src/libxsys/libxsys.pri0000644000175000017500000000056614122570751024540 0ustar ephraimephraimSOURCES += \ $$PWD/DiskUtil/DiskUtil.cpp \ $$PWD/Common/Result.cpp \ $$PWD/Cmd/Cmd.cpp \ $$PWD/FileSystem/FileSystem.cpp \ $$PWD/DiskUtil/Syslinux.cpp HEADERS += \ $$PWD/XSys \ $$PWD/DiskUtil/DiskUtil.h \ $$PWD/Common/Result.h \ $$PWD/Cmd/Cmd.h \ $$PWD/FileSystem/FileSystem.h \ $$PWD/DiskUtil/Syslinux.h INCLUDEPATH += $$PWD/ deepin-boot-maker_5.6.12+dfsg/src/libdbm/0000755000175000017500000000000014122570751017770 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/libdbm/bminterface.cpp0000644000175000017500000000602214122570751022753 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "bminterface.h" #include #include #include "backend/bmhandler.h" #ifdef Q_OS_LINUX #include "backend/bmdbushandler.h" #else #include "backend/bootmaker.h" #endif class BMInterfacePrivate { public: BMInterfacePrivate(BMInterface *parent) : q_ptr(parent) {} BMHandler *handler = nullptr; BMInterface *q_ptr; Q_DECLARE_PUBLIC(BMInterface) }; BMInterface::BMInterface(QObject *parent) : QObject(parent), d_ptr(new BMInterfacePrivate(this)) { Q_D(BMInterface); qRegisterMetaType>(); #ifdef Q_OS_LINUX d->handler = new BMDbusHandler; #else d->handler = new BootMaker; #endif QThread *handlerwork = new QThread; d->handler->moveToThread(handlerwork); handlerwork->start(); connect(d->handler, &BMHandler::removablePartitionsChanged, this, &BMInterface::deviceListChanged); connect(d->handler, &BMHandler::finished, this, &BMInterface::finished); // connect(d->handler, &BMHandler::checkFileResult, // this, &BMInterface::checkFileResult); connect(d->handler, &BMHandler::reportProgress, this, &BMInterface::reportProgress); connect(d->handler,&BMHandler::reportProgress1, this,&BMInterface::reportProgress1); connect(this, &BMInterface::startInstall, d->handler, &BMHandler::startInstall ); } BMInterface::~BMInterface() { } void BMInterface::start() { Q_D(BMInterface); return d->handler->start(); } void BMInterface::stop() { Q_D(BMInterface); return d->handler->stop(); } void BMInterface::reboot() { Q_D(BMInterface); return d->handler->reboot(); } QList BMInterface::deviceList() { qDebug() << "BMInterface deviceList"; Q_D(BMInterface); return d->handler->deviceList(); } bool BMInterface::checkfile(const QString &filepath) { Q_D(BMInterface); return d->handler->checkfile(filepath); } //bool BMInterface::install(const QString &image, const QString &device, const QString &partition, bool formatDevice) //{ // Q_D(BMInterface); // emit d->handler->reportProgress(5, 0, "init", ""); // qDebug() << "start BMInterface::install"; // emit d->handler->startInstall(image,device, partition, formatDevice); // return true; //} deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/0000755000175000017500000000000014122570751020745 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/libdbm/util/utils.cpp0000644000175000017500000003555014122570751022621 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "utils.h" #include #include #include #include #include #include #include #ifdef Q_OS_WIN32 #include #endif static void initQRC() { #ifdef Q_OS_LINUX // Q_INIT_RESOURCE(blob_linux); #else Q_INIT_RESOURCE(blob); #endif } namespace Utils { bool isUft8(const QByteArray& byArr) { unsigned int nBytes = 0;//UFT8可用1-6个字节编码,ASCII用一个字节 bool bAllAscii = true; for (int i = 0; i < byArr.length(); ++i) { unsigned char chr = static_cast(byArr.at(i)); //ASCII码高位为0 if (nBytes == 0 && (chr & 0x80) != 0) { bAllAscii = false; } if (nBytes == 0) { //计算连续1的位数 if (chr >= 0x80) { if (chr >= 0xFC && chr <= 0xFD) { nBytes = 6; } else if (chr >= 0xF8) { nBytes = 5; } else if (chr >= 0xF0) { nBytes = 4; } else if (chr >= 0xE0) { nBytes = 3; } else if (chr >= 0xC0) { nBytes = 2; } else { return false; } nBytes--; } } else { if ((chr & 0xC0) != 0x80) { return false; } nBytes--; } } if (nBytes != 0) { return false; } if (bAllAscii) { //如果全部都是ASCII, 也是UTF8 return true; } return true; } bool isGBK(const QByteArray& byArr) { unsigned int nBytes = 0; bool bAllAscii = true; for (int i = 0; i < byArr.length(); ++i) { unsigned char chr = static_cast(byArr.at(i)); //ASCII码高位为0 if ((chr & 0x80) != 0 && nBytes == 0) { bAllAscii = false; } if (nBytes == 0) { if (chr >= 0x80) { if (chr >= 0x81 && chr <= 0xFE) { nBytes = +2; } else { return false; } nBytes--; } } else { if (chr < 0x40 || chr>0xFE) { return false; } nBytes--; } } if (nBytes != 0) {//违返规则 return false; } if (bAllAscii){ //如果全部都是ASCII, 也是GBK return true; } return true; } void loadTranslate() { QTranslator *qtTranslator = new QTranslator; qtTranslator->load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); qApp->installTranslator(qtTranslator); qtTranslator->deleteLater(); qtTranslator = nullptr; #ifdef Q_OS_WIN QTranslator *translator = new QTranslator(); QString tnapplang; QString tnappcoun; QString clangcode = ""; QStringList allappargs = qApp->arguments(); QList > oppairs; for (QList::const_iterator i = allappargs.constBegin(); i < allappargs.constEnd(); ++i) { if (i->count('=') == 1) { oppairs.append(QPair (i->section('=', 0, 0).simplified(), i->section('=', 1, 1).simplified())); } } for (QList >::const_iterator i = oppairs.constBegin(); i < oppairs.constEnd(); ++i) { if (i->first.contains("lang", Qt::CaseInsensitive)) { clangcode = i->second; tnapplang = clangcode.left(2); if (clangcode.contains('_') && clangcode.size() == 5) { tnappcoun = clangcode.section('_', -1, -1); } break; } } if (clangcode.isEmpty()) { clangcode = QLocale::system().name(); tnapplang = clangcode.left(2); if (clangcode.contains('_') && clangcode.size() == 5) { tnappcoun = clangcode.section('_', -1, -1); } } QString tranlateUrl; if (!tnappcoun.isEmpty()) { tranlateUrl = QString(":/translations/deepin-boot-maker_%1_%2.qm").arg(tnapplang).arg(tnappcoun); } if (!QFile::exists(tranlateUrl)) { tranlateUrl = QString(":/translations/deepin-boot-maker_%1.qm").arg(tnapplang); } if (!QFile::exists(tranlateUrl)) { tranlateUrl = ":/translations/deepin-boot-maker.qm"; } qDebug() << "locate:" << clangcode; qDebug() << "load:" << tranlateUrl; if (translator->load(tranlateUrl)) { qApp->installTranslator(translator); } #endif } QString UsbShowText(const QString &dev) { QString showText; if (!dev.isEmpty()) { QString label = XSys::DiskUtil::GetPartitionLabel(dev); if (label.isEmpty()) { label = QObject::tr("Removable disk"); } #ifdef Q_OS_UNIX QFileInfo devFile(dev); showText = QString("%1: %2").arg(devFile.baseName()).arg(label); #endif #ifdef Q_OS_WIN32 showText = QString("(%1:) %2").arg(dev.at(0)).arg(label); #endif } return showText; } void ClearTargetDev(const QString &targetPath) { QStringList dirlist; dirlist.append("/boot/"); dirlist.append("/EFI/"); dirlist.append("/casper/"); dirlist.append("/live/"); dirlist.append("/dists/"); dirlist.append("/isolinux/"); dirlist.append("/pool/"); dirlist.append("/preseed/"); dirlist.append("/syslinux/"); dirlist.append("/oem/"); foreach (QString dirname, dirlist) { QString fullDir = targetPath + dirname; XSys::FS::RmDir(fullDir); } #ifdef Q_OS_UNIX XSys::SynExec("sync", ""); #endif } #ifdef Q_OS_UNIX QMap CommandDfParse() { QProcess df; df.start("df", QStringList{"-k", "--output=source,used,avail"}); df.waitForFinished(-1); QString dfout = df.readAll(); QMap deviceInfos; foreach (const QString &infoline, dfout.split("\n")) { QStringList infos = infoline.simplified().split(" "); if (infos.size() != 3) { continue; } DeviceInfo devInfo; devInfo.path = infos.at(0); if (!devInfo.path.contains("/dev/")) { continue; } devInfo.used = static_cast(infos.at(1).toInt() / 1024); devInfo.total = static_cast((infos.at(2).toInt() + infos.at(1).toInt()) / 1024) ; qDebug() << "device path" << devInfo.path << "used: " << devInfo.used << "total: " << devInfo.total; deviceInfos.insert(devInfo.path, devInfo); } return deviceInfos; } static QByteArray unescapeLimited(const QString &str) { bool escape = false; QByteArray hex(2, '\0'); QByteArray ret; QByteArray origin = str.toUtf8(); for (auto it = origin.constBegin(); it != origin.constEnd();) { if (escape) { if (*it != 'x' || it + 2 > origin.constEnd()) break; hex[0] = (*(it + 1)); hex[1] = (*(it + 2)); ret.append(QByteArray::fromHex(hex)); escape = false; it += 3; } else { if (*it == '\\') escape = true; else ret.append(*it); ++it; } } return ret; } QMap CommandLsblkParse() { QProcess lsblk; lsblk.start("lsblk", QStringList{"-b", "-p", "-P", "-o", "name,label,size,uuid,fstype,type"}); lsblk.waitForFinished(-1); QString line; DeviceInfo info; QString diskDevPath; QMap deviceInfos; do { bool isPart = false; line = QString::fromUtf8(lsblk.readLine()); if (line.isEmpty()) break; QString type; QRegExp reg("NAME=\"(.*)\" LABEL=\"(.*)\" SIZE=\"(.*)\" UUID=\"(.*)\" FSTYPE=\"(.*)\" TYPE=\"(.*)\""); if (reg.indexIn(line) >= 0) { info.path = reg.cap(1); info.label = reg.cap(2); info.uuid = reg.cap(4); info.fstype = reg.cap(5); type = reg.cap(6); if (!type.compare("disk")) { diskDevPath = info.path; isPart = false; } else if (!type.compare("part")){ isPart = true; } else { diskDevPath = ""; } } QString strLabel = info.label; if (info.label.contains("\\x", Qt::CaseInsensitive)) { QByteArray byArr = unescapeLimited(info.label); if (isUft8(byArr)) { strLabel = QTextCodec::codecForName("UTF-8")->toUnicode(byArr); } else if(isGBK(byArr)) { strLabel = QTextCodec::codecForName("GBK")->toUnicode(byArr); } else { strLabel = QString::fromLocal8Bit(byArr); } if (strLabel.isEmpty()) strLabel = QObject::tr("Removable disk"); } info.label = strLabel; if (isPart && !diskDevPath.isEmpty()) { info.isDisk = false; info.strDev = diskDevPath; deviceInfos[diskDevPath].children.insert(info.path, info); } else { info.isDisk = true; info.strDev = ""; deviceInfos.insert(info.path, info); } } while(true); return deviceInfos; } #endif bool CheckInstallDisk(const QString &targetDev) { qDebug() << "CheckInstallDisk"; if (XSys::DiskUtil::PF_FAT32 != XSys::DiskUtil::GetPartitionFormat(targetDev)) { qDebug() << "disk format error " << targetDev; return false; } QString targetPath = XSys::DiskUtil::MountPoint(targetDev); qDebug() << "targetPath: " << targetPath; QFile test(QDir::toNativeSeparators(targetPath + "/" + "UOS")); if (!test.open(QIODevice::ReadWrite)) { qDebug() << "erro open file: " << test.fileName(); return false; } QFile UOS(":src/UOS"); UOS.open(QIODevice::ReadOnly); QByteArray data = UOS.readAll(); if (data.length() != test.write(data)) { qDebug() << "erro write file: " << UOS.fileName(); return false; } test.close(); UOS.close(); test.remove(); return true; } bool isUsbDisk(const QString &dev) { QString out = XSys::FS::TmpFilePath("diskutil_isusb_out"); XSys::SynExec("bash", QString("-c \" diskutil info %1 > \"%2\" \" ").arg(dev).arg(out)); QFile outfile(out); outfile.open(QIODevice::ReadOnly); QString info = outfile.readAll(); outfile.close(); outfile.remove(); return info.contains(QRegExp("Protocol:\\s+USB")); } QList ListUsbDrives() { qDebug() << "ListUsbDrives"; QList deviceList; #ifdef Q_OS_WIN32 QFileInfoList extdrivesList = QDir::drives(); for (int i = 0; i < extdrivesList.size(); ++i) { QString deviceLetter = extdrivesList.at(i).path().toUpper(); if (QDir::toNativeSeparators(deviceLetter) != QDir::toNativeSeparators(QDir::rootPath().toUpper()) && !QDir::toNativeSeparators(deviceLetter) .contains("A:") && !QDir::toNativeSeparators(deviceLetter) .contains("B:")) { if (GetDriveType(LPWSTR(deviceLetter.utf16())) == 2) { DeviceInfo info; info.path = QDir::toNativeSeparators(deviceLetter); deviceList.push_back(info); } } } #endif #ifdef Q_OS_LINUX QDir devlstdir("/dev/disk/by-id/"); QFileInfoList usbfileinfoL = devlstdir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files); QMap dfDeviceInfos = CommandDfParse(); QMap lsblkDeviceInfos = CommandLsblkParse(); QMap removeDevice; for (int i = 0; i < usbfileinfoL.size(); ++i) { if (usbfileinfoL.at(i).fileName().contains(QRegExp("^usb-\\S{1,}$")) || usbfileinfoL.at(i).fileName().contains(QRegExp("^mmc-\\S{1,}$"))) { QString path = usbfileinfoL.at(i).canonicalFilePath(); removeDevice.insert(path, usbfileinfoL.at(i).fileName()); } } for (auto devicePath : lsblkDeviceInfos.keys()) { if (!removeDevice.contains(devicePath)) { continue; } // find first partion QString strDiskName = devicePath; DeviceInfo diskinfo = lsblkDeviceInfos.value(devicePath); QStringList partionNames = diskinfo.children.keys(); foreach (QString strPartionName, partionNames) { bool needformat = true; DeviceInfo partionInfo = diskinfo.children.value(strPartionName); if (partionInfo.fstype != "vfat") { needformat = true; } else { needformat = false; } DeviceInfo dfinfo = dfDeviceInfos.value(strPartionName); if (partionInfo.label.isEmpty()) { partionInfo.label = partionInfo.path; } partionInfo.used = dfinfo.used; partionInfo.total = dfinfo.total; partionInfo.target = dfinfo.target; partionInfo.needFormat = needformat; deviceList.push_back(partionInfo); qDebug() << partionInfo.path << partionInfo.used << partionInfo.total << partionInfo.target << partionInfo.needFormat; } } #endif #ifdef Q_OS_MAC QStringList fulldrivelist; QString out = XSys::FS::TmpFilePath("diskutil_out"); XSys::SynExec("bash", QString("-c \" diskutil list > \"%1\" \" ").arg(out)); QFile outfile(out); outfile.open(QIODevice::ReadOnly); QString diskutilList = outfile.readAll(); QStringList usbdevsL = diskutilList.split("\n").filter(QRegExp("(FAT|Microsoft)")).join(" ").split(" ").filter("disk"); for (int i = 0; i < usbdevsL.size(); ++i) { if (isUsbDisk("/dev/" + usbdevsL.at(i))) { auto path = "/dev/" + usbdevsL.at(i); fulldrivelist.append(path); DeviceInfo info; info.path = path; deviceList.push_back(info); } } qDebug() << fulldrivelist; outfile.close(); outfile.remove(); #endif return deviceList; } void initResource() { initQRC(); } } deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/devicemonitor.cpp0000644000175000017500000001256214122570751024326 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "devicemonitor.h" #include "utils.h" #include #include #include #include #include #include #include //#pragma execution_character_set("utf-8") DeviceMonitor::DeviceMonitor(QObject *parent) : QObject(parent) { qRegisterMetaType>(); m_timer = new QTimer(this); m_timer->setInterval(2000); connect(m_timer, &QTimer::timeout, this, [ = ] { QList list = Utils::ListUsbDrives(); qDebug() << "list length:" << list.length(); for (int i = 0; i < list.size(); i++) { qDebug() << "list i:" << i << " path:" << list.at(i).path << " label:" << list.at(i).label; } QList intersectList = this->getIntersectDevice(list); qDebug() << "intersectlist count:" << intersectList.size(); QList addList = this->getNorDevice(list, intersectList); QList delList = this->getNorDevice(m_deviceList, intersectList); if ((!addList.isEmpty()) || !delList.isEmpty()) { emit this->removablePartitionsChanged(addList, delList); qDebug() << "addlist count = " << addList.count(); qDebug() << "reducelist count =" << delList.count(); } this->m_deviceList = list; }); connect(this, &DeviceMonitor::pauseMonitor, this, [ = ]() { m_timer->stop(); }); connect(this, &DeviceMonitor::startMonitor, this, [ = ]() { this->m_deviceList.clear(); m_timer->start(); }); } QList DeviceMonitor::getIntersectDevice(const QList& list) { QList intersectList; foreach (DeviceInfo info, list) { foreach (DeviceInfo tempInfo, m_deviceList) { if ((tempInfo == info)&&(tempInfo.total == info.total)&&(tempInfo.used == info.used)) { intersectList.push_back(info); } } } return intersectList; } QList DeviceMonitor::getNorDevice(const QList& calcuList, const QList& refList) { QList XorList; foreach (DeviceInfo info, calcuList) { bool bInsert = true; foreach (DeviceInfo tempInfo, refList) { if (info.path == tempInfo.path) { bInsert = false; break; } } if (bInsert) { XorList.push_back(info); } } return XorList; } const QList DeviceMonitor::deviceList() const { return Utils::ListUsbDrives(); } QString deviceListToJson(QList deviceList) { QJsonArray array; for (auto device : deviceList) { QJsonObject obj; obj.insert("path", device.path); obj.insert("label", device.label); obj.insert("used", static_cast(device.used)); obj.insert("total", static_cast(device.total)); obj.insert("fstype", device.fstype); obj.insert("needformat", device.needFormat); obj.insert("strDev", device.strDev); obj.insert("isDisk", device.isDisk); qDebug() << device.needFormat; array.push_back(obj); } // QJsonObject obj; // obj.insert("path", "Utest"); // obj.insert("label", "U盘test"); // obj.insert("used", 10000); // obj.insert("total", 100000); // obj.insert("needformat", false); // array.push_back(obj); QJsonDocument doc; doc.setArray(array); return QString::fromUtf8(doc.toJson()); } QList deviceListFromJson(QString json) { QList list; QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); for (auto jsonObj : doc.array()) { DeviceInfo device; auto obj = jsonObj.toObject(); device.path = obj.value("path").toString(); device.label = obj.value("label").toString(); device.used = static_cast(obj.value("used").toInt()); device.total = static_cast(obj.value("total").toInt()); device.fstype = obj.value("fstype").toString(); device.needFormat = obj.value("needformat").toBool(); device.isDisk = obj.value("isDisk").toBool(); device.strDev = obj.value("strDev").toString(); list.push_back(device); } return list; } QDataStream &operator<<(QDataStream &out, const DeviceInfo &msg) { out << msg.path << msg.used << msg.total << msg.label; return out; } QDataStream &operator>>(QDataStream &in, DeviceInfo &msg) { QString path; quint32 used; quint32 total; QString label; in >> path >> used >> total >> label; msg = DeviceInfo(path, used, total, label); return in; } deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/devicemonitor.h0000644000175000017500000000271314122570751023770 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "deviceinfo.h" #include #include class DeviceMonitor : public QObject { Q_OBJECT public: explicit DeviceMonitor(QObject *parent = nullptr); private: QList getIntersectDevice(const QList& list); static QList getNorDevice(const QList& calcuList, const QList& refList); signals: void startMonitor(); void pauseMonitor(); void removablePartitionsChanged(const QList &addlist, const QList& reducelist); public slots: const QList deviceList() const; private: QTimer *m_timer = nullptr; QList m_deviceList; }; deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/sevenzip.cpp0000644000175000017500000001224014122570751023313 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "sevenzip.h" #include #include #include #include #include #include #include SevenZip::SevenZip(const QString &image, const QString &target, QObject *parent) : QObject(parent) ,m_eventLoop(this) ,m_bExit(true) { #ifdef Q_OS_WIN32 QString sevnz = XSys::FS::InsertTmpFile(":/blob/sevnz/sevnz.exe"); QString sevnzdll = XSys::FS::InsertTmpFile(":/blob/sevnz/sevnz.dll", "7z.dll"); qDebug() << sevnz << sevnzdll; #endif #ifdef Q_OS_MAC QDir resourceDir = QDir(QCoreApplication::applicationDirPath()); resourceDir.cdUp(); resourceDir.cd("Resources"); QString sevnz = resourceDir.absoluteFilePath("7z-mac"); qDebug() << sevnz; #endif #ifdef Q_OS_LINUX QString sevnz = "7z"; #endif m_szpp = new SevenZipProcessParser("", &m_sevenz); m_sevenZip = sevnz; m_archiveFile = image; m_outputDir = "-o" + target; // connect(&m_szpp, &SevenZipProcessParser::progressChanged, this, &SevenZip::progressChanged); connect(&m_sevenz, static_cast(&QProcess::finished), this, &SevenZip::handleFinished); } void SevenZip::setArchiveFile(const QString &archiveFile) { m_archiveFile = archiveFile; } void SevenZip::setOutputDirectory(const QString &outputDir) { m_outputDir = "-o" + outputDir; } void SevenZip::stopProcess() { QString strCmd = QString("kill 9 %1").arg(m_sevenz.processId()); qDebug() << strCmd; QProcess::execute(strCmd); } bool SevenZip::extract() { m_sevenz.setProgram(m_sevenZip); QTemporaryFile progress; progress.open(); QStringList args; args << "x" << "-y" << m_archiveFile << m_outputDir #ifndef Q_OS_MAC << "-bsp2"; #else ; #endif QStringList env = QProcess::systemEnvironment(); env << "VDPAU_DRIVER=va_gl"; m_sevenz.setArguments(args); m_sevenz.setStandardErrorFile(progress.fileName()); qDebug() << m_sevenz.program() << m_sevenz.arguments().join(" "); m_sevenz.start(); m_sevenz.waitForStarted(-1); #ifdef Q_OS_LINUX QProcess::execute(QString("ionice -c3 -p %1").arg(m_sevenz.pid())); #endif m_szpp->setProgressName(progress.fileName()); m_szpp->start(); m_eventLoop.exec(); m_szpp->wait(); progress.close(); progress.remove(); qInfo() << m_sevenz.exitStatus() << m_sevenz.exitCode(); return (m_sevenz.exitStatus() == QProcess::NormalExit) && (0 == m_sevenz.exitCode()); } bool SevenZip::check() { m_sevenz.setProgram(m_sevenZip); QStringList args; args << "t" << m_archiveFile; m_sevenz.setArguments(args); m_sevenz.start(); m_sevenz.waitForStarted(-1); #ifdef Q_OS_LINUX QProcess::execute(QString("ionice -c3 -p %1").arg(m_sevenz.pid())); #endif m_eventLoop.exec(); qDebug() << "check iso result" << m_sevenz.exitStatus() << m_sevenz.exitCode(); qDebug() << m_sevenz.arguments(); return (m_sevenz.exitStatus() == QProcess::NormalExit) && (0 == m_sevenz.exitCode()); } void SevenZip::handleFinished() { qDebug() <<"Zip Event Exit"; m_eventLoop.quit(); } SevenZipProcessParser::SevenZipProcessParser(const QString &file, QProcess *process, QObject *parent): QThread(parent) { m_progressFilename = file; m_sevenZip = process; } void SevenZipProcessParser::run() { qDebug() << "Start Parse"; QFile progress(m_progressFilename); // qDebug() << "progressFilename:" << m_progressFilename; progress.open(QIODevice::ReadOnly); while (QProcess::NotRunning != m_sevenZip->state()) { QByteArray readed = progress.readLine(); QString progressStr = QString::fromUtf8(readed).split("\b").last(); QStringList prgressInfoList = progressStr.split(" - "); if (1 <= prgressInfoList.size()) { int pencent = prgressInfoList.first().split("% ").first().remove(" ").toInt(); m_lastPencent = (pencent >= m_lastPencent) ? pencent : m_lastPencent; } if (2 <= prgressInfoList.size()) { m_lastFilename = prgressInfoList.last().isEmpty() ? m_lastFilename : prgressInfoList.last(); } qDebug() << "send SevenZip progress" << m_lastPencent << m_lastFilename; emit progressChanged(m_lastPencent, 100, m_lastFilename); QThread::sleep(1); } qDebug() << "End Parse" << m_sevenZip->state(); progress.close(); } deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/utils.h0000644000175000017500000000226214122570751022260 0ustar ephraimephraim/* * Copyright (C) 2015 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "devicemonitor.h" #include #include namespace Utils { void initResource(); void loadTranslate(); void ClearTargetDev(const QString &targetPath); bool CheckInstallDisk(const QString &targetDev); QMap CommandDfParse(); QMap CommandLsblkParse(); QList ListUsbDrives(); QString UsbShowText(const QString &targetdev); } deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/sevenzip.h0000644000175000017500000000407214122570751022764 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SEVENZIP_H #define SEVENZIP_H #include #include #include #include class SevenZipProcessParser : public QThread { Q_OBJECT public: explicit SevenZipProcessParser(const QString &file, QProcess *process, QObject *parent = nullptr); void setProgressName(const QString &file) {m_progressFilename = file;} void run() Q_DECL_OVERRIDE; signals: void progressChanged(int, int, const QString &); private: QString m_progressFilename; QProcess *m_sevenZip = nullptr; int m_lastPencent = 0; QString m_lastFilename; }; class SevenZip : public QObject { Q_OBJECT public: SevenZipProcessParser *m_szpp; explicit SevenZip(const QString &image, const QString &target, QObject *parent = nullptr); void setArchiveFile(const QString &archiveFile); void setOutputDirectory(const QString &outputDir); void stopProcess(); bool extract(); bool check(); signals: void progressChanged(int); private slots: void handleFinished(); private: QProcess m_sevenz; QString m_sevenZip; QString m_archiveFile; QString m_outputDir; QEventLoop m_eventLoop; bool m_bExit; }; #endif // SEVENZIP_HHH deepin-boot-maker_5.6.12+dfsg/src/libdbm/util/deviceinfo.h0000644000175000017500000000336014122570751023233 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include class DeviceInfo { public: DeviceInfo() {} DeviceInfo(const QString &path, quint32 used, quint32 total, const QString &label) : path(path), used(used), total(total), label(label) { } QString path = ""; quint32 used = 0; quint32 total = 0; QString label = QObject::tr("Removable Disk"); QString uuid = ""; QString fstype = ""; QString target = ""; QString strDev = ""; bool isDisk = false; bool needFormat = false; QMap children; bool operator==(const DeviceInfo& otherInfo) { return (this->path == otherInfo.path); } }; Q_DECLARE_METATYPE(QList); QDataStream &operator<<(QDataStream &out, const DeviceInfo &msg); QDataStream &operator>>(QDataStream &in, DeviceInfo &msg); QString deviceListToJson(QList deviceList); QList deviceListFromJson(QString json); deepin-boot-maker_5.6.12+dfsg/src/libdbm/libdbm.pro0000644000175000017500000000230014122570751021736 0ustar ephraimephraiminclude($$PWD/vendor.pri) QT += network QT -= gui TARGET = libdbm TEMPLATE = lib CONFIG += staticlib c++11 link_pkgconfig SOURCES += \ backend/bootmaker.cpp \ backend/diskutil.cpp \ backend/syslinux.cpp \ util/devicemonitor.cpp \ util/sevenzip.cpp \ util/utils.cpp \ bminterface.cpp \ backend/bmhandler.cpp \ installer/qtbaseinstaller.cpp \ installer/qtinstallerfactory.cpp \ installer/qtX86Installer.cpp \ installer/qtmipsinstaller.cpp HEADERS += \ backend/bmhandler.h \ backend/bootmaker.h \ backend/diskutil.h \ backend/syslinux.h \ util/deviceinfo.h \ util/devicemonitor.h \ util/sevenzip.h \ util/utils.h \ bminterface.h \ installer/qtbaseinstaller.h \ installer/qtinstallerfactory.h \ installer/qtX86Installer.h \ installer/qtmipsinstaller.h \ installer/qtarminstaller.h \ installer/qtswinstaller.h linux { HEADERS += \ backend/bmdbusinterface.h \ backend/bmdbushandler.h SOURCES += \ backend/bmdbusinterface.cpp } unix { target.path = /usr/lib # INSTALLS += target } linux { isEqual(ARCH, i386) | isEqual(ARCH, x86_64){ linux { INSTALLS += desktop hicolor } } } deepin-boot-maker_5.6.12+dfsg/src/libdbm/vendor.pri0000644000175000017500000000223714122570751022005 0ustar ephraimephraiminclude($$PWD/../vendor/env.pri) QT += dtkcore unix{ QT += dbus } win32{ INCLUDEPATH += $$QT.dtkcore.includes LIBS += -L$${QT.dtkcore.libs} -ldtkcore } ################################################################## # Library ################################################################## win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/release/ -lxsys else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/debug/ -lxsys else:unix: LIBS += -L$$OUT_PWD/../vendor/src/libxsys/ -lxsys INCLUDEPATH += $$PWD/../vendor/src/libxsys DEPENDPATH += $$PWD/../vendor/src/libxsys win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/libxsys.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/libxsys.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/xsys.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/xsys.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/libxsys.a deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/0000755000175000017500000000000014122570751021765 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtbaseinstaller.cpp0000644000175000017500000002573014122570751025675 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "qtbaseinstaller.h" #include "../util/utils.h" #include #include #include #include QtBaseInstaller::QtBaseInstaller(QObject *parent) : QObject(parent) ,m_sevenZipCheck("","") ,m_bRunning(false) ,m_bStop(false) { } void QtBaseInstaller::setformat(bool bFormat) { m_bFormat = bFormat; } void QtBaseInstaller::setPartionName(const QString& strPartionName) { m_strPartionName = strPartionName; } void QtBaseInstaller::setImage(const QString& strImage) { m_strImage = strImage; } void QtBaseInstaller::beginInstall() { m_bRunning = true; m_bStop = false; bool bRet = hasEnoughSpace(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(5, "check usb space finished", ""); } if (m_bStop) { m_bRunning = false; return; } bRet = checkISOIntegrity(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(10, "check integrity finished", ""); } if (m_bStop) { m_bRunning = false; return; } bRet = formatUsb(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(15, "format usb finished", ""); } if (m_bStop) { m_bRunning = false; return; } bRet = installBootload(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(20, "install bootloader finished", ""); } if (m_bStop) { m_bRunning = false; return; } bRet = extractISO(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(80, "extract ISO finished", ""); } emit this->reportProgress(81, "begin sync IO", ""); if (m_bStop) { m_bRunning = false; return; } bRet = syncIO(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(90, "sync IO finished", ""); } if (m_bStop) { m_bRunning = false; return; } configSyslinux(); emit this->reportProgress(100, "finish", ""); if (m_bStop) { m_bRunning = false; return; } bRet = ejectDisk(); if (!bRet) { checkError(); return; } else { emit this->reportProgress(101, "finish", ""); } m_bRunning = false; } void QtBaseInstaller::checkError() { m_bRunning = false; if (m_bStop) { qInfo() << "Stop Install"; return; } qInfo() << "begin check error"; QString strDisk = XSys::DiskUtil::GetPartitionDisk(m_strPartionName); if (strDisk.isEmpty()) { qCritical() << "Error::get(Error::USBMountFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::USBMountFailed); return; } else { int iIndex = strDisk.lastIndexOf("/"); QString strTempName; if (iIndex >= 0) { strDisk = strDisk.right(strDisk.length() - iIndex - 1); } bool bFind = false; QStringList strPartions = XSys::DiskUtil::GetPartionOfDisk(strDisk); if (!strPartions.contains(m_strPartionName)) { foreach (QString strName, strPartions) { QString strTemp = QString("/dev") + "/" + strName; if (strTemp == m_strPartionName) { bFind = true; break; } } } if (!bFind) { qCritical() << "Error::get(Error::USBMountFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::USBMountFailed); return; } } if (m_progressStatus == CHECKSPACE) { qCritical() << "Error::get(Error::USBSizeError)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::USBSizeError); return; } else if (m_progressStatus == CHECKINTEGRITY) { qCritical() << "Error::get(Error::CheckImageIntegrityFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::CheckImageIntegrityFailed); return; } else if (m_progressStatus == FORMATUSB) { qCritical() << "Error::get(Error::USBFormatError)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::USBFormatError); } else if (m_progressStatus == INSTALLBOOTLOADER) { qCritical() << "Error::get(Error::InstallBootloaderFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::InstallBootloaderFailed); } else if (m_progressStatus == GETINSTALLDIR) { qCritical() << "Error::get(Error::GetUsbInstallDirFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::GetUsbInstallDirFailed); } else if (m_progressStatus == EXTRACTISO) { qCritical() << "Error::get(Error::ExtractImgeFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::ExtractImgeFailed); } else if (m_progressStatus == SYNCIO) { qCritical() << "Error::get(Error::SyncIOFailed)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::SyncIOFailed); } else { qCritical() << "Error::get(Error::UnDefinedError)"; emit progressfinished(m_progressStatus, BMHandler::ErrorType::UnDefinedError); } } bool QtBaseInstaller::isRunning() const { return m_bRunning; } void QtBaseInstaller::stopInstall() { m_bStop = true; qInfo() << "m_progressStatus:" << m_progressStatus; if(EXTRACTISO == m_progressStatus || CHECKINTEGRITY == m_progressStatus) { qInfo() << "Installer stop install"; m_sevenZipCheck.stopProcess(); } } bool QtBaseInstaller::hasEnoughSpace() { bool bRet = false; qInfo() << "begin check space"; m_progressStatus = CHECKSPACE; QFileInfo isoInfo(m_strImage); //分区没有挂载时是获取不到正确的可用空间和分区大小的,因些需要先进行挂载。 QString strMountPt = XSys::DiskUtil::MountPoint(m_strPartionName); if (strMountPt.isEmpty()) { XSys::DiskUtil::Mount(m_strPartionName); } strMountPt = XSys::DiskUtil::MountPoint(m_strPartionName); if (strMountPt.isEmpty()) { qCritical() << "Can't get correct partion space."; return false; } #define KByt 1024 if (m_bFormat) { if (isoInfo.size() / KByt > XSys::DiskUtil::GetPartitionTotalSpace(m_strPartionName)) { qCritical() << "Error::get(Error::USBSizeError)"; bRet = false; } else { bRet = true; } } else { if (isoInfo.size() / KByt > XSys::DiskUtil::GetPartitionFreeSpace(m_strPartionName)) { qCritical() << "Error::get(Error::USBSizeError)"; bRet = false; } else { bRet = true; } } return bRet; } bool QtBaseInstaller::checkISOIntegrity() { bool bRet = false; qInfo() << "check iso integrity."; m_progressStatus = CHECKINTEGRITY; //check iso integrity m_sevenZipCheck.setArchiveFile(m_strImage); m_sevenZipCheck.setOutputDirectory(""); if (!m_sevenZipCheck.check()) { qCritical() << "Error::get(Error::ExtractImgeFailed)"; bRet = false; } else { bRet = true; } return bRet; } bool QtBaseInstaller::umountPartion() { return XSys::DiskUtil::UmountPartion(m_strPartionName); } bool QtBaseInstaller::umountDisk() { bool bRet = false; QString device = XSys::DiskUtil::GetPartitionDisk(m_strPartionName); if (!XSys::DiskUtil::UmountDisk(device)) { qCritical() << "umount partion failed: "; bRet = false; } else { bRet = true; } return bRet; } QString QtBaseInstaller::getMountPoint() { return XSys::DiskUtil::MountPoint(m_strPartionName); } bool QtBaseInstaller::ejectDisk() { qInfo() << "begin eject disk"; m_progressStatus = EJECTDISK; if (!(umountDisk())) { return false; } QString strDisk = XSys::DiskUtil::GetPartitionDisk(m_strPartionName); XSys::Result result = XSys::DiskUtil::EjectDisk(strDisk); return result.isSuccess(); } bool QtBaseInstaller::formatUsb() { qInfo() << "begin format usb."; m_progressStatus = FORMATUSB; if (!umountPartion()) { return false; } if (m_bFormat) { if (!XSys::DiskUtil::FormatPartion(m_strPartionName)) { return false; } } return true; } bool QtBaseInstaller::installBootload() { return false; } bool QtBaseInstaller::extractISO() { qInfo() << "begin extract ISO to" << m_strPartionName; XSys::SynExec("partprobe", m_strPartionName); m_progressStatus = GETINSTALLDIR; //由于前面的命令中会自动挂载系统,而导致如果操作过快会获取挂载点为空,然后在后面再次进行挂载时又挂载失败。因此加一个延时,让系统内核状态同步完成。 int iTestCount = 3; QString installDir; do { QThread::msleep(2000); installDir = XSys::DiskUtil::MountPoint(m_strPartionName); if (!installDir.isEmpty()) { break; } iTestCount--; } while(iTestCount > 0); if (installDir.isEmpty()) { XSys::DiskUtil::Mount(m_strPartionName); installDir = XSys::DiskUtil::MountPoint(m_strPartionName); } if (installDir.isEmpty()) { qCritical() << "Error::get(Error::USBMountFailed)"; return false; } if (m_bStop) { return true; } qInfo() << "begin clear target device files"; m_progressStatus = EXTRACTISO; Utils::ClearTargetDev(installDir); m_sevenZipCheck.setArchiveFile(m_strImage); m_sevenZipCheck.setOutputDirectory(installDir); return m_sevenZipCheck.extract(); } bool QtBaseInstaller::syncIO() { qInfo() << "begin sysc IO"; m_progressStatus = SYNCIO; return XSys::SynExec("sync", "").isSuccess(); } bool QtBaseInstaller::configSyslinux() { qInfo() << "begin configure syslinux"; XSys::SynExec("sync", ""); QString installDir = XSys::DiskUtil::MountPoint(m_strPartionName); qDebug() << "configure syslinux, installDir:" << installDir; return XSys::Syslinux::ConfigSyslinx(installDir).isSuccess(); } deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtX86Installer.h0000644000175000017500000000220714122570751024747 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef QTLINUXINSTALLER_H #define QTLINUXINSTALLER_H #include "qtbaseinstaller.h" #include class QtX86Installer : public QtBaseInstaller { Q_OBJECT public: explicit QtX86Installer(QObject *parent = nullptr); protected: virtual bool installBootload() override; signals: public slots: }; #endif // QTLINUXINSTALLER_H deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtmipsinstaller.h0000644000175000017500000000210214122570751025364 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef QTMIPSINSTALLER_H #define QTMIPSINSTALLER_H #include "qtbaseinstaller.h" class QtMipsInstaller : public QtBaseInstaller { public: QtMipsInstaller(QObject *parent = nullptr); protected: virtual bool installBootload() override; }; #endif // QTMIPSINSTALLER_H deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtbaseinstaller.h0000644000175000017500000000442014122570751025333 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef QTBASEINSTALLER_H #define QTBASEINSTALLER_H #include "../util/sevenzip.h" #include "../backend/bmhandler.h" #include enum ProgressStatus { CHECKSPACE, CHECKINTEGRITY, FORMATUSB, INSTALLBOOTLOADER, GETINSTALLDIR, EXTRACTISO, SYNCIO, EJECTDISK, FINISHED }; class QtBaseInstaller : public QObject { Q_OBJECT public: explicit QtBaseInstaller(QObject *parent = nullptr); public: void setformat(bool); void setPartionName(const QString&); void setImage(const QString&); void beginInstall(); void checkError(); bool isRunning() const; void stopInstall(); bool checkISOIntegrity(); protected: virtual bool umountPartion(); virtual bool umountDisk(); virtual QString getMountPoint(); virtual bool ejectDisk(); virtual bool installBootload(); private: bool hasEnoughSpace(); bool formatUsb(); bool extractISO(); bool syncIO(); bool configSyslinux(); signals: void progressfinished(ProgressStatus status, BMHandler::ErrorType error); void reportProgress(int current, const QString &title, const QString &description); void reportextractProgress(int, int, const QString &); public slots: public: SevenZip m_sevenZipCheck; protected: bool m_bFormat; bool m_bRunning; bool m_bStop; QString m_strPartionName; QString m_strImage; ProgressStatus m_progressStatus; BMHandler::ErrorType m_progressError; }; #endif // QTBASEINSTALLER_H deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtinstallerfactory.cpp0000644000175000017500000000370414122570751026427 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "qtinstallerfactory.h" #if defined(Q_PROCESSOR_X86) #include "qtX86Installer.h" #elif defined(Q_PROCESSOR_MIPS) #include "qtmipsinstaller.h" #elif defined(Q_PROCESSOR_ARM) #include "qtarminstaller.h" #elif defined(__sw_64__) #include "qtswinstaller.h" #endif #include QtInstallerFactory* QtInstallerFactory::m_pSelf = nullptr; QtInstallerFactory* QtInstallerFactory::getInstance() { if (nullptr == m_pSelf) { m_pSelf = new QtInstallerFactory; } return m_pSelf; } QtBaseInstaller* QtInstallerFactory::createInstaller() { QtBaseInstaller* pInstaller = nullptr; #if defined(Q_PROCESSOR_X86) qDebug() << "Architecture:X86_64"; pInstaller = new QtX86Installer; #elif defined(Q_PROCESSOR_MIPS) qDebug() << "Architecture:MIPS"; pInstaller = new QtMipsInstaller; #elif defined(Q_PROCESSOR_ARM) qDebug() << "Architecture:ARM"; pInstaller = new QtArmInstaller; #elif defined(__sw_64__) qDebug() << "Architecture:SW"; pInstaller = new QtSwInstaller; #else #error "not support architecture" #endif return pInstaller; } QtInstallerFactory::QtInstallerFactory(QObject *parent) : QObject(parent) { } deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtswinstaller.h0000644000175000017500000000170514122570751025055 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef QTSWINSTALLER_H #define QTSWINSTALLER_H #include "qtmipsinstaller.h" typedef class QtMipsInstaller QtSwInstaller; #endif // QTSWINSTALLER_H deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtmipsinstaller.cpp0000644000175000017500000000263114122570751025726 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "qtmipsinstaller.h" #include #include QtMipsInstaller::QtMipsInstaller(QObject *parent) : QtBaseInstaller (parent) { } bool QtMipsInstaller::installBootload() { qInfo() << "begin install bootloader on" << m_strPartionName; m_progressStatus = INSTALLBOOTLOADER; QString strDisk = XSys::DiskUtil::GetPartitionDisk(m_strPartionName); if (strDisk.isEmpty()) { return false; } if (!XSys::DiskUtil::SetActivePartion(strDisk, m_strPartionName)) { return false; } XSys::DiskUtil::SetPartionLabel(m_strPartionName, m_strImage); return true; } deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtarminstaller.h0000644000175000017500000000171114122570751025200 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef QTARMINSTALLER_H #define QTARMINSTALLER_H #include "qtmipsinstaller.h" typedef class QtMipsInstaller QtArmInstaller; #endif // QTARMINSTALLER_H deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtinstallerfactory.h0000644000175000017500000000235714122570751026077 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef QTINSTALLERFACTORY_H #define QTINSTALLERFACTORY_H #include "qtbaseinstaller.h" #include class QtInstallerFactory : public QObject { Q_OBJECT public: static QtInstallerFactory* getInstance(); public: QtBaseInstaller* createInstaller(); private: explicit QtInstallerFactory(QObject *parent = nullptr); signals: public slots: private: static QtInstallerFactory* m_pSelf; }; #endif // QTINSTALLERFACTORY_H deepin-boot-maker_5.6.12+dfsg/src/libdbm/installer/qtX86Installer.cpp0000644000175000017500000000322114122570751025277 0ustar ephraimephraim/* * Copyright (C) 2020 ~ 2021 Uniontech Software Co., Ltd. * * Author: shenfusheng * * Maintainer: shenfusheng * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "qtX86Installer.h" #include #include QtX86Installer::QtX86Installer(QObject *parent) : QtBaseInstaller (parent) { } bool QtX86Installer::installBootload() { qDebug() << "begin install bootloader on" << m_strPartionName; m_progressStatus = INSTALLBOOTLOADER; QString strDisk = XSys::DiskUtil::GetPartitionDisk(m_strPartionName); if (strDisk.isEmpty()) { return false; } XSys::Result result = XSys::Syslinux::InstallBootloader(m_strPartionName); if (!result.isSuccess()) { return false; } result = XSys::Syslinux::InstallMbr(strDisk); if (!result.isSuccess()) { return false; } if (!XSys::DiskUtil::SetActivePartion(strDisk, m_strPartionName)) { return false; } XSys::DiskUtil::SetPartionLabel(m_strPartionName, m_strImage); return true; } deepin-boot-maker_5.6.12+dfsg/src/libdbm/bminterface.h0000644000175000017500000000434014122570751022421 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "util/deviceinfo.h" #include #include #include class BMInterfacePrivate; class BMInterface : public QObject, public Dtk::Core::DSingleton { Q_OBJECT public: explicit BMInterface(QObject *parent = nullptr); ~BMInterface(); static void initResources() { #if defined(STATIC_LIB) Q_INIT_RESOURCE(blob); #endif } signals: void deviceListChanged(const QList &addlist, const QList &dellist); void finished(int errcode, const QString &description); void reportProgress(int current, int total, const QString &title, const QString &description); void reportProgress1(int current, int total, const QString &title, const QString &description); void startInstall(const QString &image, const QString &device, const QString &partition, bool formatDevice); // void checkFileResult(bool result); public slots: void start(); void stop(); void reboot(); QList deviceList(); bool checkfile(const QString &filepath); private: bool install(const QString &image, const QString &device, const QString &partition, bool formatDevice); friend class Dtk::Core::DSingleton; QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), BMInterface) }; deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/0000755000175000017500000000000014122570751021357 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/syslinux.h0000644000175000017500000000174614122570751023436 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef SYSLINUX_H #define SYSLINUX_H #include class Syslinux : public QObject { Q_OBJECT public: explicit Syslinux(QObject *parent = nullptr); signals: public slots: }; #endif // SYSLINUX_Hdeepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bmdbusinterface.cpp0000644000175000017500000000133714122570751025224 0ustar ephraimephraim/* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -v -c BMDBusInterface -p bmdbusinterface.h:bmdbusinterface.cpp com.deepin.bootmaker.xml * * qdbusxml2cpp is Copyright (C) 2016 The Qt Company Ltd. * * This is an auto-generated file. * This file may have been hand-edited. Look for HAND-EDIT comments * before re-generating it. */ #include "bmdbusinterface.h" /* * Implementation of interface class BMDBusInterface */ BMDBusInterface::BMDBusInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { } BMDBusInterface::~BMDBusInterface() { } deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/diskutil.h0000644000175000017500000000157614122570751023371 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include namespace DiskUtil { XSys::Result MountPartition(const QString &partition); } deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bootmaker.h0000644000175000017500000000260714122570751023520 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "bmhandler.h" #include "../installer/qtbaseinstaller.h" class DeviceMonitor; class BootMaker : public BMHandler { Q_OBJECT public: explicit BootMaker(QObject *parent = nullptr); public slots: void reboot(); void start(); void stop(); const QList deviceList() const; bool install(const QString &image, const QString &device, const QString &partition, bool formatDevice); bool checkfile(const QString &filepath); private: DeviceMonitor* m_usbDeviceMonitor = nullptr; QtBaseInstaller* m_pInstaller; }; deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bmhandler.cpp0000644000175000017500000000242514122570751024022 0ustar ephraimephraim#include "bmhandler.h" #include const QString BMHandler::errorString(BMHandler::ErrorType et) { QString strErr; switch (et) { case NoError: strErr = ""; break; case USBFormatError: if ((DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() == DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosProfessional) || (DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() == DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosHome)) { strErr = BMHandler::tr("Disk Format Error: Please reformat it or disable \"Auto scan USB storage devices\" in Security Center"); } else { strErr = BMHandler::tr("Disk Format Error: Please reformat it"); } break; case USBSizeError: strErr = BMHandler::tr("Insufficient disk Space: Ensure that the disk has enough free space"); break; case USBMountFailed: strErr = BMHandler::tr("Disk Mount Error: Insert the disk again or reboot to retry"); break; case ExtractImgeFailed: strErr = BMHandler::tr("Image Decompression Error: Verify md5 checksum of the image to ensure its integrity"); break; default: strErr = BMHandler::tr("Internal Error"); break; } return strErr; } deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bmdbushandler.h0000644000175000017500000000612514122570751024346 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "bmhandler.h" #include "bmdbusinterface.h" #include "../util/deviceinfo.h" #include #include class DeviceMonitor; class BMDbusHandler : public BMHandler { Q_OBJECT public: explicit BMDbusHandler(QObject *parent = nullptr) : BMHandler(parent) { m_dbus = new BMDBusInterface("com.deepin.bootmaker", "/com/deepin/bootmaker", QDBusConnection::systemBus(), this); if (!m_dbus->isValid()) { qDebug() << "m_dbus isValid false error:" << m_dbus->lastError(); } qDebug() << "m_dbus isValid true"; connect(m_dbus, &BMDBusInterface::DeviceListChanged, this, [ = ](const QString & addlistJson, const QString& dellistJson) { qDebug() << "DeviceListChanged,"; emit removablePartitionsChanged(deviceListFromJson(addlistJson), deviceListFromJson(dellistJson)); }); connect(m_dbus, &BMDBusInterface::Finished, this, &BMDbusHandler::finished); connect(m_dbus, &BMDBusInterface::ReportProgress, this, &BMDbusHandler::reportProgress); connect(m_dbus, &BMDBusInterface::ReportProgress1, this, &BMDbusHandler::reportProgress1); // connect(m_dbus, &BMDBusInterface::CheckFileResult, // this, &BMDbusHandler::checkFileResult); } public slots: void reboot() { m_dbus->Reboot(); } void start() { qDebug() << "start"; m_dbus->Start(); qDebug() << "m_dbus Start error:" << m_dbus->lastError(); } void stop() { m_dbus->Stop(); } const QList deviceList() const { qDebug() << "deviceList"; return deviceListFromJson(m_dbus->DeviceList()); } bool install(const QString &image, const QString &device, const QString &partition, bool formatDevice) { qDebug() << "install"; return m_dbus->Install(image, device, partition, formatDevice); } bool checkfile(const QString &filepath) { qDebug() << "checkfile"; return m_dbus->CheckFile(filepath); } private: BMDBusInterface *m_dbus = nullptr; }; deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bmhandler.h0000644000175000017500000000504014122570751023463 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "../util/deviceinfo.h" #include class BMHandler : public QObject { Q_OBJECT public: enum ErrorType { NoError = 0, SyscExecFailed, USBFormatError, USBSizeError, USBMountFailed, USBNotMountFailed, UMountUSBFailed, CheckImageIntegrityFailed, ExtractImgeFailed, InstallBootloaderFailed, GetUsbInstallDirFailed, SyncIOFailed, UnDefinedError }; explicit BMHandler(QObject *parent = nullptr): QObject(parent) { connect(this, &BMHandler::startInstall, this, &BMHandler::install); connect(this, &BMHandler::startCheckfile, this, &BMHandler::checkfile); } static const QString errorString(BMHandler::ErrorType et); signals: void startInstall(const QString &, const QString &, const QString &, bool); void startCheckfile(const QString &filepath); void removablePartitionsChanged(const QList &addlist, const QList& reducelist); void finished(int errcode, const QString &description); void reportProgress(int current, int error, const QString &title, const QString &description); void reportProgress1(int current, int error, const QString &title, const QString &description); // void checkFileResult(bool result); public slots: virtual void reboot() = 0; virtual void start() = 0; virtual void stop() = 0; virtual const QList deviceList() const = 0; virtual bool checkfile(const QString &filepath) = 0; protected: virtual bool install(const QString &image, const QString &device, const QString &partition, bool formatDevice) = 0; }; deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bmdbusinterface.h0000644000175000017500000000555614122570751024700 0ustar ephraimephraim/* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -v -c BMDBusInterface -p bmdbusinterface.h:bmdbusinterface.cpp com.deepin.bootmaker.xml * * qdbusxml2cpp is Copyright (C) 2016 The Qt Company Ltd. * * This is an auto-generated file. * Do not edit! All changes made to it will be lost. */ #ifndef BMDBUSINTERFACE_H #define BMDBUSINTERFACE_H #include #include #include #include #include #include #include #include /* * Proxy class for interface com.deepin.bootmaker */ class BMDBusInterface: public QDBusAbstractInterface { Q_OBJECT public: static inline const char *staticInterfaceName() { return "com.deepin.bootmaker"; } public: BMDBusInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr); ~BMDBusInterface(); public Q_SLOTS: // METHODS inline QDBusPendingReply DeviceList() { QList argumentList; return asyncCallWithArgumentList(QStringLiteral("DeviceList"), argumentList); } inline QDBusPendingReply Install(const QString &image, const QString &device, const QString &partition, bool formatDevice) { QList argumentList; argumentList << QVariant::fromValue(image) << QVariant::fromValue(device) << QVariant::fromValue(partition) << QVariant::fromValue(formatDevice); return asyncCallWithArgumentList(QStringLiteral("Install"), argumentList); } inline QDBusPendingReply CheckFile(const QString &filepath) { QList argumentList; argumentList << QVariant::fromValue(filepath); return asyncCallWithArgumentList(QStringLiteral("CheckFile"), argumentList); } inline QDBusPendingReply<> Reboot() { QList argumentList; return asyncCallWithArgumentList(QStringLiteral("Reboot"), argumentList); } inline QDBusPendingReply<> Start() { QList argumentList; return asyncCallWithArgumentList(QStringLiteral("Start"), argumentList); } inline QDBusPendingReply<> Stop() { QList argumentList; return callWithArgumentList(QDBus::CallMode::Block, QStringLiteral("Stop"), argumentList); } Q_SIGNALS: // SIGNALS void DeviceListChanged(const QString &addlistJson, const QString &dellistJson); void Finished(int errcode, const QString &description); void ReportProgress(int current, int total, const QString &title, const QString &description); void ReportProgress1(int current, int total, const QString &title, const QString &description); // void CheckFileResult(bool result); }; namespace com { namespace deepin { typedef ::BMDBusInterface bootmaker; } } #endif deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/syslinux.cpp0000644000175000017500000000154314122570751023764 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "syslinux.h" Syslinux::Syslinux(QObject *parent) : QObject(parent) { } deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/bootmaker.cpp0000644000175000017500000001170014122570751024045 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "bootmaker.h" #include "../installer/qtinstallerfactory.h" #include "../util/sevenzip.h" #include "../util/utils.h" #include "../util/devicemonitor.h" #include "diskutil.h" #include #include #include #ifdef Q_OS_WIN32 #include #include #pragma comment(lib, "shell32.lib") #pragma comment(lib, "advapi32.lib") #endif #ifdef Q_OS_LINUX #include #include #endif BootMaker::BootMaker(QObject *parent) : BMHandler(parent) ,m_pInstaller(nullptr) { m_usbDeviceMonitor = new DeviceMonitor; QThread *monitorWork = new QThread; m_usbDeviceMonitor->moveToThread(monitorWork); // connect(monitorWork, &QThread::started, // m_usbDeviceMonitor, &DeviceMonitor::startMonitor); connect(m_usbDeviceMonitor, &DeviceMonitor::removablePartitionsChanged, this, &BootMaker::removablePartitionsChanged); monitorWork->start(); connect(this, &BootMaker::finished, this, [ = ](int errcode, const QString & description) { this->reportProgress(101, errcode, "install failed", description); }); } void BootMaker::reboot() { #ifdef Q_OS_WIN32 HANDLE hToken; TOKEN_PRIVILEGES tkp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken); LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0); // ExitWindowsEx(EWX_REBOOT, EWX_FORCE); #endif #ifdef Q_OS_LINUX sync(); ::reboot(RB_AUTOBOOT); #endif #ifdef Q_OS_MAC XSys::SynExec("shutdown", "-r now &"); #endif } void BootMaker::start() { qInfo() << "BootMaker start"; if (m_pInstaller == nullptr) { m_pInstaller = QtInstallerFactory::getInstance()->createInstaller(); if (m_pInstaller != nullptr) { connect(m_pInstaller, &QtBaseInstaller::progressfinished, this, [=](ProgressStatus status, BMHandler::ErrorType error) { Q_UNUSED(status); emit finished(error, errorString(BMHandler::ErrorType(error))); }); connect(m_pInstaller, &QtBaseInstaller::reportProgress, m_usbDeviceMonitor, [=](int current, const QString &title, const QString &description){ emit this->reportProgress(current, ErrorType::NoError, title, description); }); connect(m_pInstaller->m_sevenZipCheck.m_szpp, &SevenZipProcessParser::progressChanged, m_usbDeviceMonitor, [ = ](int current, int /*total*/, const QString & fileName) { emit this->reportProgress(current * 60 / 100 + 20, ErrorType::NoError, "extract", fileName); }, Qt::QueuedConnection); } } if (m_pInstaller != nullptr) { if (m_pInstaller->isRunning()) { qInfo() << "Installer is running"; m_pInstaller->stopInstall(); } else { qInfo() << "Start flush disk"; emit m_usbDeviceMonitor->startMonitor(); } } } void BootMaker::stop() { emit m_usbDeviceMonitor->pauseMonitor(); } const QList BootMaker::deviceList() const { qDebug() << "BootMaker deviceList"; return m_usbDeviceMonitor->deviceList(); } bool BootMaker::checkfile(const QString &filepath) { qDebug() << "CheckFile:" << filepath; //check iso integrity SevenZip sevenZipCheck(filepath, ""); if (!sevenZipCheck.check()) { qCritical() << "Error::file check error"; // emit checkFileResult(false); return false; } // emit checkFileResult(true); return true; } bool BootMaker::install(const QString &image, const QString &unused_device, const QString &partition, bool formatDevice) { qDebug() << "Begin install" << image << unused_device << partition << formatDevice; if (m_pInstaller != nullptr) { emit m_usbDeviceMonitor->pauseMonitor(); m_pInstaller->setImage(image); m_pInstaller->setPartionName(partition); m_pInstaller->setformat(formatDevice); m_pInstaller->beginInstall(); emit m_usbDeviceMonitor->startMonitor(); } return true; } deepin-boot-maker_5.6.12+dfsg/src/libdbm/backend/diskutil.cpp0000644000175000017500000001006714122570751023717 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "diskutil.h" #include #include namespace DiskUtil { XSys::Result MountPartition(const QString &partition) { // mount QString mountPoint = XSys::DiskUtil::MountPoint(partition); if (mountPoint.isEmpty()) { mountPoint = QString("%1").arg(XSys::FS::TmpFilePath("deepin-boot-maker")); } XSys::Result ret = XSys::SynExec("mkdir", QString(" -p %1").arg(mountPoint)); if (!ret.isSuccess()) { return ret; } ret = XSys::SynExec("chmod", " a+wrx " + mountPoint); if (!ret.isSuccess()) { return ret; } QString mountCmd = "%1 %2"; QString remountCmd = "-o flush,rw,utf8=1,sync,nodev,nosuid, %1 %2"; XSys::DiskUtil::UmountDisk(partition); QThread::sleep(3); XSys::SynExec("mount", mountCmd.arg(partition).arg(mountPoint)); QThread::sleep(3); XSys::SynExec("mount", remountCmd.arg(partition).arg(mountPoint)); return XSys::Result(XSys::Result::Success, "", mountPoint); } } //#include //#include //static struct udev_device * //get_child( // struct udev *udev, struct udev_device *parent, const char *subsystem) //{ // struct udev_device *child = NULL; // struct udev_enumerate *enumerate = udev_enumerate_new(udev); // udev_enumerate_add_match_parent(enumerate, parent); // udev_enumerate_add_match_subsystem(enumerate, subsystem); // udev_enumerate_scan_devices(enumerate); // struct udev_list_entry *devices = udev_enumerate_get_list_entry(enumerate); // struct udev_list_entry *entry; // udev_list_entry_foreach(entry, devices) { // const char *path = udev_list_entry_get_name(entry); // child = udev_device_new_from_syspath(udev, path); // break; // } // udev_enumerate_unref(enumerate); // return child; //} //static void enumerate_usb_mass_storage(struct udev *udev) //{ // struct udev_enumerate *enumerate = udev_enumerate_new(udev); // udev_enumerate_add_match_subsystem(enumerate, "scsi"); // udev_enumerate_add_match_property(enumerate, "DEVTYPE", "scsi_device"); // udev_enumerate_scan_devices(enumerate); // struct udev_list_entry *devices = udev_enumerate_get_list_entry(enumerate); // struct udev_list_entry *entry; // udev_list_entry_foreach(entry, devices) { // const char *path = udev_list_entry_get_name(entry); // struct udev_device *scsi = udev_device_new_from_syspath(udev, path); // struct udev_device *block = get_child(udev, scsi, "block"); // struct udev_device *scsi_disk = get_child(udev, scsi, "scsi_disk"); // struct udev_device *usb // = udev_device_get_parent_with_subsystem_devtype( // scsi, "usb", "usb_device"); // if (block && scsi_disk && usb) { // printf("block = %s, usb = %s:%s, scsi = %s\n", // udev_device_get_devnode(block), // udev_device_get_sysattr_value(usb, "idVendor"), // udev_device_get_sysattr_value(usb, "idProduct"), // udev_device_get_sysattr_value(scsi, "vendor")); // } // if (block) { // udev_device_unref(block); // } // if (scsi_disk) { // udev_device_unref(scsi_disk); // } // udev_device_unref(scsi); // } // udev_enumerate_unref(enumerate); //} deepin-boot-maker_5.6.12+dfsg/src/libdbm/libdbm.pri0000644000175000017500000000227714122570751021745 0ustar ephraimephraimSOURCES += \ $$PWD/backend/bootmaker.cpp \ $$PWD/backend/diskutil.cpp \ $$PWD/backend/syslinux.cpp \ $$PWD/util/devicemonitor.cpp \ $$PWD/util/sevenzip.cpp \ $$PWD/util/utils.cpp \ $$PWD/bminterface.cpp \ $$PWD/backend/bmhandler.cpp \ $$PWD/installer/qtbaseinstaller.cpp \ $$PWD/installer/qtinstallerfactory.cpp \ $$PWD/installer/qtX86Installer.cpp \ $$PWD/installer/qtmipsinstaller.cpp HEADERS += \ $$PWD/backend/bmhandler.h \ $$PWD/backend/bootmaker.h \ $$PWD/backend/diskutil.h \ $$PWD/backend/syslinux.h \ $$PWD/util/deviceinfo.h \ $$PWD/util/devicemonitor.h \ $$PWD/util/sevenzip.h \ $$PWD/util/utils.h \ $$PWD/bminterface.h \ $$PWD/installer/qtbaseinstaller.h \ $$PWD/installer/qtinstallerfactory.h \ $$PWD/installer/qtX86Installer.h \ $$PWD/installer/qtmipsinstaller.h \ $$PWD/installer/qtarminstaller.h \ $$PWD/installer/qtswinstaller.h linux { HEADERS += \ $$PWD/backend/bmdbusinterface.h \ $$PWD/backend/bmdbushandler.h SOURCES += \ $$PWD/backend/bmdbusinterface.cpp } INCLUDEPATH += $$PWD/ linux { RESOURCES += $$PWD/blob_linux.qrc } else { RESOURCES += $$PWD/blob.qrc } deepin-boot-maker_5.6.12+dfsg/src/tests/0000755000175000017500000000000014122570751017701 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/tests/tests.pro0000644000175000017500000000220714122570751021566 0ustar ephraimephraiminclude($$PWD/vendor.pri) QT += core gui widgets testlib #CONFIG += c++11 console CONFIG += c++11 console link_pkgconfig PKGCONFIG += dtkwidget # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp \ unittestobj.cpp \ diskapitestobj.cpp \ imagecheckobj.cpp HEADERS += \ unittestobj.h \ diskapitestobj.h \ imagecheckobj.h INCLUDEPATH += $${PWD}/../app LIBS+= -lgtest QMAKE_CXXFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -O0 -fno-access-control QMAKE_LFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -O0 -fno-access-control deepin-boot-maker_5.6.12+dfsg/src/tests/vendor.pri0000644000175000017500000000374414122570751021722 0ustar ephraimephraiminclude($$PWD/../vendor/env.pri) unix{ QT += dbus CONFIG += link_pkgconfig PKGCONFIG += dtkcore } win32{ INCLUDEPATH += $$DTK_INCLUDE\DCore DEPENDPATH += $$DTK_DEPEND\DCore LIBS += -L$$DTK_LIBRARY -ldtkcore } ################################################################## # Library ################################################################## win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libdbm/release/ -llibdbm else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libdbm/debug/ -llibdbm else:unix: LIBS += -L$$OUT_PWD/../libdbm/ -llibdbm INCLUDEPATH += $$PWD/../libdbm DEPENDPATH += $$PWD/../libdbm win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/release/liblibdbm.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/debug/liblibdbm.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/release/libdbm.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/debug/libdbm.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../libdbm/liblibdbm.a win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/release/ -lxsys else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/debug/ -lxsys else:unix: LIBS += -L$$OUT_PWD/../vendor/src/libxsys/ -lxsys INCLUDEPATH += $$PWD/../vendor/src/libxsys DEPENDPATH += $$PWD/../vendor/src/libxsys win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/libxsys.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/libxsys.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/xsys.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/xsys.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/libxsys.a deepin-boot-maker_5.6.12+dfsg/src/tests/diskapitestobj.h0000644000175000017500000000054714122570751023077 0ustar ephraimephraim#ifndef DISKAPITESTOBJ_H #define DISKAPITESTOBJ_H #include #include class DiskApiTestObj : public testing::Test { protected: // Sets up the test fixture. virtual void SetUp(); // Tears down the test fixture. virtual void TearDown(); public: BootMaker* m_pBootMaker; }; #endif // DISKAPITESTOBJ_H deepin-boot-maker_5.6.12+dfsg/src/tests/main.cpp0000644000175000017500000000030614122570751021330 0ustar ephraimephraim#include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); ::testing::InitGoogleTest(&argc,argv); return RUN_ALL_TESTS(); } deepin-boot-maker_5.6.12+dfsg/src/tests/diskapitestobj.cpp0000644000175000017500000000647314122570751023436 0ustar ephraimephraim#include "diskapitestobj.h" #include #include QString getDiskKey(QString targetDev) { int iIndex = targetDev.lastIndexOf("/"); if (iIndex < 0) { return targetDev; } QString strPath = targetDev.left(iIndex + 1); QString strKey = targetDev.right(targetDev.length() - iIndex - 1); return strKey; } // Sets up the test fixture. void DiskApiTestObj::SetUp() { m_pBootMaker = new BootMaker; } // Tears down the test fixture. void DiskApiTestObj::TearDown() { delete m_pBootMaker; m_pBootMaker = nullptr; } TEST_F(DiskApiTestObj, TestName) { qInfo() << "Mount Point Test"; QList listDeviceInfo = m_pBootMaker->deviceList(); if (listDeviceInfo.size() > 0) { DeviceInfo devInfo = listDeviceInfo.at(0); QString strDisk = XSys::DiskUtil::GetPartitionDisk(devInfo.path); qInfo() << "Disk Name" << strDisk; ASSERT_TRUE(!strDisk.isEmpty()); QString strDiskKey = getDiskKey(strDisk); QStringList listPartions = XSys::DiskUtil::GetPartionOfDisk(strDiskKey); foreach (QString strPation, listPartions) { qDebug() << "Partion:" << strPation; } QString strMountPt = XSys::DiskUtil::MountPoint(devInfo.path); qInfo() << "Mount Point:" << strMountPt; if (!strMountPt.isEmpty()) { bool bRet = XSys::DiskUtil::UmountPartion(devInfo.path); ASSERT_TRUE(bRet); strMountPt = XSys::DiskUtil::MountPoint(devInfo.path); qInfo() << "Mount Point:" << strMountPt; ASSERT_TRUE(strMountPt.isEmpty()); } bool bRet = XSys::DiskUtil::Mount(devInfo.path); ASSERT_TRUE(bRet); strMountPt = XSys::DiskUtil::MountPoint(devInfo.path); qInfo() << "Mount Point:" << strMountPt; ASSERT_FALSE(strMountPt.isEmpty()); listPartions = XSys::DiskUtil::GetPartionOfDisk(strDiskKey); ASSERT_GE(listPartions.size(), 1); bRet = XSys::DiskUtil::UmountDisk(strDisk); listPartions.clear(); strMountPt = XSys::DiskUtil::MountPoint(devInfo.path); ASSERT_TRUE(!strMountPt.isNull()); } } TEST_F(DiskApiTestObj, TestName2) { qDebug() << "Format Partion Test"; QList listDeviceInfo = m_pBootMaker->deviceList(); if (listDeviceInfo.size() > 0) { DeviceInfo devInfo = listDeviceInfo.at(0); QString strMountPt = XSys::DiskUtil::MountPoint(devInfo.path); bool bRet = false; if (!strMountPt.isEmpty()) { bRet = XSys::DiskUtil::UmountPartion(devInfo.path); } else { bRet = true; } if (bRet) { //此处理需要root权限来进行操作,因而也会失败,报告日志为权限不足。 bRet = XSys::DiskUtil::FormatPartion(devInfo.path); ASSERT_TRUE(bRet); } else { bRet = false; ASSERT_FALSE(bRet); } if (bRet) { QString strDisk = XSys::DiskUtil::GetPartitionDisk(devInfo.path); ASSERT_TRUE(!strDisk.isEmpty()); //此处理需要root权限来进行操作,因而也会失败,报告日志为权限不足。 bRet = XSys::DiskUtil::SetActivePartion(strDisk, devInfo.path); ASSERT_FALSE(bRet); } } } deepin-boot-maker_5.6.12+dfsg/src/tests/unittestobj.cpp0000644000175000017500000000126714122570751022765 0ustar ephraimephraim#include "unittestobj.h" #include #include #include BMInterface* UnitTestObj::m_pBMinterFace = nullptr; void UnitTestObj::SetUpTestCase() { m_pBMinterFace = BMInterface::instance(); } void UnitTestObj::TearDownTestCase() { delete m_pBMinterFace; m_pBMinterFace = nullptr; } void UnitTestObj::SetUp() { qInfo() << "Test SetUp"; } void UnitTestObj::TearDown() { qInfo() << "Test TearDown"; } TEST_F(UnitTestObj, testObj) { //由于DBus的调用检测功能,该函数会失败,这里仅用于测试DBus自动唤起功能 bool bResult = m_pBMinterFace->checkfile("/home/sfs/Documents/test.iso"); ASSERT_EQ(bResult, false); } deepin-boot-maker_5.6.12+dfsg/src/tests/imagecheckobj.h0000644000175000017500000000054514122570751022631 0ustar ephraimephraim#ifndef IMAGECHECKOBJ_H #define IMAGECHECKOBJ_H #include #include class ImageCheckObj : public ::testing::Test { protected: // Sets up the test fixture. virtual void SetUp(); // Tears down the test fixture. virtual void TearDown(); public: BootMaker* m_pBootMaker; }; #endif // IMAGECHECKOBJ_H deepin-boot-maker_5.6.12+dfsg/src/tests/unittestobj.h0000644000175000017500000000070014122570751022421 0ustar ephraimephraim#ifndef UNITTESTOBJ_H #define UNITTESTOBJ_H #include #include class UnitTestObj : public testing::Test { public: static void SetUpTestCase(); static void TearDownTestCase(); protected: // Sets up the test fixture. virtual void SetUp() override; // Tears down the test fixture. virtual void TearDown() override; public: static BMInterface* m_pBMinterFace; }; #endif // UNITTESTOBJ_H deepin-boot-maker_5.6.12+dfsg/src/tests/imagecheckobj.cpp0000644000175000017500000000115114122570751023156 0ustar ephraimephraim#include "imagecheckobj.h" // Sets up the test fixture. void ImageCheckObj::SetUp() { m_pBootMaker = new BootMaker; } // Tears down the test fixture. void ImageCheckObj::TearDown() { delete m_pBootMaker; m_pBootMaker = nullptr; } TEST_F(ImageCheckObj, TestName) { //由于DBus的调用检测功能,该函数会失败,如果需要成功测试,需要先去掉检测功能 checkcaller bool bResult = m_pBootMaker->checkfile("/home/sfs/Documents/test.iso"); ASSERT_EQ(bResult, true); bResult = m_pBootMaker->checkfile("/home/sfs/Documents/bad.iso"); ASSERT_EQ(bResult, false); } deepin-boot-maker_5.6.12+dfsg/src/src.pro0000644000175000017500000000146314122570751020054 0ustar ephraimephraimTEMPLATE = subdirs CONFIG += ordered SUBDIRS += vendor/src/libxsys \ libdbm linux { SUBDIRS += service } SUBDIRS += app SUBDIRS += tests mac* { TRANSLATIONS_NAME = deepin-boot-maker TRANSLATIONS += $$PWD/translations/$${TRANSLATIONS_NAME}.ts \ $$PWD/translations/$${TRANSLATIONS_NAME}_zh_CN.ts system(python3 $$PWD/tools/translate_generation.py $$PWD) }else { CONFIG(release, debug|release) { TRANSLATIONS = $$files($$PWD/translations/*.ts) for(tsfile, TRANSLATIONS) { qmfile = $$replace(tsfile, .ts$, .qm) system(lrelease $$tsfile -qm $$qmfile) | error("Failed to lrelease") } linux { dtk_translations.path = /usr/share/deepin-boot-maker/translations dtk_translations.files = $$PWD/translations/*.qm INSTALLS += dtk_translations } } } deepin-boot-maker_5.6.12+dfsg/src/app/0000755000175000017500000000000014122571016017312 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/bmwindow.cpp0000644000175000017500000003101414122570751021650 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "bmwindow.h" #include "view/isoselectview.h" #include "view/usbselectview.h" #include "view/progressview.h" #include "view/resultview.h" #include "bminterface.h" #include "backend/bmhandler.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const static QString debugQSS = "background-color: rgba(255, 0, 255, 20%);border: 1px solid;" " border-radius: 3; border-color: rgba(0, 255, 0, 20%);"; class BMWindowPrivate { public: BMWindowPrivate(BMWindow *parent): q_ptr(parent) {} DLabel *m_title = nullptr; DWidget *actionWidgets = nullptr; ISOSelectView *isoWidget = nullptr; UsbSelectView *usbWidget = nullptr; ProgressView *progressWidget = nullptr; ResultView *resultWidget = nullptr; // DDialog *warnDlg = nullptr; BMInterface *interface = nullptr; DPageIndicator *wsib = nullptr; BMWindow *q_ptr; Q_DECLARE_PUBLIC(BMWindow) }; BMWindow::BMWindow(QWidget *parent) : BMWindowBaseClass(parent), d_ptr(new BMWindowPrivate(this)) { Q_D(BMWindow); setFixedSize(440, 550); d->interface = BMInterface::instance(); // init about info QString descriptionText = tr("Boot Maker is a simple tool to write system image files into USB flash drives and other media."); QString acknowledgementLink = "https://www.deepin.org/acknowledgments/deepin-boot-maker#thanks"; qApp->setProductName(tr("Boot Maker")); qApp->setApplicationAcknowledgementPage(acknowledgementLink); // qApp->setProductIcon(QIcon(":/theme/light/image/deepin-boot-maker.svg")); qApp->setProductIcon(QIcon::fromTheme("deepin-boot-maker")); qApp->setApplicationDescription(descriptionText); auto title = titlebar(); auto flags = windowFlags() & ~Qt::WindowMaximizeButtonHint; setWindowFlags(flags); #ifdef Q_OS_WIN title->setMenuVisible(false); #endif // TODO: read it from parent #ifdef Q_OS_MAC titlebar()->setWindowFlags(flags); QPalette pal(palette()); pal.setColor(QPalette::Background, Qt::white); setAutoFillBackground(true); setPalette(pal); #endif setTitlebarShadowEnabled(false); title->setTitle(""); title->setIcon(QIcon::fromTheme("deepin-boot-maker")/*QIcon(":/theme/light/image/deepin-boot-maker.svg")*/); title->setFixedHeight(50); auto viewWidth = 440; QStackedLayout *actionsLayout = new QStackedLayout; actionsLayout->setMargin(0); d->isoWidget = new ISOSelectView(); d->isoWidget->resize(440, 466); d->usbWidget = new UsbSelectView; d->usbWidget->move(viewWidth, 0); d->usbWidget->resize(440, 466); d->progressWidget = new ProgressView; d->progressWidget->move(viewWidth, 0); d->progressWidget->resize(440, 466); d->resultWidget = new ResultView; d->resultWidget->move(viewWidth, 0); d->resultWidget->resize(440, 466); actionsLayout->addWidget(d->isoWidget); actionsLayout->addWidget(d->usbWidget); actionsLayout->addWidget(d->progressWidget); actionsLayout->addWidget(d->resultWidget); d->wsib = new DPageIndicator(this); d->wsib->setAutoFillBackground(true); d->wsib->setPageCount(4); d->wsib->setCurrentPage(0); d->wsib->setFixedHeight(34); d->wsib->setPointRadius(3); d->wsib->setSecondaryPointRadius(3); d->wsib->setPointDistance(12); QVBoxLayout *mainLayout = new QVBoxLayout(); mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addLayout(actionsLayout); mainLayout->addWidget(d->wsib); auto centralWidget = new DWidget; centralWidget->resize(440, 466); centralWidget->setLayout(mainLayout); setCentralWidget(centralWidget); m_pSAnimationGroup = new QSequentialAnimationGroup(this); slot_ThemeChange(); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::newProcessInstance, this, [ = ] { this->activateWindow(); }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &BMWindow :: slot_ThemeChange); connect(d->isoWidget, &ISOSelectView::isoFileSelected, this, [ = ] { slideWidget(d->isoWidget, d->usbWidget); setProperty("bmISOFilePath", d->isoWidget->isoFilePath()); d->wsib->setCurrentPage(1); }); connect(d->usbWidget, &UsbSelectView::deviceSelected, this, [ = ](const QString & partition, bool format) { #ifdef Q_OS_WIN setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint); closeflags = false; this->setVisible(true); #endif DWindowManagerHelper::instance()->setMotifFunctions(windowHandle(), DWindowManagerHelper::FUNC_CLOSE, false); titlebar()->setQuitMenuDisabled(true); slideWidget(d->usbWidget, d->progressWidget); d->wsib->setCurrentPage(2); auto isoFilePath = property("bmISOFilePath").toString(); qDebug() << "call interface install" << partition << format; emit d->interface->startInstall(isoFilePath, "", partition, format); }); connect(d->progressWidget, &ProgressView::testCancel, this, [ = ] { setWindowFlags(windowFlags() | Qt::WindowCloseButtonHint); d->resultWidget->updateResult(BMHandler::SyscExecFailed, "title", "description"); slideWidget(d->progressWidget, d->resultWidget); d->wsib->setCurrentPage(2); }); connect(d->usbWidget, &UsbSelectView::finish, this, [ = ](quint32 error, const QString & title, const QString & description) { Qt::WindowFlags flags = Qt::WindowCloseButtonHint; flags |= Qt::WindowSystemMenuHint; flags |= Qt::WindowMinimizeButtonHint; titlebar()->setDisableFlags(flags); slideWidget(d->usbWidget, d->progressWidget); d->wsib->setCurrentPage(2); emit d->progressWidget->finish(0, error, title, description); }); connect(d->usbWidget, &UsbSelectView::backToPrevUI, this, [=]{ slideWidget(d->usbWidget, d->isoWidget, 1); d->wsib->setCurrentPage(0); }); //diff mac,win,linux connect(d->progressWidget, &ProgressView::finish, this, [ = ](quint32 current, quint32 error, const QString & title, const QString & description) { qDebug() << error << title << description << current; if (error != BMHandler::NoError) { titlebar()->setQuitMenuDisabled(false); #ifdef Q_OS_WIN setWindowFlags(Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint); closeflags = true; this->setVisible(true); #endif #ifndef Q_OS_WIN DWindowManagerHelper::instance()->setMotifFunctions(windowHandle(), DWindowManagerHelper::FUNC_CLOSE, true); #endif d->resultWidget->updateResult(error, title, description); slideWidget(d->progressWidget, d->resultWidget); d->wsib->setCurrentPage(3); } #ifdef Q_OS_LINUX if (error == BMHandler::NoError && current == 101) { titlebar()->setMenuVisible(true); titlebar()->setQuitMenuDisabled(false); DWindowManagerHelper::instance()->setMotifFunctions(windowHandle(), DWindowManagerHelper::FUNC_CLOSE, true); d->resultWidget->updateResult(error, title, description); slideWidget(d->progressWidget, d->resultWidget); d->wsib->setCurrentPage(3); } #endif #ifndef Q_OS_LINUX #if defined Q_OS_Win titlebar()->setQuitMenuDisabled(false); setWindowFlags(Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint); closeflags = true; this->setVisible(true); titlebar()->setMenuVisible(false); #endif d->resultWidget->updateResult(error, title, description); slideWidget(d->progressWidget, d->resultWidget); d->wsib->setCurrentPage(3); #endif }); d->interface->start(); } void BMWindow :: slot_ThemeChange() { Q_D(BMWindow); DPalette pa; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pa = d->wsib->palette(); pa.setColor(DPalette::Background, QColor(255, 255, 255)); d->wsib->setPalette(pa); d->wsib->setPointColor(QColor("#2CA7F8")); // d->wsib->setSecondaryPointColor(QColor("#96ACBD")); d->wsib->setSecondaryPointColor(QColor(150, 172, 189, 51)); } else if (themeType == DGuiApplicationHelper::DarkType) { pa = d->wsib->palette(); pa.setColor(DPalette::Background, QColor("#292929")); d->wsib->setPalette(pa); d->wsib->setPointColor(QColor("#0082FA")); // d->wsib->setSecondaryPointColor(QColor("#555555")); d->wsib->setSecondaryPointColor(QColor(85, 85, 85, 102)); } } BMWindow::~BMWindow() { m_pSAnimationGroup->deleteLater(); } QString rootCommand() { return QString("gksu \"%1 -d -n\"").arg(qApp->applicationFilePath()); } void startBackend() { QProcess::startDetached(rootCommand()); } #if defined(Q_OS_WIN) void BMWindow::closeEvent(QCloseEvent *event) { if (closeflags == false) { event->ignore(); } else { event->accept(); } } #endif void BMWindow::slideWidget(DWidget *left, DWidget *right, int iDirection) { SlideAnimatoin* pSlideAnimation = new SlideAnimatoin; pSlideAnimation->initAnimation(left, right, iDirection); if (QAbstractAnimation::Stopped == m_pSAnimationGroup->state()) { for (int i = 0; i < m_pSAnimationGroup->animationCount(); i++) { m_pSAnimationGroup->animationAt(i)->deleteLater(); } m_pSAnimationGroup->clear(); m_pSAnimationGroup->addAnimation(pSlideAnimation); m_pSAnimationGroup->start(); } else { m_pSAnimationGroup->addAnimation(pSlideAnimation); } } SlideAnimatoin::SlideAnimatoin(QObject* pParent):QParallelAnimationGroup (pParent) { QObject::connect(this, &SlideAnimatoin::finished, this, &SlideAnimatoin::slot_AnimationGroupFinished); } SlideAnimatoin::~SlideAnimatoin() { } void SlideAnimatoin::initAnimation(DWidget* pLeftWidget, DWidget* pRightWidget, int iDirection) { setLeftWidget(pLeftWidget); setRightWidget(pRightWidget); m_pLeftWidget->show(); m_pRightWidget->show(); int delay = 300; QRect leftStart = QRect(0, 0, m_pLeftWidget->width(), m_pLeftWidget->height()); QRect leftEnd = QRect(iDirection*m_pLeftWidget->width(), 0, m_pLeftWidget->width(), m_pLeftWidget->height()); QPropertyAnimation *animation = new QPropertyAnimation(m_pLeftWidget, "geometry"); animation->setDuration(delay); animation->setStartValue(leftStart); animation->setEndValue(leftEnd); QRect rightStart = QRect(-iDirection*m_pLeftWidget->width(), 0, m_pRightWidget->width(), m_pRightWidget->height()); QRect rightEnd = leftStart; leftEnd.setX(0); QPropertyAnimation *animation2 = new QPropertyAnimation(m_pRightWidget, "geometry"); animation2->setDuration(delay); animation2->setStartValue(rightStart); animation2->setEndValue(rightEnd); addAnimation(animation); addAnimation(animation2); } void SlideAnimatoin::setLeftWidget(DWidget* pWidget) { m_pLeftWidget = pWidget; } void SlideAnimatoin::setRightWidget(DWidget* pWidget) { m_pRightWidget = pWidget; } void SlideAnimatoin::slot_AnimationGroupFinished() { for (int i = 0; i < this->animationCount(); i++) { this->animationAt(i)->deleteLater(); } this->clear(); if (m_pLeftWidget != nullptr) { m_pLeftWidget->hide(); } if (m_pRightWidget != nullptr) { m_pRightWidget->show(); } } deepin-boot-maker_5.6.12+dfsg/src/app/view/0000755000175000017500000000000014122570751020271 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/unmountusbview.h0000644000175000017500000000131614122570751023555 0ustar ephraimephraim#ifndef UNMOUNTUSBVIEW_H #define UNMOUNTUSBVIEW_H #include #include #include #include #include #include #include #include #include #include #include "widgetutil.h" #include DWIDGET_USE_NAMESPACE class UnmountUsbView : public DWidget { Q_OBJECT public: explicit UnmountUsbView(QWidget *parent = nullptr); private: QPointerm_hitTitle; QPointerm_spinner; signals: void startSpinner(); void finish1(quint32 error, const QString &title, const QString &description); void pauseSpinner(); public slots: }; #endif // UNMOUNTUSBVIEW_H deepin-boot-maker_5.6.12+dfsg/src/app/view/unmountusbview.cpp0000644000175000017500000000307314122570751024112 0ustar ephraimephraim#include "unmountusbview.h" #include UnmountUsbView::UnmountUsbView(DWidget *parent): DWidget(parent) { setObjectName("safeejectview"); setAutoFillBackground(true); QVBoxLayout *MainLayout = new QVBoxLayout(this); MainLayout->setContentsMargins(0, 1, 0, 0); MainLayout->setSpacing(0); m_spinner = new DSpinner(); m_spinner->setObjectName("spinner"); m_spinner->setFixedSize(32, 32); m_hitTitle = new DLabel(tr("Verifying data and safely removing the media, please wait...")); DPalette pa = DApplicationHelper::instance()->palette(m_hitTitle); QBrush brush = DApplicationHelper::instance()->palette(m_hitTitle).text(); pa.setBrush(DPalette::Text, brush); m_hitTitle->setPalette(pa); m_hitTitle->setFixedWidth(440); m_hitTitle->setFixedHeight(50); m_hitTitle->setWordWrap(true); m_hitTitle->setAlignment(Qt::AlignTop); DFontSizeManager::instance()->bind(m_hitTitle, DFontSizeManager::T5); m_hitTitle->setAlignment(Qt::AlignCenter); MainLayout->addSpacing(200); MainLayout->addWidget(m_spinner, 0, Qt::AlignCenter); MainLayout->addSpacing(10); MainLayout->addWidget(m_hitTitle, 0, Qt::AlignCenter); MainLayout->addStretch(); DPalette pa1 = DApplicationHelper::instance()->palette(this); pa.setBrush(DPalette::Background, pa.color(DPalette::Base)); this->setPalette(pa1); connect(this, &UnmountUsbView::startSpinner, this, [ = ]() { m_spinner->start(); }); connect(this, &UnmountUsbView::pauseSpinner, this, [ = ]() { m_spinner->stop(); }); } deepin-boot-maker_5.6.12+dfsg/src/app/view/suggestbuttonbak.cpp0000644000175000017500000000642214122570751024374 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "suggestbutton.h" #include "widgetutil.h" #include #include SuggestButton::SuggestButton(DWidget *parent) : DPushButton(parent), israised(true) { // this->setStyleSheet(WidgetUtil::getQss(":/theme/light/SuggestButton.theme")); // this->setFixedSize(QPixmap(":/theme/light/image/suggest_button_hover.svg").size()); this->setFixedSize(310, 36); m_filletradii = 8; } //void SuggestButton::mSetText(QString text) //{ // m_text = text; //} void SuggestButton::paintEvent(QPaintEvent *event) { DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); QColor disablecolor, raisedcolor, disraisedcolor, textcolor; if (themeType == DGuiApplicationHelper::LightType) { disablecolor = QColor(0, 0, 0, 13); raisedcolor = QColor("#E3E3E3"); disraisedcolor = QColor("#00BFFF"); textcolor = QColor("#414D68"); } else if (themeType == DGuiApplicationHelper::DarkType) { disablecolor = QColor(0, 0, 0, 13); raisedcolor = QColor("#E3E3E3"); disraisedcolor = QColor("#00BFFF"); textcolor = QColor("#414D68"); } QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); if (!this->isEnabled()) { painter.setBrush(QBrush(disablecolor)); } else { if (israised) painter.setBrush(QBrush(raisedcolor)); else painter.setBrush(QBrush(disraisedcolor)); } painter.setPen(Qt::transparent); QRect rect = this->rect(); rect.setWidth(rect.width() - 1); rect.setHeight(rect.height() - 1); painter.drawRoundedRect(rect, m_filletradii, m_filletradii); QFont qf = font(); qf.setPixelSize(14); painter.setFont(qf); // painter.setPen(Qt::black); painter.setPen(textcolor); painter.drawText(0, 0, this->width(), this->height(), Qt::AlignCenter, text()); // DPushButton::paintEvent(event); } void SuggestButton::enterEvent(QEvent *e) { israised = false; repaint(); //重新绘制按钮 } void SuggestButton::leaveEvent(QEvent *e) { israised = true; repaint(); } void SuggestButton::mouseEvent(QMouseEvent *e) { float w = this->width(); float h = this->height(); int x = e->x(); int y = e->y(); float k = h / w; //斜率 if ( y > -k * x + h / 2 && y >= k * x - h / 2 && y <= k * x + h / 2 && y <= -k * x + 3 * h / 2) { israised = false; } else { israised = true; } repaint(); } deepin-boot-maker_5.6.12+dfsg/src/app/view/resultview.cpp0000644000175000017500000002561314122570751023215 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "resultview.h" #include "widgetutil.h" #include "deviceinfoitem.h" #include "devicelistwidget.h" #include "dwaterprogress.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include ResultView::ResultView(DWidget *parent) : DWidget(parent) { setObjectName("ResultView"); setAutoFillBackground(true); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(0, 1, 0, 0); // int lcdFontId = QFontDatabase::addApplicationFont(":/theme/SourceHanSansSC-Medium.ttf"); // int lcdFontId1 = QFontDatabase::addApplicationFont(":/theme/SourceHanSansSC-Bold.ttf"); // QStringList m_fontList; // m_fontList.clear(); // if (lcdFontId != -1) { // m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId); // } // if (lcdFontId != -1) { // m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId1); // } m_title = new DLabel(tr("Successful")); DPalette pa = DApplicationHelper::instance()->palette(m_title); QBrush brush = DApplicationHelper::instance()->palette(m_title).text(); pa.setBrush(DPalette::Text, brush); m_title->setPalette(pa); DFontSizeManager::instance()->bind(m_title, DFontSizeManager::T3); // QFont qf = m_title->font(); // if (m_fontList.size() > 0) // qf.setFamily(m_fontList.at(0)); // qf.setPixelSize(24); // m_title->setFont(qf); m_resultIcon = new DLabel(); m_resultIcon->setObjectName("ResultIcon"); m_resultIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/success.svg", this)); m_hitsTitle = new DLabel(); m_hitsTitle->setObjectName("ResulteHitsTitle"); pa = DApplicationHelper::instance()->palette(m_hitsTitle); brush = DApplicationHelper::instance()->palette(m_hitsTitle).text(); pa.setBrush(DPalette::Text, brush); m_hitsTitle->setPalette(pa); m_hitsTitle->setAlignment(Qt::AlignCenter); m_hitsTitle->setContentsMargins(20, 0, 20, 0); DFontSizeManager::instance()->bind(m_hitsTitle, DFontSizeManager::T5); // qf = m_hitsTitle->font(); // qf.setPixelSize(17); // if (m_fontList.size() > 1) // qf.setFamily(m_fontList.at(1)); //// qf.setBold(true); // m_hitsTitle->setFont(qf); // QString hitsFormat = "%1"; // QString tagBegin = ""; // QString tagEnd = ""; // QString log = tr("Installation logs are stored in %1HERE%2, you can upload to forum to help us solve your problem."); m_logHits = new DLabel(/*hitsFormat.arg(log.arg(tagBegin).arg(tagEnd))*/); // m_logHits = new DTipLabel(/*hitsFormat.arg(log.arg(tagBegin).arg(tagEnd))*/); 如果不注释这一行,Windows上无法编译 m_logHits->setObjectName("ResultErrorDescription"); m_logHits->setContentsMargins(20, 0, 20, 0); m_logHits->setWordWrap(true); m_logHits->setAlignment(Qt::AlignHCenter); DFontSizeManager::instance()->bind(m_logHits, DFontSizeManager::T8); // m_rebootLater = new SuggestButton(); m_rebootLater = new DPushButton(); m_rebootLater->setFocusPolicy(Qt::NoFocus); m_rebootLater->setFixedSize(310, 36); m_rebootLater->setObjectName("RebootLater"); m_rebootLater->setText(tr("Done")); m_rebootLater->setProperty("normal", true); DFontSizeManager::instance()->bind(m_rebootLater, DFontSizeManager::T6); // qf = m_rebootLater->font(); // if (m_fontList.size() > 0) // qf.setFamily(m_fontList.at(0)); // qf.setPixelSize(14); // m_rebootLater->setFont(qf); /* rebootLater->style()->unpolish(rebootLater); rebootLater->style()->polish(rebootLater);*/ // m_rebootNow = new SuggestButton(); m_rebootNow = new DPushButton(); m_rebootNow->setFocusPolicy(Qt::NoFocus); m_rebootNow->setFixedSize(310, 36); m_rebootNow->setObjectName("RebootLater"); m_rebootNow->setText(tr("Reboot now")); DFontSizeManager::instance()->bind(m_rebootNow, DFontSizeManager::T6); // qf = m_rebootNow->font(); // qf.setFamily("SourceHanSansSC-Medium"); // qf.setPixelSize(14); // m_rebootNow->setFont(qf); mainLayout->addWidget(m_title, 0, Qt::AlignHCenter); mainLayout->addStretch(); mainLayout->addWidget(m_resultIcon, 0, Qt::AlignHCenter); mainLayout->addSpacing(11); mainLayout->addWidget(m_hitsTitle); mainLayout->addWidget(m_logHits); mainLayout->addStretch(); mainLayout->addWidget(m_rebootLater, 0, Qt::AlignHCenter|Qt::AlignBottom); // mainLayout->addSpacing(15); // m_rebootNow->hide(); // mainLayout->addWidget(m_rebootNow, 0, Qt::AlignCenter); connect(m_rebootNow, &DPushButton::clicked, this, [ = ]() { BMInterface::instance()->reboot(); }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] { DPalette pa; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pa = palette(); pa.setColor(DPalette::Background, QColor(255, 255, 255)); setPalette(pa); // pa = m_title->palette(); // pa.setColor(DPalette::WindowText, QColor("#414D68")); // m_title->setPalette(pa); pa = m_hitsTitle->palette(); pa.setColor(DPalette::WindowText, QColor("#001A2E")); m_hitsTitle->setPalette(pa); pa = m_logHits->palette(); pa.setColor(DPalette::WindowText, QColor("#526A7F")); m_logHits->setPalette(pa); } else if (themeType == DGuiApplicationHelper::DarkType) { pa = palette(); pa.setColor(DPalette::Background, QColor("#292929")); setPalette(pa); // pa = m_title->palette(); // pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); // m_title->setPalette(pa); pa = m_hitsTitle->palette(); pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_hitsTitle->setPalette(pa); pa = m_logHits->palette(); pa.setColor(DPalette::WindowText, QColor("#6D7C88")); m_logHits->setPalette(pa); } }); emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType()); } void ResultView::updateResult(quint32 error, const QString &/*title*/, const QString &/*description*/) { auto errorType = static_cast(error); switch (errorType) { case BMHandler::NoError: m_rebootLater->disconnect(); connect(m_rebootLater, &DPushButton::clicked, this, [ = ]() { qApp->exit(0); }); return; case BMHandler::SyscExecFailed: case BMHandler::ErrorType::InstallBootloaderFailed: if (DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() != DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosProfessional) { m_logHits->setText(tr("The error log will be uploaded automatically with the feedback. We cannot improve without your feedback")); m_rebootLater->setText(tr("Submit Feedback")); m_logHits->adjustSize(); m_rebootLater->disconnect(); connect(m_rebootLater, &DPushButton::clicked, this, [ = ]() { // FIXME: call feedback 非专业版保持链接进社区 if (DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() == DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosCommunity) { QDesktopServices::openUrl(QString("https://bbs.deepin.org/post/209286")); } else if(DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() == DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosHome) { QDesktopServices::openUrl(QString("https://bbs.chinauos.com/post/4838?id=4838&type_id=5&forum_name=%E6%A1%8C%E9%9D%A2%E4%B8%AA%E4%BA%BA%E7%89%88")); } else if((DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() == DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosEnterprise) || (DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::uosEditionType() == DTK_NAMESPACE::DCORE_NAMESPACE::DSysInfo::UosEnterprise)) { QDesktopServices::openUrl(QString("https://bbs.chinauos.com/zh/post/5609")); } else { QProcess::startDetached("deepin-feedback"); } }); } else { m_rebootLater->setText(tr("After-Sale Services")); m_logHits->adjustSize(); m_rebootLater->disconnect(); connect(m_rebootLater, &DPushButton::clicked, this, [ = ]() { // FIXME: call service-support fix bug 19711 专业版不再调用deepin-feedback链接进社区,而是调用服务与支持客户端 QDBusInterface syssupport("com.deepin.dde.ServiceAndSupport", "/com/deepin/dde/ServiceAndSupport", "com.deepin.dde.ServiceAndSupport"); syssupport.call("ServiceSession", 2); }); } break; default: m_logHits->setText(BMHandler::errorString(errorType)); m_rebootLater->setText(tr("Close")); m_rebootLater->disconnect(); connect(m_rebootLater, &DPushButton::clicked, this, [ = ]() { qApp->exit(0); }); break; } m_hitsTitle->setText(tr("Sorry, process failed")); m_title->setText(tr("Process failed")); m_resultIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/fail.svg", this)); m_logHits->show(); m_rebootNow->hide(); } void ResultView::onLogLinkActivated(const QString &link) { if (link == "#show_log") { QDesktopServices::openUrl(QUrl::fromLocalFile(Dtk::Core::DLogManager::getlogFilePath())); } } deepin-boot-maker_5.6.12+dfsg/src/app/view/devicelistwidget.cpp0000644000175000017500000000243114122570751024334 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "devicelistwidget.h" #include "widgetutil.h" DeviceListWidget::DeviceListWidget(DWidget *parent) : DListWidget(parent) { setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setFocusPolicy(Qt::NoFocus); setFlow(QListView::TopToBottom); setMovement(QListView::Static); setViewMode(QListView::ListMode); setFrameShape(QListWidget::NoFrame); // this->setStyleSheet(WidgetUtil::getQss(":/theme/light/DeviceListWidget.theme")); } deepin-boot-maker_5.6.12+dfsg/src/app/view/deviceinfoitem.cpp0000644000175000017500000002043214122570751023770 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "deviceinfoitem.h" #include "widgetutil.h" #include #include #include #include #include #include #include #include DeviceDelegate::DeviceDelegate(QObject *parent) : QItemDelegate(parent) { } void DeviceDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { // do nothing // return QItemDelegate::paint (painter, option, index); } DeviceInfoItem::DeviceInfoItem(const QString &name, const QString &device, const QString &cap, int percent, DWidget *parent) : DWidget(parent) { s_removeDevice = WidgetUtil::getDpiPixmap(":/theme/light/image/drive.svg", this); // s_selectDevice = WidgetUtil::getDpiPixmap(":/theme/light/image/drive-select.svg", this); // this->setStyleSheet(WidgetUtil::getQss(":/theme/light/DeviceInfoItem.theme")); auto mainLayout = new QHBoxLayout(this); mainLayout->setContentsMargins(9, 0, 6, 0); mainLayout->setSpacing(0); m_deviceIcon = new DLabel; m_deviceIcon->setObjectName("DeviceInfoIcon"); m_deviceIcon->setPixmap(s_removeDevice); auto m_deviceLabel = new DLabel; m_deviceLabel->setObjectName("DeviceInfoLabel"); DPalette pa = DApplicationHelper::instance()->palette(m_deviceLabel); QBrush brush = DApplicationHelper::instance()->palette(m_deviceLabel).text(); pa.setBrush(DPalette::Text, brush); m_deviceLabel->setText(name); m_deviceLabel->setFixedHeight(25); DFontSizeManager::instance()->bind(m_deviceLabel, DFontSizeManager::T6); // QFont qf = m_deviceLabel->font(); // qf.setPixelSize(14); // m_deviceLabel->setFont(qf); auto m_deviceDevName = new DLabel; m_deviceDevName->setObjectName("DeviceInfoDevName"); m_deviceDevName->setText(QString("%1").arg(device)); m_deviceDevName->setFixedHeight(20); DFontSizeManager::instance()->bind(m_deviceDevName, DFontSizeManager::T8); // qf = m_deviceDevName->font(); // qf.setPixelSize(12); // m_deviceDevName->setFont(qf); m_deviceDevName->setAlignment(Qt::AlignCenter); auto m_deviceCapacity = new DLabel; m_deviceCapacity->setObjectName("DeviceInfoCapacity"); m_deviceCapacity->setText(cap); m_deviceCapacity->setFixedHeight(18); DFontSizeManager::instance()->bind(m_deviceCapacity, DFontSizeManager::T10); // qf = m_deviceCapacity->font(); // qf.setPixelSize(10); // m_deviceCapacity->setFont(qf); m_deviceCapacity->setAlignment(Qt::AlignCenter); #if defined(Q_OS_WIN32)||defined(Q_OS_MAC) m_deviceCapacity->hide(); #endif auto m_deviceCapacityBar = new DProgressBar; m_deviceCapacityBar->setObjectName("DeviceInfoCapacityBar"); m_deviceCapacityBar->setTextVisible(false); m_deviceCapacityBar->setFixedSize(292, 4); m_deviceCapacityBar->setValue(percent); // m_deviceCapacityBar->setStyleSheet(".QProgressBar{background - color: rgba(0, 0, 0, 0.05);border: solid 1px rgba(0, 0, 0, 0.03);border-radius: 1.5px;}" // ".QProgressBar::chunk{background - color:#2ca7f8;border-radius: 1.5px;}"); // m_radiobutton = new QRadioButton; // m_radiobutton->setFocusPolicy(Qt::NoFocus); // m_radiobutton->setChecked(false); // m_radiobutton->setFixedSize(20, 20); // m_radiobutton->hide(); m_fillingposition = new DLabel; // m_fillingposition->setFixedSize(30, 30); auto m_bodywidget = new DWidget; auto bodyLayout = new QVBoxLayout(m_bodywidget); bodyLayout->setMargin(0); auto m_middlewidget = new DWidget; m_middlewidget->setFixedWidth(292); m_middlewidget->setFixedHeight(18); auto middleLayout = new QHBoxLayout(m_middlewidget); middleLayout->setMargin(0); middleLayout->addWidget(m_deviceDevName, 0, Qt::AlignLeft); middleLayout->addWidget(m_deviceCapacity, 0, Qt::AlignRight); bodyLayout->addSpacing(6); bodyLayout->addWidget(m_deviceLabel, 0, Qt::AlignLeft); bodyLayout->addSpacing(0); bodyLayout->addWidget(m_middlewidget, 0, Qt::AlignLeft); bodyLayout->addSpacing(5); bodyLayout->addWidget(m_deviceCapacityBar, 0, Qt::AlignCenter); bodyLayout->addSpacing(9); mainLayout->addWidget(m_deviceIcon, 0, Qt::AlignLeft); mainLayout->addSpacing(7); mainLayout->addWidget(m_bodywidget, 0, Qt::AlignLeft); mainLayout->addSpacing(10); mainLayout->addWidget(m_fillingposition, 0, Qt::AlignRight); setFixedSize(400, 70); setProperty("needformat", false); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] { DPalette pa; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pa = m_deviceDevName->palette(); pa.setColor(DPalette::Text, QColor("#8AA1B4")); m_deviceDevName->setPalette(pa); pa = m_deviceCapacity->palette(); pa.setColor(DPalette::Text, QColor("#8AA1B4")); m_deviceCapacity->setPalette(pa); } else if (themeType == DGuiApplicationHelper::DarkType) { pa = m_deviceDevName->palette(); pa.setColor(DPalette::Text, QColor("#6D7C88")); m_deviceDevName->setPalette(pa); pa = m_deviceCapacity->palette(); pa.setColor(DPalette::Text, QColor("#6D7C88")); m_deviceCapacity->setPalette(pa); } setCheck(checked); }); emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType()); } DeviceInfoItem::DeviceInfoItem(DWidget *parent) : DeviceInfoItem("Remove Device", "NULL", "0/0G", 0, parent) { setProperty("needformat", false); } void DeviceInfoItem::paintEvent(QPaintEvent *event) { QColor baccolor; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { baccolor = QColor(0, 0, 0, 8); } else if (themeType == DGuiApplicationHelper::DarkType) { baccolor = QColor(255, 255, 255, 13); } QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(QBrush(baccolor)); painter.setPen(Qt::transparent); QRect rect = this->rect(); rect.setWidth(rect.width() - 1); rect.setHeight(rect.height() - 1); painter.drawRoundedRect(rect, 8, 8); DWidget::paintEvent(event); } QPixmap DeviceInfoItem::renderSVG(const QString &filePath, const QSize &size) { QImageReader reader; QPixmap pixmap; reader.setFileName(filePath); if (reader.canRead()) { const qreal ratio = qApp->devicePixelRatio(); reader.setScaledSize(size * ratio); pixmap = QPixmap::fromImage(reader.read()); pixmap.setDevicePixelRatio(ratio); } else { pixmap.load(filePath); } return pixmap; } void DeviceInfoItem::setCheck(bool flag) { // m_deviceIcon->setPixmap(flag ? s_selectDevice : s_removeDevice); // m_radiobutton->setChecked(flag); if (flag) { auto icon = qobject_cast(style())->standardIcon(DStyle::SP_IndicatorChecked); QPixmap pixmap = icon.pixmap(QSize(16, 16), QIcon::Active); m_fillingposition->setPixmap(pixmap); } else { m_fillingposition->clear(); } checked = flag; } bool DeviceInfoItem::needFormat() const { return property("needformat").toBool(); } void DeviceInfoItem::setNeedFormat(bool format) { setProperty("needformat", format); } deepin-boot-maker_5.6.12+dfsg/src/app/view/progressview.h0000644000175000017500000000233514122570751023204 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include DWIDGET_USE_NAMESPACE class ProgressView : public DWidget { Q_OBJECT public: explicit ProgressView(DWidget *parent = nullptr); protected: virtual void timerEvent(QTimerEvent *event); signals: void finish(quint32 current,quint32 error, const QString &title, const QString &description); void testCancel(); private: int m_iInterval; DWaterProgress* m_waterProgress; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/suggestbuttonbak.h0000644000175000017500000000254114122570751024037 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once //#include #include #include #include #include DWIDGET_USE_NAMESPACE DGUI_USE_NAMESPACE class SuggestButton : public DPushButton { Q_OBJECT public: explicit SuggestButton(DWidget *parent = 0); void mSetText(QString text); protected: void paintEvent(QPaintEvent *event) override; void enterEvent(QEvent *e) override; void leaveEvent(QEvent *e) override; void mouseEvent(QMouseEvent *e); private: qreal m_filletradii; // QString m_text; bool israised; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/isoselectview.cpp0000644000175000017500000004322414122570751023667 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "isoselectview.h" #include "widgetutil.h" #include "bminterface.h" #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE const QString s_linkTemplatelight = "%2"; const QString s_linkTemplatedark = "%2"; const QString s_stateTemplate = "%1"; ThreadCheckFile::ThreadCheckFile() { restart = false; m_file = ""; } void ThreadCheckFile::setFile(QString file) { m_file = file; } void ThreadCheckFile::setRestart() { restart = true; } void ThreadCheckFile::run() { restart = true; bool checkok = false; while (restart) { restart = false; checkok = BMInterface::instance()->checkfile(m_file); } emit checkFileFinish(checkok); } ISOSelectView::ISOSelectView(DWidget *parent) : DWidget(parent) { setObjectName("ISOSelectView"); setAutoFillBackground(true); // setFrameStyle(QFrame::NoFrame); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(0, 1, 0, 0); mainLayout->setSpacing(0); // int lcdFontId = QFontDatabase::addApplicationFont(":/theme/SourceHanSansSC-Medium.ttf"); // QStringList m_fontList; // m_fontList.clear(); // if (lcdFontId != -1) { // m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId); // } m_title = new DLabel(tr("Select an ISO image file")); DPalette pa = DApplicationHelper::instance()->palette(m_title); QBrush brush = DApplicationHelper::instance()->palette(m_title).text(); pa.setBrush(DPalette::Text, brush); m_title->setPalette(pa); m_title->setWordWrap(true); m_title->setAlignment(Qt::AlignHCenter); DFontSizeManager::instance()->bind(m_title, DFontSizeManager::T3); // QFont qf = m_title->font(); // if (m_fontList.size() > 0) // qf.setFamily(m_fontList.at(0)); // qf.setPixelSize(24); // m_title->setFont(qf); // isoIconDoNothing = new DLabel(this); // isoIconDoNothing->setFixedSize(96, 96); isoIcon = new DLabel(this); isoIcon->setObjectName("ISOIcon"); isoIcon->setFixedSize(96, 96); isoIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/media-optical-96px.svg", this)); growIcon = new DLabel(this); growIcon->setObjectName("GrowIcon"); // growIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/glow.svg", this)); growIcon->setFixedSize(220, 220); growIcon->hide(); isoPanel = new DropFrame; isoPanel->setObjectName("IosPanel"); isoPanel->setFixedSize(410, 300); QVBoxLayout *isoPanelLayout = new QVBoxLayout(isoPanel); isoPanelLayout->setMargin(0); #ifdef Q_OS_WIN m_fileLabel = new DLabel(""); #else m_fileLabel = new DLabel(tr("Drag an ISO image file here")); #endif m_fileLabel->setObjectName("IsoFileName"); DFontSizeManager::instance()->bind(m_fileLabel, DFontSizeManager::T8); // qf = m_fileLabel->font(); // qf.setPixelSize(12); // m_fileLabel->setFont(qf); // m_fileLabel->setFixedHeight(18); // m_stateLabel = new QLabel(); // qf = m_stateLabel->font(); // qf.setPixelSize(12); // m_stateLabel->setFont(qf); // m_stateLabel->setFixedHeight(38); // m_stateLabel->hide(); #ifdef Q_OS_WIN m_hits = new DLabel(""); #else m_hits = new DLabel(tr("OR")); #endif m_hits->setObjectName("IsoHits"); DFontSizeManager::instance()->bind(m_hits, DFontSizeManager::T8); // qf = m_hits->font(); // qf.setPixelSize(12); // m_hits->setFont(qf); spliter = new DLabel; spliter->setObjectName("IsoSpliter"); spliter->setFixedSize(230, 1); spliter->setAutoFillBackground(true); // spliter->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/dash_line.svg", this)); m_fileSelect = new DLabel(); m_fileSelect->setObjectName("IsoFileSelect"); // m_fileSelect->setFixedHeight(15); // m_fileSelect->setOpenExternalLinks(false); m_selectText = tr("Select an ISO image file"); m_fileSelect->setContextMenuPolicy(Qt::NoContextMenu); // QString linkText = QString(s_linkTemplatelight).arg(m_selectText).arg(m_selectText); // DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); // if (themeType == DGuiApplicationHelper::DarkType) { // linkText = QString(s_linkTemplatedark).arg(m_selectText).arg(m_selectText); // } // m_fileSelect->setText(linkText); DFontSizeManager::instance()->bind(m_fileSelect, DFontSizeManager::T8); // qf = m_fileSelect->font(); //// if (m_fontList.size() > 1) //// qf.setFamily(m_fontList.at(1)); // qf.setPixelSize(12); // qf.setBold(false); // m_fileSelect->setFont(qf); isoPanelLayout->addStretch(); isoPanelLayout->addWidget(isoIcon, 0, Qt::AlignHCenter); // isoPanelLayout->addWidget(isoIconDoNothing, 0, Qt::AlignHCenter); isoPanelLayout->addSpacing(3); isoPanelLayout->addWidget(m_fileLabel, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(4); // isoPanelLayout->addWidget(m_stateLabel, 0, Qt::AlignCenter); isoPanelLayout->addWidget(m_hits, 0, Qt::AlignHCenter); isoPanelLayout->addSpacing(14); isoPanelLayout->addWidget(spliter, 0, Qt::AlignHCenter); isoPanelLayout->addSpacing(7); isoPanelLayout->addWidget(m_fileSelect, 0, Qt::AlignHCenter); isoPanelLayout->addStretch(); isoPanel->setLayout(isoPanelLayout); m_checkFile = new DLabel(); m_checkFile->setObjectName("IsoFileSelect"); pa = DApplicationHelper::instance()->palette(m_checkFile); brush = DApplicationHelper::instance()->palette(m_checkFile).text(); pa.setBrush(DPalette::Text, brush); //m_checkFile->setFixedHeight(18); DFontSizeManager::instance()->bind(m_checkFile, DFontSizeManager::T8); // qf = m_checkFile->font(); // m_checkFile->setText(""); // qf.setPixelSize(12); // m_checkFile->setFont(qf); // m_nextSetp = new SuggestButton(); m_nextSetp = new DPushButton(); m_nextSetp->setFocusPolicy(Qt::NoFocus); m_nextSetp->setFixedSize(310, 36); m_nextSetp->setObjectName("NextStepButton"); m_nextSetp->setText(tr("Next")); DFontSizeManager::instance()->bind(m_nextSetp, DFontSizeManager::T8); // qf = m_nextSetp->font(); // if (m_fontList.size() > 0) // qf.setFamily(m_fontList.at(0)); // qf.setPixelSize(14); // m_nextSetp->setFont(qf); m_nextSetp->setDisabled(true); mainLayout->addWidget(m_title); mainLayout->addStretch(); mainLayout->addWidget(isoPanel, 0, Qt::AlignCenter); mainLayout->addSpacing(16); mainLayout->addWidget(m_checkFile, 0, Qt::AlignCenter); mainLayout->addStretch(); mainLayout->addWidget(m_nextSetp, 0, Qt::AlignCenter|Qt::AlignBottom); slot_ThemeChange(); connect(&t_checkfile, &ThreadCheckFile::checkFileFinish, this, [ = ](bool result) { m_checkFile->setText(""); QString stateText = ""; if (!result) stateText = tr("Illegal ISO image file"); m_nextSetp->setDisabled(false); if ("" != stateText) { isoIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/disc_dark.svg", this)); QString stateTemplateText = QString(s_stateTemplate).arg(stateText); m_hits->setText(stateTemplateText); m_nextSetp->setDisabled(true); m_isoFilePath = ""; int itemCount = isoPanelLayout->count(); for (int i = (itemCount - 1); i >= 0; --i) { //从末尾开始是因为你删除会影响布局的顺序。例如你删掉第一个,后面的会往前移,第二就变成第一个,然后这时你要是++i的话,就是删掉原来布局里的第三个,这第二个被跳过了。 QLayoutItem *item = isoPanelLayout->takeAt(i); if (item != nullptr) { isoPanelLayout->removeWidget(item->widget()); } } // spliter->hide(); // isoPanelLayout->addSpacing(63); // isoPanelLayout->addWidget(isoIcon, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(2); // isoPanelLayout->addWidget(m_fileLabel, 0, Qt::AlignHCenter); // // isoPanelLayout->addSpacing(4); // // isoPanelLayout->addWidget(m_stateLabel, 0, Qt::AlignCenter); // isoPanelLayout->addSpacing(9); // isoPanelLayout->addWidget(m_hits, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(19); // isoPanelLayout->addWidget(m_fileSelect, 0, Qt::AlignHCenter); // isoPanelLayout->addStretch(); } else { isoIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/media-optical-96px.svg", this)); int itemCount = isoPanelLayout->count(); for (int i = (itemCount - 1); i >= 0; --i) { //从末尾开始是因为你删除会影响布局的顺序。例如你删掉第一个,后面的会往前移,第二就变成第一个,然后这时你要是++i的话,就是删掉原来布局里的第三个,这第二个被跳过了。 QLayoutItem *item = isoPanelLayout->takeAt(i); if (item != nullptr) { isoPanelLayout->removeWidget(item->widget()); } } // spliter->show(); // isoPanelLayout->addSpacing(63); // isoPanelLayout->addWidget(isoIcon, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(3); // isoPanelLayout->addWidget(m_fileLabel, 0, Qt::AlignHCenter); // // isoPanelLayout->addSpacing(4); // // isoPanelLayout->addWidget(m_stateLabel, 0, Qt::AlignCenter); // isoPanelLayout->addSpacing(0); // isoPanelLayout->addWidget(m_hits, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(14); // isoPanelLayout->addWidget(spliter, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(7); // isoPanelLayout->addWidget(m_fileSelect, 0, Qt::AlignHCenter); // isoPanelLayout->addStretch(); } spliter->hide(); isoPanelLayout->addStretch(); isoPanelLayout->addWidget(isoIcon, 0, Qt::AlignHCenter); isoPanelLayout->addSpacing(2); isoPanelLayout->addWidget(m_fileLabel, 0, Qt::AlignHCenter); // isoPanelLayout->addSpacing(4); // isoPanelLayout->addWidget(m_stateLabel, 0, Qt::AlignCenter); isoPanelLayout->addSpacing(9); isoPanelLayout->addWidget(m_hits, 0, Qt::AlignHCenter); isoPanelLayout->addSpacing(19); isoPanelLayout->addWidget(m_fileSelect, 0, Qt::AlignHCenter); isoPanelLayout->addStretch(); m_selectText = tr("Reselect an ISO image file"); slot_ThemeChange(); }); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &ISOSelectView :: slot_ThemeChange); #ifdef Q_OS_WIN // m_fileLabel->hide(); spliter->hide(); // m_hits->hide(); #endif connect(isoPanel, &DropFrame::fileAboutAccept, this, [ = ]() { growIcon->show(); // isoIcon->hide(); auto center = isoIcon->geometry().center(); growIcon->move(center); auto topleft = growIcon->mapFromGlobal(isoIcon->mapToGlobal(center)); auto offset = 220 - 96; topleft.setX(topleft.x() - offset / 2); topleft.setY(topleft.y() - offset / 2); growIcon->move(topleft); growIcon->setFocusPolicy(Qt::NoFocus); // isoIconDoNothing->show(); // isoIcon->hide(); // growIcon->raise(); isoPanel->setProperty("active", true); isoPanel->update(); // this->style()->unpolish(isoPanel); // this->style()->polish(isoPanel); }); connect(isoPanel, &DropFrame::fileCancel, this, [ = ]() { // isoIcon->show(); // isoIcon->show(); // isoIconDoNothing->hide(); growIcon->hide(); isoPanel->setProperty("active", false); isoPanel->update(); // this->style()->unpolish(isoPanel); // this->style()->polish(isoPanel); }); connect(m_fileSelect, &DLabel::linkActivated, this, [ = ](const QString & /*link*/) { DFileDialog fileDlg(this); fileDlg.setViewMode(DFileDialog::Detail); fileDlg.setFileMode(DFileDialog::ExistingFile); fileDlg.setDirectory(QStandardPaths::standardLocations(QStandardPaths::HomeLocation).first()); fileDlg.setNameFilter("ISO (*.iso)"); fileDlg.selectNameFilter("ISO (*.iso)"); if (DFileDialog::Accepted == fileDlg.exec()) { QString text = fileDlg.selectedFiles().first(); onFileSelected(text); } }); // connect(m_nextSetp, &SuggestButton::clicked, this, &ISOSelectView::isoFileSelected); connect(m_nextSetp, &DPushButton::clicked, this, &ISOSelectView::isoFileSelected); connect(isoPanel, &DropFrame::fileDrop, this, &ISOSelectView::onFileSelected); } //void ISOSelectView :: checkFileResult(bool result) //{ // m_checkFile->setText(""); // QString stateText = ""; // if (!result) { // stateText = tr("Illegal ISO image file"); // } // m_nextSetp->setDisabled(false); // if ("" != stateText) { // QString stateTemplateText = QString(s_stateTemplate).arg(stateText); // m_hits->setText(stateTemplateText); // m_nextSetp->setDisabled(true); // m_isoFilePath = ""; // } //} void ISOSelectView :: slot_ThemeChange() { DPalette pa; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pa = palette(); // pa.setColor(DPalette::Background, QColor("#FFFFFF")); pa.setColor(DPalette::Background, QColor(255, 255, 255)); setPalette(pa); // pa = m_title->palette(); // pa.setColor(DPalette::WindowText, QColor("#414D68")); // m_title->setPalette(pa); pa = isoPanel->palette(); pa.setColor(DPalette::Background, QColor(255, 255, 255, 13)); isoPanel->setPalette(pa); pa = m_fileLabel->palette(); pa.setColor(DPalette::Text, QColor("#B1B1B1")); m_fileLabel->setPalette(pa); pa = m_hits->palette(); pa.setColor(DPalette::WindowText, QColor("#424242")); m_hits->setPalette(pa); growIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/disk_big.svg", this)); spliter->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/dash_line.svg", this)); QString linkText = QString(s_linkTemplatelight).arg(m_selectText).arg(m_selectText); m_fileSelect->setText(linkText); pa = m_checkFile->palette(); pa.setColor(DPalette::WindowText, QColor("#414D68")); m_checkFile->setPalette(pa); } else if (themeType == DGuiApplicationHelper::DarkType) { pa = palette(); pa.setColor(DPalette::Background, QColor("#292929")); setPalette(pa); // pa = m_title->palette(); // pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); // m_title->setPalette(pa); pa = isoPanel->palette(); pa.setColor(DPalette::Background, QColor(0, 0, 0, 13)); isoPanel->setPalette(pa); pa = m_fileLabel->palette(); pa.setColor(DPalette::Text, QColor("#6D7C88")); m_fileLabel->setPalette(pa); pa = m_hits->palette(); pa.setColor(DPalette::WindowText, QColor("#E3E3E3")); m_hits->setPalette(pa); growIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/dark/image/disc_bg.png", this)); spliter->setPixmap(WidgetUtil::getDpiPixmap(":/theme/dark/image/dash_line_dark.svg", this)); QString linkText = QString(s_linkTemplatedark).arg(m_selectText).arg(m_selectText); m_fileSelect->setText(linkText); pa = m_checkFile->palette(); pa.setColor(DPalette::WindowText, QColor("#6D7C88")); m_checkFile->setPalette(pa); } } void ISOSelectView::onFileSelected(const QString &file) { // bool checkok = false; // QEventLoop loop; // connect(this, SIGNAL(checkFileFinish()), &loop, SLOT(quit())); QFileInfo info(file); m_fileLabel->setText(info.fileName()); m_fileLabel->show(); m_hits->setText(""); // m_selectText = tr("Reselect an ISO image file"); m_selectText = ""; m_checkFile->setText(tr("Detecting ISO file, please wait...")); slot_ThemeChange(); m_nextSetp->setDisabled(true); m_isoFilePath = file; // BMInterface::instance()->checkfile(file); isoIcon->setPixmap(WidgetUtil::getDpiPixmap(":/theme/light/image/disc_dark.svg", this)); spliter->hide(); t_checkfile.setFile(file); if (t_checkfile.isRunning()) { t_checkfile.setRestart(); } else { t_checkfile.start(); } } void ISOSelectView::onFileVerfiyFinished(bool ok) { if (ok) { } } deepin-boot-maker_5.6.12+dfsg/src/app/view/isoselectview.h0000644000175000017500000000457314122570751023340 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include "dropframe.h" #include #include #include #include DWIDGET_USE_NAMESPACE class ThreadCheckFile : public QThread { Q_OBJECT public: ThreadCheckFile(); void setRestart(); void setFile(QString file); signals: void checkFileFinish(bool); protected: virtual void run(); private: bool restart; QString m_file; }; class ISOSelectView : public DWidget { Q_OBJECT Q_PROPERTY(QString isoFilePath READ isoFilePath) public: explicit ISOSelectView(DWidget *parent = nullptr); inline QString isoFilePath() const { return m_isoFilePath; } signals: void requestVerfiyISOFile(const QString &file); void isoFileSelected(); // void checkFileFinish(); public slots: void onFileSelected(const QString &file); void onFileVerfiyFinished(bool ok); void slot_ThemeChange(); // void checkFileResult(bool result); private: DLabel *m_hits = nullptr; DLabel *m_fileLabel = nullptr; // QLabel *m_stateLabel = nullptr; DLabel *m_fileSelect = nullptr; // SuggestButton *m_nextSetp = nullptr; DPushButton *m_nextSetp = nullptr; DLabel *m_title = nullptr; DropFrame *isoPanel = nullptr; DLabel *spliter = nullptr; QString m_isoFilePath; QString m_selectText; DLabel *growIcon = nullptr; DLabel *m_checkFile = nullptr; ThreadCheckFile t_checkfile; DLabel *isoIcon = nullptr; // DLabel *isoIconDoNothing = nullptr; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/widgetutil.h0000644000175000017500000000174714122570751022634 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include DWIDGET_USE_NAMESPACE namespace WidgetUtil { QString getQss(const QString &className); QPixmap getDpiPixmap(const QString filename, DWidget *w = Q_NULLPTR); } deepin-boot-maker_5.6.12+dfsg/src/app/view/dropframe.cpp0000644000175000017500000000514114122570751022755 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "dropframe.h" #include #include #include #include #include #include static bool checkMimeData(const QMimeData *mimeData) { if (!mimeData->hasUrls()) { return false; } QList urlList = mimeData->urls(); if (1 != urlList.size()) { return false; } QFileInfo info(urlList.first().toLocalFile()); if ("iso" != info.suffix().toLower()) { return false; } return true; } DropFrame::DropFrame(DWidget *parent) : DFrame(parent) { setAcceptDrops(true); setFrameStyle(QFrame::NoFrame); } void DropFrame::dragEnterEvent(QDragEnterEvent *event) { const QMimeData *mimeData = event->mimeData(); if (!checkMimeData(mimeData)) { return; } event->acceptProposedAction(); emit fileAboutAccept(); } void DropFrame::dragLeaveEvent(QDragLeaveEvent *event) { DFrame::dragLeaveEvent(event); emit fileCancel(); } void DropFrame::dropEvent(QDropEvent *event) { const QMimeData *mimeData = event->mimeData(); if (!checkMimeData(mimeData)) { return; } emit fileDrop(mimeData->urls().first().toLocalFile()); emit fileCancel(); } void DropFrame::paintEvent(QPaintEvent *e) { if (this->property("active").toBool()) { QPixmap pixmap; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pixmap = QPixmap(":/theme/light/image/dash.svg").scaled(this->size()); } else if (themeType == DGuiApplicationHelper::DarkType) { pixmap = QPixmap(":/theme/dark/image/dash.svg").scaled(this->size()); } QPainter painter(this); painter.drawPixmap(this->rect(), pixmap); } DFrame::paintEvent(e); } deepin-boot-maker_5.6.12+dfsg/src/app/view/usbselectview.cpp0000644000175000017500000003636114122570751023672 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "usbselectview.h" #include "widgetutil.h" #include "deviceinfoitem.h" #include "devicelistwidget.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static QString usageString(quint32 usage, quint32 total) { if (total <= 0 || usage > total) { return "0/0G"; } if (total <= 1024) { return QString("%1/%2M").arg(usage).arg(total); } return QString("%1/%2G") .arg(QString::number(static_cast(usage) / 1024, 'f', 2)) .arg(QString::number(static_cast(total) / 1024, 'f', 2)); } static int percent(quint32 usage, quint32 total) { if (total <= 0) { return 0; } if (usage > total) { return 100; } return static_cast(usage * 100 / total); } bool caseInsensitiveLessThan(const DeviceInfo &dev1, const DeviceInfo &dev2) { return dev1.path < dev2.path; } UsbSelectView::UsbSelectView(DWidget *parent) : DWidget(parent) { setObjectName("UsbSelectView"); setAutoFillBackground(true); // int lcdFontId = QFontDatabase::addApplicationFont(":/theme/SourceHanSansSC-Medium.ttf"); // QStringList m_fontList; // m_fontList.clear(); // if (lcdFontId != -1) { // m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId); // } QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 1, 0, 0); DLabel *m_title = new DLabel(tr("Select a partition")); DPalette pa = DApplicationHelper::instance()->palette(m_title); QBrush brush = DApplicationHelper::instance()->palette(m_title).text(); pa.setBrush(DPalette::Text, brush); m_title->setPalette(pa); m_title->setWordWrap(true); DFontSizeManager::instance()->bind(m_title, DFontSizeManager::T3); // QFont ft = m_title->font(); // if (m_fontList.size() > 0) // ft.setFamily(m_fontList.at(0)); // ft.setPixelSize(24); // m_title->setFont(ft); DFrame *usbDeviceListPanel = new DFrame; usbDeviceListPanel->setObjectName("UsbDeviceListPanel"); usbDeviceListPanel->setFixedSize(410, 282); usbDeviceListPanel->setFrameStyle(QFrame::NoFrame); usbDeviceListPanel->setAutoFillBackground(true); QVBoxLayout *usbPanelLayout = new QVBoxLayout(usbDeviceListPanel); usbPanelLayout->setContentsMargins(10, 0, 10, 0); QHBoxLayout *checkBoxLayout = new QHBoxLayout; checkBoxLayout->setContentsMargins(0, 0, 0, 0); checkBoxLayout->setSpacing(0); DCheckBox *m_formatDiskCheck = new DCheckBox(this); m_formatDiskCheck->setText(tr("Format the partition")); m_formatDiskCheck->setObjectName("UsbFormatCheckBox"); m_formatDiskCheck->setFixedHeight(20); m_formatDiskCheck->setFocusPolicy(Qt::NoFocus); m_formatDiskCheck->hide(); m_formatDiskCheck->setDisabled(true); QFont font; font.setPixelSize(14); font.setWeight(QFont::Medium); m_formatDiskCheck->setFont(font); checkBoxLayout->addStretch(); checkBoxLayout->addWidget(m_formatDiskCheck); checkBoxLayout->addStretch(); checkBoxLayout->setAlignment(Qt::AlignCenter); DeviceListWidget *m_deviceList = new DeviceListWidget; m_deviceList->setObjectName("UsbDeviceList"); m_deviceList->setFixedSize(400, 270); m_deviceList->hide(); DeviceDelegate *m_devicedelegate = new DeviceDelegate(m_deviceList); m_deviceList->setItemDelegate(m_devicedelegate); DLabel *m_warningHint = new DLabel(""); m_warningHint->setObjectName("WarningHint"); m_warningHint->setWordWrap(true); font.setPixelSize(11); font.setWeight(QFont::Normal); m_warningHint->setFont(font); m_warningHint->setAlignment(Qt::AlignCenter); QHBoxLayout* pWarningLayout = new QHBoxLayout; pWarningLayout->setContentsMargins(30, 0, 30, 0); pWarningLayout->addWidget(m_warningHint); DLabel *m_emptyHint = new DLabel(tr("No disk available")); m_emptyHint->setObjectName("EmptyHintTitle"); m_emptyHint->setFixedHeight(29); m_emptyHint->setAlignment(Qt::AlignCenter); DFontSizeManager::instance()->bind(m_emptyHint, DFontSizeManager::T4); usbPanelLayout->addStretch(); usbPanelLayout->addWidget(m_emptyHint, 0, Qt::AlignCenter); usbPanelLayout->addStretch(); usbPanelLayout->addWidget(m_deviceList, 0, Qt::AlignLeft); usbPanelLayout->addSpacing(15); usbPanelLayout->addLayout(checkBoxLayout); DSuggestButton *start = new DSuggestButton; start->setFocusPolicy(Qt::NoFocus); start->setObjectName("StartMake"); start->setText(tr("Start")); DFontSizeManager::instance()->bind(start, DFontSizeManager::T6); start->setDisabled(true); start->setFixedHeight(36); DPushButton* pBackBtn = new DPushButton(tr("Back")); pBackBtn->setFocusPolicy(Qt::NoFocus); DFontSizeManager::instance()->bind(start, DFontSizeManager::T6); pBackBtn->setDisabled(false); pBackBtn->setFixedHeight(36); QHBoxLayout* pHlayout = new QHBoxLayout; pHlayout->setContentsMargins(20, 0, 20, 0); pHlayout->setSpacing(10); pHlayout->addWidget(pBackBtn); pHlayout->addWidget(start); mainLayout->addWidget(m_title, 0, Qt::AlignHCenter); mainLayout->addStretch(); mainLayout->addWidget(usbDeviceListPanel, 0, Qt::AlignHCenter); mainLayout->addSpacing(10); mainLayout->addLayout(pWarningLayout); mainLayout->addStretch(); mainLayout->addLayout(pHlayout); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] { DPalette pa; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pa = palette(); pa.setColor(DPalette::Background, QColor(255, 255, 255)); setPalette(pa); pa = m_warningHint->palette(); pa.setColor(DPalette::WindowText, QColor("#FF5800")); m_warningHint->setPalette(pa); pa = m_emptyHint->palette(); pa.setColor(DPalette::Text, QColor(85, 85, 85, 102)); m_emptyHint->setPalette(pa); } else if (themeType == DGuiApplicationHelper::DarkType) { pa = palette(); pa.setColor(DPalette::Background, QColor("#292929")); setPalette(pa); pa = m_warningHint->palette(); pa.setColor(DPalette::WindowText, QColor("#9A2F2F")); m_warningHint->setPalette(pa); pa = m_emptyHint->palette(); pa.setColor(DPalette::Text, QColor(192, 198, 212, 102)); m_emptyHint->setPalette(pa); } }); emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType()); auto handleFormat = [ = ](bool checked) { if (!checked) { m_warningHint->setText(""); return; } m_warningHint->setText(tr("Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding")); }; connect(m_formatDiskCheck, &DCheckBox::clicked, this, [ = ](bool checked) { this->setProperty("user_format", checked); handleFormat(checked); }); connect(BMInterface::instance(), &BMInterface::deviceListChanged, this, [ = ](const QList &addlist, const QList& dellist) { bool hasPartitionSelected = false; foreach (DeviceInfo info, dellist) { for (int i = 0; i < this->m_mountDevs.count(); i++) { DeviceInfo refInfo = this->m_mountDevs.at(i); if (refInfo == info) { this->m_mountDevs.removeAt(i); } } //移除列表中包含选中项 if (info.path == this->property("last_path")&&!info.path.isEmpty()&&!addlist.contains(info)) { m_formatDiskCheck->setDisabled(true); m_formatDiskCheck->setChecked(false); setProperty("user_format", false); setProperty("last_path", ""); setProperty("last_fstype", ""); } } this->m_mountDevs += addlist; qSort(m_mountDevs.begin(), m_mountDevs.end(), caseInsensitiveLessThan); m_formatDiskCheck->setVisible(this->m_mountDevs.size()); m_emptyHint->setVisible(!this->m_mountDevs.size()); m_deviceList->setVisible(this->m_mountDevs.size()); m_warningHint->setVisible(this->m_mountDevs.size()); m_deviceList->clear(); QStringList strDevList; foreach (const DeviceInfo &partition, this->m_mountDevs) { QListWidgetItem *listItem = new QListWidgetItem; DeviceInfoItem *infoItem = new DeviceInfoItem( partition.label, partition.path, usageString(partition.used, partition.total), percent(partition.used, partition.total)); infoItem->setNeedFormat(partition.needFormat); listItem->setSizeHint(QSize(infoItem->size().width(), infoItem->size().height() + 10)); m_deviceList->addItem(listItem); m_deviceList->setItemWidget(listItem, infoItem); infoItem->setProperty("path", partition.path); infoItem->setProperty("fstype", partition.fstype); if (!strDevList.contains(partition.strDev)) { strDevList.push_back(partition.strDev); listItem->setData(Qt::UserRole, true); infoItem->setEnabled(true); } else { listItem->setData(Qt::UserRole, false); infoItem->setEnabled(false); } if (partition.path == this->property("last_path").toString()) { infoItem->setCheck(true); m_deviceList->setCurrentItem(listItem); hasPartitionSelected = true; } else { infoItem->setCheck(false); } } start->setDisabled(!hasPartitionSelected); if (!hasPartitionSelected) { this->setProperty("last_path", ""); } }); connect(m_deviceList, &DeviceListWidget::currentItemChanged, this, [ = ](QListWidgetItem * current, QListWidgetItem * previous) { if (current != nullptr) { bool bFirst = current->data(Qt::UserRole).toBool(); if (!bFirst) { if (previous != nullptr) { m_deviceList->setCurrentItem(previous); } return; } } else { return; } DeviceInfoItem *infoItem = qobject_cast(m_deviceList->itemWidget(previous)); if (infoItem) { infoItem->setCheck(false); } infoItem = qobject_cast(m_deviceList->itemWidget(current)); if (infoItem) { if (infoItem->needFormat()) { m_formatDiskCheck->setChecked(true); m_formatDiskCheck->setDisabled(true); handleFormat(true); } else { auto format = this->property("user_format").toBool(); m_formatDiskCheck->setChecked(format); m_formatDiskCheck->setDisabled(false); handleFormat(format); } infoItem->setCheck(true); this->setProperty("last_path", infoItem->property("path").toString()); this->setProperty("last_fstype", infoItem->property("fstype").toString()); start->setDisabled(false); } }); connect(start, &DPushButton::clicked, this, [ = ] { auto format = m_formatDiskCheck->isChecked(); if (format) { DDialog msgbox(this); msgbox.setFixedSize(380, 300); msgbox.setIcon(DMessageBox::standardIcon(DMessageBox::Warning)); QWidget* pInnerWidget = new QWidget; pInnerWidget->deleteLater(); QVBoxLayout* pVInnerLayout = new QVBoxLayout; DLabel* pLabelTitle = new DLabel(tr("Format Partition")); DFontSizeManager::instance()->bind(pLabelTitle, DFontSizeManager::T6, 500); pLabelTitle->setAlignment(Qt::AlignCenter); DLabel* pLabelMsg = new DLabel(tr("Formatting the partition will overwrite all data, please have a backup before proceeding.")); DFontSizeManager::instance()->bind(pLabelMsg, DFontSizeManager::T8, 400); pLabelMsg->setAlignment(Qt::AlignCenter); pLabelMsg->setWordWrap(true); QPushButton* pBtnCancel = new QPushButton(tr("Cancel")); pBtnCancel->setFixedHeight(40); DWarningButton* pBtnOk = new DWarningButton; pBtnOk->setText(tr("OK")); pBtnOk->setFixedHeight(40); QHBoxLayout* pHlayout = new QHBoxLayout; pHlayout->addWidget(pBtnCancel); pHlayout->addWidget(pBtnOk); pVInnerLayout->addStretch(); pVInnerLayout->addWidget(pLabelTitle); pVInnerLayout->addWidget(pLabelMsg); pVInnerLayout->addStretch(); pVInnerLayout->addLayout(pHlayout); pInnerWidget->setLayout(pVInnerLayout); msgbox.addContent(pInnerWidget); QObject::connect(pBtnCancel, &DSuggestButton::clicked, &msgbox, &DDialog::reject); QObject::connect(pBtnOk, &DSuggestButton::clicked, &msgbox, &DDialog::accept); msgbox.setContentsMargins(0, 0, 0, 0); auto ret = msgbox.exec(); if (ret != 1) { m_formatDiskCheck->setChecked(false); this->setProperty("user_format", false); handleFormat(false); return; } } start->setEnabled(false); #ifdef Q_OS_LINUX if (!m_formatDiskCheck->isChecked() && "vfat" != this->property("last_fstype").toString()) { emit finish(2, "install failed", tr("Disk Format Error: Please format the partition with FAT32")); return; } #endif QString path = this->property("last_path").toString(); qDebug() << "Select usb device" << path; emit this->deviceSelected(path, m_formatDiskCheck->isChecked()); }); connect(pBackBtn, &DPushButton::clicked, this, [=]{ emit this->backToPrevUI(); }); } deepin-boot-maker_5.6.12+dfsg/src/app/view/dropframe.h0000644000175000017500000000245614122570751022430 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include DWIDGET_USE_NAMESPACE class DropFrame : public DFrame { Q_OBJECT public: explicit DropFrame(DWidget *parent = nullptr); virtual void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE; virtual void dragLeaveEvent(QDragLeaveEvent *event) Q_DECL_OVERRIDE; virtual void dropEvent(QDropEvent *) Q_DECL_OVERRIDE; signals: void fileAboutAccept(); void fileCancel(); void fileDrop(const QString file); private: void paintEvent(QPaintEvent *) override; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/deviceinfoitem.h0000644000175000017500000000373414122570751023443 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class DeviceDelegate : public QItemDelegate { Q_OBJECT public: DeviceDelegate(QObject *parent = nullptr); virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; }; class DeviceInfoItem : public DWidget { Q_OBJECT public: explicit DeviceInfoItem(const QString &name, const QString &device, const QString &cap, int percent, DWidget *parent = Q_NULLPTR); explicit DeviceInfoItem(DWidget *parent = Q_NULLPTR); void setCheck(bool flag); bool needFormat() const; void setNeedFormat(bool format); protected: void paintEvent(QPaintEvent *event) override; private: QPixmap renderSVG(const QString &filePath, const QSize &size); bool checked = false; DLabel *m_deviceIcon = nullptr; // QRadioButton *m_radiobutton = nullptr; DLabel *m_fillingposition = nullptr; QString m_filepath; QPixmap s_removeDevice; // QPixmap s_selectDevice; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/0000755000175000017500000000000014122570751022120 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/resource/resource.qrc0000644000175000017500000000172614122570751024464 0ustar ephraimephraim theme/light/image/drive.svg theme/light/image/fail.svg theme/light/image/media-optical-96px.svg theme/light/image/success.svg theme/light/image/dash_line.svg theme/light/image/button_normal.svg theme/light/image/deepin-boot-maker.svg theme/light/image/dash.svg theme/light/image/select_active.svg theme/dark/image/dash_line_dark.svg theme/dark/image/dash.svg theme/light/image/disk_big.svg theme/dark/image/disc_bg.png theme/light/image/disc_dark.svg theme/dark/image/select_active_dark.svg theme/dark/image/drive-removable-media-48px.png theme/dark/image/success.svg deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/0000755000175000017500000000000014122570751023222 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/0000755000175000017500000000000014122570751024331 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/UsbSelectView.theme0000644000175000017500000000070214122570751030100 0ustar ephraimephraim#UsbSelectView{ } #UsbDeviceListPanel{ background-color: rgba(255, 255, 255, 50%); border: 1px solid; border-radius: 3; border-color: rgba(0, 0, 0, 0%); } #WarningHint { font-size: 11px; qproperty-alignment: AlignCenter; color: #ff5800; border: 1px solid rgba(0, 0, 0, 0%); } #EmptyHintTitle{ font-size: 16px; qproperty-alignment: AlignCenter; color: #848484; border: 1px solid rgba(0, 0, 0, 0%); } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/ResultView.theme0000644000175000017500000000033714122570751027471 0ustar ephraimephraim#ResultView{ } #ResulteHitsTitle{ font-size: 14px; qproperty-alignment: AlignCenter; color: #000000; } #ResultErrorDescription{ font-size: 12px; qproperty-alignment: AlignCenter; color: #424242; } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/0000755000175000017500000000000014122570751025413 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/dash_line.svg0000644000175000017500000000300714122570751030062 0ustar ephraimephraim dash_line Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/drive.svg0000644000175000017500000001602614122570751027252 0ustar ephraimephraim drive Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/button_normal.svg0000644000175000017500000000365114122570751031024 0ustar ephraimephraim button_normal Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/deepin-boot-maker.svg0000644000175000017500000002427514122570751031450 0ustar ephraimephraim deepin-boot-maker-96px Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/success.svg0000644000175000017500000000531314122570751027606 0ustar ephraimephraim success Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/deepin-boot-makerbak.svg0000644000175000017500000002302014122570751032111 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/disk_big.svg0000644000175000017500000027326014122570751027721 0ustar ephraimephraim disk_big Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/dash.svg0000644000175000017500000000325014122570751027053 0ustar ephraimephraim Mask 2 Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/dashbak.svg0000644000175000017500000000716014122570751027535 0ustar ephraimephraim image/svg+xml Mask Mask Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/glow.svg0000644000175000017500000025742414122570751027122 0ustar ephraimephraim Bitmap Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/media-optical-96px.svg0000644000175000017500000001676414122570751031466 0ustar ephraimephraim media-optical-96px Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/fail.svg0000644000175000017500000000542014122570751027050 0ustar ephraimephraim fail Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/select_active.svg0000644000175000017500000000511514122570751030750 0ustar ephraimephraim select_active Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/image/disc_dark.svg0000644000175000017500000000734414122570751030067 0ustar ephraimephraim Group 9 Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/ProgressView.theme0000644000175000017500000000031114122570751030007 0ustar ephraimephraim#ProgressView{ } #ProgressHitsTitle{ font-size: 14px; qproperty-alignment: AlignCenter; color: #000000; } #ProgressHits{ font-size: 12px; line-height: 1.67; color: #424242; } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/ISOSelectView.theme0000644000175000017500000000063214122570751030003 0ustar ephraimephraim#ISOSelectView{ } #IosPanel{ background-color: rgba(255, 255, 255, 5%); } #IosPanel[active=true] { border-image: url(:/theme/light/image/dash.svg); } #IsoFileName{ font-size: 12px; color: #303030; } #IsoHits{ font-size: 10px; color: #848484; } #IsoSpliter{ background-image: url(:/theme/light/image/dash_line.svg); } #IsoFileSelect{ font-size: 12px; color: #0066ec; } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/DeviceListWidget.theme0000644000175000017500000000072614122570751030561 0ustar ephraimephraimDeviceListWidget { show-decoration-selected: 0; margin: 0; padding: 0; border: none; } DeviceListWidget::item:alternate{ border: none; background: none; } DeviceListWidget::item:selected{ border: none; background: none; } DeviceListWidget::item:selected:!active{ } DeviceListWidget::item:selected:active{ } DeviceListWidget::item:hover{ background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.05); border-radius: 6px; } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/SuggestButton.theme0000644000175000017500000000145514122570751030177 0ustar ephraimephraimSuggestButton{ font-size: 14px; font-weight: normal; font-style: normal; color: #0699ff; border: none; background: transparent; background-image: url(":/theme/light/image/suggest_button_normal.svg") } SuggestButton[normal=true]{ font-size: 14px; font-weight: normal; font-style: normal; color: black; border: none; background: transparent; background-image: url(":/theme/light/image/button_normal.svg") } SuggestButton:hover{ color: white; background-image: url(":/theme/light/image/suggest_button_hover.svg") } SuggestButton:pressed{ color: white; background-image: url(":/theme/light/image/suggest_button_press.svg") } SuggestButton:disabled{ color: grey; background-image: url(":/theme/light/image/suggest_button_disabled.svg") } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/light/DeviceInfoItem.theme0000644000175000017500000000114314122570751030206 0ustar ephraimephraim#DeviceInfoLabel{ font-size: 14px; font-weight: normal; font-style: normal; color: #ff0000; } #DeviceInfoDevName{ font-size: 10px; font-weight: normal; font-style: normal; text-align: center; color: #797979; } #DeviceInfoCapacity{ font-size: 10px; font-weight: normal; font-style: normal; text-align: center; color: #797979; } #DeviceInfoCapacityBar{ background-color: rgba(0, 0, 0, 0.05); border: solid 1px rgba(0, 0, 0, 0.03); border-radius: 3px; } #DeviceInfoCapacityBar::chunk{ background-color: #2ca7f8; border-radius: 3px; } deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/0000755000175000017500000000000014122570751024143 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/0000755000175000017500000000000014122570751025225 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/success.svg0000644000175000017500000001773114122570751027427 0ustar ephraimephraim success Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/disc_bg.png0000644000175000017500000016311314122570751027332 0ustar ephraimephraimPNG  IHDRZρsRGBDeXIfMM*iܠjbe@IDATxɒ$Ǖi>{$1M^TU-`uw/~xx^KJ!KZ@xY !'_M-<<2"nfGS=G4Q##ynk`.w5jGR$; .x{_N}WWWL'^^? }D+]}\]MVK80k7 0B.>:_]_+)>2k뭀5Gzh#mwq=}+JNzW'W\\*Xl7xɻ1wJ 3) D%~Xe%{w}n{*[wSiv)v=k5K]Z/; xSRx_uhQz {W|uP]nQӿ\Apڥx7z9x闱'QϛxdT7mD$x/t ]IXUЇG}S0)pTc*1՗Lwt{LJJ@p'x_;cw٩mytAH/7F^/hWwS)f .ʰ_F O@ >x}i!)n'j.WIWv&xj6?M]Ɍ7+v,c tUzL%\\ _ŕ︩yfZ FⱲ-13AX﫝wͯ:ksumt_ګݏ p~!xD;cԛᘬa;5i ,ߗ>Wv\ΧrRU)鷮?_/=]{=|kIK<.5p]Y^f*H 9냬PU4wKT?kj$]vIJxȰ ENdT*4_>mwDޡYA`f jbX }k?ߨAV=֏i\Mp R9E/ꉩ^\ۻwv%gv1F϶@dgJ?j"MѤ4J~!ENAwכyyī;]%_vLF}~s/f})VOS jJbzn>n(4u<>?>A^"l:;+G35;~oaWS kתn"r/<]ߔ w!zZߟH_JEyȸ'* j!@ }r.PGsOxsF`J&`vҶzGI*?@"p?W'|9K J}Goܺ?|o+F W~W(֗j*0ULVg^*>T2\׾zY<[@N_1}Gxj<piRI'۩PU|s1ig2xu2!BoٔiKn_%{ψk1v_S# bO [l_uw?ВX gݾc.RrZ$*O\,Aն|*y,Gh;At>fbC@~yg0`N{ht}ډ%if_ iYU57n[AS|{Iy# R%\1hJ_uV ??*WUjb՞φ7Dyr{=p̦M^p|k3/;Y^X4mЅdO^Ʃm5P/.1죿]{ͶmF0oQ7gOEjtN1ư}nEKn:A|Uk$oLY.@ "U}<6vUn> jK5i\qfU4Jo 8nlvi't^uC3߼mEzzx jN E F;7(aҼI*Rq:__JznV'vczA)nj!NJyvDJ}| {6OohΟFfM)?D=~?m?Y;"ls]ɢU)/J+>lNu~ȏR ~üHCHpED/H@gqc5h,@;0~G 㞺 nxWhVJOT%/%o]c~2}}ݷz&#@ K.ǻ^=>M ]W{lN^ +2.3`>Db$R EQH:3GUŴ਒lG7-4TQ1ߞMAap`piIO!RиUgb*w*YQKj܁d+A->Foa'w,_?l[CT+Z{ʵƔkk_=᥻C&A5;v p>6F*d: f]̃L[Tf`-׃Vݢ*4۴`4l6OQm;qCc` nbTjێ,GB˗ϑ|+R7f6@ nWj"oﷂnŸxTi&IuUiBebNO?] ⥪6k _3+EA^Ǥ pj䡹_ukFy߷諏}#a4{STGP:CESDrL>~;s݆ iPt`1  j﷋fhVۡ|4^ 8]yUq* 8>X;JE2jj`daJA71\^$HlOL#}EvxUUL^?{Ig2? i}HR!\!S4Tuq1YϚ29j : }g([p.ǑO/+FTG$qP А\:E`6+N"IkKP [v\l%ѵn B+p5ҏq7~+ )&Ź5i73fMېќtU- [0C$|=Nqxth{on5< 3K *)_xo75#&FQ';܂6[/ruSnso^5MU*٪T3ռWpl cg Qe ALJ4]A j" cX UMd 3 2qK*a6Z*8]\Cue>:%\IpF2,NIg`M?9A=U-Cw["T7m^`d,Ϲw:A7ay٨Nɓs6;O_$e9a8{vBrrSr\-v/w~eVa:N[}MOP"qo&klefc8]I]F񪙭A;Ae\`H2T5yu1׭L]S~w:¼GŲ-f{@7[ҭiDG-Drǃ)`hG(`gېhM@xal4#d ؍j~xhcAԓ \Kqu{Mak)JTI[eS %w]i;z,oVH0&<0ٓdF(m ͱnO~9^e@ư2Ot9iwef)*m˻)峆-:etAeAe2m_;rM,=O*C1e]v Q/{ۤ?.ٟ:WWKx-+u'Ŧqɲ̅`;s|X q0nfnMր TDAmY *9l868vA 14ס!$#Oٹ\IˮSu1!a7x:ǸS $.Fl TiB^4Ee[OP8$ބ_j h>iu;A,9i:̛IgAQyNS *c+s ˛M4G tt}$z tIB>u֗n5p_ #7Z y[.&s4󯰻¡Eݑl%Λ!`c cjsj0قέTthEn< *O tC _#}U3Sgd Fw# *I;Fuk[$ϙ>$3)_puNoH.O\+v77q7+%@i5wVǑj1h߰ScR4﬏QEmFY!pbY㰔^ #@aE@ǿYXjyn]:$F:S7S4mw*V5sJ 'Ū?kx:,@9 ԓbH{٘*'`o`u:l: [#}Z5W1➗gOpUrK tbKT13p>[} t?#_wzwW*KvokR\gQ}luUl%;&-Y%Jy5 #5 7g>usjbj9c1;g>z8$ Si5% 1r|˂)gHБ*"!/gJe 5 Z)`5"JyH)sAF@l|СV#E&Z#X,rOb|a($ٚXm^ Fw1S(N@E;Ks朚+ڴYCZ e#N`x=`!d`ؕ8Xf<֬k˛ u;R ?zB Tx 7D0! x1 o0LqGO}0GDJ #$  Qcl]6iy5R #0<me3fٶK%P~2TP<1<'M6 6bN&V}9Y<OKk;϶wX;~ʔ>e_0^$)>\T!hBWca;ܼ-$4}!š?@Vܝ6߲Y2T&"ca8bwB\е\իHJC0ӬZXц9Bc"|xyTdvp4-hfOdINdLA HƍLKt=Dgdƍ8qF-NY L&@"u) %I R20bGigLODOAH 9;3QR:X75SHks #LZqtCsIg.GuNn8nA%̛h㴨fAQ&r * ͔Rり{UIXKH@&!^ea]T4HV O!j QɕgY7 Q'G*I<&J5.;j,ᕺcM+b8`{<ר2mg'Ġ1Ƭˬ): }эLYoX 6U)H?etC*NOqJ]\nBs4G 9uӿjd?J&YUW?2 ;KdgY4gWWjJzp UqœZC# c.{6!L(O1+s5~BT#K(.B{aoȔ5^i/7PC7}(\_9r [p9ۧsS\ $kKCY[߯6{(݊ZMъ 1t+˴'2*$kre-VH1#K;P ]~5A~1fS E2˸(ru\Q{ Pb 1XOH6%¤Ӌ)K='{Gr-_3bǼ%ty;H=93;lC̈́JIgEӐG:Wwǩ$UW\sY۠į &{I}#CA[k Fl9 $V@nڜ>uSl03veiN01xIcļ-E)"R(5lބ]Gh s$LKp) FWdpРsKrUu|}e)#6Hr)Q჆9ρiX?b'IR1# #q0%2@Ңt͋4` *wH_}+(z[tg0.MXz\޴mrQC" ʴb3l*#ITUQ!wd|?i@:& +< ̘TBX*K$̚0`.W!i`%ip$ڜc;f`|BAI|(3hQ&FAzFQn Hr|nL  ؍zEE,=pV);ҙ@t"v]M62a~a*lkN>rًNN8fo~!͘?c +4.vֈrRݵ<pוηIE;4l0;f<$-d"۽kٛ ElLeQ1^!z C8N`#FX+CX/c5xZ~" 4ށBy Dȡ!b{Ol|@CzH<"EA^G=/CI%[ge a(H+Ɋ(J"»ٵ&zl ?qLXE=boIFa2ZK3 ̙Z..UGgX`"]r6J rF?eV]m0e~aЅxWA*5%&;)~/:"5bے*r02ԐC17q(˕(+*a*v ʴ) RM.-[ v(%P&ʾfʤLXR +5aG!Ϭ-Ԙ VK {߃~h.p}iFZ+ηJ7W׳!lljM=c jTb#Tw Pp}.\rh 9@_J T;s)C Mfi('ȑpꖤ n4yFJ2J$m*I'âzN0.܌F1"ό|bI,&/J1bdhzFCg-$횙ll*jU ,rZ&BpP`)9(Vl\`pݲ#B=[A,DѴҐ,tóP?y[h4}M3bUs(Z%5+xL)ҷ,"PHYN5-RRB)|u;F$Hn){[Y6ncgfdL] W0Cs3G,Bí0>_z4 |8^x6W:rO~Oe\fʃrr};waWHiϯl-^\RSn*ɝa`s = a e {<3ր 吡64bὁuH66*n8'h0z*@d)qdȒőValܬ' t KP@ ˏ:sT09bJa&k?U`M:p%X+)Ϫwr~szIϳ2&'y)(Y*C8/ASd1 abf+W18%̴Hᔣ:J+"Ud%OH61z]ٌF10-͂-`z5ҍ3Fszn# 5sĞ:W"6{&Vx>]Pdݹ.P Q8S;wUUK K5GU}<KpHH-#ZVJ6򄵑]xftR|)ye}TK/R3}R?RYҁ#H Ui ZPŤy;mU; K OF<)DKsYdK !~/BI-= E@¯TB)"@!Y ,© M$KXY`I~zG52`&]?=ҁ 7ɜEƓsmXiy;OP5np4Ҝ ݖ.zÀ-uR< j4A{B_MRK6^}X$NnNd?$OŬ3-y>8YV?6չ)8 #rR U8Пh\@IXj!TX v@‰J5&|&0,-eP L7QHbr.j0_lzE02S\RB#zxPB R"I;wt梮ɗ yKZoL?1k("QVm) xs;+Xͼ[2,Ià[/= V[9l8sV{M^QLU`A%݊-d KS-o9k}jtO51G$<P|޹hjnG.MH !#Fh$ XxSGnk~,"L%+x)X_'pHR0086SIӂҙsZ܉ VA#cOX6J> Qڙ+iQ3'5GE>aWNHr(i{j7!sJŗ ϕnCf*gD7FnYscQg ̹wʐ4&4=ņ l4OXHܮxYȊ&aPOX!Tc5*pK]F9#z6tyo`9~<ϽMzh.8nP-> 5͎Z[5+hүJdL2L"N $TԘ??ڐ .%$ת>*pA4tʁ 1l[~·ŽtJQh1x5 Ko~-}$9AmھV0+Aܥi4::ʭ(,DǠAͶ)H[%g#J4v!ѲRZJ`.Z[6*G58UA;YSsK"[rm]Y.#Ӿc֗ppu֓p? oi(?a"8Abv:I*mC =b$A.@J f}f8R>E-ctۛ`)i4]5}+j&K`yfؠBd#P cѡmalŕ(c>1kpp*1A`@8'N˴Ry!"\'p,WY{2 ]0Ba @M11$Ha?`DL kIZȯ' @q݁,أ cJr~A i =AWӭ5g{9^lAZ#{b3.r̘*q9=f%1ۭpٳanaKOsvSd3cR%~KQ)Mλ=He}l%d]Q')JPMԃ3~e=0EpHvQیWh;΁ e$D ؟AZRlСU"KL'򎊔VHxy[$ 챋?p$S)Hĸ 52AdJp*DkOQ0@„3ГDpDB@W!h#;<!9D+1P *IH{7@̌'^$]՟dCb2♼]%QE4npţ} u~L? FЍ-s#tJOul}s3]?f2 }w_3YEMb nJ7͒*wZY<?zbrtCwe+i#W# w; Xl|ey+L磌- +*@BgB*82, .swuGҰC 9ZiiDI:aD蚈l˗4D9.N_js),,h H]O|s5#)7ԋ#:_xQVDOM'Iځ8T5b=IzgR4[Pfi&F!{N|0E2E$Dx.b gO?kMs=lլz38pGGW6{_9̝ywlZPc,Dw@,R>bp.j4xdr b姢k#y+3< |cg,c>]jbd@eI0(5ؿ<|-+C'CAa\8 o~7;z  9$-g:vBN dav nAY]\;=jjH.$m2(U".,9PDrڟq؈SY*D< -\iՅ;hR;&nVX3D8Y%/ qW}*?u9~`wY"ax+rզ<<;ٍ^K/K/6G\>IKnjbSUIG:H2!ndd iXܨtYYL1T`Ǧ*-a,m}l:o?N;6Cr84=79$?@a*Sڟ@IDATA7Vt)$0oPu$.J@Di`9([.QOt"O[;+ّئO<,@/t ''=&zp!Y؏?H5t|wIx2R{kp%U3%^N`7IU;%Ԍl2ږJ߷B ދ֓UcTszi'`e ''#SgdŠOh.sxΰ0;7ODId>HW9h)y0J4TI?)À\/9%hfap1w1a* [߼`:MJMxMhQ||Ƹe9j?^LAy[K+–W ]q{'rZ'yԓuk#o2@%; (3Me {XwxuE)%,ऺֹhPnVues5__tYMWT,Op7OcX&݂ñHk9u+ԁAv0yA4\{$ oF eE2¸p. Er] kF ûfz@&PJs4|l"Dy {h8w#\82\ er@@xDTd8RiMɼ0m9!$u\,ɍ+ &$}UI@(d_*#IiE&y?kC|!ˢ #Ѩ .j4=qި v[ )S!LnnaiFT~ -/&'ǓkYQ焜b`/IEF nYLmpj"tc zNUv'ϚuǢ8Or/+_zfT_p/w,:qC%e l_ $'SQk~ecz9`CmI*x2BԣS\EBr&J$Л4/@<RKRDY6xBnZ VrLJASKV$=J /u= FzѨ-fkZ I[1$c'JkҹzY_5 X:\JFYEŀBa']x3/l!-웣6ܪ9X#tr֝>\/U=n"ecpu&$%!TIFU*yݙ1q=c9ɏoX=3ڛFQlhatN@y\;xڞtT?pXT/H #QXa(|e@f"(]f_ !Eu2h"beb8?c4XdI/Wf6DaxRU3_,f)s%vn=@T9p f"AJd t2Eh5~Hzmzșڴ4$uxb 4І dYoBaAes?v f_ NR9n9x\U[w.4+>Xr6=1xl^`(9\U<=hr X6gۡ;A`? OkCse2 C:FOG:b[D#zOdh4<@ZWCҭt(tێ't+j.iS) ᐅNUap^. '-_'0H,l%-iQ(M #Ypih"Bdno<,ua[8%܀ DZK%Lަ XթͳyVRLU,1ߺL00yBN~Ml! u15+ s @\ ?O\ gZ">i{ePoFɃL>~K흍z}䃞wݞ0vsE e tiy _B0j\Յ#*pQC^1B;B OVQ%#%]x#Hؑl&v>N0Ґٚϔ3eN˜gYQ4{ץa:pJd/a^%oIY1:9;w3Oʻ.ciQeev%Aځ(VQJEA줠DF_M$Ε}%{ 55H ~?ݤ C'L<^TY2a 5=W'tghjN/>6;ECcy*e &%;]ufMV= eC] UromeTA>Y8ċyş=uE%[K$%m؎ ͍UEFeHwy9Yώs6y1Uk e7}6s ,Zã/P/D$hְIsӹnZ>B{R/v:*qCDu,e7̻m&鯣5/5+%(2-XkРLNGDl'csO'EēMsxOp':p[p×<NӓpVݤRu9/YD)'|op/KakضmKFI/IQiˈՔݸ"h%@EjQN޼[[H̒Orh *oyl'=ϤǽbX!\Y <Bo4Fz tιQ`sy+*7 ?C?\sܻ[{Ӧ9b ө&uS(y %9˞yל|Ƀ+5JrC2V^/zBUwGA>Ʉ4W63XT)YqBynl? &m{`iY&b~e*?E TyLLc3H*Bނ 2T@殱 H Z ]X|*/8/bo/%ņø4,HMq"hd:&Fϥ-h t 9ZTPz1Ѧ0DkzL,f[$-U(;*z=وGyJ)'= \I܋?8fۏypgQJ9Umoq+)L6i<{-Wobu%Y~m[vLU3Lk\\<\Gu? B{S蓂JE 1f  W=D@,*p=t$J<縂T`0/CgRPaK%"(L-w ⏖W-gƛVV_\R'{YK Fi%/K!OAɋRsчBL& *0)"ZDPuQ ċCnDjCH=.8E>^!ϯj+r<3$jINNgk,rfy/c-S~I jTaӸ:c}J2')]3ԟJ#*^^ p4<=]yDnJJI'G'H+_e}Z߻ 5`up Ҋp|/5 3>_0J麩jyAVC` $Y{a%1GYPfw #@`YD*5- dAaxt8gr}aΣ0LWÊ7QzX  bH˭ojB8/ N!blxEaQU&k(HԎ=օ6(vN՜-3R ֟#7Ql\IKG 8HDAq=F HNlt${nÎ͊cǞwb,7yA~+ '7߶\y py\SiqΘYZ +F:uR|ȟn Gf 0f5Y7vٹ ;]\pO&,mN;Pb ID@k֦PAWqSkɗ:plfPU`T>`G\|` L(J]oQW @c,WT(-)exFis qm_|ҋ㇥3L[یĔ`|$SGՆ45V=p<Ð rLxaԎx᳜bLAy*//%ܧ@jJ _1&PL; "Y_jHzTjqܨilPd`UMgju;o Īxcb[K~s57t۬ Td8]:8 OղJZ]Μd?և׼vfled?VMjI\9>m5f JT:2YHUyi dC)YCl@[\a&*𳇕YdlETz?m.-)%yCpI"7U3H*=w Joei'AR 㝈G~e@Cydn@4С_espH9D%)wXz䥐*ˉHkeff9a}c=-qYqݲ2k+緛͋hei5oԌYCfŦT1rM9xwJj,9L ƘNvdZOI$tk-:Y=jI'̪ *fb8iɸ?QxU3#ēA/ti[H5^{Q;b_IG}' *p4w>*u:_5Tom"&t謨Do BvP2h}f&hv$ײݨBSbi_YjU{ҔQO[3[ݩ/h794iνpn]X&ߴjcJ$y)z܊zzʳo30l=ްV?h1{(gPs49TĊx vHx @4SqqCt1.tl8肦 Q9m H)'ZaR[,` Rˣ?3S^6h*p[RݳTJuKW-YM]`27Է$QCS2U`b7rl xK t'd1_d&!zA :!S j&L;6@i"[`hx*P~,_B#HK q1Yw_ҌN}"H۷𣾎_ǵO%So]g\z.1~Uʠ8m@[s]VmO~RCY$ihhom6θ%\DC$$I]a2fu)(B)Q4ړ,Z!N(5w*74dtd: 8, aע<9U,  @]d *VRem qi; 'Έ0өL ,N;3~N^oj]nWXES\ٔ;ekt*0Rp aىXbR%RXFmȐJ3uFYӂNvQ>LG[-/)3O<1Mߨ  #RED[LV}֠x_2x6}l\waJ>D`e|`ѐGz\i]|$||A@7R*6R4_ȝ=.*#T%b!L &9 *̿o\YOΣp܄73!fS^D&I?@ +Ih5 ]tř>? )ʊb"Y,7ެ-nRG*(uLIqf !# (gffZSS&;DE4MÃИ2KA8=bei8[vn f5P?yoi]hTb#yy[uunͩe;UaeCH/5NI|tn!:- RH%PT xK(ւRXJ(! O[?r ƣSZf8/` s$ae.8>KoJC|{?. uZv^hIJ\u $} F CU;7LWU*T(j1}T:+4şM)ZASmv%RU)i 3(OYgZqOo1cWyUA!:4iSwz*S7wH^ -7q;m3x f 5%2*%h%"lJ t.2|ޣnD4lL:V`Q\D-xc70ݰFR A9 d=P?D18tp 5{$[D E/R{iCTK&*2Hm^/C~TwMa2;Gð+󌶃?5%vʵ[b?0g9=+ůw}LkZwC':ՄU'=ff0}}o94me l\8&12O/{P"| K8rO:֏lχH~/~g)}M3e-c7;k }oHeERuwM5&<ƀ0AGdx˥JEόTXIjL5 L釕Kl0R^&V:sаos,Ќ6v.Lmy~oz#]N~4$rAر-SwNyrF>}-&'FΆ>wI+Д 4Q^8H~J:ִ陧A='%%$<[ %Z PdKmևJ*]>PR[O]n)Ss(WIr9#Fၚ-\Ǘg%[w_G)5UחMT~09 a7ztogTJ+`=v{TteS˒8JnWeݸ * n{𡕴x'?NV$6&1I.#D FU,lJtϹ$AM~Ts@ũkƯ~zMy*wRC0'{#82HɆ=Pg=Zt8bs`f&-!F,8mE< m$H TlNC&*%dʕK9mtC.9qq ?|pַFT Ww['YuZc;Bb pM\,ǜjJ'ݍw>,uٰ!ˇK81ϙtçxq[1n ]Icv&aLaZ7 6cm%R,XWĥ@:/pUj{{GC^ NXOX\x!is@cɛf▞//NT+a.[3Ԙu㸎ttEYFR$_G (xGR@=)LK:F>:Mjsm$RKw J!.㹮J`3}hkOdQCkZ`"!Iںr_οz칩]84ݸGfHUZ՜HkusKIO:σ8 8'=Ԫ4(EQ-/q?Gf$2=n۶]Nt$"qp*%3=kR\ġSkdw/%9&5c&p-%i8&`-~Um\3]D)f&g1J?z?X5,O8yx̝hl!*J~Ri,)Z=fa%s 2*PKbi@wnھ< ڰRG EZN-cI+Y-K!`˧UFvb7FKoB t;fZ8Bw<ҕ AL4Y(֨ IrڥvxSjX8᧶ۙ) cP0,$Ȥ6<%`5y%!{Ggc@B]KGEkDƖ;AܛݰJ<.sjz>l,@+D"ٵtk~^Ay6/"QԌck.DlNP4.dz5iM?k5MʶFl=˕& h3b饇o/ ϊȕ$`C86!&#(Ҵ4 EYorI:n8u s̴8ޅ9NOj.n1Qzτ;JԻiuӕIyTӘ"z% 5Y05ˠp[\k d^]N dE{qzIS}yv&{r;x^z11c7lMtAnu_!pl*GYTkRޛ]>&^O!k[4so(ܻ~l[Gw2Ule^5AMͧr'mJ~bC{YښN@]gK,7᭑]%VJ50Tn'oEyV؞}4PR[;ZhxsץRBw~= iwlj{.vGwo߇{}hWs . YX߄f'^@^)x8s.8hh42m?x}n(-'=X[xuJhi{?ܱ0M@?Py"[wяT;bhbbv7N(A F)IY#}5}K~,1<V1cn ]|t7x_i_O?f,{}oEo [}Zg&PVa-HBi)XHxCED)v?:\;+ J='(e!i _]j>0A][Z1x]^*ltܧK,R8y,* ,5岟]`_vҸڻ, aŶgfyon U/u&lZ-= 7>ȹ<# h~?tAEd̓wn\J`Jsﭩ`C LKAHoQ*L{كy@R@Ba/f]^n&'Hm4W5P`wl->T _խ2|b_DD,y~] - -G*AЎ*F2r$^{w\zMrsW[vc}<É&Sv\EpPEZdQ(DN6 \+_YM7 5n5{>i% ;۳]>h5FÕum#eNuUl5}k R%'S%^hC#6}>aDI6~J6Ys$-JH"86s;pk:c2?ýR3h99;G'G+*#奎KB*6Cۜh=%"u{@h8+!T/TIxHN^fF=- mI95]0$m_@9 0+2&@->B\7z`%es(qyOW\Ϣ>[LF1VJ!)0^rRaWF Mˤ dj(CG) Zֈ!#h@GBAl) {^q!Jy,mIqۏQ#W| |`pBe޶go1ES9=8¾jzQNqƫWZnN'#N4zKB1igYJ tv)91{mnEkl!۽%δ=p׿vB=\$n H#񂒗`̤5{/Xn}s?4^Ie]Tu/L=솫`.J8GJS_PBOVah-Q !vƣ@5 ah"i4 IV4O,YYk}(Fm"rk{'&\'纘ӕ͵=]ĺ*X^姘ȻSaԒ Y6E9Mд7-(#0b^M?[GRģ+<(x^ی&OB2i14*H<}z|?/v) {pYHwgdX*e"RQ+J KG6t§UbofE!"H &lDm1-Gʏ24M[{V}f{,rY_bQe}Q=RwYz*)vسA} h t (LlOݖKP Gn?\^v;c10K%B Gx*@Pq0Lφў8|ClFF-tB@#6E% Ac%?E*BY+poS-d&v҃zqZ6qsߓzg(}?KVĴA L"aP_YE{JbW%jډAjFJS<`z6@5$`̖(mʚx5iTq: 1y6h Se8%2u:S>yu֥ a{OsRm9;'j}n(+jގ8_ZQTU|;>_duհĐ,6 T:jnX]l8f94!̤{nGzػAHv.-7﹌y+viV\a.&Gt Xb:T8 /}ۯ4N 4#EvtwA8BN`B1q+ip=m3d7[tO6sàG Ono8z*>k،*Pj)e #3ri>N%SIK]c1_&=Q0d#̎[tvRzM~'®{An3=?e"s4kA!ĺи!82*I;?tOUw ՙ it{ h) 񏣖ii;]=Wv뗘xgj߸ @QDPak~1ㄈDejS-gjF[p3?èCAG E3>M]&ヨʊ@IDATCa C.7ӌW,p΂| q\+T%]ϒS.MeEx8 OZi@{Vi$ 4$-CX:>pF Q!퍩i椛clhm>SFh\% ZKo"*DPMcyw$uHdVbƩ/d|䩭ź\SzR0ֵl K+`M-3TGQ}HlC===)kS@R(((!@q5$#EM%G'4:r[Gh(֜1qIͮO+:g՝7qWR T1Ϳ+ aL;PE A5պK'[z(+Ц% eª:ZJ ٸ6,bBwP8vKIu6Hd|&+! 1/ϘKUD^q,&B h߮O7L?i$~}Aݗ'[Bh8 | *K|/;6kT KǶ#-mQJdIڅ&&(a9'Ͻh3:GG!3,T!JtJ rznm۰k2~;=~+C9'Ϳ}eO';GMr9h{j% p*^)X褷b.݋XKF%(]خ6.=cJAi8' q ~PO*C1ŭqD:G#?,"(pR/lŽolQIdܾ۫S<_%W"H/%5g%ŜO(|¡Idrx_[\Jvb>mJxn?'G6=D>us@I [:w~C#ܑrr`Vxdbā[3B%)GYPl޶{c]'?޹>&Jg/Q#[Vam`Ez1r9X&Tϫ eޠAJm2;>F7$wf $ r4;hJ/![? uB֙,73И$N#&oѝAJa<Ȕ`%dsnwZFo_Yk(BkP>sg hKޫDA ۏoh+"-bdn$mMX*{zN#ipֲE}2M`lF 5M[ gBI45ADhidTz9USQb-Q<^Ov+?Ɩs-&)E<CD=ӧ>|%t9oYYؼ]z+1:IqR׈rɸ+IBXP8jWO%9K,Yc?%RF()Sŋ%c2X6늛z,n$'|!Q'+6h7p#>FJ' AYKvez0mҶt䋲$?1@߰pW 1$n ܌Ht5at-UCI>NW|Uܭh( k_x,~U]Q* xD҃st)d$FpNv7V?ܰLWz9\?Ղx>Tppyq;{p6MS1d4Z\Φ0&TԩC1S@ RNK}׌FtmCZJ2?ւɬ5+4:caHt`ʖe!}xQ~NnFG'z6܂BI@>fOj#\ fQRf#T h؉kGG/X(\$kMŴTk>)XB:MB~.XNf,*%BD1Gf$+"ݚb: rh\H=;p.iUDҶc[A}'-: KkN (שQʭ.z O:~>%z{=abLv?G2#Ym0b(ηmVcK}5WE̯Kۖp}vfg5d~Wӄ+KvkNGⴥ%1C1'C^! kNM;9hZ"jhJ/`k4&IHXMYv{( 0I{BVh?L] B&?LpF iĠ`\ \ 54FF0܌TM؂sR_՞ܰS$W0f, \ d[\ Ki #1eXf*W+-nJ#2԰5(yW'CHN^]?~/YMA'wnH^!^Tsv,Ik(KZ-hG~9߻Y7V.Wglgt.IT9nM04(m _CZ@*1Xy!!<aVtaKHNAL$biD8t-.6&H mQr?>C _R4Y>! ֤}htBe`UAA BQndK|h O+5}$*($O-Ҫhc)k X P4..&dy V!;ς`\ Qb9~&yʅP'() i[C.d&eST`L皡ݥ NbG:bRt$1Ȍ3xP Fmɴp3AJ5JO y/LߕZV\/F׏Wף . Cѧp5Sh6w|]OWd A+d1<7xz ]B},XDZvHb+SҴk f$*R"r,f @@􇖠PLKJPhqRj(C6: lP CIl 1n FAKdH//s JnTA5P`Im.>T`F.ԁKSyĥ)(oe/BEVȕU !v WCʁ @c3\R YuA--C )~pR5/L:ZjX堉zD9c9<X宮c8aO˓- P Jd+ߵZݕg΍m0c#uut<ݎ]ʓֳoSȍ6(%=cӖLa~GXC a`gƞӞVdJ}ZZ: ͋K[Ӗ5 rJ21wJX,,줕+:pAɔJdAEؚ Av8IZL$v}"^a_K:dS?-FBk<gsGԞjՏBa;QiWD44bFv>o愲2vHGZSJTdnν~ .}%%KZӉ -_ 㜜KC}nIGGHpqp9&nj6Y46g A&Mh<(M $X0NFF(pDDIVrH3o CxD__[~BpD j<(Tsn x g钏io>o9w$WET5#%arTB<>. s^H1qI#qqpk A{=L*TDWE)±B8A~ⲜrlFg40yB#bIyeaDğĻ,#ѝ 6Ӌm%#o9O,Z ʉk'+sybr }[mNjX~ /1dl8SlK<#7kCGG  )JL"M*/ Vl}N4\' ;ܠ0 *(p%ꦂB7U !3aUHY6Lg8į,V4`P\3iQ(2,9l 0| EC2C:zdDJnU NnWaRt2=~2o8k'rgm?@{qrrv 8; Ճo9jnՁ˨89Qme̳zV8\'LhWOչ@KҲf;9lIk1PTmtɎƕ,%!HZѶ0D2ӓve0h" R A KBp . Ow!(^f\=[`4Ks\AHh.^/4{#g"O,Đ&Vc$tD O[!iu&aLw,7G\H {Bz 36!d C?lpED"JBnjXJFMRScxP 6],HJ3y YUӔ%'Z p-b#7%9O*O8x}Vzp}eJd8,N7rj:-dL[nF'@Tvu!U1c? Xÿ8"OXqpMqDk8!wB% e%? a;XZ 'hI5qd=d{)"n$mԔlJ8:ݬ*k+NЍ1)$pr3B& 'ZIr:.j 9Ew C܊Q+tmG`sfM ۤ͝%%J¶j31HGWX6_^mNNEP@}cʒ-Iu|;)O27|],Xoy'>:E0.>9>xʑǬ>^Mw &VKVLCX:'|$Pң56cbMߊR}h &}EIޒ c9jia%- 7HL0)}oZb¡" Aâ!=*je:!<>8wX47AIq]O [}+r7%$;`M{g;*Ǧ (``ApG].lŬ:*F "`)y$^vTF]m$jD /1Hӵ);cWn*\4zP;r۱b7U$ c>S4㫳&۞;*w>%;nWȌXGN>97}q2r1J.h \s5orŌ%5 Pik >\ bI/?FL!1jid>Cd$Af^ ڶ6DF$69#C~+^1F4#:t帄ɮ@:&eyO?KI!RB#"W ӷ]+F{$% Rh‚}]@LANhr@I$[s NQmӶZKSu M~+`x蓏j'v r 4@ 7]ͻWh~wr./|6~PНn^oWcGeՃtڮOOՂ,$>QJZ&[/tsۙGoZ06  =!#U EH4cne!zrBW62~dЗۻd,u8!6y_&0")LAĸKٸ I(w%Wi4O Ʋc#i`,MҹdLR9Z)gT쐀l&;3(3 w?Q4>GJ 3^Ij}-6aCN&E\M |1![_:r]9~]'Cƫcn u ~Įλptؾ|y;X͘cn8:q2>) ]ǻ:hٛ9;zn$ϗ1Nfe1>qБ hB46@`XiZ˙BiWـh$K)tr$H( Шc"/⮔ǗcU1A6*\@E ZY,KpA.0/=<+s?U/Aƕ@q7o+bGTq@ Ͼ/gq)aɫ_H`9hW֒ />Q^\׬2ᙵ4sݬٙ =p'Α=9a:zIj2FCVʁBIV2H7z`B@IgLQ \W01ݠHA!Z)P)3 Hf^ Kx)A͞x7 T:E&-/\PSujy-A %"`0<dD1d>ɇ  ;"?]XWIdwcOChqqwȂnAA|d :`&sosHytW{5v S/\X36k\5c:ɽqfU*ϩ'lSl(HCdQV:Md)+FA b^g(9x-"Iաؒ&Q%VG=)rpP a?) CuS57~#Ap"KӛvMR] /{ʳoGj/d;& fL4E%t0+RQkU@ iDt,St -* d7կ*3clE͐G"`ԍ26dhz;pHك6 N#+yf4SEɺ8vwrc 3(pzEz>b #wCDc$vm"@N!L_Ne <@4 2 ~ \1y3 HDPMih";/wvl!u} Oѭ8yb]NẢcVDVK:O0vK==Grs* 6tqis6NM.u<9=^Q拇݃%5=0 ix%\n1Yb5„|!4:z 0(6 0`W쨫.fAT8{Rb !~\e*șFT>ThZbL%Ioh K %$J=F,;UK&ˣfL 噌)EK– W 45$$H^.Tagϥ=u|茗#DuuIK(\) G #Q C% KkP+k:'sn уcREIzθs0ƚ/E3U%V?rʒ%&x/CeZ?f.vi?g,up岨ie`ՌO4BK-)21YXnZptF7+yhML5#N4K[rt0!:Ub$nbH-b' 1 ؿ O$j/5 vEN?w9N8eMh8'=R.ݵS*( ;/ +Sp5x>$h+HiDX M_Ŵn@ &K\E' ɀuU=$c/i*;dq t#S)jlZy 1a 䰝3I Ʃt'%e⦢£XSy姈 e6=yO<9nsbV <??O:/{wߢ@a'/?b4y}9`,b>^ "^hq7l(+1̖Qv@@Q"8%=K ͙3W(7,͠`sDҐ!'Г] &'9^DB0(UJ([Dux(~L҂JbbnE坋p؋=AS:E oS\ SPbBVl1O jx/2,/4|U㪌({,#̜Fcg6@GZ?_h! P(k)X"AE J5;_3}x; T6=?ME95#4Wixۯ]̸$ g5K'ëqg[bh[+wUwغYs=`E`3;<=r`E'Gfl2)܍.4:zC&D %R-:(=pW!=nJօ1p$ 0 Sq/vҁ"Q)%ɛ/q7Kf7cH1QkAou2~cT@,̛ $Thq<`F7 .ELz2ebOEvxɦ*ae}fjTv)vi 6W|tW $/N?B]ӎ.g~G@n-!wPK9IVbZ=%F?Kz8;_'Gxv=b!1%S/,k!ZW'X'lY.õ(,z 4f-i6 Ю_ }HdA=+*L:WKCP1cNz|h^"G2YH>w*}J<ɓC؈2ʳ">*""jE!;|BiQ(򲉳Is. ]@AG N\*>S9Aȫ(KQm^ң1`)d4=:HMAE712_CtT,czDxmxjm.a'6b0}Ů(y Q!NL_?w8QdDk7ˇ;!1 ْğD[4c+nk-|!qd`UG(D) wRp:_b Nͫ qq A@u'mMn <О;+}crWE6B)Q {LA8C 3"{ ѴD7?c"CRp`reTrr;"İ7/9,Dn};e+)ʋ"q=3q! ˩ޚwL'Q*2-sE`#jGP%5կ ar;q,H @6d$XTUNhUA|v9[9E8Yd]/i|@RiͲvTK4|wb蹛WmFSb|I'7*wBw)QqI&rR&P *wJ|~RD4p Ž@A!- $0/+qGwRXGĄ I(NNpIY}#aDeJN<oN2%(^Gկ~M tq cg8qwhL]Y6z5[& 붚䊓~'حMr.I|@@x?GU(WϨY{4nϊ?rX%3nZPJi'r(t踦p:9}*jg}z-'~2@ ~7E`t! ]ǑsE(zY90&ב!ɹ@h#uP9 -ȗ#CD^[$+#p$*+\圓.ËT.I౹N%D8(?Jⸯ#>qq)o'sG.m*44 c%_0kp! UA P7-(JNic|^-G%-Ї{Cܧ{nP%߰I˫WdW_\`Ery=j./OVCJ_?zr 3Oar(xɀNp:JNX 7ܰ%IDATx 5"8(F&*`~r" X,MZ@\tz\U6S8(dA^ )|G1$-#$Y 9б; "*6f ,^99"1J #BTKq FGPT'ۯ93`xC/+D˗p4vp3JF.1E&g;ױE[KݺoI9\1RO; tW([) S578c`|:=,"Ɓ͜sQ$ݚ1m)/Ѫtj8:9@2>DaA*T $%q`N<@Ρ)WhOoA*B'%ed*%.PFG`(3@a+l7QD33;r4LBӐ5Cٲޢ[||E#ZǤb%W@uHg=70}U@Hהty5{ ZK@əFO;F$y!=gO تF ^*\Mrt@}Fw}k:yq=0Dcuf_$_Y ], Bx '3>4p%cAg Ygb 8JrsFa 3D ~ 2m* E%@B X %2GOɵHMd[td b("V^ }*uSMf*bj=P-${*׃D,$*B͞1?Ad2Ir'Ő̡ N 6n3/0#68e%k7zWTa;EDT+s4_9xJΖ%'m0rܮOS feZwCOn r)k.37h@ap5jzxp5|@7g׬Vu_7{8\l˝g36. ;!rp!W=VBT bOc'SQnrq'  a2@t \G;i@$Ǯ5DD`8,|COtBD2 S=E3 FIX&hd") $5)24r՜)e?μEAgsj0A@[#GM#̳E6(H&;A1baxG`N6C\#iG-MGZɶ@S|dQY=onXmtAt_ڏw?Dz r20\4Zy9};~ÀLj"h,1Y)+ܒ >v@uf) r@ "lKYNT2:n(JQru,% ՘u(<K ahŝq) wʴSBEFzGhg&AG`Xxlb7B9˄6-@yjnȖ'c3*-\.EQxDHWSt:q.Lp{^48I^Bts:(}b{Nr9Tx_ίGK X6\#fr=%1.h/S6_Tf PT@P )$0M5.YV9\/r@ `g&D.29H|2+^z0?F E³ZE"FL\MirԀPH!g~MPk5j#]wl$"$wpM#Dɷr]}>aFqs+Z:kߙkk%vR<cost4OpWp5 <)_y'CvSW؍W̴1.`\9`v 6G;Нn(C\ >I9(s2]7\EE. Fr z搓]:t蕱M3B8:"T`.C\XN12Jiƫιw-/ /3A'2@j@$0tХbR.yTq3t2*J02 {Ar[- kfaU\ձ8e:ݰ5z#ll']>7ͪ92l{=bvul ! g6nrVC7֞ϫ&!6|E ܣ-K:OoVLJ c8DUߟiݢqv\^oE?99,MV rr4yrsFB;@"g0f᫥Ch\`YB%Dr>ϭ@.<SsA T~ZwzTp;"d0/ndD#D P9yVG&1VH `0~ h+Kt*@7 Zm\'=I9(݀G#ِ_)L9 [sdr!<'Fe[p1vro/ƫږӎ* Y#٩^p6+88c%;\^ahO]sl^O VOaW/ugƿgkTQEyE; k)9U@$ _@ #lW=IS\ÚHJ|kWs,9pbDGF>dq:kg>rĮ yvXi?P34̷eSiy> Pw!8=:L/5<;s~ߢ /n9aӡ%c:OpG6vz?=@AG8l&Յ*( %J#AJR% ]c9]QQp@y3rPviceRp"sh?)x:4'3v %w5ԏoG8hDa1ah uny<82MHjOq ϊgpVj9DsG~FN,`OCTSe`QG۴$ic8UΦ=;uSvAoy%̻x#T+%KA2z"eJ/,!rV)O99oX\1p2<l8pT(QHa gK BBA{.pY 6W*T<:h$-݈IDtN1]Y^ >B.lLLYY0+)Z8(.x'd;`hLd+&K?q+VUi\rcW:~5f?ofKmSr6~ryޞN|9 I`[.@n("YdZLGBv`"3qz<DCw9MF2S,&SX"1 A1d,XCT@f eH %F49>to6- + a[wTٖ L$+y:} WFap0eJPĩJ-̟)\D6^C"\d?[}h`SDiA$M#مZwKOiɵ{\gF59Δ1..ݩj5ߡUz#e@d5K.t ;,𱴅 %݋ bhhT>L&`S-O?`V0G1r9o1A.TS[Uwsv..f2apS)W`&dX*Btw^m i'M|EH xMYxqUC\5"6^S;֎;X[ip[ &5}vpJ>XrO o(lSGq?\~nøf|D_ASkx :x!,:o6[~?l_.|C夰5ŗ69&;ɨ6h',f.'Ȱ UH7e[NWemW^垌F;ƐZueKLL+zzf6 S  -֠1"RlHG* >EsreƞBp2Q77Q|m7[EDgD"f7]_/ɓ1N[r>5*ZH(*yi"Tbssmdy6I@녉h7=>7>~}xS8+Iv7nv1{_}J>{6|%B{|sM{i/7 .Yxc{F ><|É"0a|1 \DB\.hH 'AtQD2`2 %KOXQŽ.0 b0 i@ N 7 D8S Rg9Y& 08sP*|޾A?It!oYD/ 79*RL8πd7x‘ҋ얌Ѷ3b45Ħ_aBVDTDI,5WC–)9zHy3#́"#x)crXO+G/$6R xsOIss >h9ސG-[nxYYMҰmEeEoknwʔPY,,*Tb41g05 /S!snw5y/ny/" _؂я{0;!qdw 4\r=qF)G@[9z"DymD2]\P&}LB$@pglبBql]Jp(B 0UxZ>#]`)R^2;cWԃ~bM4LUj \ߌk2r6wyߝDڔAKO^jh nW׬gݰn^'7x&|Wd{>*_3椹NL7ޏ/|?oSt9EHd4;I\Z"r< ̲6|Y1H@ё tgnRq{|բ8Pd&.1? @Q} w+]:snڨ R,'K9j@+51_r,"fM8G Xf=ln!oT=#9?y9\NslL'p:iЮ ~u%N;F4BnA3pVws|w"'bnIs8S v9> pUBpGu~QqqX2ؖDŽw@ɸrpρ:oik홊Ƚ _lfʑyOq5εTQv'gk)TǏs7IX̳τ x)4}|PRBH[xxU6n*8=x9\-UP*FVNP]82Kop?M^~> Ee5;[#nT R&jP ʜP d7Wq}+EjFW#Ys@oxET9:SqG.QT4wК{sEwʟF΅jhךy_'w# (STR`s|ؘ1 lDD}tYDB6'D٦/gN;@i~נuy?ihe:*f>)K[yBhbfZbJ+mt#EbO DZ>t]oJc hcAT B uqgX|QG72ҸWqjDE>.Gg_dufLQn&)0[iQ ?3Gq_?M!\1QlUÕU4MoQ0wx/<x$Dj#q5+t%z؅DFСk>;0)~ޝ!n^ wN5MGrԮk8 tϚ2(aU C=%$M}0EQ& pMlGeQ45ۄeӇF-Mv+pu ;vW#~39N׉u cBbb*VL!lrN4aJf}a:p,OP"z1|ߔi2Z0q_*wLN,FW /v.<3{mԭMZk/ZG8k})Z[$t0^ӭۍĂT!^}}O_b^ހvw98$3R;Ɏ1i YGLy3HgLs;oûSŝ8]N&7p0Ţ!U^xl ;1CɌnq&M7 9+A&= -<89g _>))Y29A㪢y/tgg\BK;Ś[>LL+LǴg;+zn9X3=܃ g?5P1MO@`jXl TKXKtBu0Jp^\f r8A?b3hVc75rS&i14Cqpl#4Yxe UvKwLLՑ)3 N/DZ!&o l9ŷXR`L?>g& M|b1kjEcʼͯ`~*D* GA~,z1531' R1w \% d6*yF9&]2!w|T7|iҟe,֛_ӱBy5Bw47s'إBs q~4TzW hƋd3' +̯+;LutZcAΌr2g0!}4W0*W)A`6X @ 6)S'#&Y0W=έ25if*]\TmS*#=i)!H%8Wf@S *&ŝ,w7gᓮRȎ53@b eaѴ&zb1o.Li\Rh1&6cYX|VvO1x 8_~0?fy}1^ YΖ{@(f`` (N&t:X:[0|0 b:XFP% l2cƒc]W7=q'j!u;:Wdr欧=)ϥz8z!xJ3,1m)erj:rpx%X.gg2ygHfj"uf5njlK<x9v5BZ"9X(`^rB,`| 7NYuҬ5INA+2OYC+A&@Z'3Cab^fi*'#K i/.<,)0pM^8Ed!g(ذZTG`քy{b1=$K=[xd;ɂCN dash_line_dark Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/select_active_dark.svg0000644000175000017500000000473514122570751031572 0ustar ephraimephraim select_active_dark Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/drive-removable-media-48px.png0000644000175000017500000004207414122570751032703 0ustar ephraimephraimPNG  IHDRZρ IDATx^} eUywﭹinD (8)CT4`^hO/qB1@F>_м$k%#%y+B0 ޓYfֿ9VuSC׮jխs}ow'@Ƃ])_(@de!##/G .@ |<pY,d-`KȀ2G`G n;_*@\< 8p 8Ry2 XȀ[Η#e @vT~YtmaI0T3⌀YR[J b&7}޵[3[։CCC-mhh 5llaQv;C,|M.=IB*/-|g?_{ĸ[.hG׎uf46Оni?Ԟiq_[^ş--- -1C?5>:yQݺ~e-:lͷ'M4W6HP2! ?z$e$R@X3ў;ܓ J`=-/;1XtGk3plB(KNF4QE̠uA^wG3?)r@qbiu'^ٙm$yge4̂JL0kTDm"}.~5zjS$y "Պ٥O{{_R|vgA`%+4pC)k&riWtn:{ٗwTEc\>|g~38 t*:v_rs*akÒWv~ oȂ'IU.#*Əg$_'Z׃/A:Yl|]aA`sWOGp^;csW5/v a`R 5h7@iT@$UJ;SnMnUm '*>9=k&e>L̊gaRb[\h=nRS;nưa:4gvp<0ͱ^WdCChllש:y)jw;PcRI[e;zƱ~cY٣WzZO#5vVwz\Ŏ5憣b8;9'8q筼F: `s/;YN.|މApeC |ĤpTӔY'f6W l:M2 ]7AGxO-jkV2 G19e3ܸsl=Iq"`n17"Y7:IU)qn4ံc2U%Melj`HedjWJiY,P E}{=#&OA jlXK,Y!TThN s O6O>UJ߄?{m KYxUzd4 *s4˒S'8fL;x^-Hng{Gȶqƥ)IJG4Cn C>)u7n]RlpOnĄp 8a8ܭ`P) /d(54KrLܭ,NN%1') / 1jgTԪF͍@vjH٩2W}7vTimvzk p=ҁNx*z""0/t/ n_J6HWg֩R%$n\mc.)2 /eZ@\WbmVh=M+$gdgK򹔹\Sȋ2\[&oR@k휕R*ԮR.4_gdUJOz~ІWVAZLK:'@)ZYzZ @Ra\W/+y3!UW~kjKNpdp6E'2ɐ+.312Ů~@ j!.lAlo5x60B$(rX R)s=\U1@l :z8iEIc2Űl%-cbARHkT0"dQ&`i=z]$9V R&#+{:SөɊÅL\Whs=\\YUJÅevj\WBr=\" Qm=\4I.Y% eIYY#Õ 5Mˀpʒni\>bzr=\6%Ps\ɼ?\E<8\UҨ,-Ht Tvhm]X$hvJ쥦%9!/P?\V)s=\~;ΦY%L>7ùUV"B E;Gk|I=;)@r=\Op.[@6d<xEW}4M+֕z\WZ2UV] vm~0ۃFp.Ugk/=8Ԙ6|qJrrXy9YÝJW5njb\r=\|K-6ߔwx&+Jpu.}o\SSj/r.DhZ&#lKs9)Jad?\V)s=\aeA~Sx.%r=\KNSjsO{Z*0ULZX+Pݯ}rEL\WMϾAU)恧*pyíNx1y P缿\nC[.[ T.8$RT:lY[i O|At0 @y^Q0o0j쭭knR xOe7{)ݐ;M$;/=_йe~"Npҁ-:ízS~r{7vO n=.ޠ/ 6+o^OU~oKt.88+j h`;yy@y&5Dy8Ԫp?Կr{o;%r -$n(YOn'uFF hߡM9Ԡ 4[]4hߖN:&"/=m_ 1y q4"P<߀9?T8g1'Ckn/lTӾrq}'C;r.]t 2xC@% +@H(=Z ETЄJT2^bs_ϙ*x*kjʔ0iU%6OS@R6FVB= /Z|Wەwi}JM(`pt%}+g.(m1* )'UE chV^Sۛ=;r{nC|gKP+*z6w-jczAsᐮssy9H~= 1题#bz\wn$(O ֠Qs=GvIpB=ؑRnDWnX j=pjioǐ&mˑIm%(n\c4 n{֠x*b%GTɌ=/lE*oR;T"9l;V^yy-|AAhծDYO%RF{ ,z8YUnsY`۹=rXG622."]t[p,Y\~U^8W}GꟉV*lҵf,QRYKr+;@shUqXoܞ0/vA-:;,^{$%ɥz{%W|g\7,=<6ԛ%\:?Zf/R[ ά{JPGQT/|oz;+ ;Rd9_73jp+. R𪼽oGMD@yrNۧv06*@uiZ4[p=[H&ùZt2C ݺE W*&-@K/R 554/,3hExӗB4&^sߟdd7᫼?\|pٜ+7Zv+qe:KhO3rfJ e94YiK3i 7L >\ThUϓ?oLVZ*N-Sv NBrjhTI^,=n +tȣHk @N{i5*o:ˬ]Fvpi[2 WGK.WQTVtm GK*#UUsϣ}+nWd4&.:) N%"\i]J[d*FKZ*h)qDBOρBMrWsO+^# )YUZkȷ n3ʙ~1ٯ_`vnCRm28̚>I@Dpd\fIIN JsTIv-F;(˭y301:$YĬmPFWr/njym8 2 |-p%m~F(D#Hps<,SYdC}-*Ox^'dODv jKD=,RF~kyp=,:-zpl֨ \Oake_mJY9c.Zb!7e?HR&jl? pY,TJROH;cVKkY+y]i"a^j6 n3JEN*e^f q!=whxkLTxncP:;8Q`OUuPsidXNr=`4&mLt\e~apiYtcQp eMbdQ) 2\SEU 5/ 'K-X*-F393H &H]?bk@#,iTOR[BqVU3 J׫sݑ2q.,ns)A=\R53ykV܊ة._ ̥q2Hl>^Qݲ+WNDH.b\[ Q\j ()lcU>LLEw,zJNIl#y8k-Z*pB 5Ϊڏ ަ>m"͍pv"YR->˝Ӿ Wx& ϋoS+avmnK\|9HF5 K/_~V8DR`-d &y"uwI U6/3:Uu+rXۯΩC` NDYa'W}dȣtVyaj&` /d(5Jz%=v >hDH-RNbz1@.aVq:&HO5y@vjv>:<޲c4^nn4a*jK:!ݪuȤv,`+_l/ Ep J"Qp. \bBdzlDNYvpi&yb3®+ū8%}q< 'QKZA^Tty#jD:5\l+zLJ.@]@p=#Lc6=py U[icJ.RoTpbRп_\1ZQ8gh'49cwpNr=7je\V. %TXno%F!QF:~N4&U;kV&pe"}ij1>E! IDATL{6c sq6*nng/zXy9wT俺4g\WaWHYdճTIVp]!j?;T')*ve*Rz @tJcibG.^_e¯>9#tI0ܬK)tv`y.j&/dCF+ 23z{MjI[%wrIgĚTD?㗒kl0TKpsccG5nT9\#-`.k@U3M6ôCNT3Dj! JaC%uǙ+x%UMj2Ds=\-4YnuipF d|@pc5@!es -5\H|EUfOXڋR$a&P{(t|MсR=}xXo8Ok=\ty)h|7"ivGY'ߔip3j`FD`w+7#ʸRe6kԧ dY3._ڈO^ s,Z0~#t}*|Vs=w Zen v<7Wa]RL.^Sl! ʀ aS]<z) )OVqU*gfyKL Z ` lg6n$e^~d9ϜM0*|+'ȅWp-G4`f?C5<ژwhfZ#EyNKfaLAOtB`RUd)xE[(4f/nPuAxE d,&>2l0TP#0 \ u"Pۥm&Y$H7d.owWd5,hVNf8;G. 4dojdйew~ t`[YhY:f)WCK#D߆4Lv[ZA|fB1}hɪaP"Zz8M | ]unSle!nkN9.8g(DU T| V/|~Nu s SV)s*Csԏ XE#K{ 0Vu=#ز=Ix 0MN@7&R|o|u+k*ժg΍US*e 4X*կFjyk;b6e;R*ù Э: X:~EWu_{4ƦJN8lA-W0\o8uXCSmU#VÎZkE }Au堹Y8h$Sx[XHm *ц ;\X5UUL5MG '`cIX`NW4~t]灱r߄30Wժ8GjN&rrZM ЄC>^2&.)Obd9lƹS-ee%( JI 8phG>طg4YрG&0嶮J Ki('U gUĒѫQ쾯K*jܑ2RGl* ?8Q3f"N%J3Xb8$Y'|&0;}O5wCqt2*IfbPiB6clhwhGDNCbxyrfpU 8$q8XW"5Ά l s džKzA׫`al8Gg_]ɆKRK)db:/eʆS)2 ntRR_t^RL *%n Ǎ9hdCIJp=  eKyi/\"j+ciթd'5R)2x(}NBنe WR]ֆ+l8Ή5+Iam?gTSL*gxP% "0a~aPSNV:MXpPOz,m)v8LT`cg9h.e瑅? |[ pB)[&ah4*%K)N)"՚79M+8H^vr=jfšek jGFlpت.ix^NDJU54ה{?Q&zi~T'%9^JO>,6s$0]gYIφ+v<~QaҺ}/CD^Rܨꋈy9M y)S*Y6YD ;N%8d?&U6L8˥ن {|[n,H^p!s.$ dyeS,"Tʱ"‡r=ƤVcUR%dj(rʒ@=8MD' R; 2q^gr=\[+N,N̹vyNRۺ܍Tr*/ᲗZ@nOgmtb! SsOTr)"BTެ|5N|e8Z q&5_O:1 3w5DD[Ĺ6Գ+d*gcU h^C.a?>q6RS!k[c~L!3"pge;R{zGo,c~l$ nx#熝NIFZM  ahF@0[wKGz\+s 8@j%tc@ b Xuy!5T#J@2iBqH08.MB jC*&k 4)h{\<^2&3)uNӳt;Ù_\qa{v=nիjl,b-? V aSeڗ \"x2{xq@|b$ڏe f}}tZWPH V=ڊNTv1[b/70?߁#=5ad pE0`(K 8h@rLeTJ_;_=RaK`Xf?x(oAJm6WBtඬI~v Jb8ee.? ^ܺcv݇;vl5ZiE/?{϶&գR"Wp*2xdPeO!FT(E&dE D ;wyR{kWH=ZWD;eG j[UiX)ٮ#: SƖ;paCiƕ .#ce.Z *ԁYz&RPU\1%1Aj%1O<+z<- m"rF(d<d*i8N^3_؎*,Su;ؼu FK6) g.;˷m޹3ir=FFvPʆv(VئbKI= 2F0LFP:I9&K¨>&z^:U,@'ҨlaI4YSbJUSX8l c'0W+<256y{{w6NGKd[^cw,J{*i2x]L,tU*qw+8Q^JeT˩y*dom<$]`(ؑ"4pBm'.mq%LΑlw.=e50Ҍ#^ΙGO>ʬy`>^ 7)Nf1˷ܿg/FpM̦zchu@ŮvzSPUEfkcU/9H| I9<Vݩ9"}s`wt8gE;xz.pW AD٫ Ny}' 놀==޸^?2~ZqJٔn8-dR [ݱO\f&:,:h>T5< Lv=V,&oZH^^J{d*zCZ {M=jMEsCo_~Ÿ{&5=h }g|0.`Pk]zx3C6ýIGj>'_mXMQ^a[Gl>6q[6&p;wc1\ ;X{@s X{$pKv7_ tO?Px6Q& ޏ ^~jUbTn5QEwjlC`?[bx=i{8OdzV?uRa89rnnpD7)$5[gԼ{p-"m/iwyj k&So^;-݋ף5UJ嚿ƿL> 8q 4o_f_ t*s0ˤux,V!0*3crtC NTIczm=*?%`ppHHۻkq^7h 7v_0 7V4SP^Tӣ%k/1ɟkgYQ`B;n2t;vow6p}~˽`1*Ȧ97Q̝z`bM{{0xM1ERA(@b6ÑџǶHԩ= ;Y}G&aZ؃.p:c.h/nz;گ9zkjk.Jk_ݒxl#>vgo79җ<(&n ņS3pDlz/*iӆ6\j7botPbh \FxKNwRJD +$V9S I/5wsxfq{,B~~,V uxSŹsZx,KG1VZXhcU(pbĨg|kR&swGv(Iub\C[fx-܃Mcp6.~8duWShz^Zi4L{@;>Ӱ3Qr ̰2v1hM-]'pWLq2,xWvj[vQibzj8^d {Wߚɇb*JG ]Ts۲m 󹷮p m8Ul>dȞͿv~^Uj_P1kf? ءQ dok՝`;wE<;U:MM¢#{?^Ϟ^=K&ޱ8WۤS@? gyGu";c]=ar(߹Xo6 f$pd<n͟~vkr,>// 8w1g~tW\E!c tz)clXH { -l/6rPnKzt̷Mb/*{UUʷ*+^5T]m`yHE_o}DɸiVWKQfyCցhLMad޵+:,6odh pUUC`NSrF5;`~A#BY!!M{Q9"wcm:B b%NrPW\?>":#;?9, q=්ܻb]-} P\?G/PgȿO_/lo]A1DodVTʩ)3}=G?o*'[pz/И?xf3=#a@p 6 8Wx#NU+ )u[IHF1KuVW{}.{F̔pָ=+~N~{͓#=4vLnBn\Tʆ.2.̕9dsk{ԙSҋe }JiN߷iUU>'ZP86Uؗ 8ֈB/a0) ~L%G K'%1'}RYYcC /ݏ<\683fn H<8jM@}~7 !N^vXG -]d=( _g z};ĆS^Xp峽ʬ ̭2~0j. AA*,8Bi^i eY`U^U {d^ut$z*? nN>)ϑj?dLVtmj5ȳP-!mz9 Jt gKWO# ;-9qt 7;sϗ{{/b8W잯:bdX# Ǿ+73SW&p0Ҭ|_!`o؂@?'ib 6c)`ֹ`ós+RCz'&:Z1^ ?G=\y޸1=;iN"p޿vYjVhVt0ykIDAT畐1s)R n7/4k;gj%_ da"7)_Ftس <βgQ^wtUp{{{n<6ue_y36\2wbp 8μğ8Vx Bj 53;Шnr^A$V]$K/Wpš.d|{U/ OE-[{pY?7hvS=;_>&4QrEN?$|#OP[adPp^<o n1׬y` * n95H E*x] ?S,܉N-ѫ.O{uRbd&:X, c~EckO)rtd#Ch5 KS< rn:UU+|Cϕ,(dJ_hMWUrNK~l vuWA/**b INUL,XFK3I/;ISL^َm Rc|ER\e-1^@ϩc$KM,ڋ>#hf" A}<#%$@vT ,yp2pde##/G .@ |<pY,d-`KȀ2G`G[oIENDB`deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/dash.svg0000644000175000017500000000325314122570751026670 0ustar ephraimephraim Mask_dark Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/resource/theme/dark/image/disk_big_dark.svg0000644000175000017500000027260614122570751030537 0ustar ephraimephraim disk_big_dark Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/app/view/usbselectview.h0000644000175000017500000000236114122570751023330 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include #include DWIDGET_USE_NAMESPACE class DeviceInfo; class UsbSelectView : public DWidget { Q_OBJECT public: explicit UsbSelectView(DWidget *parent = nullptr); signals: void deviceSelected(const QString &partition, bool format); void finish(quint32 error, const QString &title, const QString &description); void backToPrevUI(); private: QList m_mountDevs; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/widgetutil.cpp0000644000175000017500000000351214122570751023157 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "widgetutil.h" #include #include #include #include namespace WidgetUtil { QString getQss(const QString &qssFilename) { QString qss; QFile themeFile(qssFilename); if (themeFile.open(QIODevice::ReadOnly | QIODevice::Text)) { qss = themeFile.readAll(); themeFile.close(); } return qss; } QPixmap getDpiPixmap(const QString filename, DWidget *w) { QPixmap pixmap; qreal devicePixelRatio = qApp->devicePixelRatio(); if (w) { devicePixelRatio = w->devicePixelRatioF(); } qreal ratio = 1.0; if (!qFuzzyCompare(ratio, devicePixelRatio)) { QImageReader reader; reader.setFileName(qt_findAtNxFile(filename, devicePixelRatio, &ratio)); if (reader.canRead()) { reader.setScaledSize(reader.size() * (devicePixelRatio / ratio)); pixmap = QPixmap::fromImage(reader.read()); pixmap.setDevicePixelRatio(devicePixelRatio); } } else { pixmap.load(filename); } return pixmap; } } deepin-boot-maker_5.6.12+dfsg/src/app/view/resultview.h0000644000175000017500000000301214122570751022647 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class ResultView : public DWidget { Q_OBJECT public: explicit ResultView(DWidget *parent = nullptr); public slots: void onLogLinkActivated(const QString &); void updateResult(quint32 error, const QString &, const QString &description); private: QPointer m_title; QPointer m_hitsTitle; QPointer m_resultIcon; QPointer m_logHits; // DTipLabel *m_logHits; // QPointer m_rebootLater; // QPointer m_rebootNow; QPointer m_rebootLater; QPointer m_rebootNow; }; deepin-boot-maker_5.6.12+dfsg/src/app/view/progressview.cpp0000644000175000017500000001553714122570751023547 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "progressview.h" #include "widgetutil.h" #include "deviceinfoitem.h" #include "devicelistwidget.h" #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE ProgressView::ProgressView(DWidget *parent) : DWidget(parent) ,m_iInterval(-1) { setObjectName("ProgressView"); setAutoFillBackground(true); QVBoxLayout *mainLayout = new QVBoxLayout(this); mainLayout->setContentsMargins(0, 1, 0, 0); // int lcdFontId = QFontDatabase::addApplicationFont(":/theme/SourceHanSansSC-Medium.ttf"); // int lcdFontId1 = QFontDatabase::addApplicationFont(":/theme/SourceHanSansSC-Bold.ttf"); // QStringList m_fontList; // m_fontList.clear(); // if (lcdFontId != -1) { // m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId); // } // if (lcdFontId != -1) { // m_fontList << QFontDatabase::applicationFontFamilies(lcdFontId1); // } DLabel *m_title = new DLabel(tr("Burning")); DPalette pa = DApplicationHelper::instance()->palette(m_title); QBrush brush = DApplicationHelper::instance()->palette(m_title).text(); pa.setBrush(DPalette::Text, brush); m_title->setPalette(pa); DFontSizeManager::instance()->bind(m_title, DFontSizeManager::T3); // QFont qf = m_title->font(); // if (m_fontList.size() > 0) // qf.setFamily(m_fontList.at(0)); // qf.setPixelSize(24); // m_title->setFont(qf); m_waterProgress = new Dtk::Widget::DWaterProgress; m_waterProgress->setFixedSize(100, 100); DLabel *m_hitsTitle = new DLabel(tr("Burning, please wait...")); m_hitsTitle->setObjectName("ProgressHitsTitle"); DFontSizeManager::instance()->bind(m_hitsTitle, DFontSizeManager::T5); m_hitsTitle->setAlignment(Qt::AlignCenter); m_hitsTitle->setWordWrap(true); m_hitsTitle->setContentsMargins(20, 0, 20, 0); DTipLabel *m_hits = new DTipLabel(tr("Do not remove the disk or shut down the computer during the process")); // DLabel *m_hits = new DLabel(tr("Do not remove the disk or shut down the computer during the process")); m_hits->setObjectName("ProgressHits"); // m_hits->setFixedSize(213, 17); m_hits->setWordWrap(true); m_hits->setAlignment(Qt::AlignCenter); m_hits->setContentsMargins(20, 0, 20, 0); DFontSizeManager::instance()->bind(m_hits, DFontSizeManager::T8); // QFont qf = m_hits->font(); //// qf.setPixelSize(12); // qf.setLetterSpacing(QFont::AbsoluteSpacing, 2); // m_hits->setFont(qf); m_hits->setAlignment(Qt::AlignHCenter | Qt::AlignTop); // DPalette pa = DApplicationHelper::instance()->palette(m_hits); // QBrush brush = DApplicationHelper::instance()->palette(m_hits).textTips(); // pa.setBrush(DPalette::WindowText, brush); // m_hits->setPalette(pa); // SuggestButton *start = new SuggestButton(); DPushButton *start = new DPushButton(); start->setFocusPolicy(Qt::NoFocus); start->setFixedSize(310, 36); start->setObjectName("ProgressCancel"); start->setText(tr("Cancel")); DFontSizeManager::instance()->bind(start, DFontSizeManager::T6); mainLayout->addWidget(m_title, 0, Qt::AlignHCenter); mainLayout->addStretch(); mainLayout->addWidget(m_waterProgress, 0, Qt::AlignHCenter); mainLayout->addSpacing(26); mainLayout->addWidget(m_hitsTitle); mainLayout->addWidget(m_hits); mainLayout->addWidget(start, 0, Qt::AlignHCenter); mainLayout->addStretch(); m_waterProgress->setValue(0); m_waterProgress->start(); // this->setStyleSheet(WidgetUtil::getQss(":/theme/light/ProgressView.theme")); // this->setStyleSheet("#ProgressHits{line-height: 1.67;}"); // connect(start, &SuggestButton::clicked, this, &ProgressView::testCancel); start->hide(); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] { DPalette pa; DGuiApplicationHelper::ColorType themeType = DGuiApplicationHelper::instance()->themeType(); if (themeType == DGuiApplicationHelper::LightType) { pa = palette(); pa.setColor(DPalette::Background, QColor(255, 255, 255)); setPalette(pa); // pa = m_title->palette(); // pa.setColor(DPalette::WindowText, QColor("#414D68")); // m_title->setPalette(pa); pa = m_hitsTitle->palette(); pa.setColor(DPalette::WindowText, QColor("#001A2E")); m_hitsTitle->setPalette(pa); } else if (themeType == DGuiApplicationHelper::DarkType) { pa = palette(); pa.setColor(DPalette::Background, QColor("#292929")); setPalette(pa); pa = m_hitsTitle->palette(); pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_hitsTitle->setPalette(pa); } }); emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType()); connect(BMInterface::instance(), &BMInterface::reportProgress, this, [ = ](quint32 current, quint32 error, const QString & title, const QString & description) { qDebug() << error << current << title << description; if (current <= 70) { m_waterProgress->setValue(static_cast(current)); } else if (current <= 100) { if(m_iInterval == -1) { m_iInterval = QObject::startTimer(10000); } } else { qDebug() << "finish" << current << error; if(m_iInterval != -1) { QObject::killTimer(m_iInterval); m_iInterval = -1; } emit finish(current, error, title, description); } }); } void ProgressView::timerEvent(QTimerEvent *event) { if (m_iInterval == event->timerId()) { int iVal = m_waterProgress->value(); if (iVal < 99) { m_waterProgress->setValue(m_waterProgress->value() + 1); } } DWidget::timerEvent(event); } deepin-boot-maker_5.6.12+dfsg/src/app/view/devicelistwidget.h0000644000175000017500000000171614122570751024006 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include DWIDGET_USE_NAMESPACE class DeviceListWidget : public DListWidget { Q_OBJECT public: explicit DeviceListWidget(DWidget *parent = nullptr); }; deepin-boot-maker_5.6.12+dfsg/src/app/platform/0000755000175000017500000000000014122570751021143 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/platform/linux/0000755000175000017500000000000014122570751022302 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/platform/linux/deepin-boot-maker.desktop0000644000175000017500000002062514122570751027204 0ustar ephraimephraim[Desktop Entry] Categories=Utility;System; Comment=A tool to create boot media Exec=deepin-boot-maker GenericName=Boot Maker Icon=deepin-boot-maker Name=Deepin Boot Maker StartupNotify=true Terminal=false Type=Application Version=1.0 X-Deepin-Vendor=deepin # Translations: # Do not manually modify! Comment[am]=Livecd boot maker for Deepin Comment[ar]=أداة لإنشاء قرص إقلاع لـ Deepin OS Comment[az]=Önyükləyici daşıyıcı yaratmaq üçün alət Comment[bg]=Инструмент за правене на стартиращ диск за Deepin OS Comment[bn]=ডিপিন ওস এর জন্য বুট মিডিয়া তৈরীর একটি টুল। Comment[bo]=འགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད། Comment[br]=Un ostilh evit krouiñ ur media loc'hañ Comment[ca]=Una eina per crear mitjans d'arrencada per al Deepin OS Comment[cs]=Nástroj pro vytváření instalačního média Comment[da]=Et værktøj til at oprette bootmedie til Deepin OS Comment[de]=Ein Werkzeug zum Erstellen von Bootmedien für Deepin OS Comment[de_DE]=Deepin LiveCD Startmedium Ersteller Comment[el]=Ένα εργαλείο για την δημιουργία εκκινήσιμων μέσων εγγραφής του Deepin OS Comment[el_GR]=Δημιουργία εκκινήσιμων Live CD για το Deepin Comment[en_AU]=A tool to create boot media for Deepin OS Comment[es]=Una herramienta para crear medios de arranque Comment[es_AR]=Creador de discos booteables para Deepin Comment[es_CL]=LiveCD editar arranque Deepin Comment[es_ES]=Creador de Livecd de Deepin Comment[fa]=نرم افزاری برای ساختن دیسک راه انداز سیستم عامل دیپین Comment[fi]=Käynnistysmedian tekeminen Comment[fr]=Un outil pour créer un média de démarrage Comment[gl_ES]=Unha ferramenta para crear soportes de arraque Comment[hi_IN]=डीपिन ओएस हेतु बूट मीडिया बनाने का एक साधन Comment[hu]=Egy eszköz rendszerindító adathordozó készítéséhez Comment[id]=Sebuah alat untuk membuat media boot Deepin OS Comment[id_ID]=Pembuat CD But Langsung Deepin Comment[it]=Un tool per creare una pendrive avviabile di Deepin OS. Localizzazione italiana a cura di Massimo A. Carofano. Comment[km_KH]=ឧបករណ៍ដើម្បីបង្កើតមេឌៀប៊ូត Comment[ko]=Deepin OS용 시동 미디어를 생성하는 도구 Comment[ky]=Deepin OS жүктөтүүчү медиа түзүү аспабы Comment[lt]=Įrankis, skirtas sukurti Deepin OS paleidimo laikmeną Comment[mn]=Дээпин үйлдэлийн системд зориулсан ачааллагч үүсгэгч хэрэгсэл Comment[ms]=Alat yang menghasilkan cakera but untuk Deepin OS Comment[nl]=Een hulpmiddel om een opstartschijf te creëren voor Deepin OS Comment[pl]=Narzędzie do tworzenia nośników startowych dla systemu Deepin OS Comment[pl_PL]=Twórca płyty rozruchowej trybu live dla Deepin Comment[pt]=Uma ferramenta para criar unidades de arranque Comment[pt_BR]=Ferramenta para criar a mídia de inicialização do Deepin Comment[pt_PT]=Criador de Livecd de arranque para Deepin Comment[ro]=Un instrument pentru a crea medii de încărcare pentru sistemul de operare Deepin Comment[ru]=Инструмент создания загрузочного диска для ОС Deepin Comment[sk]=Nástroj na tvorbu boot disku pre Deepin OS Comment[sq]=Një mjet për të krijuar media nisjesh Comment[sr]=Алат за прављење покретача Дипин ОС-а Comment[th]=เครื่องมือในการสร้างสื่อสำหรับบูต Comment[tr]=Deepin İşletim Sistemi için önyükleme diski oluşturma aracı Comment[ug]=قوزغىتىش تاختىسى ياساش قورالى Comment[uk]=Інструмент для створення завантажувальних дисків для Deepin OS Comment[zh_CN]=启动盘制作工具 Comment[zh_HK]=製作開機碟的工具 Comment[zh_TW]=啟動盤製作工具 GenericName[am_ET]=የ boot ዲስክ መፍጠሪያ GenericName[ar]=صانع إقلاع GenericName[az]=Önyükləyici Yaradıcısı GenericName[bg]=Boot Maker GenericName[bn]=বুট মেকার GenericName[bo]=འགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད། GenericName[br]=Boot Maker GenericName[ca]=Creador de mitjans d'arrencada GenericName[cs]=Vytvoření instalačního média GenericName[da]=Bootskaber GenericName[de]=Boot Maker GenericName[el]=Φορτωτής Εκκίνησης GenericName[en_AU]=Boot Maker GenericName[es]=Creador de arranque GenericName[fa]=سازنده بوت GenericName[fi]=Mediat GenericName[fr]=Créateur de démarrage GenericName[gl_ES]=Creador de arranque GenericName[hi_IN]=बूट निर्माता GenericName[hu]=Rendszerindító Készítő GenericName[id]=Pembuat Boot GenericName[it]=Boot Maker GenericName[km_KH]=Boot Maker GenericName[ko]=시동 제작도구 GenericName[ky]=Boot Maker GenericName[lt]=Paleidimo kūrėjas GenericName[mn]=Ачаалагч үүсгэгч GenericName[ms]=Pembuat But GenericName[nl]=Opstartmediummaker GenericName[pl]=Twórca rozruchu GenericName[pt]=Criador de unidade de arranque GenericName[pt_BR]=Criador de Mídia Inicializável GenericName[ro]=Boot Maker GenericName[ru]=Создание Загрузочного Диска GenericName[sk]=Boot Maker GenericName[sq]=Boot Maker GenericName[sr]=Творац Покретача GenericName[sv]=Boot Skapare GenericName[th]=Boot Maker GenericName[tr]=Önyükleme Oluşturucu GenericName[ug]=قوزغىتىش تاختىسى ياساش قورالى GenericName[uk]=Створення дисків GenericName[zh_CN]=启动盘制作工具 GenericName[zh_HK]=開機碟製作 GenericName[zh_TW]=開機碟製作器 Name[af]=Deepin Selflaai Skepper Name[am]=Deepin Boot መፍጠሪያ Name[am_ET]=ዲፕኢን Boot መፍጠሪያ Name[ar]=منشئ إقلاع ديبين Name[ast]=Deepin Boot Maker Name[az]=Deepin Önyükləyicisi Yaradıcısı Name[bg]=Deepin Boot Maker Name[bn]=ডিপিন বুট মেকার Name[bo]=གཏིང་ཟབ་འགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད། Name[br]=Deepin Boot Maker Name[ca]=Creador de mitjans d'arrencada del Deepin Name[cs]=Vytvoření instalačního média Name[da]=Deepin bootskaber Name[de]=Deepin Startmedium Ersteller Name[de_DE]=Deepin Startmedium Ersteller Name[el]=Δημιουργία Εκκινήσιμων Μονάδων Deepin Name[el_GR]=Deepin Εγγραφή Εκκινήσιμων Μονάδων Name[en_AU]=Deepin Boot Maker Name[eo]=Deepin ekmarŝo faristo Name[es]=Creador de arranque Name[es_AR]=Creador de Booteo Deepin Name[es_CL]=Administrar boot de Deepin Name[es_ES]=Creador de Arranque de Deepin Name[fa]=سازنده بوت لینوکس دیپین Name[fi]=Deepin käynnistysmediat Name[fr]=Créateur de démarrage Deepin Name[gl_ES]=Creador de arranque de Deepin Name[he]=Deepin Boot Maker Name[hi_IN]=डीपिन बूट निर्माता Name[hr]=Deepin medij za podizanje sustava Name[hu]=Deepin® Rendszerindító Készítő Name[hy]=Deepin Boot Ստեղծող Name[id]=Pembuat Boot Deepin Name[id_ID]=Pembuat But Deepin Name[it]=Deepin Boot Maker Name[ja]=Deepin ブートメーカー Name[km_KH]=អ្នកបង្កើតប៊ូត Deepin Name[ko]=Deepin 부트 메이커 Name[ky]=Deepin Boot Maker Name[lt]=Deepin paleidimo kūrėjas Name[mn]=Дээпин ачаалагч үүсгэгч Name[ms]=Pembina But Deepin Name[nb]=Deepin Boot Maker Name[nl]=Deepin Opstartmediummaker Name[pam]=Deepin Boot Maker Name[pl]=Twórca rozruchu Deepin Name[pl_PL]=Twórca rozruchu Deepin Name[pt]=Criador de unidade de arranque Deepin Name[pt_BR]=Deepin Criador de Mídia Inicializável Name[pt_PT]=Deepin Boot Maker Name[ro]=Deepin Boot Maker Name[ru]=Создание Загрузочного Диска Deepin Name[sk]=Deepin Boot Maker Name[sl]=Boot izdelovalec Deepin Name[sq]=Deepin Boot Maker Name[sr]=Дипинов Творац Покретача Name[sv]=Deepin Boot Skapare Name[th]=Deepin Boot Maker Name[tr]=Deepin Önyükleme Oluşturucu Name[ug]=چوڭقۇر قوزغىتىش تاختىسى ياساش قورالى Name[uk]=Засіб створення дисків з Deepin Name[vi]=Deepin Boot Maker Name[zh_CN]=深度启动盘制作工具 Name[zh_HK]=Deepin 開機碟製作 Name[zh_TW]=Deepin 開機碟製作器 deepin-boot-maker_5.6.12+dfsg/src/app/windows.qrc0000644000175000017500000000000314122570751021511 0ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/vendor.pri0000644000175000017500000000432214122570751021331 0ustar ephraimephraiminclude($$PWD/../vendor/env.pri) QT += dtkwidget unix{ QT += network CONFIG += link_pkgconfig } linux{ QT += x11extras dbus x11extras CONFIG += link_pkgconfig PKGCONFIG += dtkwidget PKGCONFIG += xcb-util libstartup-notification-1.0 LIBS += -lxcb -lX11 -lXext } win32{ INCLUDEPATH += $$QT.dtkcore.includes LIBS += -L$$QT.dtkcore.libs -ldtkcore INCLUDEPATH += $$QT.dtkwidget.includes LIBS += -L$$QT.dtkwidget.libs -ldtkwidget } ################################################################## # Library ################################################################## win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libdbm/release/ -llibdbm else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libdbm/debug/ -llibdbm else:unix: LIBS += -L$$OUT_PWD/../libdbm/ -llibdbm INCLUDEPATH += $$PWD/../libdbm DEPENDPATH += $$PWD/../libdbm win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/release/liblibdbm.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/debug/liblibdbm.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/release/libdbm.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/debug/libdbm.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../libdbm/liblibdbm.a win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/release/ -lxsys else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/debug/ -lxsys else:unix: LIBS += -L$$OUT_PWD/../vendor/src/libxsys/ -lxsys INCLUDEPATH += $$PWD/../vendor/src/libxsys DEPENDPATH += $$PWD/../vendor/src/libxsys win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/libxsys.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/libxsys.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/xsys.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/xsys.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/libxsys.a deepin-boot-maker_5.6.12+dfsg/src/app/main.cpp0000644000175000017500000001015014122571016020737 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include #ifdef Q_OS_WIN32 #include namespace Utils { void loadFonts(); } #endif #include "bmwindow.h" #include #include #include #include #include #include #include DCORE_USE_NAMESPACE DWIDGET_USE_NAMESPACE #ifdef Q_OS_MAC static bool switchToRoot(QApplication &app) { QStringList allappargs = app.arguments(); QProcess whoamip; whoamip.start("whoami"); whoamip.waitForFinished(); if (QString(whoamip.readAll()).remove("\r").remove("\n") != "root") { QString argsconc = ""; QString argsconcSingleQuote = ""; for (int i = 1; i < allappargs.size(); ++i) { argsconc += QString("\"%1\" ").arg(allappargs.at(i)); argsconcSingleQuote += QString("'%1' ").arg(allappargs.at(i)); } argsconc += "\"rootcheck=no\""; argsconcSingleQuote += "'rootcheck=no'"; QProcess::startDetached("osascript", QStringList() << "-e" << QString("do shell script \"'%1' %2\" with administrator privileges").arg(app.applicationFilePath()).arg(argsconcSingleQuote)); return true; } return false; } #endif int main(int argc, char **argv) { Utils::initResource(); #ifndef Q_OS_WIN #if defined(DTK_STATIC_LIB) DWIDGET_INIT_RESOURCE(); #endif #endif DApplication::loadDXcbPlugin(); DApplication app(argc, argv); app.setAttribute(Qt::AA_UseHighDpiPixmaps); app.setAttribute(Qt::AA_EnableHighDpiScaling); app.setOrganizationName("deepin"); app.setApplicationName("deepin-boot-maker"); app.setApplicationVersion(DApplication::buildVersion("20191031")); // app.setApplicationVersion(DApplication::buildVersion(VERSION)); // app.setTheme("light"); #ifdef Q_OS_MAC if (switchToRoot(app)) { exit(0); } #endif const QString m_format = "%{time}{yyyyMMdd.HH:mm:ss.zzz}[%{type:1}][%{function:-40} %{line:-4} %{threadid:-8} ] %{message}\n"; DLogManager::setLogFormat(m_format); DLogManager::registerConsoleAppender(); DLogManager::registerFileAppender(); #ifndef Q_OS_MAC qputenv("DTK_USE_SEMAPHORE_SINGLEINSTANCE", "1"); if (!DGuiApplicationHelper::instance()->setSingleInstance(app.applicationName(), DGuiApplicationHelper::UserScope)) { exit(0); } #endif #ifdef Q_OS_WIN Utils::loadFonts(); app.setWindowIcon(QIcon(":/theme/light/image/deepin-boot-maker.svg")); #endif app.loadTranslator(); Utils::loadTranslate(); app.setApplicationDisplayName(QObject::tr("Boot Maker")); qDebug() << "Boot Maker UI started."; DApplicationSettings savetheme; BMWindow w; Dtk::Widget::moveToCenter(&w); w.show(); // w.waitAuth(); auto ret = app.exec(); BMInterface::instance()->stop(); return ret; } #ifdef Q_OS_WIN32 namespace Utils { void loadFonts() { QFontDatabase database; QStringList fontlist = database.families(); QStringList preferList; preferList.append("Microsoft YaHei"); preferList.append("微软雅黑"); preferList.append("SimHei"); preferList.append("黑体"); foreach (QString font, preferList) { if (fontlist.contains(font)) { QFont newFont = QFont(font); qApp->setFont(newFont); return; } } } } #endif deepin-boot-maker_5.6.12+dfsg/src/app/linux/0000755000175000017500000000000014122570751020456 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/linux/bmwindow.h0000644000175000017500000000402114122570751022452 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include #include #include DWIDGET_USE_NAMESPACE #define BMWindowBaseClass DTK_WIDGET_NAMESPACE::DMainWindow class BMWindowPrivate; class BMWindow: public DTK_WIDGET_NAMESPACE::DMainWindow { Q_OBJECT public: BMWindow(QWidget *parent = nullptr); ~BMWindow(); public slots: void slot_ThemeChange(); private: //iDirection:-1 从右往左滑动; 1 从左往右滑动 void slideWidget(DWidget *left, DWidget *right, int iDirection = -1); private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), BMWindow) QSequentialAnimationGroup* m_pSAnimationGroup; }; class SlideAnimatoin:public QParallelAnimationGroup { Q_OBJECT public: SlideAnimatoin(QObject* pParent = nullptr); ~SlideAnimatoin(); public: //iDirection:-1 从右往左滑动; 1 从左往右滑动 void initAnimation(DWidget* pLeftWidget, DWidget* pRightWidget, int iDirection = -1); private: void setLeftWidget(DWidget* pWidget); void setRightWidget(DWidget* pWidget); private slots: void slot_AnimationGroupFinished(); private: DWidget* m_pLeftWidget; DWidget* m_pRightWidget; }; deepin-boot-maker_5.6.12+dfsg/src/app/app.pro0000644000175000017500000000347214122570751020627 0ustar ephraimephraiminclude($$PWD/vendor.pri) TEMPLATE = app TARGET = deepin-boot-maker QT += core gui widgets concurrent network svg CONFIG += c++11 link_pkgconfig CONFIG += resources_big RESOURCES += \ ../translate.qrc \ view/resource/resource.qrc HEADERS += \ view/isoselectview.h \ view/widgetutil.h \ view/usbselectview.h \ view/deviceinfoitem.h \ view/devicelistwidget.h \ view/progressview.h \ view/resultview.h \ view/dropframe.h \ view/unmountusbview.h SOURCES += \ view/isoselectview.cpp \ view/widgetutil.cpp \ view/usbselectview.cpp \ view/deviceinfoitem.cpp \ view/devicelistwidget.cpp \ view/progressview.cpp \ view/resultview.cpp \ view/dropframe.cpp \ bmwindow.cpp \ main.cpp \ view/unmountusbview.cpp unix { INCLUDEPATH += $$PWD/linux HEADERS += $$PWD/linux/bmwindow.h } linux { binary.path = $${PREFIX}/bin binary.files = $${OUT_PWD}/deepin-boot-maker desktop.path = $${PREFIX}/share/applications desktop.files = $$PWD/platform/linux/deepin-boot-maker.desktop hicolor.path = $${PREFIX}/share/icons/hicolor/scalable/apps hicolor.files = $$PWD/view/resource/theme/light/image/deepin-boot-maker.svg INSTALLS += binary desktop hicolor } win* { INCLUDEPATH += $$PWD/other HEADERS += $$PWD/other/bmwindow.h # QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\" RC_FILE += $$PWD/platform/windows/deepin-boot-maker.rc } mac* { CONFIG += app_bundle ICON = $$PWD/platform/mac/deepin-boot-maker.icns blob.files = $$files($$PWD/platform/mac/Contents/Resources/*) blob.path = Contents/Resources QMAKE_BUNDLE_DATA += blob QMAKE_POST_LINK = macdeployqt deepin-boot-maker.app/ -libpath=/Users/deepin/Development/ci/usr/lib } DISTFILES += \ qrc/xfbinst_x32 \ qrc/xfbinst_x64 deepin-boot-maker_5.6.12+dfsg/src/app/other/0000755000175000017500000000000014122570751020440 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/app/other/bmwindow.h0000644000175000017500000000333414122570751022442 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //#pragma once //#include //#include //#define BMWindowBaseClass DTK_WIDGET_NAMESPACE::DBorderlessWindow //class BMWindowPrivate; //class BMWindow: public DTK_WIDGET_NAMESPACE::DBorderlessWindow //{ // Q_OBJECT //public: // BMWindow(QWidget *parent = nullptr); // ~BMWindow(); //private: // QScopedPointer d_ptr; // Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), BMWindow) //}; #pragma once #include #include #define BMWindowBaseClass DTK_WIDGET_NAMESPACE::DMainWindow class BMWindowPrivate; class BMWindow: public DTK_WIDGET_NAMESPACE::DMainWindow { Q_OBJECT public: BMWindow(QWidget *parent = nullptr); ~BMWindow(); virtual void closeEvent(QCloseEvent *event); public slots: void slot_ThemeChange(); private: bool closeflags = true; QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), BMWindow) }; deepin-boot-maker_5.6.12+dfsg/src/service/0000755000175000017500000000000014122570751020177 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/service/.gitignore0000644000175000017500000000134514122570751022172 0ustar ephraimephraim# This file is used to ignore files which are generated # ---------------------------------------------------------------------------- *~ *.autosave *.a *.core *.moc *.o *.obj *.orig *.rej *.so *.so.* *_pch.h.cpp *_resource.rc *.qm .#* *.*# core !core/ tags .DS_Store .directory *.debug Makefile* *.prl *.app moc_*.cpp ui_*.h qrc_*.cpp Thumbs.db *.res *.rc /.qmake.cache /.qmake.stash # qtcreator generated files *.pro.user* # xemacs temporary files *.flc # Vim temporary files .*.swp # Visual Studio generated files *.ib_pdb_index *.idb *.ilk *.pdb *.sln *.suo *.vcproj *vcproj.*.*.user *.ncb *.sdf *.opensdf *.vcxproj *vcxproj.* # MinGW generated files *.Debug *.Release # Python byte code *.pyc # Binaries # -------- *.dll *.exe deepin-boot-maker_5.6.12+dfsg/src/service/LogManager.cpp0000644000175000017500000000576514122570751022734 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "LogManager.h" DCORE_USE_NAMESPACE DBMLogManager::DBMLogManager() { m_format = "%{time}{yyyy-MM-dd, HH:mm:ss.zzz} [%{type:-7}] [%{file:-20} %{function:-35} %{line}] %{message}\n"; } void DBMLogManager::initConsoleAppender() { m_consoleAppender = new ConsoleAppender; m_consoleAppender->setFormat(m_format); logger->registerAppender(m_consoleAppender); } void DBMLogManager::initRollingFileAppender() { QString cachePath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0); if (systemLog) { cachePath = QString("/var/log/%1").arg(qApp->organizationName()); } if (!QDir(cachePath).exists()) { QDir(cachePath).mkpath(cachePath); } m_logPath = joinPath(cachePath, QString("%1.log").arg(qApp->applicationName())); m_rollingFileAppender = new RollingFileAppender(m_logPath); m_rollingFileAppender->setFormat(m_format); m_rollingFileAppender->setLogFilesLimit(5); m_rollingFileAppender->setDatePattern(RollingFileAppender::DailyRollover); logger->registerAppender(m_rollingFileAppender); } //! Registers the appender to write the log records to the Console /** * \sa registerFileAppender */ void DBMLogManager::setSystemLog(bool sys) { DBMLogManager::instance()->systemLog = sys; } void DBMLogManager::registerConsoleAppender() { DBMLogManager::instance()->initConsoleAppender(); } //! Registers the appender to write the log records to the file /** * \sa getlogFilePath * \sa registerConsoleAppender */ void DBMLogManager::registerFileAppender() { DBMLogManager::instance()->initRollingFileAppender(); } //! Return the path file log storage /** * \sa registerFileAppender */ QString DBMLogManager::getlogFilePath() { return QDir::toNativeSeparators(DBMLogManager::instance()->m_logPath); } void DBMLogManager::setLogFormat(const QString &format) { //m_format = "%{time}{yyyy-MM-dd, HH:mm:ss.zzz} [%{type:-7}] [%{file:-20} %{function:-35} %{line}] %{message}\n"; DBMLogManager::instance()->m_format = format; } QString DBMLogManager::joinPath(const QString &path, const QString &fileName) { QString separator(QDir::separator()); return QString("%1%2%3").arg(path, separator, fileName); } DBMLogManager::~DBMLogManager() { } deepin-boot-maker_5.6.12+dfsg/src/service/vendor.pri0000644000175000017500000000374414122570751022220 0ustar ephraimephraiminclude($$PWD/../vendor/env.pri) unix{ QT += dbus CONFIG += link_pkgconfig PKGCONFIG += dtkcore } win32{ INCLUDEPATH += $$DTK_INCLUDE\DCore DEPENDPATH += $$DTK_DEPEND\DCore LIBS += -L$$DTK_LIBRARY -ldtkcore } ################################################################## # Library ################################################################## win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libdbm/release/ -llibdbm else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libdbm/debug/ -llibdbm else:unix: LIBS += -L$$OUT_PWD/../libdbm/ -llibdbm INCLUDEPATH += $$PWD/../libdbm DEPENDPATH += $$PWD/../libdbm win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/release/liblibdbm.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/debug/liblibdbm.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/release/libdbm.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../libdbm/debug/libdbm.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../libdbm/liblibdbm.a win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/release/ -lxsys else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../vendor/src/libxsys/debug/ -lxsys else:unix: LIBS += -L$$OUT_PWD/../vendor/src/libxsys/ -lxsys INCLUDEPATH += $$PWD/../vendor/src/libxsys DEPENDPATH += $$PWD/../vendor/src/libxsys win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/libxsys.a else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/libxsys.a else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/release/xsys.lib else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/debug/xsys.lib else:unix: PRE_TARGETDEPS += $$OUT_PWD/../vendor/src/libxsys/libxsys.a deepin-boot-maker_5.6.12+dfsg/src/service/main.cpp0000644000175000017500000000521214122570751021627 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "LogManager.h" #include "util/utils.h" #include "bootmakerservice.h" #include #include #include #include const QString BootMakerServiceName = "com.deepin.bootmaker"; const QString BootMakerPath = "/com/deepin/bootmaker"; int main(int argc, char *argv[]) { QString PATH = qgetenv("PATH"); if (PATH.isEmpty()) { PATH = "/usr/bin"; } PATH += ":/usr/sbin"; PATH += ":/sbin"; qputenv("PATH", PATH.toLatin1()); QString strDebug = qgetenv("QT_LOGGING_RULES"); if (strDebug.isEmpty()) { strDebug = "*.debug=false"; } qputenv("QT_LOGGING_RULES", strDebug.toLatin1()); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); Utils::initResource(); QCoreApplication a(argc, argv); a.setOrganizationName("deepin"); a.setApplicationName("deepin-boot-maker-service"); BootMakerService service; const QString m_format = "%{time}{yyyyMMdd.HH:mm:ss.zzz}[%{type:1}][%{function:-35} %{line:-4} %{threadid} ] %{message}\n"; DBMLogManager::setSystemLog(true); DBMLogManager::setLogFormat(m_format); DBMLogManager::registerFileAppender(); DBMLogManager::registerConsoleAppender(); qDebug() << "write log to" << DBMLogManager::getlogFilePath(); qDebug() << PATH; auto systemBus = QDBusConnection::systemBus(); if (!systemBus.registerService(BootMakerServiceName)) { qCritical() << "registerService failed:" << systemBus.lastError(); exit(0x0001); } if (!systemBus.registerObject(BootMakerPath, &service, QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals)) { qCritical() << "registerObject failed:" << systemBus.lastError(); exit(0x0002); } return a.exec(); } deepin-boot-maker_5.6.12+dfsg/src/service/service.pro0000644000175000017500000000126214122570751022362 0ustar ephraimephraiminclude($$PWD/vendor.pri) QT += core dbus QT -= gui CONFIG += c++11 TARGET = deepin-boot-maker-service CONFIG += console link_pkgconfig CONFIG -= app_bundle TEMPLATE = app RESOURCES += \ ../translate.qrc \ SOURCES += main.cpp \ bootmakerservice.cpp \ LogManager.cpp HEADERS += \ bootmakerservice.h \ LogManager.h unix{ binary.path = $${PREFIX}/lib/deepin-daemon/ binary.files = $${OUT_PWD}/deepin-boot-maker-service service.path = $${PREFIX}/share/dbus-1/system-services/ service.files = $$PWD/data/com.deepin.bootmaker.service dbus.path = $${PREFIX}/share/dbus-1/system.d/ dbus.files = $$PWD/data/com.deepin.bootmaker.conf INSTALLS += service dbus binary } deepin-boot-maker_5.6.12+dfsg/src/service/bootmakerservice.h0000644000175000017500000000420514122570751023715 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include class BootMakerServicePrivate; class BootMakerService : public QObject, protected QDBusContext { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "com.deepin.bootmaker") public: explicit BootMakerService(QObject *parent = nullptr); virtual ~BootMakerService(); signals: Q_SCRIPTABLE void DeviceListChanged(const QString addlistJson, const QString& dellistJson); Q_SCRIPTABLE void Finished(int errcode, const QString &description); Q_SCRIPTABLE void ReportProgress(int current, int error, const QString &title, const QString &description); Q_SCRIPTABLE void ReportProgress1(int current, int error, const QString &title, const QString &description); // Q_SCRIPTABLE void CheckFileResult(bool result); void s_StartBootMarker(); public slots: Q_SCRIPTABLE void Reboot(); Q_SCRIPTABLE void Start(); Q_SCRIPTABLE void Stop(); Q_SCRIPTABLE QString DeviceList(); Q_SCRIPTABLE bool Install(const QString &image, const QString &device, const QString &partition, bool formatDevice); Q_SCRIPTABLE bool CheckFile(const QString &filepath); private: QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), BootMakerService) }; deepin-boot-maker_5.6.12+dfsg/src/service/bootmakerservice.cpp0000644000175000017500000001357214122570751024257 0ustar ephraimephraim/* * Copyright (C) 2016 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "bootmakerservice.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int getProcIdByExeName(std::string execName) { int pid = -1; // Open the /proc directory DIR *dp = opendir("/proc"); if (dp != NULL) { // Enumerate all entries in directory until process found struct dirent *dirp; while (pid < 0 && (dirp = readdir(dp))) { // Skip non-numeric entries int id = atoi(dirp->d_name); if (id > 0) { // Read contents of virtual /proc/{pid}/cmdline file auto exeSymlinkPath = std::string("/proc/") + dirp->d_name + "/exe"; char *actualpath = realpath(exeSymlinkPath.c_str(), NULL); if (actualpath) { // Compare against requested process name if (execName == actualpath) { pid = id; } } } } } closedir(dp); return pid; } static std::string getProcIdExe(int id) { std::string execName; if (id > 0) { // Read contents of virtual /proc/{pid}/cmdline file auto exeSymlinkPath = std::string("/proc/") + QString("%1").arg(id).toStdString() + "/exe"; char *actualpath = realpath(exeSymlinkPath.c_str(), NULL); execName = std::string(actualpath); } return execName; } class BootMakerServicePrivate { public: BootMakerServicePrivate(BootMakerService *parent) : q_ptr(parent) {} bool checkCaller(); BootMaker *bm; BootMakerService *q_ptr; Q_DECLARE_PUBLIC(BootMakerService) }; BootMakerService::BootMakerService(QObject *parent) : QObject(parent), d_ptr(new BootMakerServicePrivate(this)) { Q_D(BootMakerService); d->bm = new BootMaker; QThread *bmThread = new QThread; d->bm->moveToThread(bmThread); bmThread->start(); connect(d->bm, &BootMaker::removablePartitionsChanged, this, [ = ](const QList &addlist, const QList& dellist) { emit DeviceListChanged(deviceListToJson(addlist), deviceListToJson(dellist)); }); connect(d->bm, &BootMaker::finished, this, &BootMakerService::Finished); // connect(d->bm, &BootMaker::checkFileResult, // this, &BootMakerService::CheckFileResult); connect(d->bm, &BootMaker::reportProgress, this, &BootMakerService::ReportProgress); connect(d->bm, &BootMaker::reportProgress1, this, &BootMakerService::ReportProgress1); // connect(this, &BootMakerService::startInstall, // d->bm, &BootMaker::install); connect(d->bm, &BootMaker::finished, this, [ = ](int errcode, const QString &) { QThread::msleep(1000); qApp->exit(errcode); }); connect(this, &BootMakerService::s_StartBootMarker, d->bm, &BootMaker::start); } BootMakerService::~BootMakerService() { } void BootMakerService::Reboot() { Q_D(BootMakerService); if (!d->checkCaller()) { return; } d->bm->reboot(); } void BootMakerService::Start() { Q_D(BootMakerService); if (!d->checkCaller()) { return; } emit s_StartBootMarker(); } void BootMakerService::Stop() { Q_D(BootMakerService); if (!d->checkCaller()) { return; } qDebug() << "service exit by call Stop"; qApp->exit(0); } //! //! \brief BootMakerService::DeviceList //! \return //! return json of devicelist QString BootMakerService::DeviceList() { qDebug() << "BootMakerService DeviceList"; Q_D(BootMakerService); if (!d->checkCaller()) { return ""; } return deviceListToJson(d->bm->deviceList()); } bool BootMakerService::Install(const QString &image, const QString &device, const QString &partition, bool formatDevice) { Q_D(BootMakerService); if (!d->checkCaller()) { return false; } qDebug() << "install image:" << image << " device:" << device << " partition:" << partition; emit d->bm->startInstall(image, device, partition, formatDevice); return true; } bool BootMakerService::CheckFile(const QString &filepath) { Q_D(BootMakerService); if (!d->checkCaller()) { return false; } return d->bm->checkfile(filepath); // emit d->bm->startCheckfile(filepath); // return true; } bool BootMakerServicePrivate::checkCaller() { Q_Q(BootMakerService); auto callerPid = static_cast(q->connection().interface()->servicePid(q->message().service()).value()); auto callerExe = getProcIdExe(callerPid); auto dbmExe = "/usr/bin/deepin-boot-maker"; // auto dbmPid = getProcIdByExeName(); qDebug() << "callerPid is: " << callerPid << "callerExe is:" << callerExe.c_str() ; if (callerExe != dbmExe) { qDebug() << QString("caller not authorized") ; return false; } qDebug() << QString("caller authorized"); return true; } deepin-boot-maker_5.6.12+dfsg/src/service/LogManager.h0000644000175000017500000000335214122570751022367 0ustar ephraimephraim/* * Copyright (C) 2017 ~ 2018 Wuhan Deepin Technology Co., Ltd. * * Author: Iceyer * * Maintainer: Iceyer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include #include #include class DBMLogManager { public: static void setSystemLog(bool sys); static void registerConsoleAppender(); static void registerFileAppender(); static QString getlogFilePath(); static void setLogFormat(const QString& format); signals: public slots: private: bool systemLog = false; QString m_format; QString m_logPath; Dtk::Core::ConsoleAppender* m_consoleAppender; Dtk::Core::RollingFileAppender* m_rollingFileAppender; void initConsoleAppender(); void initRollingFileAppender(); QString joinPath(const QString& path, const QString& fileName); inline static DBMLogManager* instance(){ static DBMLogManager instance; return &instance; } explicit DBMLogManager(); ~DBMLogManager(); DBMLogManager(const DBMLogManager &); DBMLogManager & operator = (const DBMLogManager &); }; deepin-boot-maker_5.6.12+dfsg/src/service/data/0000755000175000017500000000000014122570751021110 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/service/data/com.deepin.bootmaker.service0000644000175000017500000000015214122570751026473 0ustar ephraimephraim[D-BUS Service] Name=com.deepin.bootmaker Exec=/usr/lib/deepin-daemon/deepin-boot-maker-service User=root deepin-boot-maker_5.6.12+dfsg/src/service/data/com.deepin.bootmaker.xml0000644000175000017500000000232414122570751025636 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/service/data/com.deepin.bootmaker.conf0000644000175000017500000000155614122570751025771 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/help/0000755000175000017500000000000014122570751017467 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/0000755000175000017500000000000014122570751022771 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/0000755000175000017500000000000014122570751025031 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/0000755000175000017500000000000014122570751026034 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/fig/0000755000175000017500000000000014122570751026601 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/fig/select_file.png0000644000175000017500000006475714122570751031610 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxwx?slӪWW+ƍbz- %BpB!@ `L1`ƽ^djvG1YΎVҗs!cQ> BV;pρB(. !KBqB$G(. !KBqB$GrU\ՃBBH!)MIF _|ѠOBwrgY\upU [gc3<B7x㻏~f+*bMS.w:5r~_OB7⸪]W{(khEv4!`p V_1\ip`c\NIBUɪ 3{o-[`pS2-'ƃ,_t FBBOiB+,1Q4- voC1rnr08vd 1!|t0.{us~{z0`!|t{ NvFA͘1cE!.'MԿX,p]RRұ"oƥ@E/%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#! yǑ=>>:aD}᪈O[ODQ[V^QkjOU6B6ߴtm͘S*3Tg#QgCinuo}huE c G*Cɿ+4jR" ]3~(vo4@cg'z;5范#K߭̿_=( ATx?_2dя] ox^+~庳~*?2[L g"C_6^^t1Q\[FϾ/?[rEC= /ݝZTB\]eo P'~?5B+MGO&g#@lՓܳ.+?죯uك/_n{w>}WOzү;mVIɃ&P eͪmXܕ zK&if/?rٶ;wm񣧜ڧЕ@f`m\ 2q¸ <|23~}Y?珏.بJٰσ~~{O|T,~ʼn=gxfti+gXpf LOvQ|ClzU6;8t2eЧ~v)yZ`d@7T@`s W9؈w7PoN>2Cj]: ?[猉=7:Y[|⋭A ư|uKx[Im]^yc[2M'_|Se8LQ3ΟLߩnҖ;ς{FgqdZ^7wє",YUpͧwumEݧנ57H-5ES.k헻ץ)߰{u=eEse;t`Qxl9ˎrߞ_CbëӚXΧ~ǧ/M~9ignbJIg*`ٹ[5%wzH2RpEY Nx^6nzs.7!eX_ت_|-W}0wuo|2fsoV>7p:%t]/%?l \ǿ:TZyzŽ?X>׹]Z>˟/}\ʋ_}2`;/_6vgGM?]!UN:>MR( wse#+چSλ 8p˚ ?or ]CP8a.*Dmp]˒on{dUF=Ŗ_ך#IK] X1ڇWgNYtm4zb *Y%] 9p^%cmxÐQs[yws{RNR[UYo6Ҕnݜޝ(G:7\1o;@5^wo_@gH[ a) 7VugHax23tIy?(;(Ph~ l7O/ʞv]F>6CKUuF ;z wj77oAuWʚJViϛ?xxyuڞ0j|zwկOKtΘeK?:=r ?,YU\)2VTQV eȶ[=\<鬋}\G+ⱓ{e#@1?q΁)<>=<#>[ٗ\۷Qut~h4]so7?5E wm؜G*Bk5`YVuPD]~80y5~Q>M;o1|`S0*>ZsÍ? eޕ+¬S{?ۭ#[q硼Ol}yаKtq_cc\=gSk~oC}mߖ^uт3?i#S"Qjs@o.BԽ +k[~Nw{R;oi=:-@F|2y^ oo ji?T'?/OͶoYն/E ذ_:ǃm30t.6FdxdN<g?Ы[ݻd>uQW|ϹNj";6,ig e ͍?d}M~?-e~ϗonoۏr}~Ym+7|@>>v~e\ g>85+?Sde"{vTD<mްtpIG3\~~|+/,|5c)W\4iB_HQ`Fz >rF^yoyE06Y/nt~C7.w~i7ϙ6i2Vzx}k6zfa 9GeΥk88W'Ú{iGW#ֿ;w(++?pl _]r0$#C'_1K]|(.I}9o^;ꓧ^]qJf$Ͱ2֮Elh{ÿ>kt wK/5+7qR[SXԭ\2z/'Fi9Ež{t.y<yYטvݲu%>{d1lYg~|goa|sDϾetNXp)`2m+hIW/>!e6V**l=Ӕ^coݰi̼5K}wUн݇kňI;r /-.8ƇM&%σ5'%_YNhLO lGƆN큩ӆ0o^ضמp]Ho4)^5w8S/X W)|]?{j1 .WޓWModny7?o1—UTqQ/&Vwǚ66ee{Q\vwz=G.hQҢ]{3\[eP=o],jjڽ@W rגK/>=}:{Zy)=> .R4`haU 1ݻzmL:|pw}W'm m}ԏK'a%.X7g6s;~}m, ;oF~{GNMv=#4iM?êWnvO.h{52Юן| X~3lw܅}g9yI}WKYMw5;oaC.2ٰPѤgwBhݟ5‹޾o?2ǥ ܱsU祘BJY9zpwmϯ19Ǫ ⿤{&rJqˬ.\]Q4uNj ~{~S ǗIF̝>6q`ɬ9~0.͏iXR8Qc >CGNlelܶX [{i1t#(~t_zu]./|<ڳyN/|mɆá7\uƤl24oM_ԫz8r׬{MFWLɩ}gf9`Mε^g?/IY1vhS3@|c?Kq1_=Qus=&]n-sGF>׋W]@dWzUӠ+z)mw5"7qn~huAX格~֝Ț! rMVm7^֫([켽ϩ7OCy]IY䠸l?wVָ2 eϙF;Xj峟]K^pϯ:gdȆ-GַU /MX~1}YL(t?lظU+V>n.;IG@5o<0}x!r'xͅ3g3o)C; UXx6入m_Iς sjX s;-|h1?}⤆^_O>. '/=smSwO9Ww}teZ-m/wA}_u~~ ѯz~~0oʟ#s)^xnQ&wœW9zvY1y<M JɨsuZ n?[VOX]=\r-{cpYwrtlsk+|x9O镍.ښͲ\sϿ|\5&w3Rpj׉?d_.n(.E֯ywO/{_ܱξqs[0]㮻eЭ{DדnGM4̓}&e݆@.JFC&lYnMvW՚}{mYܲS ^SVlنU󂮝 :is4Q~ CvN/˘eq^{啓3K`iW =PeW!g_Nv rAo:kR.>v/6%k]>Րn1Ch,hli 4 s>dz`s#f;)q)rYCN?(N=שg dxTu]WLZ@)sś;ys@ {gz2Ws6\؅R׬]V1z`_/6ϱ , l_b[o`w=}6Ja-??=:]-퀙='ݚ}Ƹ\5?홗\aǖeu o6Rݫy✼/b^1pүtԾ:\@S⯳`Vۯe}OH=h~9 "{[͹G5ܗk~ӧ!C'4nYF:lDߎ̆o/Yc՚fѐqËذP0tV;dQx ;MWE5o^z&}_2rhGuVnصN7y->;~͖*S9h@:glXmOshi #*eQ Ũ۳hЕ߷ﱯV{n' .8p%!ہ %!| P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI!P\B#%!8BqI! ~-"3!!KrcֶCXl-%)=AqI^iPJA>#bRn%$`JDJ) 8J+u20b)1fJC t2_.wb/fkMqiN{nRh %9RV8 !ul(I`z @`I8,0@&!ׅ|f߅'&P\ Bø"l@&d p! !QHt.c& Ď(e~#z MrQ\ePZdYT|Ҡ)ItsC ]RF8Xy$ J@hMpC@ ( eU@pa;W.4s}^lRhBCQ9QYP@ ==ك .0eJP6le }PTb2}pfA%/d5ɉCqIKJQ)B* χ|ăveF B=h>$#*4O *n&L$uxP\KBp!4۵j `@ JL6=pJ ͠$1$aQ^ 5دQ,E)1IQ\JBTD]$)zPZbJ LúF]2>1foSb$foAx1!GQYɍm؅hJٮuhaIl7cPZ sҤL1}Zfn7kYcA4]PBbz A}JC=E] n=X ԕIڏ⒴CJVrc&R]bnQYӋ6esPD\" A)@I:82+x樶7~&OUrԠ"(JF+I%L۫APAtGj3X-m %&Z=+yDlENWx(Tl%d|u#h W)֥ E*_"ٴCA7_:)YAOI PDe&0t9&~ӟ%$$ sJyLpF?(552)(屃%&%:B^Vl3II894L>JNUDϦLAŦKD9 =мTȢ BBlAsi LK{3|ER &! JfmDPtY Ĥww£%F^SnCHZ$Ї 1eK+iaBfh؎gEOBtAٴAUdH DDEQ&Q\VGԨ .Ӓ/,CTJNڨ1SL>/bXwclO(LYIZCqIҰZr+zd k%(1>cpHw=D FԈ! $@DUQTv~粒,i- K(<3ƨ⒤gVS$tć[ 8cү!Cփ<6a i -u3 W*̂,ťz4ٌz\QJK*F!/FP&HrKwiR"P0B`@LxGipmC!#+38iq%D2[!CV IPIBqIҰk5P: DF@$TB&˪UO J6>Pscd&!0A&i %I*-Ӏ9IŅJ@)`$%(LtkhWMO J)ʪy0%1m{<5(@ebK6a ({p>s-GqI\!'C = ݋b1QQ=~9Oփy @av/b A 醀$@kAC<&EBк$-K~"!ߍ9ŚCr=h/E%"<\[M]}-F}$Ib.QDg䡕IEs!~#h &M\~d !1!z߫5bvsdFk;iJA\Zӆ+c>I[51iLJ(I$-ИT w6hĦ[6zTQDcfW+p!nr<+ugA~/6O&f##,w{i\HC348N1NR5Ed=iXֲNcJɤT 鶷F8ƒ^&"w˛=&eeǥv-bת>"F\ hnz"F-l mVz2L p\2$iQ\$\TH JYP6Y높ܧ)cW"+s<w KL}PER%niQ V&0䈆}Pc%R=$4[.r *)-lSt6F_""S5(6 .LKt$47;4{J@00)+IZP$ JlELii6A@*M>7&(vUO? $Q\fJJʦJP&ixeMG(m6e;̶/6U [\ eP/VqDdIC>F%Iϭ 0lwPZUDau 6\(LW0nf&.V K, ΃A" P8I⒤ %SLj'ס*S8"-)!KM`LUl^;=]PZRrUG#$= A21g뤌ۇ˓].% xLOy@4ڲ~f] Gt`%4]cq3j"pi  ͦK$8 * .U`JL;$(^(|aEJ#1HRhLQݬ ocGu)%jx2yPJPZ4 )`%QcrqC*`vn9V{U;;j6pN7LOvf(bҭ&zs#&WΚ"IL-JLizwRrjK$f4RC24E&OYdFz7BZk7)emc$1RrQ7Bob%Ļ2[%&#i_j$EW$!Rޘ鍐t=O233&Jt7Dnhu}۫0t,V L$*%b"C a˦dͻ/L@ CP\TMe{*%2%( R~Sa0ieSS!p̨>%ZM8t]dMgw,(T]VP\fI ejPg( [fg 0e\k Ūe+)K)2l)gu|wnQJzP Ĩs8;$I04?W$ȨeIEDP&B*SSY˦I?,Y!4±Бj=L{2X P&8渙A]h}5Aim d+FN$ T,3LR`~ߨym it̒ԁ(2MjzCXyTKQ5T)cH)tCXJC3v@BduCW—I!>c]]n 3QO|'s'z}5ɦvPɄYPB%4Fb`|:k]Z&7TMf@Ae5#_;i~Fn12~JA)8@Pd%&;9?$I:. jzPAxӭ" L(ea e &$A\Lr4 - r=yBbǂRB&Bƽ⚂DqIR̉y<,(DBUVbBrZ Sέ~ɘ( J밪ד] Li%u\ "TJ*!I`)(+ YT0C̱y7;DOI (d^PZzfeZ(mC1`'5reedH%"S ?uQy,"c1A `ZߵqIIRPuIR٫KRdV01OMO쥜-OUܶUQ&PW =.%ePm@tw|K%i-ZaY  +5M WևA!dkAimѹ؃eB/d xh~[P!dh`S%$%Ie.E13hTQ6 Sd j%(ă2Q KskÍ!nrܣP[11Mi2e+(\mgЍ\(F%i%Ib/0=uL@ߪۖwh=(&[)7#5 )0TV(\6L=qjd%]!N$ǖ-TK%!nLRޮ?N DEipH48ʔ(+3đ]Mx]h+eՊAi=6A)j%l3!b0g,QVFqI'%1ΰ^ V.LQNLPZیă(ne%B4O=Z\6xJV%q*1qݞd1fFOͨ6s&B"Í~72vA)ϓ:a{9n6ԻfYII$21me|Ea#zWae!}nF3]P&JT3AJEyPA&0kFWTd hn]HYIڅ⒴O5&SeVe*J_] 3K 34dR:vN#* `͌ *0 ѝh}'WRVAqI MZĥ(bhTj]U QGE.΃jBB=@J @1"jSI+$2ʹר,Q׸`HicR@Cj LZ*HL @ " 1qCs(fP@UUPV@qI:~QDi.ɍI֠Z [ _@iՕ51Gx-YEz ,|R(hZbQN{R#e%9ػ2 qnEQ8s+19BιƹOD#!!Dy`3޻&NH$$^zֶZZ^Z[ZkYz!(r{gwfB&HO7ΆdKP2D9*b 12 L&..s͡FjĮCzz,he1މm/Fu'%|Q}weQd9],(ZgI]z+ yWYQ/K }'ƾ8fwj|A%6 clG;~t&ߟ#0pKOG7u]M3c_yL+O><1 Kll(KsF㧖k;gX}5?9ɘlCU%xUuhoMIP0q]9q5I ;}!aqʉq~>&Rڸdx`8%/ڰKm]QK$;gj ٶ55]c/XSx5RglNԳsϪG9sB)C\GH"aB GC.HW#шFU oWmWTYMWR* 7gؾ]D̜7O>it3r`۶ݎ s&7mI>=S5mf3ٸs[Y^TXśfe{~st:/`b75-і/ 1l5c.X\дmMiim̱#B5vra vB|@.cϪMu"j_ p\rCݏ+V/ "j^l3I]4v-OY^_F-.4WmHi96S1ah{Ö-dzw~HvykwR$"R[kZC6FDjwu Ms:w:q)wsOuyOmxWXQuSz{+׼]eOM-NDbӱK8WÔ1yΐ='(+j0ݳ %͙1\\2zA\fFC ٮ{g՝+mfD[ &۪v5G&TmZ^s&+'ۈ#Ñ\U<ky잝zgu\9%%.cbʽ~פ19Վ[wqǰwtf41ɌV!ãΠֺk]WWGXi߳.sLjiSUIWIК{wzf̚YT"bwyTOluwc%;9s(%}doos=dzrGU*1&k'e% _J× Ӧ65卥Wڴ9 ϛ[4td"5EHF'OxGfhhl~ጆ\Qs"cU)9Y-w$ j荒=yxK]imLsǎʄ:*FLVRE)9Ys'.v3"8S11=wSe-pTaFM5NcڸR>!2f"ND{ƝZ̢$FDlez7b1>=UU%~b-Pkd!ݚ:jEZEWUl110r5â GLvqG+R}* Hr:嚮 #]f j%FtjM>9)PWY~()//Kl2exA2`1]ә F|\dDD"3,6wyHɅKHo۱r!Ʈ:[RСC[:;=Ӧ䩩 Aѝ[r^qK"J\Qgۚ}&wf‚ Dڦnj۝fs%Yp01Pڎ&{muC]]ND̞?=p`a/ t""Ea%VBގ}MX ҵ =ǟ`np;_|'Dٳɫ=|eL>&QK8xe[L9ي9S|"R^Zr/I?e~ [Ep|0ߞiy&-C˞oBso+w͛_'' A!Ν_&nQkFnx\H7/}ek_KΧ\otX1@m_}Qk5yk szv,uh'Xt?=9"Axwv\&U,ωxJ,+ݤpXEMjզ?p[W̖/YUDr\|J>vu}-g`[U7ic75a挡C_^A"-AR8FVcwyMavۊ ?Y-iy];g |׵0!}KvlNzCX[GHjW䕥gvjTi43D(~fJ .an:f>iۻ\&"8}k~uiZϢzl%νWSVFz ȣK<'?i$5'Z0I05m?p>`xh%ֹE4eqFĵKIWDD )GoM7}3x7WyȋҔbIe*Lji fncbxnsbo?WvO,{V[%vab"QGmN.O]~w{/錈vc8'v:}}pӢwj6DV`Va,G5կiceKzg޷f.;N|C%6EE5F|΋-N0eXqt]5}&,˓57DoѐB_IDM|6HY}eT$"͝׮ ^ykAMٱu=jK^. {Kod%iDƋKsR8E|Z,^qolDHԮJ3W3rxw2=b)$ɤ$'sJfcIN&aj֠D?ҭ)D`D|D'؍';ӹd @{~=ԘHŶs>}|'q7N]!p{9.jb]6juVUpE"#Gn3VD"|jS;uD[W<+#/M=+ҫ-I'ptn$bypq},3kDDXƺx{C6D(H&Ԍ)`t:gv9G;21q=A`y*!jmXOsۼ(HuU6S+kzcqucɖͣmkoWv#:%d޲ïnU\OOa~tK>pT4"&K7-t\[bJ-medIj ,t3t)fI2Qǎk6x| =.yTQ ٞeOjEL}VxIcPC͗f bolWy "X- 3-ŗ3$" "x8?ODzW}w/t5_NxC.ܡuWH;m ~o^mĒ͔hbN|hd!lP__e{ۜq2_by=$!+ܒuB6ޫS`! H=iZ8FsUU+ ,]%IbɲlXDQ8e( B1"bLYs9D"XV:#g@ EQNXy99TP(c[=cL$EQB`?O.5M BqL$b(4mo'pw[]ɨ(`O.`D"=~?cj pZaq{&~r*r pZa:أ7Kp'f&pv\g+%IP҈xjy8݄6^e6יkwܙN"һlXwcG&b5 ,95oJbo-C #<uNpeN(J21QF+a!0d>ʸ. $6$d\);VQv^3*#-:QCoZ\2fB.T9eOm榤Y{jw6FN:6bܩ (MHtTD'OIv݂V\ε7أ✈Y Kn,β3'$ߎAfm& Ͳ\?Q(tO*K8s0?ڞ|jbKkqkDayHw钲F8R 8 2/5,yËSL8`ۮhбC8m%![b.0FzWሜ7bl b85H3u hrRzIxyN!N%&'p{GXr%f&lV ;+TC.bqc>UmcJRw8 e \O$KIX89?Oq ZxO >`vyX,x8#dX[KI,i= "4b`vy:bY,ɤ*s,%]OHE&b8&"v` #"j6E1N~W$"Ic$E"43't]=dY6L$Y+)rID( {&6NؖcLܪ\c,gTCKCKCKCKCKCKCKCKCKCKCKCKCD0":=C}N'y-%k%%",;lO]U-!0 ݡko&žclR"c__Z8 ؼײzeb}ۿ|q%!% yG=~#,'-%_+ľ=Fl_e8VWW;8cc{{-stxIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/fig/select_disk.png0000644000175000017500000357616314122570751031625 0ustar ephraimephraimPNG  IHDR);/ pHYs+ IDATxh|NYӣ IDAT ɱE IDAT )@ ۑ #2*<J3q!+ۚ IDAT,P-Q :3F=)`َ -L " (F؎ޣ +Q$@!: $E    +  IDATh| ,Q 4 +%D  &$6  "  &  +C  %BNiBNi  3 # ,?  IDATBNiBNiBNi   !2 #2 BNiBNiת!25#N 1!F>)Wܼ*BNiBNi߻"0 F!/׳ 'BNiBNi   <'N BNi2 IDATBNi **6 BNiBNiBNi   & BNiBNi %0  BNiBNi$*BNiBNi " y IDATBNiBNiBNi*8%% ) )$ ~q"MBw_eS?e)!(^V?   [5 IDAT  h|,Z888NNN___***Md IDAT % IDATs[ IDATkr IDATh|(&= IDAT]g|  n0.)lwVN?hdX%# )(#yp\EB;@;1,*%-,'+)$0.)r{%!~jt aYH]YOPH:DA;ckrjWLH@=:3,*%v%!~-+& f`T|-(xQ[s\TDb^Syo/-(@=653.53.߀%$ JE:UN?  *(#|g30+v}LG:<:43.$WRE{mSPGXTI24 IDATGSlmdR971NKBNJB`kOLB \WK?<5960pgTNKCtjY#!vb><5WTK|,'xKH?x?9-/-( ohW~*(# ulY! EC;#"_[Qv}HB4fbV0.(lwVN?hdXw&$ b]Q;94<7|k! (&"1,"uo`/-(>:3y($+("75.^ZLnxsovhrg_NWSIrjVpj\ni\ IDAT%$ vb /-(\VH+)%/-(41,UPCa\Pd^QkbP|KD6GD>}kluvpajtIF>LE7 OLCWSH-,'-,'&$ nv<7+COilcQpOLBA>6 31,*($=:2ijt\TDb^S/,'(&"`ZKuoa:4) 42,><5lgY~)%31,~IB5*($=;3(&"yd-(UQEe]L jKH@JG?a]R{uf ]f{ ohry~o/-(<933-(xcnNKC<931/)(&"\WI960 vowZTEROF)%  WP@=93c[J1.)Gpgf IDAT41,<933*($ 4/&95,EB; $"-)# *)$*)$<6*41,BNi fqijte\KYVL~i0.);80 /-(.,' h|mdRQNELXr$ rl\SL=#"vb/-' $"64.~1,"-(53- (&"IE=><5"YUJRK<VQH<933w&$ XRE ~BNi-("!JC6kfY  skdSIE>&$ }r IDAT B>7 !! ssWO@?=5UQH j31-@=6/-'a]R{SK=&$ |uc %${te*)$ =:3(&"e\K^XJ{f31,{l(&" w&$ vb/-(" C?8^g~1-$`[LB?8""1,"XUK<92,' wo_/-(  *)$ smdRQNEjbP/,%!XSH$#x  &"30* MF8DA9`XHSOE  lfV ><5><5GX IDAT  TQG"!1/) N# IDATa IDATh|y IDAT  A} 94*mh[{rֹԮUQGo۷` IDAT$@$? IDAT5\ ?n>o ;g  l  @r~ wyC4\ 8dĖ '%Qxb/*ɟȟs9F"5Bo IDAT>B^ZYC6*lUB F8, 5) .% F8, $cN=-"6,">0%/& 4)  S  TB3 XE6TB3  ]I9%hR?hR?Q?0 ' VD44) e\-Ta   @3(P>0[H9"9-$  @3'9.% SB2  +!I%%' :-# 3*! NB!3$7,"D6* R@2) TB3N=/  L;. VV IDAT    "(  %D qTf2TD !.#'(7-$ *"'" .& A4*+#  6,#3( ?3'>1' a/ma/+"  #F8,#=1&        ^K; WF7  B5*:.$(h1k3&"  eP>"(Q?2 ?3(4*!$ !#)!( 2(##*"*"^K;4*! D7*-%AF"?")  &"   ;.$>2'9.$1'  ;.$>2'3) TA2C4(Sl3n4RR  daM< !iSA '5+" SB46,#?3( $%.%= IDAT?2( QA3[H9D a.'R *J1 ֬dL=0A4(7-# 7_%  Ž")!"=  %BA4) cO='.3a IDATh|     # u sO[amy I...///\ / IDAT .[&&%%# " U7 K.( j IDAT IDATǜN IDATh|]ϟe IDAT^ IDAT5d IDAT: IDATh| 0  )&! '%$   IDAT#     &$ࣺ IDAT %)& ,,* +   84-!C$ IDAT ! *++.%  (v*. IDATh|$@ڽC6*7+!$ F8, 5) .% F8, $cN=-"6,">0%/& 4)  H8+0&TB3 XE6TB3  ]I9%hR?hR?Q?0 ' VD44)    @3(P>0[H9"9-$  @3'@3(  SB2  +!I%%' :-# 3*! 0{ IDAT$7,"D6* R@2) TB3N=/  L;.      "(  %!.#'(7-$ *"'" .& A4*+#  6,#3( ?3'>1' +"  #F8,#=1& C4(       ^K; WF7  B5*:.$"  eP>"(Q?2 ?3(4*!$ 8+!$!#)!( 2(##*"*"^K;4*! D7*-%")  &"   IDAT ;.$>2'9.$1'  ;.$>2'3) TA2C4(ۺ(QaM< !iSA '5+" SB46,#?3( $%.%?2( gQ?[H9ۺ (QL=0A4(7-#&  ")! 0  W^% IDAT     <)s IDAT %      h|"     SWK IDATn IDAT0 IDAT| IDATh|HS~ IDATN IDAT U<` IDAT  0  $" '$F IDAT$    h|$! ?:2B~ IDAT #! %,, .+%* +40)/,&c7 IDAT    &$ !  *+ +.%  (\ IDAT      $@ڽC6*/$1(  F8, 5) .% F8, $cN=-"6,">0%/& 4)  H9,;.$TB3 XE6TB3  ]I9%hR?hR?Q?0 ' VD44)    @3(P>0[H9": IDAT9-$  @3',#,# SB2  +!I%%' :-# 3*! $7,"D6* R@2) TB3N=/  L;. !    "(  %!.#'(7-$ *"'" .& A4*+#  6,#3( 2& ?3'>1' +"  #F8,#=1& hR@4*"       ^K; WF7  B5*:.$h|"  eP>"(Q?2 ?3(4*!$ $4*"!#)!( 2(##*"*"^K;4*! D7*-%\r IDAT')  .%)!&B5* *" *"  & ;.$ G8-)!9.$5)  ;.$ G8-E7+.%7+!% TA2 C4(ۺ(QaM< !iSA '5+" SB46,#?3( $%.%?2( ) 4+![H9ۺ (QL=0A4(7-#&  ")! 0%k?7 IDAT       [ IDAT %      "    D IDAT h|h'z IDAT>p5 IDATp IDAT IDATl IDATh| IDAT٬k IDAT IDATir IDATh|&j' IDAT% IDATB IDAT:v IDATh|yz.J IDAT@F IDATG; IDATqm IDATh|ӽ IDAT^w IDAT@ IDAT'%84,mw74,h`P YUni\\XN><5mepJC6toapgTNKCh IDAT)(!*'"74,ZSCd_Ts{+)%qiW42) ku`\PA?7d^M0-( !y }KG>BNimw=:3mh[&%!C=0upboyh|~epGA4QMD[SC?<4*(#i ($ PI;[WL`k0.'EB; Yd}<933~{*($fpZWL }tF?2xse\YMmdRCA:b|vg!?<6 62-)(# v}jv1,"ue^N971Yd}}h53-1.&(&" l&$ NZt YSD  { +(#jt<6*  IDAT@=6 %$ f`R20+ |s` wFRl1,"'%UOCQ[t?9-yj?9-WSI -(4/%75/73*SNDke{20,84,w*("63+{ ?:/.+%&%!\WLnx/-'EQkva tna/+$]ZO  "qjZUOC63+ $!83(lfY "!tlZ'% #"h`Pd\K  '#  ?90]ZN HE< d_Td_T2] IDATfe IDATh|> IDAT:< IDAT@" IDAT*p IDATh|5PƳ IDATG> IDATikp IDATS IDATh|ea IDAT_ IDAT @\/)~`2@ к IDATY <" R w b5 C?b )DZ IDAT'$$$LMh|@=5{ sd[I@=4{V IDATl,sE5lo22 c">'73)@=5v` ogTg$Qsi$ h/oU/A=91>;2'% uS I3M&Y74!A`j\h{q[ col(X#Oyf Y_;v< uA~g#"{dxoY,)$rQ&hj?oC:  #}0z IDAT83' QMBGC6 p`l8;`6 N&H*@(c;NG9 .+& jG@ mmc+TM? 96.IB4Ru?K#O/a~$"|:70]ivW[YqhU3/'<6) '$ h "X  wd3C   C!`/0i' IDAT", IDAT!| IDAT IDATh| M l.   r0  J= IDATM L  l.Ll.     Nsx IDATM- IDAT)IDAT % HLIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/fig/success.png0000644000175000017500000003570514122570751030771 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|[9jvıwH l @iHPf)@Zhii el MJ)a8[t9WWƉ-[}jmŖ9wND@VTT=r P\(A. JK%%@G)|k@QHR) !vU$9eʄf;&&ObM>ZSnU6$!H?heUEʛosxy:b|OVlSަIi& :+'u/8捴x3Mb2brs﷿XVW2 S4>e +V7LCP%V}]˷46;|ÎB& aȞ[Sɦ]_y9T!0c8lxaW˶2C!Hrw.=5dҐ#rRF0)dRv~ۛޱaB@12 F圴|ӖlA3942gj 2#U]̥COI 3iLiKKrߑɭi,3 rh-C2'{rC f]euNS K)Y$s6s U-$H\$%U'95dzUs|ysK5^)U ɛ2B+ֹi`ceCY;bj]̥?qC)`nLreʬRF"#hB&m-!;"7TJ9|Q׽lu-1蜣JM5!$g%@W|ٽ<>nf^oWwBp̠yA''3hB+- Aɘs9)Zjdw)m8ːEu{,f[Ih+05/^ʤeLuhFҐδe[-ѹ+7maM-~C4ts*:3&.o ֑PM-\k 5WIO~xuUҐIG n QP(Ik%uyۥaMA !T$#f c J6di(Tߣ}l.$!H 2 A$>fГd!U6쪬ՈP ~w4wV+?4M24 ظLKd妏rN"2/|ٖ1+)}3h%cX.2h@ȟΝ:t"&%I)3l=h`e5%(}U1˒~"2$e[;=5*-/'feI1Yaaa~~~ڔ)Sd+Vgv(wS̢"`Z=sa͛ݾz{+߹9oVοue hllsW^9vRj+Q$"2 CH@ `#N `0&#n2dBfaDdn'k ;l@ f#0]W건4ZYdsAjnn&@ɨ1$"]'M⢋ 46D`}9HD^"rȋHM#[SX>4 TU56{dC3D/hpb. aÆoGN4zc̘1]{.3wƍc|0clܸqw}wמ /N=ztKK;=@_\:. p%%@ r P\(A. JK%%@ r P\(A. JKh'Ȭ+۸i{I 6 )ǩ߹vmm5A"TWϗc-~?ݯ5ڐu_=nxcP6o?_[ۼϸɺϟ6-{wQ?l ny?MY彿775}]jlXμfFwGr DE+Z>=hw Pt{aҢ $"tEfbbOV[6 Z^bz-m.Fd#?3}[?R~H6|pY@+ܼbuwW7oo޻zNVC^.˥B<XO_v9/ns 9s:i_i<״m_nӜyƜˣraHaq]S{mSHP%/WNF ߼xk/w$k U+ߝt ?av랊s7NIƬogkIӯ#IDcv \|E閹^|pYљdYz;5N""\j7wc-H ""bI_qDwȦ _I쒹|U/Xm>,[Ϗ++crio C#9aӲb& vkPZE)iʼ9}P֮{vX-.0HTS>J0kD%1{mhqb)ƍmW#[xU$gƀTND$:kiYʡ?=Y]j|Ǯ=_𖫎TYzm?zpN?4S%D-7v/v1^&a7^.9,_s4;SuAGMOT]_$ɚ;I9inE5p;1<]G8,殻]vlτ0ڳ KK޻M^u{(W`g青jiɦM>̪*ǰ믝:2oZ&zAY=r˿VM} &ȁJfSCdi C-I \B{̙]'=+wP3Cv"b!?؅4;|Z΅􍹒HԭYOg졎6zsų<8olk{uUgkQyll+Jr1e+_ƍt, ɲ<2 bAr f}1!ao[u_կms9mVTxagEarrc#F>!G#`*Z6|S 닿Y]񫩹3Oq M(7yeTU H嘠?B.› 0qQpCDŽ>5 æ~:}Yg]y=6U[o5Yʨl]#L"93FL8vK<ܣK6= ˖G3E\#r8{||ٴ[RLJuѹc:lwU;w$s>wrxu ,,ٲ`UE9W{f\:܋O?bxnJϬe˿>R?NCˍY[O}pz=tSʕk oz,4l郓\'MG}䣏\NF?'-L+/:>u/awFO?+e%Y[m!pه{Xaaa~~~}KuƠIC|;0NPaG-yv+eǫzy >[לsGYMDb؈x׳=hq<^=NϹ`1\BwEC)}Q֫UTWO9?g\$L ޴65,gaI{lw IhB!EV E!xj8̹qJTQQvR;Pؖk66|OD}ZS9;g/8V-M8 }GR}[ɬ'4ۖ5֜eՇ(L0UĐ fɃxMf#/x່Ic"Hمw/(IN-nۭ9 *K؏C"ؖ2jQ{ f#q06ezZۍcK>mYg*2 ؔ Kث4d豭}Kmmݷm)$(&bm+Mi>_U._U/~vo8dİZ)xR?Ȃ2.˻5Zx(. )^dWΎyv*gaoK(J"!m[SK$sqrB1a 1dP|Gؽpk4|[P%at\BvRT k^mjrBJ!l `1wԴ~eASGy1סe}o$0xfۃBʸ7!SjaM0`Br D7Y }Pи>mSO b$I! Y}D[r3?I?9ŖB$8cX#$IA]o7?,{0R2"WD%1&$y?L䩥e^$I2%w,e#R+hJ䩥hh^ƙKL0r D iR4w]9HcZ\&֩% ߪ%F}ZumccEO>C}Z˪3n3_ Ƅ Y~OLn=#gO|~P'w~hÃ8*?3B "Hde!+BLr}̫y_KsMMօnuyBDQ Ƙ$a.fJ:Rp= dMEbB2v'82AXL!T}yh{$ϕYՒ}u_T4Y+\n=!Z] Bjv[sAK}hK]8ok* e:҄dޞ\&2&IH7#St' _Y72D֞d;^\<7V@w CĪuԒON??X;?f~[bq$(Jpeb᫓ )Uuީy٘L̦Tg9HQ}en)(+'1_淛qQ^ axB.N!u&%Qˣ'q-S65mm-ˆ4ĿsB(dt/)r1)R,i);r9;1ع%]7lv\(3)83B%ecKN삜33O"yӞ;_p{Suk]_e(W )YσD-r FCsyŠnοz{wpWޟA#ٱHѓ:_g4^;Z*{bWLU:UT2:+\&kӛ}f s~uFSoua;HѓfC#-"xs߶42l1)mD4 r"" "٥;su9F+;?#y c;54gm|le;ħY~Ǥ2!ǚZ1R4raղ OpC.6ND6?>I:/IasYݣC6b\Jy@.R#)˚?NJޙ4jՀ_SoW΃sbyq):CM%kIDAT>tYDZ# -ݿ5?ݿiL{toI>;~KO8W|v.>q)q\&*ƢtpgL.c^jjCe-fwXg_>pz`N'>+;8gՋS3.mi6,|5 R ts5oK>wxd ٨uZDeC.GZ)M)I$yk\Ĥ;[$F۬m#.CKN0% IFBp]aa+um8dC5[tnzd%iqMZ!ňqƈF\J&ҚZD\cȰ% Uԛ\1l͚`n'LBr D|.%iH2)z#N7 w*ƣхY 6ۣ7H?Ժ ,%E䜸Qk.D99]'w6"?nߘ;diVZ/#{x"bVB%cՁ#IIi$$R';6%eH΂Ffy琁NuN8Gz q-r%`vKhqƭe8IfJIבC^Q>FᕹYd:uf#t;t[G&KL--K6DJ$\ȼjЀSfV4ŗr\9k#kߎn'j=rc@Jh1S}ЙmZI2|롑k^Q]g}I0;efV&[s[d{Z_ -u$#s1N\rN4ߑ>܊+ (IcgfLlF\s# v[h+5;%5䌇ߎL7gKfH.N='˷FoG3YN<Ûs:uaCѕ8٘f3-eX \žE/cL^N* +'L /cgegx?nlA$cZk4.޷wp=lJjW1DuiFVj43I;%{r"h, ,ilȘI✚ʰ,1JP\~^@XF" pkk IC#ndIBcܔ`Lr9%O9FC-fi0BoFSLIDNy5xrh н:/gXg.ZJx%wl*mͭCIo $zG8#>F2¯fM0ud4iH$a$+IB IX$k"oIR9 cYW ⑍m_7TGV*cD8!*zYbCٹq M]LR& IRp1[/iXty_b,\mL*#k6/xڼctN8@MœKY ᶭ4i)H$L&ZIыwfm%pEfIE7V]cc%8LL"Θlq-RX`aa0I O0L5-d2M)Ic$32|cՃw,۾F#.C.+M32lju=v&θ)[wRn$I&d᭦mbZYqi5 -TB7!Em$Ic$R $# SpDJvlLD/~X߶}im1>sLR"*@(Kd3&9cL\H)H)㒑k[Kp#Whq5+nkYGCITB!)I2$g$G݂ I$(gzfx<$)mwu%* \B̴&#&Y˔2M)%$#i'֥ڭbFKDGwf襃c0#onD(!Kߢ .hvpxzk$nFv״{k=i%zDkZ[x:2rȸN3tFgf\2g*Hl%v 1)eoWtJOx="c{^\Bi6:$&zA=r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(=aF]]] B)eG18vt&''z?lKuuu՚1v;A!i Ɍx*U.uuu. es4P(џٯRWWWWWxJ84XK,Q]]r= "r:555a{ 1555svcMMMfffgvS8@ ޣӗP(\)P(QLS8Bx"fO_O'pБ [>Kʪ<Ekj١r qüi-onTHn*vX Ʉ$Y_C߻wxƱaZOf3S9?d/{ >Rz r Ltygr̸uyrYms[]VqY>spO96zK 4!d˛n>[WM/97"crkKE;óS>柝w#gIjM7wў;}{ǻN]׵N:%yv\B/⩓gLDߟ?;'n_""b)?|Q /J&=@?R#'MqyެLI!>s>~kMc _T09ߨ>sGޛ[oHM A*'wuf~Y ea8.z6'=̍?H'㷟& Fn['aî .#$ġ4ăle HvvӴN1 5q l^<^}?=㰁E+ʃ>tH\%ā޼lQdnA@rg{۫^y ,;U~swyG_Rpφ1%C5[xϋ'v0cD2|lipjؾGȣG=Gݶs`{ۿ/WRYeŒz r 'g_ZF=n-mCB>DDĒ4Q~ry#ɓ$kwy/O|ԟЀ#0VXXaM<?ȨX}uaɶv+&qgjzW'zr  /Erga}]SSӨQ=(**?s[z椣-6OIڼ=ھB_1֟ !˾f!}fg1nۛ5  0nwG3gv3W)|H\\.ן^|>@b,9>0ӉU9@|>_z9K"r:)))כ#=. BXkTtv*_咈ni) :1l.8NAX%9t:rh%@ﰊif뗫~K"l_/@O@. JK%%@ r P\(A. JK%%yE" [ZB!"rl^/ zzQ 3@@.G46[KyzrA%7fM6 C{{7c+G JKmc|TC&}xN5z Xaaa~~~ЧaP\(A. JK%%@ r P\(A. Jt"***0#u{IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/fig/boot_making.png0000644000175000017500000005301214122570751031601 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|s{*eL".D-*.TTA\PA@޻PZZi&w|߯0\bKKK!_ ZzzpB  %!hBqI!P\B& %!hBqI!P\B&ysW-FsEኢ@±owԩuˈq=!k<ޓ?S+,eEZ5~"wK1=54a \|/G!6Ə,qbN-,ʐdIRкQAm:7` >AB..S~p6%$s( Z H.NIQjʵXkaT6NBWL{[wa~IZi(R}\v4kglV8gmRHr6!\llor|NoRosl-6Ze+z>VúD&IEaa+v !bg\nOTQhJQ}SswxL2l 5YX$HE rQ3.=t>MeER2[eSWz*'Ș-I}3 5kcP\BdBi+KΙUgDJ6UjU G7`![v !䢪g\f,UKΗsҴ;ퟶqD~oC(c~YvwW(5 !Wze|"ˊ"+Jwb ?C6LJ eŲD&J9!TےNHdq<{WoP&fVxTF -eЉޒ"yJT]R_W-"e}[}ϼ۵;TElըU( 6=adOTOqvk-﵉#ߛ^*#eE=ͻ$(11?+qNqJ YjZvB4 Ti ?Y:+&$KRvJ!ZTKJԿ1.A W蟇Oj!'J'ze9T YAA,B4r$fCe%lH Y̌LEP8V78,QVdGdw qO]^J;.+e( Iġ(GbC;5p@~YV~i^C1!n ij8.n_.ե,CR IgpOxLH 'mc[j}%\V.W9Rqi(fkEwLVC98ꑎ wN:|z{vQ(!hT-*1*Hp CVÌܴWј8!䢩1$1YZZZ||>SNx;vQx>NqI!uKOO?s,$O,S3;b%4F|^B.:WgR;kq .ޞ I.>~QfY$Hxzl6[,cB$+.*$ICgZB<, +]}QUY+*d 3-:D!B.zƥhZYl2Yx]n)НW K!ƥ$)fsA~IY}e&T@!Sϸlڴo7-^HLLkB堞/Ӳ1c,99W^kB堞u]ײeJ{xxDFF!rPϸDZ@rBфB4$M(. !DKBфB4$M(. !DKBфB4$M(. !DKBфB4$M(. !DKrQHv*s{\QaUOI׺~%r[9q[bNlOX| Wzc>`%3{iB쯳2iZ6S>=jr &~v':8S 6s}Kn)mSӧCոo)SM*QNeT3ШH_A2cڬ792'Tv.i ЫxVh;O %q<{rɓ_3{-WJbxqziE\.\ ԛ2 _BXiRS"+4ļ5eV!_>^~}(jhP\;!zOG|/Z;k}O-z0l_nofVͮuY {Ͼb6ٹ(~̔GG'0{f?F|ЪQ)٣٭5UFxS0%%iPܚmR wVxC;B>|;_c{C51j܇oغKgdQ]o b{&ؤZk6ԑ-P\%\n09zݔOFu4̳ٝ,壋?9xsz0FHВߜ%> -)^={ uߦ4kPBrX/VBp7$Ri-׷uJKƿ 6"~]]j,DDuQfUZFx?_34"HPwo0t7i 'mMorn V9 %N*/*0ʢO`~=,;5\UKX.`%o듦qm׻6Y-Ӣtqa)rE6`a)x^{ז7k-ֹ}^ν}A)e+<1;5%vzT$ 4$!Mv5n}tgdͼԚ?7.^JIHvlhђ])=<}ҫI׵`!@A1N?Y`@MAj'ק ywϻz|poL2-߳DR_N6nlu/z>㝐%i`Lhc%SN;/Yc>ϐɯ]%[f⊙ӗ5ߐ g ?rDk?o7/͝<b#)Ow?wz۵/p/ISn̖d\QV@{bTFm/-th[)-eY'K=p}͘Ϗ&_ޑ{&7 :4]ۼrWew|:tm3C@8|;som |[& XL<dGu-ܚ{`_"&tl{M6MB|~sgxƶ?,evޞ@YIKKKԻABS9 >uK#  b@4m hA` `rTo \(BΈ:-ki6u<:U]ѱ=zujd J7Ʌ/n#+9DZ#ci7ǀa4oiJ MrS\(<,Y?/KjF!$̱7P\NO\X*/n<0b4>X*6IC$ ݝgυZ6nЗ-u: OqS M0(.Rs5g{ͪbWA]ccP\fŘsUdUS]< Զ9!u$(*O¤etcC$晩Wcz:u߷:2tZba5+!|CLa1VF9lW]odߺ9Ҷ#9;N΁X0s*~0P븪$ZEknK-W՛F<ǟ$hʂ|LxrpfZ=1jVZ7gUr1`NL0ND3KqBI04jCZ>j*05Ae,Cbb`Rxf+id0@}aOlKG`JLrhԍۻ,yoRwXQe(Kuou;#@.Pɣ}nt$uqRGkRqlT"«LjIzT:y=P5_GwJLR7Kr6Y3 b >Eԕu~? ;3MdF xUc!ԁ5++?: sxA)XgP]P.ƹ*BB0 }n,SbIOOR׬6bud%ɀ0AA@uZGQ]XQ;Ȇ~gDE;#ψkfms(1I(.IMYY1bRJT)"Pe~EA`A!=QE y_ȷ~Hn;[S$$994le`-(/'b( FY0ғ YKjՈWObJcf ׬\\O\V(/,@ ! \>>^ Ԁ8UY\z e1lkxzJLₖ 6C9ZKw28H (.s6cUɥޟKdU 8W-$Ps!R%|:%F$*KRRᘔ-u=檖m[Lᶿ"ITJ3 g_ | NMr9ZP8zYw 0S!NMrBq\vl^ާ|dҽ4i!Q e'qL; LGq龜pEA]| 9C(.ݘKiɁn˪*,,t~D$wsnʵT[ײ&q+ťr--9V`ͮr2[(7ť[S䨴<;[Zz0ť;rVL />](}Jԃ(.ݒ] L+;e_wǔL 8n1S aMKi z0-~puzjXs>QbR,Ìܺ6: vRuFqCq^ڲOif1x wޢ~xb{{֖A3]Shj)GY lax7ٙF Jcv. .E>ÂUkwCq8V\ʽSVa^V[0>D@-Xg?L33_=EJ}:q7Eq\bCדVyx)B'U}K(Ypk#;}Ś]b=gsFmpDqfmZpc T]E0ޖf;2SdË'' 0ঐ*s`tKw#զ<s_[aȁW\}^m72}\D 5K1CQӑqWuLs54s/Zs WgZwi6T'wkݦJs}V(.݋K[RmZ3J dr$}(i2ݥE^{Gɾ\E<Qv2MQ\ }+/I"]$Rn0jߟj}Oۅ8_&CjQq'K4^h6(.Sk$_- V62|!Qi@P^`J*0ťe7AJe]M/f}[syw]gp"%9qO|.S/c`$Z1$*\: L:fvâ1=ACSa1^HG;}-eVUrA?(rEtG. p࢝} j?\)i%x3ݙwǢW/E_bF- Ā|}}M8Tq6ki2\@%CrR+ȨۚB]!WKë\jj}4]>aBy+{fU.ǏWE3^?`U2-6=C}Z >Ȧc\ %nm .2ha~eiXU}P(*1A>#8>c厡 T3`B<bL AIW0^ IDAT33EA:00h)uEqz>Rw[5X8l ֖"Qhņ2U:ce{izcz$11de@Ĵ47ZbcmłL</Cn>\i} 'cRg |X'5.5,Lko_y#del5*gL9zE]\{Ѧx&J|y4lI z:M13@`~aN/klVf|!i={Ou qNl"/L> 1;'] Bt_pn(!.qY1M1NGs,Nl ~8\i ~@)06˳0$QˊUw~\mQ\jEccpÿbKj.Kw:%)7\&G2L O~Z*k}7Ǥ B ]:|u(hZn?`+*$Օ. csr51!@>;]Lm'PYx): (U=!ܓQS%EaO#Dfh2*+tOT]yM-Ona|-cyR+>:ZkgùDuj-@pJq[>&nkZ "c"A  :qv\ !wȠ-.h?JKDqtЩ{5ĹRx\~"^1Qp~jǥ}7(.>Cup#G\Ӣu7"x# mq[;K7:daN`jI&f_tEfC\ 2:3:oNN`~!tk5:EcE'x yf ʫ$Q6?5jC 2c w(*M$r_faLi'SW`Ll.?&βQS)7ëtFե{s-0T Lu&ъeQ#%mp:Ӏ8qȹptɩ0|C2'{cZR+JL/2 γMP%Q]]_R?jb":Վ< y [5 y[}L/B}:ESQVWIE-SST(BhGqIjmj&cLK`L`2 3>&+dK,wҢa?ģ(NP%=zAbY}e% %Y@@Hg2p#Z1&DYQ.e/Ji聁/'tn?ӶoJrVg10Q=kK 0sC0uHGWYIYI4$uE=V!p.""@8B+)Zf* :$sX/ZmOw1AMi/*mwtHgtY Jr.(.fXQ\!r8$31e9sssFrc9 [>2geHYWr"CD$TZTK+ܥ"ACdq9$ 90CH1Ν5#[ a'ػ)m"Eu:ku%c T-*0 %97 sh e!s.+PdYGo&whr[hs֛Wגjfrstd%D̞j!vY+˘v/xeL3k01Vmnlc:"uwZ3,"Jo"}v?^H'M|}4oItJBqyEO~aMgVg 0~NlX2Ng}Wr[}1î@_ 9˫3~sHM4>%o%4;Mk=^_Q/y;9ma<څW߳C7:cv%ō~Y)wcK.:{;do%o?Mޝ}I^o#FHn!--t!iNxŋVO$+{ ulMӶ+KVn=.ʔ/&g|j[ټjv˹OtKU*Յ%%%%y)Er9W*K*E I?=-Յ;&rLw&"_s5ӆ$cp2{ EGdɜq֝;u}ҹ rIKK?y%rrΊ)m5]b 3gmuwm/ŋ6_w6C)Xu_4 s_~~Vh,xrov02/ݦZeˆ&]z30Jc΍Oss˳4cΣw ݷl1{sÖ[!1/VMB&MnՔ|~ /F|Ẑ*M$+[d`LY_5/ٔK~] z߽b:ٯoAAeؒ/$S.3˛# [(do>yןw=|GP';rɇ5?jTKMe>p"gڒrUy/|zjO-Үgf.W'J?@ɫ9?+q/}ٛ쭛< "iW#M/_ʣM%%!o>Z1G߶mpQx7yv=C>znG>oe`ӑo} kŚ>'L5J0u4>jBqyg,6KˎowU3==:L '8Ӕk⯷߮^O??جǦ̷3_񉩒t. {|鐲\f+764[/g&skRs nqb736w}q=#?U4'1 [L*:ymK7H9X.^toK/gA׬Ykm&&Gf3*Ulyoœ.&,W`Nitx~Y_۞fhEtWkp#=n]}ScE& ~w,QOG&6y|Q?:5y#/F2W;_'LȦ=|so=;ٵ]KRe cK+>mc4:3L3cC}=u(鍣>vXg:ҼUEd5u8*H]Z-Pr}|.MQ̹i6<_ ?vUߤWGn;ߖ<λ O|WCx~ lcy{NCzޭ ;{%z ,ҾyKSZ{ݟ/X@1O5-cۄPoߩEeU-C|D?߭WGLɠpjOI~min>gg T~͔UQp>gU7m`{R33ִ~k9hj3UA<|tݎU_LJg~{_NJ1/\5O'5ٶ.ݪ_" ?SC+P\OӬYO?j~LԠw:l;"P)?/@I_<чѮO=4cU.1rGWO#flyjկ3M.g>]o~ޠr <`ڏQϛg#s$\pbcGٳa'?M}"Joݫy ׼p t笻GxTYK7!l%uoi<7 ,:z`ߖ@䨧䦮PsW1R拉SGߧ}bL@#yqG%ObƳSf:E͚CpRA/rD~&n*-0-|pį pudfؼnkpw4dIik;9] |Ǥ>釞iS{'`~~i+FLp.ߥpttQO[ſ=Vo\(.@Ȇ]f9Q*9qժ2D"BPncϹȼZ |p|Gi}7ڔzd޽=_}#^{o{N- A*妝H3"3\, Ge}n|T#^q|&-\?,硦7{if@߰BmR !Go L?my7=]4_+9ߛ.u,w/D"zxNUR>pw~6nRį/.gD6[-8{d}u]nmgxgfmY_=:L/̘Ze+>CǨ7-V^KO皊J>=ݫuz}J5ǼsXTLV_IW]pvtϧw`ym杇{F]owmG[&q6@..+#Kv.Ӿy7Ƌ1}ExKʿq!k7=,^dز@궃 :mcm=b#Г9T$5+"9rPQRRBA^Q{Y R%oQQܣC%}"H ͧRz TfܞVu6e9ҺۨfU OWw:ڦ/WigxCWum[vOAyiu9)@(ؼn /oxD_IOK(tC1^-k4m~:\O;w7N-ٛVѦxDǖBΊ3py5sֿ[D,řk*ivt⏕nWm3c])X%kJ;^dz JIZ$ėEJ-/Z?bۊjWηlUǺ_ 7f  MJcȎE@*U<j1Y$E**+ S"7[S InD敃 !of25)~!=temmxq|Li6FP NT7c:htauO[JK!lSV<]M D&AG:yJU=ǎvizo8x}%YT Y,Sk6Ne̛"/8Yp|{| kɃ^d]oh_n4{zxٶ֯-/[^p7۸gX1RUzVݒZ{0xt_W.'%Cd{{X!` ^3Q]`-;9K28c!iRdྒྷEr*5QW+Of.̲|ȪzOlk'ޑWxC\/}=,:@ԩ*) `}nq[mv`> ݭr߬UfB}e&]́M~ߥ]v,匝mYNrm.ӹKV.R>^ kݷFn4Kc[(Qʜh= ?olڤy=bsX ݆aÛzO6->1>L9cχ*Rȕuy`ZuSN/>vy݄t:/m4Zb- Lf"8([d(7}z׍1co,2b=w,ghGWuEam7n<7'%KOnuoΟҮV IHBe$${5i2E?m&%A `"!XIA>O`|&Q~+}y;_; 'd-̅%{Q~/""ֺ_HY;>b퇇9J۳.ٸLw^|ЬxXG-M];|[9u/ܫ޽6Us]y+"w1uHtn &>=2Nk_X^JZ^Ėծz%~K)aQ퉁pG?^H޳/0p\'0>)(ɳnWpgڽMf#:-%IKԊ-VFX@tdohiuUE/]+74{2 SbkED$2vu:,8 U /N}Ec##$<.QDܺ]_#"bg q+!oSALw{{\a]Hljb->퟈fn(<|Qdޚ`P\^U߿}~OEZo㛓]\{iB.W{kCKۿPi#/|bK˅O\slK,'UֱҚI*g/8䑾3ůɞ1ߦ=;R8NtNvٹhZYUGCߘ e ǹyEغ<|qfxh;tߙ{l9|f(6% pognW={@+v472'"bmU4ޕԘUfn1,bD>;0{xI)輈l)qOrjVqW\AX8wzIN4O Lw+E|'s= K#KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ r *T%KP!B.@\ߚ[\ E$acl^s![DX߭t{?%^XD.񙘙[_\Z|ӌ^s7^V`}O_=Gh|zT%>1︫s੧ l8w}E3滕nyt B|P(EOp0*T%KP!B.@\ r *T%KP!/zM5~<IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/fig/failed.png0000644000175000017500000006124514122570751030543 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw\.;썈,غmݶVmu׭VZjޣ[p!"!dG $!(7!KLG(J_]JC5 BX+#%BUy?_qK^s6`ɏ{8˪Q 8}vl-7pJͪB7єN)'EjXdbxVsť.+a@QGmǹBUlkBSi?2%R+z"FY#Y 0ڕjF});32,+RV mi!q9E/VIPsY dX5G 5qJc+ph8X5\(nS1qbppRhʻԆ#defT2Cg >svگ.YDD^fhZJ,$B)R6~ax!Zy=C\K5ՌK5WԔݻ4 @푎X4Fz^ʋ7!x2ǚJjeʽR`½xu}iĬ̤cWqN!ʘLIL*))y_֪Uj,""BTOOIdKzVϑ3گwO;8=R)+zb)JEB녮# dȥ ªRdF R)(JZ]#-FZBqaV0 D JDRea@ Du=GKUQhHjP(Pa)(V@(&[Bq,.f4B*_P@a2~g  |!^ ՍKʜ삢⧏I)@!jƥOtttO̠_To_!:f7cƌƍSE5nx̙BY]v_R|D"quu޾BuP͸J8!.~A!^0.BK!xD!^0.BK!xD!^0.BK!xD!^0.BK!xD4JbS ܠ pBM۾"M m' &Olkk[@Rp~S-69rցF:zH$)fQm5xwf񜩛X4m`'P?= Ľ_П-9*@;t 3/bOJ]>{;*>-%[n+4L߇ݻX2;x pTˎ:R7IJ>J[8x8(E;p"FUV.eѨ Oˑc[wN^ 3_ }0Q7 ۍh%KOL,$k3oWna\rD}U%a"Oدچ6hL3"@۬7i_7F.)p#w 7H~ ;Vt pG}:|E 1iJ2홵*2g s6~3{K)(_tf7R\N>b=YËAV|Ӓ˾|2Z ݂\^NGJnb@)a\"-.Ċ篊O-wvgoD}bހ*IUL؉JBͭu†V/]^17D1eXfc:Vy?.ZwP[6ݮ7wN:¸De(֟M^9X7MJ%G#>(JlMA!Ϯ?͊| оMH's w/'i5n@fPsŜ)8r&6 p(kr݈/|*]ʦdx(]G2.̨BQ`c߇q;x5tл(ߚݧqag"z#T.v4{v˥֣G㜴kl>)u&SUFvhEA0klS1'8}wB\u2Hޝcg z|;oesOLKU+7LTpw%ѻK3^M~fHi-c4zk% {3-Ԥn< v&#G!*zréyLʅsK a}P&1ϝ|2 Ȑ蟆a%7L^c[[P\_)'7ٙHd*U))=r$>cGwY (l_7[< _DX!@ L3&I.':9uKKz$t|a\"CԡUHFe^ߊb5vb(+^X<bST.f ޽-Wp'Rg0Fc$.,8hÏkaeUi)J.X1{N]{v{|bg|̃npY m K=|` -}ˑZ$&ܺ\J 2dҲMQn 3E~m vlںTЯ|ƻ 2@9ZO=ʪz58u}Ç7t E,eѸWuVţ0KC945Vkxiĺ%.Oe,@ɹm+B+{v?ʦ5]1Yۈ599lXywjG}o'+>ڪ~1cu-6A&]$l`]ᗮ<(jJ d> KCPen,[bѻI˿a'0 ϿLnEdcSU-woMgPEIhh( 6H}{*z2S+rlܥ h"r䃴盁68p a\" W7ORi*vrǴ5v~ {Nx#w 4xs7^|b=\vnw!%`ҵ%%2qyt4տ(&RҺ W1HEV¶HX9!$gJ6|wѥ~KGfqFC>xs+Ǐ{'4νW`V>;uy,*o;K%tkMN} j<;:{`Or?"Ė`rϮi?]p.;:borK*^BopU ͇آQ_mp9=>Ij5 Ӯmwyj[|;!sq 0=9N'*mBvsG)_^sh@Q·\ÕVfԣzh.ǕT"m{o:"BͻthWu"^ׅvʈ" v" n梟D@$WMt%x|Q/ELSڣfl$l'esd3TN>I W<'^X`gx6w6-W]F}fk'@_J8blI˧~E+ e0?iO-R %"~~&{G/\蒘Sk37}⺵c߷@@ h>B2 {;oJ whޘֺSvAAyc EfM]؂\=u(X B^_l 7-;?gL샾Y<}BK 򧥧//>:~wldC_'٫azmǐ-wh>zpgJN6VRq%f]w-{\iT;{µM|-Vqg}q9Ma#~hƫ][7:w+wtwg5*ÑMyv^+-vu [r4uvmVr3fs K @D2˲ԏ_$<;}i%7i!ZRR6פS6عbJةsTUSwCcY874~=Y1k1|w;t_+m߾۝:tonEmox$}tz2 Rs9!_OSJ웏q=Þۡ_O~!úx`]"ѽ|:5&0o@zR"{պؘ;eY:Eh&X֧c!|3/BfFjwca#.]lF 'w\ɕ>Gee5zE^!Mw 9xr iQIII zQ>;M8 :|t3R86&S#wkZe 91JN+$5.G(Pg'^~6|,ikcj ꬸ' qBϖ! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/! %BqB`\"/!ċ!PԳci|eEAIdBF*@c(e)hT(@"$ R\ꃅz%0.KkE [8t娣(E]! |ssD%z90?kg 5Sv:\H a@QP v6sTTRRgm7h3@K)xpfR)hQC T%9LT) rb/?#suЩ7}-04QB()"Pf{,K_[?*k`nq^$!{Cqa6Hܒ;* MLLT]G/@82%l ^kLQki꣱D/KT-޷FCo!vFTԀa aK{9ߋ!1^d΋` 9~ܣGM',3Qu1y2Bͫ˳.x<\P/{yos9^뢲2e)YPvs-%֔geD9lXM!VY+ n\NJJ31Db\x=~V܊_HZmP!s+="T5KT5aYnJs{K+z倉UA?A87 @nNu- =!@w`x򲐋܁)8ՃLMBnGpaӑ7բ-.BUUn_vnZM3+j[F/g(>*nA){xܷ3nNDF0. I \xX}ƅĊDH%*?dq#(qݺ81Qe , ΅ZmP! ܅3Dq*zEE=/cDpB0PvjUI w* .14%2@(ܙS^=s JK1%><gNE)Uͪm% )A^C}VΣJ%~Nl!.͝!\ RTT%)wĚڬ Rpǔw{xlq"v!z 4cX]ik(j W8jИh,z&W ~KwLyx > sW/>4sfpqq5;aBYYK*Mi\4mQV5q.& zM`\"(+-\ V|Sjr2hYIbp5}BW Ld0.͕46"fo̩S̮;JESkfbpT-!,WoaP]A>f Ҍ>y) CC];+v*&M_th4_a.fPǏIQ!WGqit<q$.zRbNED4e,}fVW qi#{PÓ<HK3V~ Ry*ߘ-)K̀vLeҗ7SF2 Hƥ_tjK-&4RbN4QcJ$)Le++Hz:.DG7p@naQ\GLz\sOE$T@@sdrӌRx˞11SXd /ƥܝ$TZj 0aF)<Ɣ$& }tjוeT*fwij%Z9v}/H&WZ#0+T/+|ՈR aii0.͕SqTJ0CDC}/NByV^;eXT+쌛%̱㚝|H5DW]IVJ O)[.S4ND"z\r2'q%J,&P2Y;iWgӣVڣ]fF.%WL$' ,H|%J.4?fwI%q7J*L$;d8omP,1А¸Dɳ.LGRfu~$/Z$Տ0.PVrTH$ii4d0.͌n_2̙D">V?+ه JUOh01%SЁbrv2ge"3q>`/D,>(+ 4LcD,:Z{傆A?KsTRP˞-LԕIʅ<9zZ@śH̗rGYi_]"qiI?KM򺲡aRh}K^E |<.Gqit4 4MYY.N/WWV1VYc\( M|t`\+%E  jbth,]S^d#UۍsШ/lb!qif*+j٤ƃeG }GS6md )J"Р'榹4?k7mJӠf{*ej+GϨvmelkjB_/ƪ#2q4WF폷l\;4nxyV5$ԇN$\&hXc0p|a\1]iY?eiQ%{vWl\R邿k41)5YB.j`z̏^5. "q`K5?nH`leCl\>E jd⎭@,p4cfIw9CERUHͪ\/F s?PS;RQû|`g܌J!A/\n J*)[B0.͝~T JfZ,AFA%KTizE"LvHwx݁IA 0JbKs]6Ptĭ nkeGfɐY¸4c^:B.k:byhiN tqƥ2:).+ma%pu4~+I9וx:"t٢"@ }->Ϊ"Nm`%Dȼ3frGW`4DoQ2i}Fɤ!=@,2IҼ&|mk%?#(JNGE%D8cް3ntqqLB@ zI:+ުD.-DM 1\ TX]"hC vo%iXM|Yĭ][V~ BX]"^m@h}efMֻ=WD'rkkȯ_rrOrH.. R;f'ԩDbk5F*BOLH;g~uq]p@ӔXdqQEE ,uSặ{˸:U%*KC'"nR+k8;@WWj=qGq臂}KQ!\<U'sdKUTFqn8ƃa\rs>X'U-n%.R+ohQR;qS/BKK#S0.!.v*՘@Q@kq7ikJ]b %ct ]T;iJOV^Z'uo^VER(4+ulKdh:FO(`Y(-M=J`缺v&tm-tw(uBcVJ0.Q%kO=JQ ps-$ʼn[$^mL,D`p܎QV%%2(1`f,SG஼WS@T$m/mG$gZJ!T %z*]h.kgY(8J.um&LP^JH[JS29tFSUUA7YyGʉIP%!־{Tw5(yHDP"AEX4:ZɨXZ*a\UNLa>龦Ĕ8[Rw15FIIsZ^Tĝ&нeq(1u{T0s-W-!q?Qj\M|&)I˫v)8) @|w5U>ېExtoa\gO$n4Wn,[ʵѩMB(XE R5SElN1WTJTPRM4,P"-X@IDL`)p8X (mmж蚷' 1=XAxDT^]:6tu8[(D( 8^ծPyI7X&SҨ+oʫKFڬԖAYbw 0Lʉi4WMU֐~Dhf%zNywQ9ʵ~PbVqjBqF()ݹ2uɨ7Y=46PM6¸D5G{D]Pڋ,$2W.'S0KTC #!]TuaП?Hn'* D/%zLF 49v1%+q^!H|͇egm87]79|tjǁ%U\-JwYPj<~@^e[iWx/]>~ /_U 6@,0mW)=yЃBk{O^x2H4.t_w]2)%Hi~3zkZR}GJݝEwN/]vưwv\[ @ooXq R@WNgx5 Si*"_Aq~{wh_~&^H=t05$3L.w`' 3lvNWI={.`E)M'zqY(^ Mo:YfJ)?L%`ܧI2䫮R ʇƖr?>gç {Z1+mJΝKG4t̹s⊧~iW>*ߊ\P'ܿ\Dү]kĹiP}N q|+*뷯x}cYwm&PEn4B{綅}?!yʿQu\`SʇwPl9;::{ z,>xd̐#Ld/kF ߚ7oansϜRsnI}|}fk]A!4Oݟ;;%vvHȊC4c%vOvOo߃R0ݣu܍[dφzzsi}TQsY:G~}\^H"Ͼ}˼$Qj#y=V};Hxj s{T|Ro?.ih7hfw.dOnO$<-_Iywz5%]&5feqY[]zrɾ.u>.4EH RH\΍u\ߝagYh؁n:4ؗU pig˪lSǴ:j߸JR|\ξ˒5C@lu͸lf:: S@w&_L:yڠ`2OsNR*(Y= 4,R±,Ģ,ճTir cC <Ⴜhɣ(GPRmx|]\k4SHճf39/9a9r2ZJzK:4k-8 oEmoknu#ǭ};əj[[یs@Q\PqYG ;LinWo~u梾wVOhV}`kF\M#,[~9}iФ9%{gvFq^t4oϘ'hoY--k SB(RQ%Q'?FvhqnTB^6YIA.KOR;uлãIwr쒲dB\:sȺ9ޛ.cwP! իK69vo{ zz\c8 h J`YBpGaZ2摊iN]_ ꩃ0."IFƱig_}nKS^7GP/]e׶Oq֝ZŬ 1weƓ}?OQw-,5qݹ{wlS_>Z񰰋߃;)t@>f}Ko^4m]ZM>es_ޫE)K[:Zb(=ӕ* ޭ\iHx± vձ&:X0{*%'-o'$ VͣeDw] _ k⹿^J)tS.>m[]o `Yya?O1I]t5_ T;::[rk]\dEwS[֢C37%(eYyKA i*m[ʢ9;?ӾKnZ9:Jn+Efͨ\ƉT$)ɏYKQ  B!NꯗLɕKſ,><6SգAU˟dsn8S7a\9l')0Uy>p={FvB[Pثm3[ +.( NCjen܏tmRqja@/wiUn+. ]%r[$pO Yfَi)`cwۋD.wʺeKz9ZfoPvT,-qV6 R?nqڴs0.R|k_ $dp^dǨO(hM&~C12A=*,۝:£,89'V]S2Á)bBd ÆMN{j(w=I[M{Mէ~U ihSMɂ  [vq.k%.܉w;ݥ8r\B.tI Nm\dMn7vAu95eͿ,p%٩7.رmܣ=F/ؾ!9}*29S"=c±N?ngO;:Qgȷ{<^7gabJXH<&VOȽWzDmۑq|}/kywTE>6y; B&/n;1APQe#$R)(Jp5+;{O տ")}GtsJ _>k𻝝i_۔^}N!tprN5ի}-{6I}GںejiQ}I2z;06^F~5ΆՠG;:u@ۤ_9#pvܺ36-%ry{ı-hh;|܏oY5guxѩ>(ys/c8\.;XKE3vX9[Dq߅cwmמvmoCޥ(46aٍPG]Y1mM;{J;g޹P?Z:JJJfjP{M,\X)9U~Md8oV,8p١W=+.،[nu ONuzd˛=$9NfjWEԱͻ$ȳWmT0dr.ns-QCyFsZq;䦞LN,;8Jt0#IAF7aD-x:ZAT`[wFpY}{RFKOF6n?qc^(bw~kZvKI-{r.J/m$}o^zg$2N,]^ Z8ZUWAAV:l̶ RݽR_ުu^j?+.ycYJ} %`[ IDAT6_H43XMNS@)I0e{,a9.(V.c~7vn"P<<4m&/~̕*U$[Pk82=!)@mVpwBh=n=\0[5ym1J]>ynWg<VsM훣YqEzA Jol|RjHcW[UeѭcV(؞G}n[6sz cs ;~Qʖ'*%uIlkr9fj{{ߪ*q8̬i@("v[Y;nKW dVN.p-~ykkQ)?2ϑsC ]~c̻Vmp,ON]Z\bXDrxclkmG/FEQvT*dđ#ڏ1_c?|"k<|AZd];5*$aԒN0i!Af>$;>M_w pYOwMuKwz &4u֖;dQtqFN/]ì@5jZI7ul&RJՄױ{g"R;kdR- ѡ7.^)!|ng+̓Lݿ^Fo~žҖs~ɩ}6M5%ujŧlو&hLHI@bYK+񟃨]Ӷ|a?}}+ܨX\OA5f/[t~rw!D{)/H~T%\~s>&WHΔ9̽ ?ꏁ t(;0j| [2}–%rp5 lÀ㣯hunيy-^uqNZ?-KoiΏ]Uyxw6jO=䞜=X\ZgSʈwpa!$3{ݽ8Szl엍#'vkN2(MltL(bN]vgZe9[;0}'*O#>vr(#ԯCKs)m)6v׼2]=!,H{%V=M_>K emE?O/ %Į?%o<*H僇!4%H^~n)ZJ*-u8cѮIK6szͥcܴbYrtw~#(~%1ѻ:O@-QqT@YS?*ة6R1XAm4[ߢͨ*cGkN;#4̉K(ʸqP$;8{̖=N}Dž?65uS[P> ػfu6.vx氥_j O^,@Ȱ6h-{ws뜉r9NWOi#7yQ*'N}QbI_d^;z.ukO<ͤ/UW?fO)5l&`(Gi.pY[S\ڎ+ {wqwΙ5LI[I$AԾVjiim)VRj_Z[,-(EZB Bb Y',g?Kw^?2:G33:g63$gb6rg`x+r{&D$[2oJ{5|% |}Xv4GV.%{44hj]֣[^D|~~ݾ̺1Ĺ{$f8[N>Ս';)d=, BJ^c)5;@DĹѰ6b{&{yg&w^n+nW6), : i7ne>t`#7U˿MAįWDZ~/*~AL=# O3n(""%Λw+)GYB.\>"޸x${{|qQ%t׿l|P6ۧ^ ^3wSQ`֧o%^d]5f¾ސjnV),7eAR1~G]1JBgOEG˱_}˓Srxibeu>-:|;5=GnOHwofg'n4jrʼnŭL8Fg~)u5G bIW}CӺ{yr v1z{{`Y\Hėѥo0zy8E͙ qWrO9&½~u#u|#3P< {V!:u9"TN+hT_\v܎Z^Pر';b-(jR3OC+c-V>wBN xSCD$K|r_5 7OlXk6/]n̄V8.;vQnN^mX廆lw0qOInP3|kg/͍u jNүM/傈Ze0񫜷vlˇ\5-1z =jn1gjWS';Žf}Oˉ9oܩ[2>غH˸g3umI_8{bRا=x"R NY09Jjo%J9{ԫEP`vc_qبwmۖa ɾqok[NMZň1<ټZZt#Jwj;gǍ^KDk1>uc#.оۉ*^7|ʗɸ/s,C.7{=DDs}^-ۼU)U7QYQ&IN%L.sYn>/tFwvOzoHD]t*WS 9[M90qk[ 韽HN7>pU~Ω+g.DDܵ 6 -v <柍hXXE~LDBoˊwXTFex"r"dB@[q~帅ơ?1 wl o"pCLŞg_',W^GNK;V$-+:J(%]y V״PrˋзӋ"(fj9_Ԃ*/gWOw%ƅ+2iY4]YӁiSǹVY?‡,qnu{~<]GWz~߬/QQgm3ݼkȂbxC˹DR~nՔxեԉkYɁy lK)}ONDrQ[j1TPk]?k%ʚo!޷e̺ir+-rY3pl^]Sε2ȶZô+"o^<;1.\ +n;znUdQ}yim0=ԞI73>z&yPk7o\2洷q&r8c{x"Oc撲qiE{&WulZ*O-,EQ"1oovתYW?-~ djF%( Ղw qs\M.C ڬfAkD$&ne VV7̒51Kd]*v45~\xq^;{ԱoH7~8~zPחzݟq O}#t DR:U{)6KAUzpN*_W _9:MjW͘d2ݧsH,/_Yz:>骿5FxonӶ]y5Owl>L\?am} Ϭ;e'Ly'*k 'j?7K6&oW *DzyO/42K[U-Ğ07;|y*uVSHY 3yy6L:}*ê^&{*z//,|u<駣7԰O+W.oDxqk;ϸףgW")75OT;u>廧?n5܋#mmll_A8+oUhspy&=\ZMr<xfrqs9ӧsNN3Ǽ.# Rʞ1Sq:T;Ôz폡aKzmK{5o{ϬH|HX^+7+Z#"sʯ_/`@V3oo7gwξyH)8V|TDbWnѲ5d:I~^b۞D/WۘONU9G,)Mӽ5ݸQd7y94A%6- ~>5w` q ο}MxKS$Q$A-pO*?)_?ݨt&BC ,=aJ޳)>K(e kc'""MG9~|7iNo<>e#79dB.ǢXED$KT-cDD,L)_q?/ DDۇnlP@.2$)ǖ/9HDDs$&|>j\W.[z>e9Oc:dB.ǣ_BCgbF >RNظdSVO;7aJr Lpа!!w6|qT`7/FxZC+b.ú~(9F>x?YRQg:9ٗqpi:?^SzVqz ]QWZrLN$eLKyr gv/ŭ>gpu oW-qw2}R)qˬiJݾ /!PꤛpLBٹs}ߺ# n6hʫh;xn3E!_?ۺǨ&>FË R'{MdvQHKc·'u5j(Q-4)osZQgs?U.sWw迬0ŢIe*i,rf⹛_>ѨEGbYN p$]p*9v'EfY^|f Č8nһGcR r 3F4jo9~nUú]8qΕ[yhRQg@Zvfl&,o*OlAiB.89dh~:ԐZbs\B|R௪jj[݌n Zרs(E\JJQ._Q)()JŲZ(3ꋪ088ѣ(γ5q3}o[+eٙRV#YjGQbgߥF),,3IDATx^LȜgh4*"I'gO$EQFRb'zh4:ӏfѨ=<<FQt:E$f4笝'D<<"9R+6dFZ5ٺc1A͕..N^.K-Uə\ϭufah" Y_Tv ڣ_ z Pə-DިsЉKeuQh"HFou쌧=xaKKA0]3FWMFsz m42m:@}c\IY&V_7EIVx YS/m[o$}[P*s FQVxx8d\;h0Y2DK8@.j ? \!L=rA `ߖԫ:ktER)waL^+;M`p1;I%b$8ݩq1.3WvEAEA=e;s@AI{2}H({4DV q!A G]}BclKBq} 蒞{^/\dW%@]{mOܒ;ܶ?>ƏE+QEڟkMZO٪JKGxNq"mXHEK:C,JWcbzVMť9+( P-qaA>Jg"**nԱ>}z-8dZhom_w:V={tR5jT} jܽ0 @%$KI .$A\Hq @%$KI .$A\Hq V Z##" 3Ϟ^(`7bcGN)oi/8yBjVN{l 33ޛBhק_׼g Udb{=X W}=$e8U7U!.wx??OZsT4ݓr[ %5-Ŝ[NkIѭo[SҔ#njlza%,Hɟ_+w.? 2vp$uI72F?~fǵNloVyƴ#m ? P}fMDkyeSfoRn6>*p͚GyWu \(!]\ī!N?{DD.kߖ/TD7yxw >%imqGqOG`XhθELwiO}=y""1o+;҇CRPjNǦ NfH"ѵ_YՊ<4ޟ"G#+ 9-DOlYHOWxy;?hL3?O+hqeg|ͰZdX+)\۳e_HNҖK2~ߜ$"F i̴FOhUS=y۸-D=3"!BpAy%ȩ"%GC@\5E>s']>y޹vOљ3}뿒^O߲åzJӕs>X*lKC$VdqG|/ ~FF\.43fsSH=)D$f^2>*̿`S{4 /ix✽rSI,g"^xe̟OFMW_XxbDۀ)>d5,Am6z'(Mz<2K]s݋RZo } {y Ig zq$\8m]6Eq p}Bڪ/^fUD+TcQQb8":po?ܹ٘ /OsqDg}Zuf3#\b$s-cen:8sD;ƭ(PN[t'2D"܂iTh(ﭴJ}vVMdm(OӢw;oH֬moϋpwGc!.Xz{OүhZS|~Ԏv;?<7'=T#Ǘ=a5]o}^u8.%>]`q DD)z>2%8i 弋[yiKmYAey4Q|!,ml'命^ݤŎbEYQ86$njI7+wwzYϑ dl\}`"oܮgc;Dmët)cj3zDD;yȩ00fbND1nRKXѵ jɥA=5CÁ7ZdL;CY:wt}AR;#A\5f,L;}Ķ{_ԺGNxm|}`5?x`όm/iRg?ҫI+e&ua0uק+<{}kZS=B}]d,HKHWǴDIM׊D˻g8B\'N>_ `:jƽ{j[G Ixw~ZԋO n\Y=?~t[3y@#޽=2oi], ~ig~6eLr_ IU `κF/ _u Mo?ʑY&3}ñڅByA#KoZ8R^O|rG)y϶[{ٓڐpM_Ӆ-Xk2[$o<-&Pt_!z}cƴIU [>3@DD'㈇G`_w>sɊЁ i:q_.?ۿ}nKgwڿzGrZf[ هVJTdyv;Q֨S+D]֙Cɹ{1/|4!{H΍3ܴdO:Qə?]P%#"gp>!4V}78z;4'Mң GOuN oAIDXQh\*_޽gv1ۍ.m[>ۥ G4ZwqJ9a8ch7Ў~5?Ȯ٭_@WVp菿[>P*zZ4i͕ysM/Xɼڼ  䳏5w@0S)$hٳStۖQE{_>pblo{^7wN1x԰Ez`Ez$spoGƫ'syxaK8o痾8ilq /?l|6n`¥7t3΢|&ؤm o& d=)R@.AсyJ.Kfpjr"" |HOM1\;j^sWYX JKKC\XZZ$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$7t1f{95> C\B=2gQi1e]+NY0dQY)DD*599BEj {jԔrv@@\mfkŅzΟ3rJ͕YY)O#jK-) y :~ .‚\:+7Hr2iO&HGMBsoԋ)y=1BL.N̽om_Kms!e& Kyk/39"9B`ljt7|PfB]q溌1vɴʬ\ ~2S{y[P]d(K؆.*Ӗj:7|4c7%Hc*#A`Uf]1~9Uo @Tp#F,a]VTVJ&B K.ˬ?c AvÎ|Nz{jg# .ÒNK:%2WNHL%2ADQ\ K8Hc7v"^\4Cb !.#UK ݔۅ&Zj5TCDJt`3 _L>g խb_jq8)^kn~[6.&%|;"ҼayÌo\k˗Yq֫!.yD%}A mQQuߢJx}JMYY~ ͬc,93 džtH61&$:֘*uMY9u&&Pc:&ĥc3/!J>wwUSbNSRzMYyJ.B\:0Zv=M?U PM梢n~LV ctH]Q$X5b\܌6Z%ȨVVN~Z.v&ibVVr"$/ʪ%_AR)_GZg匙n#t`י`Yn"hXKc*{*U=/S~4մf VT"lԶ.Qc:ĥ]rJU3^SkTS'Yf%ɫjJ4p@K Rn۸w |՚!X^G6Iuۮ%yC΀\FSTS'9QbNa~ɊV)i'Vq 4̎UJWdY9U2+ }_ IDATlb)dQv4w4K ׻!&OT5ek*nj5zYm^uooq {RN)+kX^Sb q*p>:ѬTՐ_tİ~~ʪW$fD=5xCt0Ղ9sp3gB*zxˬ_,'\woY'j|t}p~>YY}tXT`@D$ p*z6YS)S^E^Y}|8pC\:*sd͂ol WC]g 떬zUy[. (--Kp{EgȰ7F{m:mBr,1>eHpLP`:0ĥC2_ΐI-1] \gÕވ1I1I׎8'K]ӿT9pt<;'|*elenضZU@DKGgY7UF2-qk-pje6U!U[^2Q]w4jɬҦǃtTe_{SeNLٱ6Ț+GLfQuTy ҁU_zix{3o5$ܪK "ĥ9)9+e2Sa%k䭊mzk+kk[WtD@DXHDD<_&t6f}DWݯS ˏ¼~X>Ip=Ө談Q;OJH.&yұ'|lUP{?#8N`E%Dql;6`yS&#H1H!1ڝw;EPr jׅJKYx^ݯKtC7vQvTi_][}&.jiSYy *k Sh4[U9Y'%DP q qi1;Gz3v#m4VYiH8̯?nxS*\hq\t[yL?4n~淌P KdNC*' 瑽InVڇ2HaQWk=qL!.e( L"xŷ@,N+s4ڨ(m:6pPr|LVJSӯw\_ ;NtzUj%P%X쒛ȩZIDr,o18JRH91mN׆n8XC\SHAL^(z\,2^5JӯMEiJܪ4K4&Kf3Isq qvVA/_;%7rQSU<#9C- GVB5KzY G9dݞ;Z+(5=[cU۱J YBPĴP YfD8DsRiVw%hKUꮑFiu%MT8@-P f'&cqSF:N]ҝH3\̢=đ"_6DѢ)UUJljUOL"a>˛((攜2&T*'.3 FycOe˦6ASES9w߅-q eX4?jy( Tk1EE-R-i +y lcF~KN"O_9*8Sٜن,/c~;C\p'+JA菛{4&cFhoDr[" 9BnX\t V q VRƩF"qyȼ]9mm0暷' yA  .A꫋U4Ő4#Ugk>礒kV׶k6Tk2VZfe)i J q U_]d_02e*cNDV_uJVOL%󿖽oڵ,#6Kpp33cqœ;-k]܎eUv!.&U4gN|4oeeY[yҦn3cSKF(* .Nޱ) 9kԘ5&&]3n. mJEĬk E%\fEf.UnVwdTKiYH%JeK5Ty7sui*7j󩾋!hSKSc8p!.0p'"P @%$KI .$A\Hq @%$KI .$A\Hq J/'Kܸ!LqMh`)'3-Y\HDLz"uwUYb`DbKnd[SYMF΋_#9"^ںdUZ#ozD$^[Z.y*zCRyMGS*aX|a|,ؖS "S.*]qy7bG8k繒S6/ZȈ'ܾ\#!mV[~/X#9GĊO-IJ]A?f1"^>g͙╕j-nޘ͈%ز@hkIs[69[Ĉp[\՜H<9?gOHDĴWݝ^ʈwG?^ˊN߲|gn2ӝ i3_Q'"MB{~#:AaNC&rK9n$"nY׽],bȧc*C}+I̛u^᭺va˼KaaRCc=EcJSιȷ^d+=Gm'wS./ /_xkQH!7äyт6}Rv;/w̞8bKt렛C qy>Q i褕/x m?7ږyw);~48Teֶ3JЈI6 R& ɔp^.Ésq72'* W/%eVxՠzw#f +=<v881UyGw&崚/c507cgS#~(\fz+-pr翹]Ɨ{PsKD{' #1o]?+sv2\99QGzpٛ ? `~ yV.U|rsV]*dey:HWeF;Rh{vjZYdZsP8z+b={<Zy…㦮X5T%{I1p+wHť[)7~hE@]r1|v ^L_˻")dMZ[WzG=G=Q,owx`1֟V$Z:ϴ:'4uyyp"VBDVSy5nes>aUf15$<:s 'tg)DDf~.rv~#j{pgC\ޅxޯ՛s=E?׌?ߗ>qܻ׫1*\2""Σ㐇HLO؀r{2m.YFjYyQ▟6g9y!?a7dʁ?{#֙#%gyc{,}8dþųQ[QĻ n\c ʹiW9xi<#j;E5]>czygZȜںd~GZĄb\wgiN1"br9?M&㱹-lFZ|tײ9bTcܝwLZ^XSb+܆o|􋶸C۲o)vt͋ݪG^ŠLӱ[eZ> :iJR-|_Ĉ\aeFmANvSgo+HWUrꕌܳYn ,o)}A< Ҏ^az<(+|=Lk!iS=_!"O)[qS.Qc5H˻,dy+7l\v8o{ζ|MDBŸE; 1[ K.I?z[e+8ǧlYܲm&G]}!jp-+ W{ ғkR"5זb>vb^)d^ v*z%MFM]8&LF$f惸tەOd;Zɉo};{j8:aY)؇'<иO8]Cw%70̽JJʩcGV>$/I_>^{=-~fbNj$-Ц^5{޼}pcOWz~ ~V]rN=:5KsƮ=у:ĒBFD* 6q.]&UfI`b o>?wd..]X$GO5,э#"ܒ'ƙrz;3E^]vT.=XHM]=d&mslDm#^7yyB\mXɱ?*%Kt QM~bpmO˻}*Wz712Y@x.]VNqx׳%:wzoR%y ^J'>pOUdʜd~f+~!CD_ahٶqʦ? &-em45./昼nU?ŵ+NIDbޏ_=qK\ؽ3]cr[-Z+[tUgڎm>sp.- [KlֳI,͹rUK/}jfteۺ[Ү) ,O_n>/[QFqNa|il>tw$e DDeG<I70%Y-釯3/s>YxM+rͧ3{z!%d 'O;tdUe-cTѿC}[[/gQɨMԈiOʹW!^|e-AW'yesz*VS̊:'GD}_o}ܫ:y q'A7J.m]엵UG~r'?+e*/o7xe?:E>Gv 5E/+;oŕ@SמoԪ}k^}՘5xTѰKxpj"z>-nM`]KMM nf@mul`_'y@uig/6jӪ"QXΑ5x {o1U2jD:渲K~e٧'\>0J{lvcG:Z{,q΂6} {2}fcRsD{yX-+K^pVlTӳ.(<}=TOPv`0M}\`3\s7=+\^vf}>mg'vDwn4]Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%P IDAT$KI .$A\H"oFPzQc "{q<+JZ.߃r%Xaaa^^L&8NT<*h EEE5t鞊KXNNNaaFAJ3Mw  {)1L),,,,,tvvFV4 Ll}lӽ+F1//O4tCHVƆn;|9m{jQxj w`0 .(< n;""( wCw{މKhh7Y{+O^SGNo_zsv|Eʚd}_/[Ԅ7*6ܑ9 ״D;hd}A\=cw'JOr]} tAŗMم#N/c{5^3w/?`y͚/ mQ^Oxh\ ""/N <3xF~YW;) ۙӥ]ԭbC>xϽsx 4%:c5 iz74'"xBI f7o2[;VO<6s}Fn4m,#"V1Bm8߫y C'D\Sq/Y:wO쀨[[ Om$#e/xoW3_l 2|cd&CK)_ѡ^yq+NzˁͲ5op81˖woŏ;/N r'@V] .q ң-T&'be罳 2_i=%\ۿlṠo lpHiywa^/ҹ"t q&:V)z_TjBF+.(b}]귕[6dr7OW>,\,v1,ł}p ;HNNvvvnV8&(泝5/HV+8"2۱^OiE"4LW\.Drƶŋk|Q:Ѧ_NpKoL-:Ys ._0q91}D`,޶mw""Rv̯>-DQӎoJ^LI +(37*tn=Vr ~VgCcWrE%'"xgFK9n^<ZJ3)ʅ3gM[ H|?ՃFpDB͛E:eS?K8gآۈ-|S1PwKk=mSsiӽmȐtNާ+v"S{3]Lz2[^3ܝvx0Wv# oe5Oٌ2 E%WxTΗg\ZRыfeyW=(.Od8_JDG>Oa]F’91C;ʉҼ\jnKVojxҶE{&]ջ3S{Y#?6]NiM%ӊ2t9"*ܹC'G[fy 8̛$jvfeaBQTz^-/xً^^J =Y -{hR.Rvtf6y*29o23ﴷ6޹_ ng=׽}kE Y:Cl{w^a.ߞKܗZB~_]7^ߝ=3ŋ[;pBo>cG oʷ,mO]>le7.[<G 9 `Fg1 9a;zDZ,0.$=OJ,6)P4M,SJU}"'a*lx Tڳ=quRIAJ`rrR)evRAժjiU}^ZkfXSr)h4Gp8dL`882 É |߯ f[.K) ry1=ϓRZ90Buw(#K0B.#K0B.#K0B.+a܏u!/e 3ba9BC3Z\Q~tEYXN>זv9.l0J?>ccG wt.,i_IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/boot-maker.md0000644000175000017500000000753214122570751030425 0ustar ephraimephraim# 啟動盤製作工具|deepin-boot-maker| ## 概述 啟動盤製作工具是一款將系統鏡像文件寫入USB記憶體等安裝介質的小工具,界面簡潔、操作簡單。 ## 使用入門 通過以下方式運行或關閉啟動盤製作工具,或者創建啟動盤製作工具的快捷方式。 ### 運行啟動盤製作工具 1. 單擊任務欄上的啟動器圖標 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器界面。 2. 上下滾動鼠標滾輪瀏覽或通過搜索,找到啟動盤製作工具圖標![deepin_boot_maker](../common/deepin_boot_maker.svg) ,單擊運行。 3. 右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,您可以: - 單擊 **發送到桌面**,在桌面創建快捷方式。 - 單擊 **發送到任務欄**,將應用程序固定到任務欄。 - 單擊 **開機自動啟動**,將應用程序添加到開機啟動項,在電腦開機時自動運行該應用。 ### 關閉啟動盤製作工具 - 在啟動盤製作工具界面單擊 ![close](../common/close.svg) ,退出啟動盤製作工具。 - 在任務欄右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,選擇 **關閉所有** 來退出啟動盤製作工具。 - 在啟動盤製作工具界面單擊 ![icon_menu](../common/icon_menu.svg) ,選擇 **退出** 來退出啟動盤製作工具。 ## 操作介绍 ### 準備工作 1. 到官網下載最新的系統鏡像文件。 2. 準備一個至少8GB的USB記憶體。 3. 獲取啟動盤製作工具。 - 系統預裝了啟動盤製作工具,在啟動器中查找。 - 訪問官網下載指定版本的啟動盤製作工具。 - Windows系統可以從光盤鏡像中解壓 xxx_boot_maker.exe 到電腦中。 ### 選擇一個iso影像檔案 您可以通過以下兩種方式選擇鏡像文件: - 單擊 **選擇一個iso影像檔案**,選中已下載的鏡像文件後單擊 **下一步**。 - 直接將鏡像文件拖拽到製作工具界面,然後單擊 **下一步**。 ![0|boot_maker](fig/select_file.png) ### 選擇分區 選中製作啟動盤的USB記憶體,如果USB記憶體有多個分區,只能選擇第一個分區。單擊 **開始** 或 **返回** 按鈕。 - 開始製作:開始製作啟動盤,建議勾選 **格式化分區**,製作前請保存好USB記憶體的數據。 - 返回:返回到選擇鏡像界面。 ![0|select_disk](fig/select_disk.png) ### 製作成功 製作過程需要一定的時間,請耐心等待,製作時請不要移除USB記憶體或關機。待進度條滿格,出現「製作成功」的提示,表明啟動盤已經製作完成。 ![boot_maker](fig/boot_making.png) ![recoder](fig/success.png)               ### 製作失敗 如果製作失敗,可能由如下情況導致: - 磁盤格式錯誤 - 磁盤空間不足 - 磁盤掛載錯誤 - 解壓鏡像錯誤 ![boot_maker](fig/failed.png) 當出現未知錯誤時,製作失敗窗口會出現「提交反饋」按鈕。單擊 **提交反饋** 後,跳轉到相關論壇進行問題反饋。 ## 主菜單 在主菜單中,您可以切換窗口主題、查看幫助手冊等。 ### 主題 窗口主題包含淺色主題、深色主題和系統主題。 1. 在啟動盤製作工具界面,單擊![icon_menu](../common/icon_menu.svg)。 2. 單擊 **主題**,選擇一個主題顏色。 ### 幫助 1. 在啟動盤製作工具界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **幫助**,查看幫助手冊,進一步了解和使用啟動盤製作工具。 ### 關於 1. 在啟動盤製作工具界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **關於**,查看啟動盤製作工具的版本和介紹。 ### 退出 1. 在啟動盤製作工具界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **退出**。deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_HK/p_boot-maker.md0000644000175000017500000000773214122570751030746 0ustar ephraimephraim# 啟動盤製作工具|deepin-boot-maker| ## 概述 啟動盤製作工具是一款將系統鏡像文件寫入USB記憶體等安裝介質的小工具,界面簡潔、操作簡單。 ## 使用入門 通過以下方式運行或關閉啟動盤製作工具,或者創建啟動盤製作工具的快捷方式。 ### 運行啟動盤製作工具 1. 單擊任務欄上的啟動器圖標 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器界面。 2. 上下滾動鼠標滾輪瀏覽或通過搜索,找到啟動盤製作工具圖標![deepin_boot_maker](../common/deepin_boot_maker.svg) ,單擊運行。 3. 右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,您可以: - 單擊 **發送到桌面**,在桌面創建快捷方式。 - 單擊 **發送到任務欄**,將應用程序固定到任務欄。 - 單擊 **開機自動啟動**,將應用程序添加到開機啟動項,在電腦開機時自動運行該應用。 ### 關閉啟動盤製作工具 - 在啟動盤製作工具界面單擊 ![close](../common/close.svg) ,退出啟動盤製作工具。 - 在任務欄右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,選擇 **關閉所有** 來退出啟動盤製作工具。 - 在啟動盤製作工具界面單擊 ![icon_menu](../common/icon_menu.svg) ,選擇 **退出** 來退出啟動盤製作工具。 ## 操作介绍 ### 準備工作 1. 到官網下載最新的系統鏡像文件。 2. 準備一個至少8GB的USB記憶體。 3. 獲取啟動盤製作工具。 - 系統預裝了啟動盤製作工具,在啟動器中查找。 - 訪問官網下載指定版本的啟動盤製作工具。 - Windows系統可以從光盤鏡像中解壓 xxx_boot_maker.exe 到電腦中。 ### 選擇一個iso影像檔案 您可以通過以下兩種方式選擇鏡像文件: - 單擊 **選擇一個iso影像檔案**,選中已下載的鏡像文件後單擊 **下一步**。 - 直接將鏡像文件拖拽到製作工具界面,然後單擊 **下一步**。 ![0|boot_maker](fig/select_file.png) ### 選擇分區 選中製作啟動盤的USB記憶體,如果USB記憶體有多個分區,只能選擇第一個分區。單擊 **開始** 或 **返回** 按鈕。 - 開始製作:開始製作啟動盤,建議勾選 **格式化分區**,製作前請保存好USB記憶體的數據。 - 返回:返回到選擇鏡像界面。 ![0|boot_maker](fig/select_disk.png) ### 製作成功 製作過程需要一定的時間,請耐心等待,製作時請不要移除USB記憶體或關機。待進度條滿格,出現「製作成功」的提示,表明啟動盤已經製作完成。 ![boot_maker](fig/boot_making.png) ![recoder](fig/success.png)               ### 製作失敗 如果製作失敗,可能由如下情況導致: - 磁盤格式錯誤 - 磁盤空間不足 - 磁盤掛載錯誤 - 解壓鏡像錯誤 ![boot_maker](fig/failed.png) 當出現未知錯誤時,製作失敗窗口會出現「售後服務」按鈕,單擊 **售後服務**,跳轉到「服務與支持」的主界面。在服務與支持應用中,您可以通過留言諮詢、在線諮詢等方式獲得幫助。 ![boot_maker](fig/failed_01.png) ## 主菜單 在主菜單中,您可以切換窗口主題、查看幫助手冊等。 ### 主題 窗口主題包含淺色主題、深色主題和系統主題。 1. 在啟動盤製作工具界面,單擊![icon_menu](../common/icon_menu.svg)。 2. 單擊 **主題**,選擇一個主題顏色。 ### 幫助 1. 在啟動盤製作工具界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **幫助**,查看幫助手冊,進一步了解和使用啟動盤製作工具。 ### 關於 1. 在啟動盤製作工具界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **關於**,查看啟動盤製作工具的版本和介紹。 ### 退出 1. 在啟動盤製作工具界面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **退出**。deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/0000755000175000017500000000000014122570751026032 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/fig/0000755000175000017500000000000014122570751026577 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/fig/select_file.png0000644000175000017500000005762114122570751031576 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxwT9+*E"رklQFĘn&oo/[{Â4]`e[qwf.cvvesVWWB!>|GrT6BȱrI!P. !%!B$W( B\\B+KBqE="RE ="$B ! 핐3fL_ua'#Ɨy-+-!LuҐKw7jj}s~;BHCdذ`Z)0y'L9o𰱞PE(Pmߺ#ń8wpJS4- !0ʢ:׵5^^kKГGj !7\noz]TWaaAsLYaoP$[u7B>lk}k·CǕk6,?)ߺ깆gi`X#a`.Wz$ Kczt젹 -ydB>T̥W-. e +i& i`MG4UBwV1L%!X6\G[R ,dj{ӻ(W5v2T۶uڈ qdB>Twcn{tQCRdl]]hO%D\Յr'˸ܰ%%Dq&Λ憕ʢ1=4wZBTđrBu֥_wj ;֖ƔRhc;=+4{o݂LaM]2P};_xY~%;\ !8.ܜWLv] uKS'\ə~iƋՖ h%!FYt/o18\[ ` $آ:aSFUP^0"8SVعWeFqSs[ !čbVb. ^y' }Ŷt eoW>~aa 9W-!͇]LVb.MKL!a 4t۶O9c.Q1m[q́`.0L !BeC&yfW$nln9R[LăN4m]ZLMzqJ}!_iIlWg.|ՎEGd[ !G3t%`1K݄/ ̝t>Q̢-W7u= %rx9\}?hM;_YY}u\DsℐM2bÇf̘17[fEorI!W__X3`ڷSk~۵/o{oԾD"D!uX;nѶhEi,H$LVC"ul1!|$+0i4 RhDw(4/hhI9 [2l$(2#&,PU(ʑbBH 0H Hvb:~@puG* BQa4MHv;# ǐ B1g5jԦM.qA93 & !h0'2<16q;s`E!G.O?'Iz{/B9 0>oBȱ_!%!B$W( B\\B+KBqrI!P. !%!B$W( B\\B+KBqrI!P.kk77"Udt-moرn  c-F?/bnYbKpr"_w5oVn[CLt'nRHyxF>ˣn«}뒱-{Ϭ~jby/.ݴ/ pϷҺA!dݳ?yU@ޯ)V=yW<{l;hWnܝ=Ɏ\;~v7Zs^ٻ~_? wvߺw,Ro7n=?o`c#vf}V/^}\=. 2ްcumT<0D=w]/X@:1y[~6}b̀7Q{?˶,43wzP潭 $Ԛ3W;Y4oX&8e>Q|ڠyӦ fo\j.1@7؆o婙4}ټ#/Ԥ~ >9)~ϴWQT@v_ t??k h֜yʟ~L4yϽ4wڗ?;<WTu'>՗tT1V/BӧC>eF=Ʊu ^rrA_^7hp݈o^F>msPNbvlӿyge+Ϛ<ԛ=K"Lhv9"&Va e=kl 7>ٴ5M>mj M qƶd)Yˣ/zOп⑲}!>|6ٵz}5QJPN?k ^DۯRۥ}3dߟ_^<˦ ooŚp 3?坼[]H'=?NrƗ^%ѴV3nd({7x'vƴ[`-f El^}]t9*η-\sB+F~ޘmNRv^b :-um?~lQryLӯ|oQyEP v4FSAɖ}[eFՁ?OdMaxoҺ׎_Z;n'UdۻϬMͽ񎁠gd^.iѵGrekdWMw?J~k'k V_S ؘ?oނ N~ndtO._sδޏ]=>;ڋ7=G_iןmy~{5߾nR_?{׏{?^+[߫7yѤ4WpL\#wE_ _q!`lOVa$=E'^0-'"󩇖c2֮k/|%/.h}|sj.;ot`W-w?O۾ӫC:k=5+s mspuTopEe],J!уx-xd  ;^YK^k_[M{^|>m켗>xWO͝VMo/^oꩧc5?Wۜݸ_:9P.^?' d{n62 _Cy!s}RYY| k.в?/,ʺU~j'F+-dSKO_8_0{ /?>o8SN79FX?5w5ιFڷG3'[!']Q'uտj#6Z]xگ."{zG\}^z}UA8سew+ړk䱏ryl]kwA:yB=8bcټ{fͥqnOm]kOo\KO^s .?xsvS 񧹀L6|]lEc܏XW\0mӵya/UQ`K20ONɳ"H+ \wCo|]}3/@<6%i#q5೿$7ܽΥT׀2nhHo,wh$+־cwڥN9Ssgqߗ%96v>{^Y]ܵ33"W8ϝ4*OU||_Z9;'W)`[ڰ/~CK7Z[5o(2ii9s/~5_DlǏ.y󫯯XtK?cX's[ZdS'=aQNd;OV?oCҭo~_{|zOw+q0kؾ ϭi7?W_5S[_ucz˦׃+Q5eʹcU+g]8XK}龗$exd2X2wwx9 w9ǝ{,m̬YC }oL35^ɂl/=ϴ-u-KM}9T.Yhg^Q ,MFv{}s挭[͛1&tZ3x{shΧo'8k~?7}̓['_KGaZ)1 #{*B";ُjcY|mW,˹^}t6:CD{ʛ%5'9C=ymvMO??\:(Oy>5@ީ`v?6I/?8DaZW~18 dS\g7xgzW;kdS>)9wBcXv/^l ':?bjM6cmd2. (E5À{c7/-bn-dV-YsooMoXϞJ9\տ\-xe(s.3$S^|r:cry^29 6ױU-_~'Wo_/,O7*Q#xټy͘0Ȗu o9* Ջ8Obʥg 5%e>1gw?tͤ7}pϾyϻ.6]м@^^]v*?=ݿހGfC˼ƕВ+1Dvlx׼Ʌ8qUMmo(/hzsǔ_rӌOn|ņ}ڥ7.;kGu[-x]=Ye睙7"ְ,U8h;P&jQ1ӷG(fE&]q o9ӳ1WdYotcI]PqE Xf>"2^ۆsɜ!y..70:6/#Kk͡W~˟xjҴ,}a_,jJr^/bv\;?NƓFA7zȟ~aѻwθ;~dx?c~~`J7ϨGL3xSaFo|k^㭷Ͻ1yL хiRiG|TwhBkm)t~Ӈc;ͲYמ1Xɽl]N2:X˦w~Ʌ_ϚVH+,`/?+7n{߳}{~v˴fdk_gW%$ :_KRCEϹz{޲<]y^>wꤚc@5੺춯}䊾%0L p9ie3~?W̮DtߛXA1?'bD4FH+&6G<?.i^Vg|^?_j[y }qM+ߩ]3K~I% xfwKѶNV:-/^y?xօw}z Yfd7%g)f϶MR!vq oj$XOQ']{Թߜm_˞~ps/s E@(ǀqN_~aF 2"4p 5:}Q-2$1?ԬR֜}Nd;7߲=r#ܙ ~TVռ^ǕrXqop tyWj :ev9 VS?{CbtųFbJѻX񫻖I(C&}Iw͟/&Ϝ6Y[5*y:oyTcӦ.O9N\@M Ͻ|o~s;KDGWe?X]]? x0hY[[g_=&uon͢Mjj1C 13:Ҝn;mey:XX$f]ѕC +wD LRw\#,EU+^4cB㙲kovQ:|ƨ yZ" udz^~ԩgH[Rz5UGS6l[eًC?%9P.+yp1|IiL2g)ʡ25W_fR<,_(Yv(+h*J+TnټAIYL&qv0hu1V]z#{ g'|NN +(*WbLKvo N͕.99(]pmʦ(LzG<5T#J绤G<9檂 Ec0ZDl4$'g-eY08uY2̕K0@c Rw̭Q_9̝Jp)jH@jd=LcL?%9в5aU$FX.%"$<*%xbVfX,bS%%SR7'I$ItUP %G6eT3QP*"OpDxM4$\8wWu)1bWR(}' P:WeJ(Ӌ޽S}n|!yQ.I~]IݣB re',U&dPcTTK 0ތ̉@Bs'RfzecLQu7%s6|A(R-nl )sJN3ez`3,9J_QZIB$y8ZZՔnF#,5cXK0gw(0Dgs iZ1UQTz!/K5e}s;% b5J V9#KvMKM c0( ,Ē21΀CiV+f ҈$ #RXf8k*PAyQ@(# E K$KQj%Z%k Ձ'I 1)C<hjԭeQV+,,(*rXd E2*-?KshY۩q s 2ez'h{7L-*I+'p'yps8Z\U* V(*dQs+HL%Z&LRLJuɤTƣȤH]2Te@ʲ?z,^VS:P 20xRB($WztDildюh3€XCTT*7!(jZL%%DŠ'-ÊzuE?O:u2ٝ{CJ@3HJ+„gtюrIؙ[^U-#}BMm? r4\\ JaN(YPr)ɮH#p W_y!FG9 EQ|\&GPg1h8fA %s=,,SO%ɒ^K׹*Oav%=({ 9RĘ'iqC㞢 !d"i}Θ߯WS$ + '$n)%[\hވ/snYz H/W|Ә? B($ùԹ*S2'J?־ӌ&ҧ$|d_qk!z(D Ҡד j~V\ԭs򳮈%-= 8 =+bxaPC3/14vir8s-")ӟIL:1R*[#ٟ^kyMƘV=ӏP4F禔 %g e!G$!R=9P%O Ey+-J}ױX3c1^g0;{G(b~UeI&!ҾSeL؇3L W4LWgc{%pU~H0y2pJɘJS$?%Oc̒\A?\,UW$3iXвNˮp240m=Pf/M)-U%ɏfI~*ezK3.Ϟ+x4xXI=:ÉDcJB7;‰;[L{T{͐`Lp}@Ioj E*Udk'݄Ҿ:E"SV<ÂB}My涨s'Z ]J 5P|^3J{!`+=J8 u{<EZ21a 8N7 %=h܈% )WSM. F$.LK:d З^Zu2gd.š)}sO4K 5/_EVPW;Ղ~dݤJGUP KXB PLU8B)QWJe}ORbpy=$BhgdI_HX z3d` ˦Jvdi%Z;O g'ۻ)d" $c=%gw%<,uBd?`H3r GrIrT).sBHpy PE!sKeK~iYߒRxk_M89QʊJ!KHX ~]>P.IF=b27̚C (g &[;eKĥzWԈ&8g")H~}oIS ;x5xp>;9FP.IU8ZR$dB:CgQc;t sYc0`F,ߪ#y7&?.D2e% (&,/rC4$WJ{Ҿ'*QO V4Cr4f%1f;.ay ƶ܉ -Qhl]15SE՘HS& CR膰fZ3 'MKHpP)d]2ku:R3?厇!ܘXӿNzKy5ɞАƒBa]({ ex2IPi0oG Z״Lnjp̹I^ cT,+#PDZ(, 4M , " 9 e1ep~G$Yz\ڣK/B:B 2}xh!D<Y#1Ƽ?,)4-Eri)ٳT** J )MrJr,N;|<"CeP%+=-v1]+dRu.8K&UEQXP/}EPXҔ/H_--촤QR+I bgs((Fp2dsʻgޙIƜuFT S/Lz;Ve(S10gūHr$qC)h`T4$}\qEQTUMLRVNKP?p"xƤu?Uu q2L~]Z`z1Tg~/KGz<]HaH$!(}2ݾBkQzy6HM(<+{<ciOrIrǝLkū~)4gB({t|ܣPBedDR2f  %퉓P.I~e%JgE谴rHYJ4Β٣K)K! fX{x@`1hoW#JTF*ҋQf( HX!, "-X͈qhZ ɋrI`"uBR!HL7;/c\cG*pf7{ !AP"@gP38 -v09hFkemTL%zqXJ2F`>Pc ezj{$ Ri<g+%9(%ssf*/KDXW 2y9~ eڒz `s:hi'l%rI.}3]L)QتDBvvZbB^QdH( dKg",Qm^Ux>2';:[I$Q.!]L2uEa#NOEe!^^e ;gPf29#={,f2cdм^}H$rIM?cL(l)PNtÔA5]gUJ@t% 4 &1LNh)7 {;^_I$rI燠ʥ(b>@T=e-!}̯ÙPڻ: $:Vf L0hc"TUUM X9#OGv(ogTI\ 5^BH.%!B$W( B\\B+KBqrI!P. !%9&q B>DKC^^V߭J ZlsH}lXl]C2d {EH͜J6_E],x@gD֥ VK/ټeq#3 ׯ]@)\ Mk.X;*!;W,osI4%mGi* ˆt c_8*+IDAThҰ,+A&n-4 W-n:F|2xcDcߦ:x3Nu.9/ ,޺cФR%=u] ٸnӏ5yѾiъ]YeCGŕa'5u'9% ]$iISЀd\n0u0vƚ7BN;6h'6.ok]FyGtf-FykyԳO>ǻzf]Sr]{vwղ~]/VۺlEېꠝ9ٽm-]ٽj[>ogz{cO=&{v ;0K n)d<c`U&wkoL]ղ{1E˗v:2Ŋ`e EiD$вa&EoTVv¹jwjcO=ںdn ~ sӢ6++Y3t!JrIrHbiؽ33 C)h8i sOmn]Nr9k[ȓ/رlifmZ4it8r muOС|Ov ɸzV5rؖG.`};5"̪6 C?C  1HCޭ]o=kD(^œN9PVKJtw%y XV,=(35.daOKh}+ZMmޞѥy|w$9I   hK'Y֟?i -^TQrr!n3;;3&YXχIvve3ڹvܹlޚ}.xow,rpcCȵli=NVamț[Rٴ}G(J27%)pmieM̲!YţFkVAc{K%wm)JZFz}^ݑ,W8!K "ڻvʽD,Pӈxrڴs[*+j&391\cW,]X"ͫ뎔׷ح(H׼ṳԤCdc2LjX\|c)!"r*cL%%Pܭl2rk}^=elI#޼}&U+4=8=K "5-Oo8F]~,'0A%Fero^%O@%"%#{s8}Gyūk),ZU]K9on_hbҽzKJ.:W? VQĬ,Ϻ/>ڭw2uŐIGO0fHjxjVi& }FSk[хI%%ИƚՎID)&U1YYdNQ~?s`J\馐1Ozv3Ecxt""VYYYPPa@KXH `kY2H(X BK!%@r \A. BK!%ĝ[c<7f>Qy?volOMG@A.!$nՆ),q'fQӌmMf4fa /v r.pf{> wNiڴٟN_cz%I=LCA뚬4־1̩mj`)9YvW䉮u[gVWU?wS.c>i}wÛA?wevjfs{93oɨ?n/~K&RNi}gХK i/ۄؚW~1X 5'q׆OOr1~op]kg^u'Z13Z+>K wDDꠋ۷8<szX\OnqÉ 'O\F1vkf.̋Gꗽ$㴉?s}IҶg]vhǵ id<'07*ز|ڍK7ԆH\c=`_qNeO &~ϥҩxﺻ:|8q!iNz퓽5>xyݧxwd+ܫ4=t3C B.g|QƈȬўe9En_?b'uEʁ.Yw;aGL3<8MA;@r \A. BK!%@r \A. BK!%@r \A. BK!Jp|imnn.&ĝ:w-t,VYYYPPaӂ 6 BK!%@r \A. BK!%@r \A.!x r GpopnnyбnY{w:#'6}b_$vp֋;T$t[V9pg#k#|ע5ZѶ_~Ua' -+x}]WóGC{eM!ﺦw-P[%IӮ֣3},fCn5ո1""Ue߻l = Ez{JT|pr8b;c'2_-f*E*>k'?}tk[H>} e#&r2 Jx[Yw$u8?G?m O^j|o2?~]'٣U5LqӤ-xƓ_wL1۾x~ :΋ <_\KvkJ.y|ḃKQqnL [הּMW|jn#]wɈo[mQwzH5c?f`1s:""s$y;+fjHc/yWzLϑڇ SV= .\R_!4霷d Tu"~Mʬk]MG!^)j&D7̏ݦɣ-z e4z  v S?bSK'" EZ@D4>e9bգх Ɋqk$b _n-ݸqi'U"╲ug,i؇՘RnUb+HBzY԰󴛋1G\LH<˙lx^uG`fA)S]t,Fqmn\+l]1{ WϭsM{oMwC7mAl6l|EoqysdǑmqGɫn'"Oޖ:U/>M~Ϝ|79Y|Tyf .YƹG.x8! pxOJȌ9ofe&'{Lz5Vd[}c]dë+ʘ3&_ĭ,dVOަ2VX_#??QFMrxXI<ɧaB5~~C*{+{vBK:xSG9U3;=X[""yĸ|kDDd7D߾1fzV2eM>dW*֭Ok/)h_@zO7 Y*U~h =+sȭ3~sMDnQ4]_٬nwHғ8ծs#s$v5)ˆ<}sȵ_zŜupx%| %6gUn^4~!pݾ嶅ߪbDf>*O]?!/?f5hY"b1$I><:3'5~Ԕ/r. P=v* ^g7GyTɌˇ9^48aW)GDDI H9w G\‘qr\> |˾qZ}2#"-n|`* Ju)0*tћeMgu wl%:B6{?_#aq]g-AГlWqSkL}&sQ[-ڛ59C-nĚYͮɉ1yu:aVQ3u>#}=c% Wx+"/˯UՍĈb;#|SM&"[\)ָVn"/w0qɓg#$yѧV;<ܙ461R_S>_㻴TB8"IfG'}'}st"""׬߶AާG2@C.!NO{v¢L'"ݰΈ3 ]+T%5nZjaAy>,51B͡pKS(9yCt!dY^TYyϫ`g%t5 .weeuplI\?$KEQX9W8L$V2^.Qmǎ'[KEQt]w'""qt]屈1뺦imc 8mz"L,>Oe4qADz=,'ԇ$T.HQƘ(efbD1ug)`%ɲ,IRi0[r1Ir.sID{eV*@r \A. BK!%@r \IO$\z|=%Ҕ2E;Kss$ňȣ>agQ@%t|I_2 [s$jD֯[f:j)Z+ ߜu}Hv4?r N1E뼂,iU=ʷ; }))tpۯixC45 *++ = cZ08@r \A. BK!%@r \Q( {ǺWSIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/fig/select_disk.png0000644000175000017500000010276214122570751031606 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|չ7lU]lٖ.;4B H%7!@M$$$@BmbY꽭V>dIzeIFggfOB! @M9 qB!D`\"PH0.B($!K %B!B^aQJcc1N`(H[cȈB̋E>a?5qedRF $o=(` --Qf9B9+K[^$J,Qͅ)WO۬W'pJXd[=]-9o:N1>^ߵ @)S"`&ONoQ`W lu,!ΰ+ 5rsJaҥ7|.Sq )PڀpS Ѯ&߃ !f0/UR6{nASĭq4DD!3nFi$YfL#f\6ت 9 F.`֥r^WLAd'QdYe\W!4{=zUBaf ɲW􋲔U+-I1P,R)P 2(~Op 7wnyQXƘ$mH1B砙'hfL] e4T $%IN3$IG[R 0IBD+jx|/z^rS;YUl?{eo>?Q-)t̹[?o*'_?Z7+E(tX'%ߺsi)u,ǞEeXxg~\_ҹ*_ޖ=xnJاH;#9:F!}օW~׷_ r(TYOL7/ܺ\SqyP\xg){#wO=jgAu/~{R@v7?z'? Uqp.Y<_rU8uܜۼפGE׽iPUvWİ SG=p/G_÷~s~βxuN</"= isgYW ?yxBwlHκoXw8ƬCCᡏ?dM q1M[GV>rݏ{&n᫷M㢊yh}rM7- "kyѽ.n,8/~dn^d[h7]ߗo' ;z"ps g]1zPWO}g:ܝn,^{X6gJM޲[nj?~ּ_l̰ŝ0weoU'8a4D箁o:wLj߾- _wSD9 wF>V^qҨzqp,|̂W% z"{w^P[׭=~"d++ԍ7uuxc}}WaMrRD᛿7ǿO-,.u}$9Ǩ/l_|Жm0,}WMf%;cvBȽ_~cl{UIHʒMW/Lrs>zpe+V-Kcş:n~s]oNO{++WNG? |;]rW~S\?.`}۟OG_x8H-rɇON};Ύ1[Hײ/+>>]_|æD) v]|;Wx(W^ EnzW>젺Bߺݐ^}˃߾]zƃ΋50._}Ƌmo=[%%Otø<1WciCxDZ >6\j_ `l]Oxk?zҗإw1oᦒ:1qѢ؜ [8;^KXg)o}E7ݳk%vTn\Pd^o9޴C uͯ[0~tvoo4ѹwO|jI6>2}sI N!:Wa\hNh_][d $J} VoZqł9Ѥ}#WA(]t|+eLrut܌ÀB`/\_mM58?}A[m0.QdM>9*+s-K*?wEN 7^~CuExap"W{+칒O4Kӿ2i\2osmDT$4xɔ'ؕ~lMy߹rgo=|K!&9ܻe_ qPCGawx|y ?9ϒ?MRyKG+woyRǏdS?æ; DuPd2i4v$]?hȹo=@`Byo1/9`\"uя4\1zϖ?yٿ 3!ǖ`1t7L`(ݿ -3u;(pVd+뉗_>k=?cs5?yP?ן]4u9Jl=Vp̴.[N+}pk]K]5XD³dzKEVY_5QkmXxsqc_p׿RxŘdv2~xŲ1˺ß}OE-8N~<}+4 #f?[D3[Կvw!{' <H}V1[ˢ7\x\\2o|ZV]y8ȃ> qh5i9oٍ'hE[_oi'dt<0K/nu]> 6stx&؉S6OGzO^JOUx7~n\εzB%}yƞwNPzh<>2A:o}L'nh6J}->ʒN MP.*#?gqK~Uwi֮M8}6-̉՜d6:DećeGW}ՄB2gMyl:I 5;Y4a\CL;bOΦ2BPQb {۟=vEG~eyzw?/c|RNѠu O>x}:>*pST.Jh[;vAf*X7NTFiUd_>GYL:+b+Ziw,l[r. ;Bhk>}s)2A9@#*wms}J& }&G'):Gۜ7/Uۼ)22sӢ;8,6qﯟCqGO7:?ﱥwo?$jw,{+\&jSOi (V+g2Uݏ>ttl#4M/0qה+GHq s杗]+Ǟg96>:Hb*/W'/w(o`4"tξKJ`;wlfj 4pRC)tjL[~ ϿdU5ș;3.Wԣ*n)'i&Y;tP_c(Tގ>?OYڻG> ߻2^KF*" 7~Kw]ah:%@r EtR4@9Ͽåxaa @DШzGyu#67ϻstSˀ:fY[:Y{%7W!eN}~ҳGGvtR#mfS\Z`7`-9c / U"&~L1oK4~1O<^ NB2kR^)=W_?m޴`8-y\v0EKpw^oto"8貮V -`^2PU[QaR#Ga.O>cP8`>G 2dOO>xڜf+sj_خO;snxJY~PQڗ`@2Ь?Z*#._I lI 6C>sWg\oX!@C"3(k7OޚdwI+(Bh*y·8 ܘHEf~?Ē1A^bLcf2r%6…?*| :J,1jು;**{fGR s4)(IQ}0oWck-QE&G?Av*)b'o։f]k4x!d.p]d% O(\00 KLBHU;[&ݜœu d?LJ+:˛{\K*̌S䁦m~Cr2Fgj+\j~\jrˁ⦔%R{w;c\7v60mGU| IDAT$!+y1\K?m9TbKzm%M5>0X r'iO]6x셨xm>N\8lXvAf>[wtlv4KӪy-1 s諸 -4ѵg*`RkEuuTev:qIoJ@iib1Zp-M;kפXuqtٱ˜qm!_O%ozנ5p$ ѵ"lMrj3luAj Sǯ/_~FQ{_-1^MNG\R@rv-isPcL¬R6T hjt>T1Z@tمsR*"bY;ePi֪@B^p.4PשʾФӱģ;;J,2F'͉ҫI^^wzQ.԰&S `Zוjbs%Eb%:6LHh] v11x[)w-biCo*WQNٸn1[8)vxV 9{ q*`CG;MYW]`ExKVTC…_ jSӮIZpٵVǯ֨8Ri?8|*R&DV%i_ݒdQs֗Bt 4mހ7sWO2/EC@̱f=ƘLL#L8XO൯-;pftrz@[g mgZ*kʌ(94 trǬ_IN=(L쪰Y} ]R=mƘ% DfrbG[˲zMz tt 3?/Ji-icB`f)$svk2rU_*").>|* s<sۣTJ2(x&1XwWݶP~D! /<&5ؼps|I-ĸ.r|N7cktm hK[9Fg_)~о~Cbvފ~urښt'L'+<@a5AA8\;$jjڨ_91jQqOw~ o|_80'$ j7PSQYL #.}ٺ{ ;וZ$б{t%Y"Y#PŸcKJT0V ]>zTZVͩ m^tn/;mF+&-?PWs2s =-js ?,^1NuRE^YNGTre'~d4?Ӓ|@ SQ.7[J2GS2qZtw;R1lܘ/kնULY YUc8\Ҝm {KG.jܧMu*nȢrw9JJR1e ]ޞ:G6IJ[iv)V_6}^PI E95A8%$*;jkAW:gFr .'1<.+|:bLh.W; |W) lG^.(%e$h'MκVCv9 V%k`/j%?TW'oXj?'߯$eEe%o|UI1Q)8R-„_ ,X(H$~IwƆTYE󠠍O ,H@7VxE>-=seA}?5~c][iu&PSIejI޶$'X[l7j1*km.6iբ452͹ymh1o{Ug7[0}ngȷ-D0XhRI@g%(d _KbzSKF˵'ɘtaXG=wgx-[\P. *}2Q~@e0@T2|)OWÚ=qT0OS z|s>}34ej *CH0&BE𬴥EĐH!4cLs'n)ܿ'/B'5qI1;rS LI,N d1n=mRu&+Up 0@ .0ǁr@%(H6.AE% :Le0T$* ***T[x@` 0F'2(tBΎ5]!tv˃G}^A32?$ @NC?7' N >W@f= %θidYnq_R)U8TJI q9"8cc  QQ:Y.G|H>M5fU=%Z/t ]NFc%z9Iϫg&$%ZW Nt.R*qhzJ =.1T!ٴ40qN!BoㄐS >BH!բ"ܩ/p)x7 L^RE8.exqP*$GL)a^(rnB|YD1$IIB!BBq: 6.BANF %B!BqB!D`\"PH0.B($!K %Bd kB3AD\!t+ 7SD@ǩT08%KlY((%c LKI"C*qp^RE1"P͈8B0.Ot{>BhzMU=c2 v<@)@|\ey|yT16<@mC5%2‡yJ$U4Z&t7v^YJ)tW= F~ղwZ fK˺yOpNQ;X$tUgW_@Sミ$4u56w福!dZ+2eTR*x>-m]m] Ly.68d'WPtܑm2[ >7+t.i4 e XF9]ve6@M]цXtIU"NBhh'~0|jRVY3" ɉqQfC@@8A;w$qSHM>i*tθd۸' 0j{msdi5_8`^.pm@@VzrNVjѦ.XeMNIKyAiTJ@'fd )? n w+|iE-TLP >jw  ZF6dsr/_RqpA 4Щ;CZW.[q3ƪjsbB 0*yjrܘxnVKN 1ܮ뢭xA1͵xAEIi|5> CSBVM^WU]=11˴w: NsRдeI`N%LTbfQrl6-P s*UZ*8e6fL#ƬKN@8 $j9RF΂ R9vĸE Rh~L 8V@b|Lw"Ah֙zB0 $̃ .<}AlhjoHKF2*8hFVUΛP6 +J0$IT7 OLf YlY :"| @$ɹYiI/VF&cp${8rقK #|0 Rgkۭ-ҨUs2&uAr|RMczBoG>BLK;yZ /G<~zy>9eFM6) qJBnFel.O6gHm3r6sیnB﨡IF6kӈ18*5no>1nI b?m3`~1k!4k9B-yt{d;yQCLL xLL7,{<^@q\2aHceKa37oE~FЌ#4nV1o?p5&.)(nJ9o]" 3vey u-?p$d^8/k)GmxeTbKzm%M5>0X r'ig.'<]?y>[wtli]$6U,˖/J;:վ.\D׮QI֊Vgt⒲ߔdocB}iu3[wlY{זI׳cGM9K/AmR^eNrU*itŋr %+R8^Ib-}@Iށ،,OV򂳁NU&%1l0ǬPPOey1-67jcD$/y};=ըjk{Msej@us)X0dO`͟Árw+X8UNq bܻU1yqrSSkXSc@r62Tvh 쭨 /*Iȧ]vU2k"+Ho J:ǯ֨8Ri?z#E:5 &(I$VkƼb~m^\=N˼ 3ǚc22+&`\:i&yjjmܕք7Kj=Y6/.ƨOINu4Ti@78tyz Z1) hr39eY$=#&*-+9c9y )1ւiޑ'li&F螙kJ2wk&#NyE)qA4ss<sۣcTJ2(x;|p]` ^ԛэiMnB+t9[;n( ~н̀hKMO/il}=uF@ y+[[ikҍ2&=RC' 3PٶVTiN^ 4!QkL 0P3_4F߬TZ~Kxd9y%lP{D<( bR8tSr ¸cKJT0V ]>z]Ѫ9uWۋM8epŤGjVfҒE[tNpqk yN+ ڹћ`㸦B'oiiDY;zIj4ϴ$=*zVŸԯLk @ݝ@T 7f˚xCt6EV0/4'3v[ÞFŒ<Ҧ8qNWRZ)/PZPnLu@R"׬.enF)V_~b-N[3!8I8PڣMKJփRq|r?ћgi @DC/,rV%"p# yO22&*/A!Mz?;cÂСkyPF'FEWr {+{Z @ľVԚr.DXՁ4BtU2S$`o[b-s5Uo 6QjQfSxGɛOng4Ř}ªbfڵ'E+No\YR9} (:cr& q??2~,A B\4Z=?t0O+1li*{ϝy|Y&#.1)!.h)A`GFq=Bȉ?0J uΧaMʞq*)b "B>}34.XD&q)zAE!7B0j\F,XبZɋ!IMg\BZ¦hFABMsߥJ|npKqܱ@w7Cpi619VV *tJPLKDTJ << ?2|@v*T4k5" wdN KP| D! D@'2> `(>/0b/0R?p'q^Tv"\8@ಁc@IʑF5`+|ూ$A/dGJ8켘!4LK"d%<\`jw/9nZ:v .0 (@4LCD˲,bgV!!(8o:]2\@S/<7hKe%aÏѯDTQqpcV"4!:1fU=Fp^S)28:%^jV"$1qFZeYlRSR*GhJ} qSPSWBEY#[ ge3cL$J)NcDM#Bq tfLm\"Yco>B%B!BqB!D`\"PH0.B($!K %Bd kB3AD\!t+ @)>BqRx,!"f%Bhfs#1l#f2YkRG8.%IB(K%6B3_xIxdwB7#!t¸<>s|l{>5W0EvNjqQب qԔ)TYk5 ڹzejx+]œUpi]H!?./.E?™::FsBb҅V]}ALM~ܙ>Rj2{$ʔQJy#>ǧksRc~u2͍q*pJvpB~NO7  q&>EsR[ںNFNPb5jolMQf#tt5Gy /=\;D"ΤiˁvwN`ͧ)e 9*e6 c[8*[ۻok{wZJ7)!vy 2gRJh:1lB4o ̝ըGȂyҒõa"*Y9YG[c5M:&-%~ zm,SP¼!41&(~'0B\6ޭPP1AX1800k7!C IDAT٘ٞ~˽|I!Ǎ3`pޖnAs/!4=yN5tXe 8x~XUMbc!jWV)Ǎfz`h#ՍHA^w!4}v91u(I2Za|P(5mvGO_ZO*! VUDsGl9 ̉gXA7cl*J2e  *}ZkiEVotZMVFllEufS\  y?1c]Q&V;4\D5n)f%kfCт9 0WRНу2>BhZ̚XAb!Svk&c4jUL02G`Э\6_xQ7R~;fz\*4?7x $̃b}ٜ! m31[ R&Y!ڌ]N#jo|co,wԼTDŽz':si/\!]Yjɣ#{d'G3bbb`?gbO7gݫ•UMN'2rs.ȳhq;:@S~!ay9/j+\j~\jrˁ⦔%R{w;c\0\b>G8HBVbۆW!IE+VRT% gqv68`r" @;:6Ab@Բ._`vVV|&`wTх_U3j"ZQj{,U}uN\Rv4cx-{cXL/\q~vwK@>-kڲ5)V]ܢ4zv2g\~Aggt~טOX%sٚf >鳃.(1?{TquoV- K Pp(" d8@Eʼn(( YVJwҤIіP 89s=r`{ټq͚cK~<кUH9I;ַK|JOˉNWnښMhaרlr27n>Dwh̹wot(!,^35~O\k !2:$veK3'F]WTIIw&Ь;dž;N]fdkZk/oT \s}Pr@=u)lNZgeڣTlGv/ZqMMkΒd}jڄH9,1#֐j! r0vnܛP֎ [T1wަ5wSCMr|͚ݮU׬.YwdBї+;Vˬb6{c+,ّu=_3XP,G~%%Y#72ΫxNݚXms؊+؝\xfa`xnMsk㺢[8戽&[$ek\ײzmҏl,6"bM>_~U3_Ux@ObS_\'358 v%46!^g-moJjRFzU Q?ᤤ 1F-з+ 9qqtିTVR/8r̫zu;ZU v(<~檁`P z~ɬИh3ˍѠv߿Ov놰n=% &qy:~2 Q^[@`M l΢Ke؅wȸMg=_DIj~ ]E#e_>l8kp.V[Ǩ%Uݚ{ k#ri9 /m*isXtk7^R=yv$kʿfO 10SmL9ZV? (cnՉOKGgd2n^Xc)xy[TKtϞuc+$VhBe R@?tߪ Tqusf>1&\͖C}Mh*) 4~̡oҲK\x&(&2@!kPHjFVdt5 );׊ٻ!%n|Ѿ cBi%䓦k zun?3.1Ғjf|(3[5߰7];>|MxiW\ Δ $ۼ֐`7Wtl[n4&zliALUnڻۤZn!CXHE6gxFb2A`tI6=t w>rѭQ\v/v_f(d22L3~b\,5UU (ʅ+ ÿqHEǥ(|kBq..p. !eqqIuh!tT8."/mBq  +3L& !L^qKwezoU"UU=0g-썋=\M; `ׂyGjrߎl]?D9KMI5֪]#ؤM}\Q<$.#~*3UHꝧBw~ƖCEŕYh[fvixFzUsԵ[ѓ-_ 7j)[-ϰ=ЏV4lq:׻H|a&]Kx~njQʊvo7z}fN-CVr "ԁ*~TCuB}z}M-jG||Ffn{^~Gn?}պ+<ʖc_F᥍GݶF~(MoX?OY*I8ɫ~!b =KUI\ t؝#ՍrJ.5-h߼4xVJ^^riU?|sUYoTX0 ~"䅶UT39?yC)=|Zһ^Y֫a}̈$:xSZZwH\ t LDh6'6'rfm^X'Wݾ˭鿾vY31)Dwji)%|;ȷ55*:[gn7eǛbr I39qةܽOzbأM-?TCRT$q)7-iMDLzp.gRt񝿿-O1􇾷w}Od|&%6,:ݖͻ _Һm/Dge”ޝ1/ 5?P;|A\rj灓]:~lxk}>[ˈ8ĥ(@@r*^Í bO>Rry酇ls;˛{ֵX7fX[fMuj&VNU}C׈p>㙷ߞg-vC5yg3N!]aXkChƵ'ܗ[x Ƕ{y1v:u5eI]Ljh_9뮹KM4?r p*.MV;eťy؈':Ff784N("{K?oa%Yg"xSK߷//qI酶\rf j|3IӧU^%Zژ@Ġ'8EQ+26sصr M_^&E{+{wX8pTY+1%9@/8+V~RVUav4+:` /^}Ølٞf=ǟ1_,+-`QĥHŠu/UY†KUBUUl;u?]xPҟ2KHIJ~̭rԐ7>t5as:KZr6]P /@Ӧ!姬yoH!SGfP|k=6KQtB=Y`w}ޕ+ :K@Q=mc)f[n*L=p}7Ca}[?sTî,[ѱf5zW*&7BKǬ3#!} z]Zcoi⏳TMC])Ķ BPOX垑Jˑo66WoeL*ۣҽu\Z%YiPȋ0\Xh ^캹'y?6ӢUkժҦW/_^}onܭQo1!z-5懣1߻G]?ݶi}m*QԠ֬pGc_cM#5F:aD1.r4CO1T$6@,e/E8Wu* w?X߻YڻjGQLB\|i5?͟>߻$ v:gS4)Iw=W` 3kK;rR5Dpﲩ5mFy}sX\հJ.cE%tpk4._Q2bT1\hRĥBxDQBH\ !G$.#BK!ĥBxDR!<"q)BH\ !G$.#B+;.ΒrE_ێ\+X4;y?oIa%/#u2gr(^):7wp@N^Ǒ⽧W^g(O&\o*\U2Έy|2g78ϐ^~uj<%}'ܸ]Ψ*e.ϿKaY="ߊ_$fu:y$+SJ/]ve^yR>[|VgvI,W8u/?[NcնlOb1}0Up"GG^WO+Fvvz'u Rm #=κͳ|UJ6dl+wWX\=4)s|>wLOgKx+)󷱻_?7k0MNZw#T^ĨnZنtx~+Y\>o0   91MψW2o̦c՛Ҙ)(UwnO|>MӲL0RY=0n+ru걲OWyK _M`OtnPTT;bx߉9]>+Yo uư p!rjV:Ϙ=|ʋCϚMŋ8qE?3@8u~6؜o$y[)ti(Srۓǭϓ=p n깞bD%vMb.^)e߯h<;ofAc*P IDATYpl%m~ٖlbF|Ï&AɝMQAs_Tvw,w !4zt*%Ŝ{m7CHsYTȌ`OmdV~ep LBڌR2W{8cufi/nMa{/ fqvԒ"zGPZ܉Oi+Ucƒd}KИpEԟz|ݹ|.qkپv+\Nv[uR~˧ÉL{[fc4Lw ƶ܊ Q#?Ԡg]@TS0&@ew49\ɧ%S<=8Ѽv\^Evr呷,הwUz_39G2+45b_m:w|QȸSKX7݄wMY=?P E3v3dF[jDBp(DQ0oF7HOKp| ֓ލ,ѯG̬s{dfk|Tl<j?ލcv^{_„Lě|kt7JN}W\#*dhٻ{ awc|P}ᠳo `ƎLI;\??}ƥ_;k7c.Iϴ]t|[s#>blTP(d/!^JiIk(/ˋGd0 OqP: la~@-<;F3;]=#ׁٌtMC/bO H^z+93xc7Lʻ 9G\b4XG1/ްwgӼҳ1qX),;ˤE;S2(vOe~yw ݯw澉d4&ud3 z8ajonZ.Ar lЃM=XVyE<ًS.PB7;2yvgth4ziU1Q^* 115׮E0ΊVS6qk(+Po.S1ND%b)ټߝf?s]3z&^TL^sJZ/V4+ā[0oͣۜQL [C'_W#q"nM&-O/u;\Cx%)/`2nEp84ȁ䪴 -%?E>)yQ"^Wj\*F{I>k2/q6!y%~)ŌT^*T SyOJ]o2+bd1>cTض+`nnNa.z\ 7P+vɌG?\6}țQ1|[y.47 4ݍ+:99ܞq3>B+JGزnF|:P٧ W wpBv!1 $f ڞtn|_b~ ќGnb,( F ɂPkfs£NvZ+sQh23pd7%#w|okm>^au;Ø6~ Ζ >|y-4(Ý]/IO@ʤ+)lJ'/~{dA+@7<a=~gS'~]Y=v( kzL/+5.زW mf|ׁ#֊_>ø9Kqht !I~;Uj2UJnQ|e&p7LiEr!ZOvA'? @4&[ydQ|:t~/)cXh$K^|܂kV:EAQ݅ɒ(|> ɜL5Fca-"*߮j ^ZJ('3-i@RsS^WpXxaXjf! n ~)|%>ĵZk?AΗ(#0`'DeJy|jlLb̆F~EN:}Hq h?˰3z|#Me澄^J[b0ŅtBȝ%q0&QV7ڮbH[477`P3vMtFBC@ǖE&p&3[7:^As,^\_S+ʾwb^-$?Ƙ8q#4qԟSsSq'݅fw; qpJg0?i\%3-4z&ÅٙK8ĮGgѓ4MEɕ,Ӫa=SYS*yܻ{|ژetFKbbN 4yh8['alZE-~o`fg wǘ =&ђl#hB//ԃ{J=C&KٛA8~ BDM'VͮdMh0;aUS? Of  @/ >*NI݉5w~7?kÙo̤aXǔO4̛Oq8.+^}!K&ܒôҫ43ΏȁQ} 5OWБNiz<$:T(h N5mf2cGqpjw(ɌVś7x B]<O!$.-TkԮɉM v7e+)<QVPL %[U0c>պ<[pd!Jnf܀߇qŁZ(y CK'_o=K'C h$SoSkYn|hxGѮڅ=_Wj\Z3hPdzCn`7@""*9"T#1l8V@T8`]ä1vX0Sh{bi%Wi?D?6<ǚv< B,: Ggpn'F3d 2&tso$jp916,^d~u W4ϲ'Qcٟ#KZ@vv7wv ǻB=$f>;xdz(#nXS+"ߊ/jC^/x#v fzZ(@u &ïcx8W&lɟo>wu?Z3nK?Һ -&/2ϭxvHB$}CsP|ktƊZ|Kiϫ5/xG,ŻݩwU]S^c!'r5I-AHI݀Cng 7Y4IL)7zwӹ޹>󰧰; 843U%el?Op2^cWÄظdrnJh%;*tZˠ%s~੕;1Fy Y3cBnD|ҡ3uk]֥BLPNoweR23w yVlJn$ &Z7`K5o+>G`*NOOFHHgz*gLxq }Ps_ԤxyԝDv:M:i#̬HNgH<"z@[]̪3z%u}&BZRIn}ףS=FA!^x;''9}S1:?|;%&u14Ɲ¼b)(t+R?b @wq|+˗Ъ ιG`(}^/3sLXܜD\YVΟI2b%rrnr3uhI<ʹ&Nbk,Ӵ@mܖcʡbO$q hn.,CQ;oNu?>E +PD~.q~~YԭrOn^G҃V' Xǖl$z3ՄŬZP;!cZ#.u7ǰ1wqnOڭUNe;*k҂_sh_䱛94jt&h!,狏賟j$vOȤܸT|)`t骪-,~_̞lJE}hXwx&7SO*X)4!ZDS|@΃ܴ|[%ϱ{'W1y1ƞC>@?NDc/"uo~Db_:-p[nN(4Ş?*,A;Ɯ5dΊM<=ʏXߘ:㴢q&#r lF;]Jи\7E\wbiY WV{4JLes$7q%=ͽʛwapgGTC˵ri,3 E C ̨*Fs9K|unn ]1כQtq*MO[FCǨm"g2&p}=Uq^z*#; rHNP1NGv+K ,OǴ῟Y/qOexeC_t u)!<"Q*z_|&4q$"J:onZSԚt94 ,-͟My9xnrF6Yӹcs0)70'EN#'o&j?xQ>zPwRБ5 DZ5A }+jA5_lvg ~{7ÌKJƏ<W"Q6׳Mh~ཊ3**=3%7jɼ҂jN$,Hc!?zO,z }w @Rcm3/G`"/5F̙kBYRKadEv!iyy*É2rzɽ1;®_oͧ0&f[TT,c̳7e@UESr#:;hx;!* @uG`0>uqF~F#NioF\Z{3 ]Idq_*D OZ('iؖ/:ǀhc7|Y2Ѳ @;re[[S^հdy P>jKlSñ('x,x=0EyՕW .?QHKV΍Íٌz(bAsr:w b^(B뒧%Sp;wvL | (&W!<= ?\(fsбѕ$ u]0g(4t"s03_K>EhhlEQBKAQ+2ƅ#q)BH\ !G$.#BK!ĥBxDR!<"q)BH\ !G$.#BK!ĥBxDR!<"q)BH\ !G$.#BK!ĥBxDR!<"q)1^\.Wnnn/**4MK[REUUh4^;[hnSSd/t_hhT7RV$t]2  U@4]9(Pf*Pd7]Ch5b6\Zǥ뙙ޒnn <1M1HJܺM y,.srr233}}}ag~gn*Z(xzɝ.sK.ȑ#Eڕ₸nYZ5O1wgn +Ņܸ~{c*r dgg(x?o6Td/D1:kKX%ҮGUUIU#B\0E]j.At4EEELt,MKq1CZWs R4i]yosje7EQmEuy ?e⟸$%VKQ΁T=6>*vf9}c~wk'#n[ކ1=&#SaʸJ6$Cm1b5+n;ӥ'v`+n[tC;&.vhwxAJ/a7b :t?K/t\T`Iֳʢ2a:ghXBi_e!jj+P}yEi0~6Vˡn-ki%w6`Nt{Z.|%y^'[jD.k |^gToѕ~hW5j:WUd8 1@'8Թ;:9Xu|-*m") h1fP{>ŷ{q]'өbuU=>|җz tª: r*§LUo:lG#Kp|+&۰Ì# k0&wyr/+K{,MQMD' ?)ط{$Pτoj0NmQ pOu6rgr+>ɀJJgL]Ў8yj;e)jPQconSvnqS‚%U?vW\;u0p3C?]ݳ1 y#ؤW-䯎ndB'u&WgZ I<[;(NHV9&cW]\FvU<>r""*s]eu[]-oҌ\t~Yϝv6w%=rh[ǂ#Ǜ%5| /~,:qGݗ7:}gdprHgr.0 cco_)wο_{ tI8oF4Cu>̝: H0@1*j:@]3;GCGJb=T[Hм1ַ|k&"K -;'p40bTe3Ҥ 4[YrPHqqz2w}Yn+ .t澛nQ]3>8]׋sj3ne?/hUyur4 @!~DؐE0Y<y+F/vo8prア{e[09k`eNgnvJf`gm%3)j6t/7KX4pgM'^&u|h+v^rU*zƽ\|Oh%;u=FY^Db2*n![ײ;^ֈ;7qȓMMP35*VVOQs{ɟ@:W ݕk{ab(0GkX+θ (fbsءJrK0O=ُv/SƏ?]u#zA SSԅ7B2x!l Su٘Nz Ao'cnZe_ݶ׸:Gg}4O^K=ǵ.yKR8H8 yKqW~ I, <_e2Xi} K1]= y#w\KtIDATͣw/yms4Uj6;Zǵ)+xT:3\UcTF&g4+6inџ+85Z~P"+onh,b=i /ҺL6ܦFuWQdk9Bsp槥WCZf ?,*QTc2f:+yvn12fx[AQ(}tøޏ=~/岔s%N#qy~ͫw ٶտUM;}O3ĶL?hYޟOV\QKMO-QȌ{ݗϿaz?0*=ogRL_;\t1"p55R3yH\^,S!np]{ "b0 &h4,~*V:M`Ә[+>Y{)Ny::;i也 H3Sxd6$\@R>ӘqM|]; ؗŮҎv<GgfKz6sY]S۷儨fKHH8o1˸rHݱo@wv.qhjnЁVeGV`fD FV+3 b M;Ν y/K~N O?ݼFA 11re޳ $Qn+Z?ཷVj?wi 0lY1plX$|zCq4Mr;?9WUU[T;j{+x.@\v4MELU8ɞJwKȈOmWz.7$b$!舂sӧU7m+]⯉7%E¡D `>۪tNڴ,{ލ$11onpCۥU{mTRd 6@bw,NN&M4\E.{ֽMʛ1ilα #l1)b;t\|wZw"n G äYeí3qf 2̰);r\:,xS0CF0bN[Vsdm˞ OAc[aCn>6gOA \P\65EL:Gn^e>ȪA"i:kHbG0z]5kvi׽R]# EȮ/,S@:ݝsec1CZ/sYi"]Ϟys+w˞Ϛr'í!ZM#3&"#n{"&bwborW|a#S򏯬6I܆0ӜfuK HK͝~-_aRyt61BЧ^;a噞 g^ uS/̶#L!4nq,o1J:\[IDI`Ŀ˿,sNexFr}}yUS]YS h DZV̄z2bXGC'o,̎} 5Weַxz]G0scPdJK AB)hOB$!("N8olTSDTY5!HMG~d;f2! )dH" Y7ḧǝu )6Q#HA3ќa[L4d>;6aN3+ӓ[0bCw}o_28#nW2e. F9GGĤ$)u ]]X(D "CT#<8^5e|`췌 )&++++**:={v/>ٚ5kzQ]=ľ8>V[^˰~ۖ޾z{ɭk?Xk`[[[_>@rzfFw>N""0QIa8`02bS.#F0b "t;YSHݑfs[Dlޞc FB,p~?MFm0:iZ"G e ["&?LD_E" q r둚FzBosi"knmj;6V?L4rzo޼kv3ʵޘ:uj>`ObƘʃc?z^.O=)SB!;}.t:8`%%@ r P\(A. JK%%@ r P\(A. JK8Hs厲ayA[?h_Mf{䡞PlٻqcɆa"xЗ;s@~(.:oHѴ;w˓Q?]/5?H۟޻}P`͊qw>_q/ٺk\pݒ->!ЅY<}j/ZwHjk!#`ͺ'XvَU'gň t;/*D3>Az`Xv#N8[=sͱ<_dۇ}gpdˏV{tH`1'^iGS-_!"o.p3o_` C ZL\BrCI-K+wdYuihOQ?4~KK 1nSmaGKJk/|];˽tLng庻\GL7~zʘqUw|<=VJ _.ҧƼ5"dޣxQY}~'C/zk]H3{d&'" +^i~߲ܲqg]v9L6ꄛ7nXx7į;_bWZ@'+>~jK ""ӏT߶K"rJ^}nqI!=fG/?17H̘mZ%Y3X߷'VXTӢ۶;wSs7Zw.؞ Q%hgJڲ]]K1 W_Xv8\PHsߣo~X{̼Y9j[jD$s}֜x9Plom<d$Ĝ8Hr]鎃m44bχ=Ng|n$}ewւo^4ioyg> {ͳl2v,EKۮ}rϽ6iEg>6zǬ[Me\8giTYE*W.+9u'EH+sIK\BBSnx_=Rq-{<z#LH5o5z{ʜgʷQ_\88cޔÛ[ TW69&FZ iK{_o-zq '\OOqЧ`Ia1D=S0H[}@ڧ|^|lk?hx^dФO)=;6 ۄ |Z[$naNUaC.+Xڏ/m}7yZ'Yͥ,`c73SN4/&-_$H$$IKsE7y: _sSE5n~f}gh""M͂S7|h.o"ۧ#~UWg#"M{F; TYeۺu_~ YS-o>gflWQw_xANZq&KW 12+ZH]ii b#݉oUWoNb~v Ɲcf;gL2&=v@^kU}̜9]$~&0+Qckr'˰q95" |菿YQoQhN9-`ߞS6\(Y< Nn'9W_zlNlksd!\)$"FVQceL2>vu$b3{&e?Ή?z-]\"T#xN^9&^xE;_~|܅W\2}Uɧd7'_v "+YMuEVYqGLK d6#-4s%ǤU_Nͷt,7 rDٴxjcU|ޏ>mij9ƍ\B Kqe ]61VZw~?rͦaҋ2Kƒ]uΩ;7*ĝm'S.9QY7_.}kWGt(5Ӣ ONq{>+%!SwVG(}1pNt@.!M>=ﶏ>sV\ߘǟsּy:3l#ƤO?gjQN8vLիsz79G} ׍(8%f5٦sm~eBlϷ.W}z5no"&XYYYQQQ V_S)=30O&""ZyOy dv?tQ.-GM8s` 05CPuekƘlgR!0%u,ár@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@@${XbGӹmҪֽҽ-,fSl#"hvviLQɣ\SF9'{mYA:a п:'9\}֏74[_wef4YF:OO;59#NW(À&B)eCdu/|TBE^/+89SȲbOg r,ĐV66 I'L;mNǏ;MH  2(߭ҽ5x >[9#;/&&$r eVcT?f4%q<^=ܼ˿ɫe` \B_C)}Pj1=(qYOϿI&r %1}:G ׏_8;D4אKh+IFD{fu@ip嘻mnńU^^.tT V.~D4O5|}->/q$UKDA(>D5`%k$!q޶a3>MvBKPK W=n?Pzcy+IDH!D,*} PIw?\y6n(&@.:" ?!ʸj_n5[~oxW% 6e"s+ Ycψmln0 *JS 7xl/ok8dİZ)x5/0Ȳfز.5^d). )>kx=Oa7=OqRٜq+A.h+B{ 6\Iww; 8yd2,#vGіpk3v[X%a\BvR>UЖ IـJ6/.XH)!,ơ훖T SsdO1#I8pJ_8&KIB GwVHC#&|doL2 LC.&KAWK6%BIm~z ) 1 ,!JR M+Oexg+=y "Ò,%t9$I UhKGZ ׎" B.!1) j-Z*O--K_dԕid,տ`A.S]ɤriF{*O---FU^Qp5gRZ[/1Ly%1&iJ啪_nb1-ÁC.SZԒHO&exL-ǹ6iGy>Can3 _ Ƅ nݿ~OBn<xb('wNLG;yޫ{) !+Cܺԭo٘3~w,Ыy_Ks1OEH6S㩍1Iš].yה4f2N}D%Q/ɚDվQ 8cEbR22XYP(~U[w_{}m[ #i%;H=ejbĤRHa 2T=r9;wٹ6bd VKfLEe2vI`F<Ӊhi/V wynp$*!j@yeJB.S2h{.}.N*Oy~l3n7m7n=SiNLJ<!f_#oZ^Cy.;h{}|n2E?sdw?$?,ve?-fHDDַL)e*](z HgNnvw .n1Fӧp<<']oHsօk[JwIe*B.S5cԥh7}/;۝h]R>>9٘fMv$q}7±Ÿr@.SR#)˚Q ˅/L',o-*kʥ᝿u 2uE(bH\.%mmzo}Lw?ܬٿuϑy낭OSsY+T2!(+o4E ۆoSX>o=sͥ9߮@H)e-SOOt JlJsF>^>Oi=N ~{+[wo# {%(׈HY=3c};w8BGIDATGG>kMpmm[)vv?Rrzz,$G;2=pB|3dR|KN\* ԃ\0(8eviݽ/{93oDZ{5#nࠈ\{JI|sD)g. "IY?plOw_>n_{|w+ֻNn{in3ysSmٕ(Gu (eB.Scd1(Msrl(R-̬Ӛ+5Ó97;qKWB,b,o 2UYh(cMlfJy֧V|݃1\w=zגjV'w?BF &#(lLQщ[ض`mim壻2~-}0Lie x8lvdZA.qk5nˎ@(_Y@673^1Srzds9 _uGWoz*|1./)u#wZLEV+7dM5_ /o.}q O ?IXG+ńԃ]=zug;}Ĥg~!tP\pڵ'x;m, ?Xޒ `[Ή:bgIc^[C.SJkɉkkgۼӽ[f fw贂GFHu[ګ%ϱy91skE|koI\z\ĉqi#&k7 rҜ ou8V LM֥g\&'1~Jاwk2ޠasY1nS㚵$0˔c-$#&̚]jsɝ\??wʳ{7&{S]Ɖ[db1b'%$?/wJHd^>/gDc4x=j˔%G4qi~nΤK=$;/gWkLӈs8c<~ba%Te.gK1I$`7kwӧ/ȝיb͡3-6ѝF xB.SYt=1IMgNB\g# ߽߫Q4hMdUhRgt4s!'N@XKK΢'AFLӈ۹~S iDnխ;1n۬)vepKIqeʓ3.%qEtH7I7Noז}uGFtS|[g6[ŌqL-Liݎ(O-M)lL78!#ҼVE#ǜk ѩ%LkӜRgF4ĕyEv݀^hVژfc΢9YLL-K`ِzG( !HL~`|a~ؐ&ر &:&ѩ@\:HJqq!yҔBLJNh5̍kHKIvHs2~%vCr d2z"HR !b>igcxf/\54N<SK 1ЈK)uBZSKHKwbY^ʼufݬ fᖌq$!@;ɧ\&$RHI7tSMn(]Ĉ֢t{u:Z4R2ȥH*?NJmH[7:%3:iFZث r ]XuĈiRd$)&ĉDa_r>P-Arx:o'Jcq=v0@%t]w8FL2$i$ͤYR(\c̫s:]ngfg-vuc|%r ]tۈI%Is"%qbŮfd~g2+i/!9帱0gm]F־NJ{kͣr E7bZH3%q;d.'hl]09N4d:^lmi%z6ΐK؏>ʣgΡ&8qɭ^83|Kj[ުmmM.4]`g5 ;lH3Z[1ށC@.ာI&g=VqF 3BFܐɄIB0iJs~i~I/dI{d]kp]kdG3ϮJJsubC΢Xu,X|W2$C+Ar qa?R./1I3" UL C& qS1I4>琒 ;d枠YS"hJ"rj̫q''Gh6Ʃkݫru5Ԉ_r;q zt:v@ r J{3ѣm$c,:?iSgA!M4M&qAº"$)D>M4If,>5I4d1"A< J;z>ReW:T!+U,z(;31K7\ A$!I -fe;b{1/c/KEMIel o4.7FAuuJ#z4$iL$9cBJ!d1a .Hi٥-e4;OK;O2w.ֱÇsNIZd]7%r }-q$gLi ) !`\2"zvk κ?{*0΢иfcmMBcx( J3g4%IFR$[0!E[oX;y{{:?$s}uԳnD%!QKHd$#rRƻ)d"RҺTUxvLtu f썎 %$r [<[EoNݏT$sOvG? \BVh Xw[Z2$iL36KvW %at2&-@=N鉮;^dLZqV0K8X;e`O>B 4 -<K%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ 0`8BH)="a19N3==]ׇa[ۗ$lnnnhh41f9 ` !LlmmmiiLOOg%{P4r)knnv\$[wiE"TaՔfǃV$i}LXid0˕lll4 #Ioll3ưc`0~srr=>`0589E D"`PG"d"aO_%9B${ 3|Mp>!GX Ts*XkoX>ԿCyCeo֦4Fե{lן|s뫐LX@"W~ku vó{`:3.y tR&ÀA.a3/Ɏyms=ycgOnz?泏/rc<$;ܐK`,}dN3.i.oKl|gNqȮz.񤉱[w\b 'Q$'>;4$OZGMD1ڗ5hJZӪ>iyYϜ5 "< މ<|8몇N6)%>uWdRJ95~I!>7-vocMcl!P^hw9~% ~U,o7]1繷I}F9N̖]T(VleMQ_+NqX% m|l""2-4w?y'\>ˆP `}nHAN7f{&YiXhH鯯dLwӴN1-qD loh^<^}g((}55:.@4l}?ҿϼT.){Wu˓Ι6ռicKҿ6 )Zma =,a`H/^|^3FD)C ANn#1鄉E.vaՒ^{õfGx$\ >ZרOջOa-m#F^x[DDҦ2Ѵi*tD#͓&V+{̿g"*^xWhqw++++**J0qDF ۺim Dĝ#r: 7̷[յ;]`F##7ϋɓ''{ P^^>|8'e[lQ]Y3gvz{Fv~י]NgWcl8]`B fC.!f;ㆈ~_Ӱ1 `0 v'{ 3|f>OJi:#iRJϗ$ɥ|E`0\.W0g19|a:N4`0Y\u4Mq!Zgffz^UaK"rݚ9p8 pLcl6xNHl咈fs:_9``X4f U0%q·_6Ha? JK%%@ r P\(A. JK%%@" mP(!"uQ yLXП6o "`,HݎiE?7z.QcqI%76$ Cz7qo_ JK &1c|~~_` k w$17Sl ~~H8VVVVTTa jX(A. JK%%@ r P\(A. JK%%˓= `(H=OIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/fig/boot_making.png0000644000175000017500000004740314122570751031606 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxu|g3w-+-P ]^]^]h B).! q]Ǭ%$C+v;;;Y|gX~~>!tF 55T! S} rf$M(. !DKBфB4$M(. !DKBфB4u^+<\bkR88W( ({vqC2[^BNnܲwίn:b5 ER8;bSuS }s㟞yErrJoc% AF I$/0@LCXPtP@Dnn9bB9%=b ׉EUo)͓Μ!:YQ+X !D#WbvWVq)6Y@U+YPsFZtYU%7wWݛr\Ze( Iġ(fE%ɑ}O Utzb!S}اKu)ːEC1l1L/E$E2p thE+!rzʕݘ]KE1[Ѐ.g:*=i(tkym(!h*+1E$+?l;w2㽸"׍+hLrxMnILzO:th^l۶m]x!z48'1 (. !su__/I=΃ۮ8nX!:kd> T%#$I% 08bHd,f#&S.YI$z=t% 4QTZBt]=Gem[*d*34lt:bw1!]KKSm vkd0f? @(Bw\%,!X,UuMI6` Bq}ߎt堫c}kB頋?Ӳ1c,++GkB頋{mZ5no4Zr:b\u\ B9s !hBqI!P\B& %!hBqI!P\B& %!hBqI!P\B& %!hBqI!P\B& %9);4yWw 7=t(?dK+Y.1d=ݷh m?X\)rw?65y{T]{eۡ{ѷW暎OK'zW?$ӥ~=,YI4U.eYv{cm_f JիXr/=\Vmo g5Kb-ݹ\ GmkWTHb̔)c)?_eD R烷o>xtdG;\v]HLg+.CǖPg ϛS_tT6drZ*hC#(-I(.Io<$WoYQqWL@ٳlmX|a6OL;Wk\rK_V53uT֜6Y8Ǯv1fw'P\n%O}wXrQ{u9wd_jE?h^*l V}Jg\~~@r~TƌN‘=Y#Y("&y#=DRj:_܁Yi+ۍG:) 7n:t5c…o.Ĕa=y~LwOoίJz}P⒴&5V7b`XTz4[3n΄XrͮW,f$SR6]_0ApsΏ_|9SX;Lƾ<%N.M ⒴] .J<ʎ`u|͌9$c`ud+ZɓٌF 9gYm̸eĴcD|%91%g_+ACfcm翷|{:TݏRwTW7?q@߽t^k{8-)o{)oځ񒧟}L"g/KoXEm6yN+6|0qnXY2s!7]7]]aoFD<.!Izthq$1]lꘌbBD7W(( 0R xr?j{wb4v@>FsQCFFٔ` Q\c0G;?<cpq"6WX6gT]Ra327z>_#_o˳;>f}h(I$Isi}W_B[2ֽ7zwq/}y޳F'3J*Y`/ݻpS N; QC.#m {vO9ё ͛l>ynK^r[zO!@[>L` O}pLCqNU qbG3$݌ 'A!jmO ;݈Co}Y! Bф⒜-~AN"jo9 M=^Vg?f#1wp +/|֏ I!&cQ\TshϊvM+ lU~dEd^n_\Z8kdM{ tt,-bvgw$f󚞮F:gQI]AA-A pde||:CLb1Nx|j7Ƿw2o^ǯZ8~ "B:F1pv|_|0P븖$kYE2{;NVfsW߈$ǂh*w3 mo[`BUe`-ص/HJLrl(.&xQ! DG ۪UO|Ƥj5zUx}$1n= r$sݷx=%6mh6W3Uh*̻^})1V4C:;7P_ AŜ_Ah/K_Zv\w Zvvlu%).IG\Y Alm Lm.NBu{Xi1X,x.>2: O1I$reeq͜18& 9nrգ'gyCAyMyI%=T]\QS02{0l!Oי H7PSOVz3?pTc(.(+ŀ`)(؃!wJ7" (BrTǓbt$s~ˀ2<^yz=!Q\KT+;/PD"SDaN`M0%Bi9/&S'&@qICC*DTW~D;X BaW q r.‹itr%q79ko ќv782L:1\'s@RሴPJ[,NK99 쫪S}L/*Q`R>ҷy4K!Q $qT LGq<6|VyJI%ڸsw%N|ťc-}[ +u[dU] sE$q>ʳT[_S7_W:TWԃ(.}E'r3O5wz0}ťOr~ⱳCSz _Ywƀ?Ɔ`t0R]/ W{'Q\<lMٶ0"~]՚zp}-[Z}ruc7|Bc~r8➹|֧_ڿ^E-gE|G n9gs17ZPu\fĊO"/xPowvȆjj_Cq8sO:=fo')zA3=1sZs׏~2J $:3kg}'s ߊڄ\3v7cM=6c(uKiFC>ۀr 2|6<~z\|٩(җQ\tctpUťʪ܆\3 O5k<[ynߓPi#xD'}<vJ+YD Pbat%p|O{(.}zj ![cэXeJpֳ 5 bw^ãP<oC=u``R꾋GzQ'RJ[ujp}ߕ"9aOAVV C0dodnd W.bDÐ3ťQ#\ad`O8ϸԶ(t =rn;eE%Fp1èN7(6~9Klr{^UziN!27HڄjX4BH Q{e hT1_*jKŜ_  ՝5pWO&gEƿl` @Í)Q IDATK-c$!D-w]g9㾢U#1A`\`}nDxDpEge3Fcu$6Vcy5q؆,9!l0GO;#Ɔҡ-#BHՕҷ0U av?aTYu҆Y{a/  ј}c|؄ 1JvD0ޱYaHH JDq_.w1pAzyVwWu%r40,OhJ͸gn-doO&AxcJ`Sf&w=;ŝUz4D[Eq0@`Lm z񞻺򬧫t5  G/i/̎;yXc ؃G3l_[~|Q8s2'S}$΋O(2l 0yM=lT.y00,g~"  \dL`pZ%>Jg2`((=. 0(0p ]>cGpId. "(C=-FɨP\(54: I >bV( ̑ K(.}KO+1E" 7DrqQ`"kJ)A c%jfԃ \T pe˖8=>dz- "FíJoO0hEdLd\d?0*JLDqZݗ"C=1"G#aDEqɘGՀzbN`jI&\C07O oNN`~!i L"1"Ѽ߉飿n"ȸA/0WK]ek)2c\/@/2q?/&*'R$=^HTG3\/@l(-}&^P\6KTʣ$%ZgάdzD7<7Q\4S 0QES le rb`6ZZB?i@r,{cƌ:P/0d"Yx1A 8~_dY"ӋPKKZOLL@d\'pڑ'0aXNgM\ݔ΢q}pEt>Jwە$ǂhus7"ȸCbjhSVL)s998`9g;*Gr#c10pM]SpovQ-2\d\'}λd E&B$džQWrJ;/ ̹@H d \١ ]o:_YKəѕ0gVGcxjDqI{234"q="2Y pZi#41ɹ̝zcB;89+~h2*RԩE\(\݆CgLR_YoU@dzo&@b*:?{׶?}diiȍ~hw~ԫsz,%4c}Wzz-pP__W__WWWSS[]]]^td߮6Z^#~GqyFK|77;26,Y[HۇvxZrƃnauxW|{>r`'k<9^۸pQf5t~ :+{o`/}to:~V^(qF̊]OJSC?oߚz߿ڞMzz3ﳨKMH2ҧIKOMNIN 1PR3Mojy?;w[i?|M-vGOym;JVZsnzE !/}<0o|]YfwFʿ[mϏ<8T$ }A_v΁;l xO},? ~2h'g&$LϦ-Sf;vGo|ǿx{ݛR06K<|e=o5!)Qy9jg ~x๭x!Rv;/a4=~뾟/-Â]Q$Ʀ!׿D13I:{=3/#|u`1P[5㯓-V.w씖 }tbRBq)9[P\C q Mp5oQ o=HϦ-o~tθ4#Hs ^_׭{Wr=xOp7^k*<)1x\А>`בsQxEn`M>JNQwM ߱B2{z׍mczGȅ>䟝ɬ~g73mwszkZ|{F(g({W7Hn-Z }y1xŠ{RǾG^ew@qҖkzySkoh[8/_>oKʼl;Zh\AO?4+fM \{xx+*iL:O3y7kMڃ?^Ι߿},+l1baMo?6,l%_zDL05c]k*Jѯ= d& Oe{zϋ&o!pΊvK5>g˒U8vҴcDZgj7,w֒Q}ՏT7?&a~M;w8wׇetQ}GF91&.Y)k1Ko^?eÝdfOJALH#">$:2I#_kl?5HtM?H&:fᓓd9Z"\;$4E>g]GG4W P*ּrу;[||:u\ hb}ypΕWW;f0cdg+g 7.[~oOMrw1-y w?q=2?^yW^zG=\15Z ׍~dwuMervcxexc?Sb?Z}Λ[WgĴ ]q/~f/8"2 Ǐc;)ܔɖQ>a5yCu9Gt1ivϖo]OGo8g"z1&&+ >g`8Ze%09޸gi鈇q]&,oq0B]{?@OQ0J,R_]@^WT'rUi2E10m踱*w)2;X>B oc]o w?u,0Y XKեWLUok g=٩JQ)]|󅟩><)nbN˯lLj .Q10=A@ᦒk 3(pѽw&gꔱӂiDqIN1qȉ]z_ڋ›/<>tg*;G}λW[L$Y4e\y]~8rtΈ3.lьי~Ys^*rW]vZ; Č+5ɭe?E. z|̌s?9-M='N[rɒ-p :9W Kb t v~ku?]N8k:r<z߼x]y& Ls̔[L(`1=3JpYi!1Re^o7쒛tQ-sf#DowGNN,???55Ti((;!'YAAUc~!!h M(. !DKBфB4$M(. !DKBфB4$>{P:!^Q\Y<sa-4+WnYOiغbJr{4j bO:vK Թ7c/c}ob[JO]op(֪eRe/`iW^VU,Ǻ7M7.kn*>c1|E [9͍VcQ:ۼ}s0=Y#T.0%F̹J3kY[M'3P] ^l?4s af`ʼdzʾ?V k:7OH슬$bM)! `iWN [U8xKy?-ބ>AB҈)Em8i8.ɶdS^V^ΨsD7jc MKcrٞw7:F.Ɗ6UwPo/J Em'SnIEd?셻{묍Cح&b)mM&6~ u/m>_rQ\Ax]^Ь\Rnٺ1s %Zmv0{}~@S q3ư۔IT3B@0 zSj7gg~ş316VdcSDhCYbk1A38h\BJ<*)5̥/w`s,Q<blOK ljU lf)*gm{0W*yŵ)i>UwЬ~<_I2xj&K@7nmZ g5PA}F4,L̡(< Oо%K'O sp.IvQLςVdDJ&#BW,Q~{>.>mȭr|Mm=Kؑ3lڎ{}/ ֻҿuyKU?o.skU䀱 ¦ӉzDf[2#&lQʗ 6aL$/ܴ61kݻ7sKK 7a7tR5;7p,LIIDAT95QaYKo-m|wl'=枟j-q?*gFdRm%:9P`F[7~ ?K޶Oc61)}}S5Ww&!~vYoۻ'2!Mhw?ޛe޽l2sg%T}x)FqyaڏJUC_Amk*:"2dm2cL(Ts MG;!8V|Rݭc!ayw^{zG%G96m_m9IJl%x)!Ro]VKu8.ϦA+_- 2/kXm6삾}./߱jߕ*eϯ:#,(#b^}pumtBMY{wZ%&%|G*e{ ^"P5`!RѮC ͵cNns:t[I"Rygf!zLڂq%U9ad>lsptȌUعŝ D@ -=XqIz{_sIu&]{aɯ_v|,,q@^Y_r /3噆1`!F0]1@#;xtj0溞p]B@H׏qy*:T# ߟfߺ/js'JK QtF=8 HsOy?>n=`/ݱҸ9eF;E(1%-r1eOV /m c9sqW6aF_7B{?hfi!!L %}~&?I $?UMv g"BRF5 Lk 2l),0$G}EYSRDz\UPPł- W\ƈԠc:9(.T˒pb@RjҲMcֳ1c@/HZ•C[ul%ua=}Mcs[ WH#ybw]wǿwi \Z+((2(KG[=-Kh7n.qH \mi(:(n{P0|#z=:'=~7m[b(֎VWٟRVhSJص Oj_'{Zб-ݰuAk~ꍿJYm{?0mӱيC]|J)k]qTh[xfZˍMY>K63Ξ7G >֩7wjM{Rvst-mJ)*g ;]Z2>/[7 d|nnIʩwZӚU_,OMWSs0B'f2[eM+>9WkeS;_.|ÚT~ߞ r<9Uj^m=rhSZ=SKo_1߸b4/j'O>Ƨyͭ-Mzұ)W<7oML̔J)bVӳVSJu+}[|gUKəٹ/W,2o>mm/^3皘vc>W~DWO.BkXǺ.Dw~9\=.&~Șg |{gnn W/ާ644d2"!r "!r "!r "!r "!r "!r RH) ]B!*IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/fig/failed.png0000644000175000017500000005463714122570751030550 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxgtי?Vu9DIADʒ-8${fgvӞ9l8AeI̜@0'$@sFcսF,MTt@UB݉ bbb!@䖺 !pD!I0.BHK!$D!I0.BHK!$ye+m-f2`RF)(epVj}^B->/eCΏ &HRlY-׆ m7^q?wBK^;Mn/t (G?:%**.U i;oy!$l;U^_vXMD²}a ~G.2Y-j4B-ecwBA6(R"h*ڏ\ҩ" f3ePsRD/6!;mCo=DKQcMx"bjf k"2*`&tZL ˲Ct$JjA-*y:aZU:* ZEݖ#ТZ`\*eA$-& *y^>01 (y]pcBhn6&ŸD=ÆnQKƈM*{Fmdc.7aMݖ#ТZ`\0ZեBcLfo\&Z*5 R08믉S`g!P[`\暮sEJEJ41Fqg갚0Tu"iT4< Um9Bo]wD6zoRBcE4[˄(#;"x@E*D}_Z>޻MAN $!$ %BIqB`\"$!$ %BIqB#!Н`uB`\"$!$ %BIqB`\"$!$ %`4 wh86㤙sc[z'}zqc 9^.cdlN"?}|caczSW=NVuI=q /۟/ڈG*?Fl/S#'H%|yWάD[*DLYZj'L2RH34a zҞYœPđJ!߄qfѾv"#"U>lj')U>~J2RTkuFc23wSehwiq+21..lb~b׻v DҪFmW][sM_5ɸU+q:x2}l| uwRepD\}ZLx~uPHf&qkꀘ`GӸ@?G{if1cwCHtaYS}q6V= HQ`ʼn0.0csU>?Q`~OP)Q7?JAkϛo*ybeW=FYD U5ia\"W\HT9†-YDH@7FˎG}y𜣆PwHPUe= DI6cyn \6H󥋼"NrZVKtLe{~n0SG-!M7/uZ2#)bD[ꌧrYDLGGzDGа N;0u˜uD"7y¸Dwۓw[6<⼟q# ן8jYUYzm9vȥ69nȭ_z:.6qAގ1}W[z?}-Vedr$OGL}5Gl}r@>{kA Ujq+*&>SrON # CJۭ \8[yD0dg[э KZԎdᆈ.aǾU*;_lk8P^zsHKݼ&H(=V6dsN ug]cW(.~|ߟz`g͏Y; @H@g1 p?mfi͎I u{ b\)B?pzYOo+Ȉ 8߉Z6Bryַ=ʍe -"G}]}06 f,`@JP?£!"£!<zM!(0.}kcZUPs :g`ȁeC0:DsspZ ^xX<"K %b,BjNJ΃ -+ׁB9 K=L)v>'eP[j+@Wشl{4Z M]X]"o` `rGhXhy/ٺ&'mmm8*JZ1m0/ihtdsu2h3pdG {Rt%/+$^`ugdgKݦqy%˱D %{ν~_@K=ɜ{!2v V[}e&Z81vNgàO؍3Yy7/.d8@&_Awyy9+X]"ic 콷!;oAfB`uyRѿ]yȊJJ11Nr0I%sVZ7+ V~9"47K47EoXm0򥹰*_9A(] _ (Dwq0F??.]/RDh68Ճf2f㟓Dr-.BsypJ/Ř?KøD +Ak0|q1.&63?%r܎}ȅ6>p<}LL LN,}ѷZt$&BN0.4!KJ(c@|B@)b"O\,XkӒ6hɰfz夒0. GtbB%/EC4`DpĢ`\6-IzK\bh"K10i%" S9O<Ҳ 3R7kM3.^Ǐ6.LGfZtjgN<5KVy`1ZV&&XZx@W9MKK#޽g٩J%IzwP~sVҦFԋOA,)u.C>> ҇9xluuߗǏ ~0SR7{ݲR%'\Zcô7dnYg'0.}c(e /<u.#c[T*寿1[Vs`54LuqǷa\$1F<#|}5R5[VuBk^.1}ƥos,!j߻-1_SlYyJ.\!_qK ?G>pJǯL[ldͦ}}`4%¸I]J1,E8vB%1?1q*T^fֺ&뛿yMfg{|ƥe}}Gbc.#}G(_]}pg3/&1>l<x^'δd*13ۙ-+uviRxG$#c>j~▕_ۙeg|}_Kٝd ,%j O%N՘j'qIYue LǻUN3ۀ-Y$; x֛%,N%Wauoxr%f;v Jm7-a]98bMX]" R7U|2+0.>nI(--K㼊{J"/SZsɉ V*H_*U.=>lwIER+Cd3T*}KMY*n/A@}׿ǥ2e;|?3۹$H/z0`\" ~%T”JO~;oRz3T*o|H[v?Y^8c0.АٱRy ^3d;v-1Uo|$!SD/rͣT=>>| D-zT~ٲr%.rɅ-Ѓ ҇M!!:ѬPΒ?3Zzhg3-J̴Ej0p$8EC>8V :B4j8s&T~Y)6~{j@"kb*.3?$,hEE>IT~]4=\(7g^9/za\*G O߳%d?=k9̓Ir>)nt.I'+׈JgE%f<'IcGq#zz?JϬңb 'Z5ǹt`\*%!Lƈ/P~4?R^6k=r[b~Hze+2Q\^70.}}Gy2Q*?6ផ {uOLO^9!.=q07} ƥq^KdzYRw{䑕o-y-|xı}T_&e) _?㸊`\*Ĵ󲼻>{YsHXqILOe+3^"]>QZN#N':Kv}WbCɋuKyȑP IDATl$6uxeD/Os~}\=w^ \.rve]*Af=Y m|BPZ&MUϼ8vX`0K8!s\2fxgGVZ|c1BMPJex.11}v}ج>*0~t0SKpƥsAQC>}U)帽,.]r0.}DyU+w.y}uDw JbK_e_6h (G:bu \*|l#! FePP!GVTnqn8~MøDӜ|b;8Um+eQ_a&7tJy,_%GT:pm G0.CH8AL7qAz+;Lg͗kd9UAzۊ*ґ2K]XG@D1cv7B@ΕqGJΡkd ղopJy1=ตࣂ^a)o5&|&#jz2UaGvܲ,0.lfnY)++1+ K;DTrUA GZrtJ!w[fEJFޒZa)k6_Ů4VZ*H'j1npϩpqq31B ӕSlU햊6[Ky peN<+jѳt[Ds¸DsLLa> @{ DEn"TvX+څQQX\iJ\9k\z> SFhh^nEǭ3DqGƀR.@^^6kkkzF\rZyR<9\FJ(t5ym$<0.ѝ͕e(Nr{ts`pyJ0LVq M␁NV&J (^=Disms;BfĠD`\"i AѳtJJt0.7x3tN9HFG w{nmj-Cݾ< ysܞ.0DiȭYN$2KmΡ v,qyMΰߍKt8D9ȹn*\XN gF48v|1%ѢDm -=gif Y's0.ҹca&l'C!!$D!I0.BHK!$D!I0.BHK!$D!I0.BHK!$D!I0.BHK$'m@MIqyiXkG˕pVy|{b=#fd'+o/Qml< ƌV W]qm}P`GmlW2X[J% Znj5ตM4߾\o@+.5-&ˇ}1$uԕ5f{2s͋5C.mⵚ BkW:,MԞ;֡9qAKZ{"M[f vߺvqͭÝ;[ۯ]8rq_~VSt8G[vɧ˻ls0Fx6aD̪b񸍍x"t3=hih%mKR` M4|[z<3DwC?"N0;h+0boPO S/]ZUҺYUm;BGT [vD|80CCUMōu5M8mX@fWAR^.o\Ҩzv}l]ﷇBtiNm-\㯯pgW2Fg?8P{)+V`-9 pzQ.G[MH37Dq7LPU2ۍ:9C! O6Vq/}f?ЛWfڶw%p=j_YvWew=ߟ$,OgٱFhǹ#3`c(g?}PI4_Zd'?/ 2e:5.kWc6kӪ4=y9i{A>ПyK$f*m ^%PRިM߱"D`nR:n^IC3 3%ggxll4 SQ>tq'y-GTY;%MAoT8&){}v5O7 ZsUf-k'_mG~~ع-~<4W:͌ GmGcmꉫ'?oݟᠿ90i(5qƎ 5ˇlCN?H!\Pbrty6T|}Pbeʊ怈8fY/"elځ#W7~ow.,5)Szy]@9vaӔw@f4w_{צpA/>:K *^螚np{W\t-_uM cwU2sϭ1.zEaԪw>aӟmu!+?)zlѩQ5g [/j.bͣ.ZLd?/v=Ti}ne“ڱz wUK{q!MOLKgHCDŊnE WʳvM썭W{sa{&Pow$ِdb nzҲvcݽBB H?d-aŠ$\cD% y)ꯆVYMrzRj>gO[B̳4%ڄMi3.H9a 8z`g3*R0ǐe9KqLZGK# ~G\]Z2:3M>4&4 ;7dO(Ж~\5 ['޼Ѧԝg y>02L 67t6 1X%(6\_zTˌMWo59ߘ!yjp" BEr}PzfkvnLLO%c٫KjzV p` ?B*φV.|ź?{0.Br3a3NyO< Dt*u.S_Xj% N_3:ǥR%\hFJ57S H2X8]R`k3U]C:FaSҧ/٨9.Ua](S`_w9Yy5ũ jfYZ:ZZjPS`q6boEy@{/ۿ/Gus $`3mpt, !ED3qssw~T/&uEPXQ Y9xBN&"D,?\YңN+ {#=1d1Cʩ'2B8mD\3_8[C_煕ЮFc ?Z14 OOUuG  X 'ˇчŤ&qt:LQfluoOӻ!34ߺ TxՖ]Is#0N0P[,({{[ZϷ OnZD6r.s%]l pSqR{3'g^- xeJY_hc4dD1Wj`ŝ\憧#-j'9OnK #lcioC%#u¸!i_F1#3w̬T\36XsL)kF"ZrjJsMB_cS׸UޮˉY5w @4:zy..dANO4k(M}ybҮp %r`{MY.04SG4UvUR6RWғD v>{zS5)z?0.\&<] Gqw. .kۦONȲ iMQhéMg,X` Wک)|!z#΁,O,ܲC^vJXeXRr'6:y9.\w]rmXxGtߖ`j::K^hn=rʭ-q-'C6eǦ.~~zg¶X\I?fm8o_kB0(/iY`hix;'BMZ=6`ڑU9n*++ק'f3vtexn}/>hhQqs0P9ՆG_ZdOkgskW9VGudYt9ƹ>kSW%MpC\`\\pXpBS@G#"b./SvAر<:TDlcN% l聃q"p\E$dj]'e+ vBfGӺP#F19Ԭ蠹:k}3wu( =W#bvN痼u;&9/9I=5-P{Kpݱ}vf-`@OQs@a٬"r_fs"cR[Kﮌ\S&\WfNR&t1P[|Pƣd!ᘕ@f4q/.B.au\sAhTBIqB`\"$!$ %BIqB`\"$!$ %BIqB`\"$!$ b0ƜN#EA (20X+wpKse '-Ф?ޟiChjNOeb eF>?nXXVd6CC=w uN9#΋/ <@F]O&}}vWs1wy6lZV<91122>4<:d[ 46RQ|ҐXaБGWo[򆥂lblؒ㥵6Zo̊R:&[Oiggf`\: '>%ʼ'.$eWVuVOfqh+1L_֋/kcȀQUd`5 f#\!^`(,%eyUPhel㘡@`hxFÄj'&fMPeccO>ŷs98p_~EE]›N,A`4 鲶5uOW+qKm7o zqLdS2:>j17YY'-p9꧵;B^}"L4 㥫f?#;>wfOAz=z;#2;B f<6&W*eliqqAщku*ey*&X@3\(k]=N@drO˿9(TzFUt - 8v\a aS`x*++1$+lzgܒq&Zbb'jXgPTRfdJWx5{LOR6Dl1j5} }Tg6U 羙}@.~v6ˆ0M}\;go-2uzyەF Pÿjde;Ο;]Z.lw' \UO_Sz^*,?!2S1FAI&kTo^w|oy_媛ΞHܼb#s׷D9&Xh5[ix7 4$"g *Bb".<ſ;ߗ=woJ/7'osֲޛoR;9oOVAB~=?#gq8\s Z퉜@6x|0𗷮rw~{}0Md@E~m_Y%Rjl2~D_AֺDʑ+?Lx~OxW))/_ 60[\r2V @z7G&U@~dvl ?Iz4%2F9IDAT=Vd-ae޾88 ֆ0N:X-59|+tWV9G T_ϾGK/o.}xnQ)Uɵl_9P6Ɉ"w;@>d2}x|oGh>,73l~l3,p׃Փ  ,Q(e,,w%K q^pG"a?oxbzlgw>LG8} ]zSܾ7ei[Ω}m铣žWե/{uosv]Qa +]¡+;0cˡw.Y9cTd ޲q}FQb0-$GWYK;2#?:;4 [/PmJջ_]zuQJ<%1}Տ?!WOG{uTĎgҺ:Һ.is3}=->Fl](; {ψv]>㿿>32ho*HhoԖ<5屏?\eno{U~n{lM~{L\ {g̹}Y9^~}m'vt!> cUB0a  Z'^6QсW6`ɱ~P^ES jvډ܅PYK+tN/HWӘO}/ic/ @By!/@h[i4zgbrޔ\y;0̍&!ߩ6ɹN^@;zl3w@lMgUny|d޹ ۽K_r|4 26\vݾ q6iY.^v ELjDPog/ζuͣ4(nyqZ2,]4[㔺ʒw Ć[&җw6 YkÛJlIrJPw:]36g|m M#+_ا8 P\AifPRFHAe̺eWmwEWQDݥ PI\$>"pۃT:Fnڜ7z}ӟ;_ޑuad@j_3ɥk%(@k8}*z,|jNPؚ/uӵXycqo[#Ǟys̾PlcNCJdY0s5Y Ze&k4¿ S&(G2.643*R6{J9yKbp8YpZ[-kj?Wy >02r/uc1k{ITV ~,UGNE`XD`Zcٶ:U|lXQIs"J]23?t+wYy{[rff+gMI$Kԑ.@ Yu"YG,۲rl'N)o[[[gOSڭJ6)'veٖOIY%$Ё`@pi9{"UL1Ҽ~Vo_n |xGONM%}M>!s_}KUR_Ȇ,#R0X-^xYe;5N$Hv6ͩgӼ==9_ʔK+RO/քPW+ɡ}{!-22Uu_$^rg/LQPwob]*t->EG֐[VEh!jɆ/,>^PE׿)*/6C'ҙCĵWzJV(zK}͒k4%Ѹr9D,g=Wlx` !4Ó2T1K1lyӼƣV9Db߉Y%ĩ7?"ҹމΦV eUM%BSӟ }o`ӳ3QdzOaBͩ)-[c=m}ãᑱ@xe ;hrW:е׾Tmc7>jz??V"y7NۉX,qʲu{EQimW?z@˱筺gZ[i[ym|YdܪN=k>j}d[=Wb-*fUsMVqdf+z?~Ћ{c VϬ)PB-X?j<>PᚫeC}P\K6:ՑeFwl;_1*D<6s~ˎwَϼpz/P\v/9qġ#;ΖFU% !8b_>z{Y5W)!la@kZfp+ oyzO`GXhSKhzZߧ{"يJ*[֖jj*?+Y2LB䭦_R1H+].D"s # O6i w;>ڹ^=.V}u\daE"#_] \ 7>yEZ%ChdxP87BT=#i5oL_j'u*"m[;W7]UbLX_%ɻ}As\+Wm-\reUYeQh6GΊ D38じ3/#Z`o⁓P/(yaԫ>h]0 ݙ_}joݰD?[s򭫊t1sl^ a8ݛckG orkx~9rkv[9e:٢nٳ yݫzPO}pW:DmvʇSIzw^8tӏJdjbZ;2:eyxў(&8rO.nXMbJ{lڙuCB$n zhFOm-wǏh[&æC+gv7SԾJӖgOh~u䶗ٲ̓+Ncmmoz뒶醵` !#f[bZ.OrLZC[[f-TuYXhbjlń H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%H! \r R%Hq{4H$M4MSQtpmkian[Ӵthe`.p(RUUiÑXl۶,+FQx=9i) H0 fS%5,k||,ZQ̙93L&5Mm;0#L{s&scL̜\ gYcw.w $' =6[e87͎ ȁܩy_VV޲dx;K><~mkGO ĂS\+Xyί;KB;:mVlY[C׺[PArAɾS6K,(; Lڶ87߯a|ΐ2r ܚVt"V3s4%vYw}KDzĂ]NL>y+ውBe=:K7Ϝs3d,p7˜u)!XPgdكU;(>HېK,%g៮w<~crTlp{˙9{y_|w?h -pX4"[k7'܍ 8wXscǶfB:1D:$C]-*+vm\І~Um_YòᑰguK GzK,,;9mmqkX**Ć4}P8wz]kjEsڛ'&l! }u`K,d띁QXP©.*YK`W-n_ݵsWŬݏbXyyyG1|>_Om۩+ge]vy%3˲t]O(Lv !`eYxԄyA.@ ļpξ.q5WyjJ՘Hah1/mp}'*]`)ݕ,j>B.@ )KB.@ )KB.@ )KB|tRL.5IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/fig/failed_01.png0000644000175000017500000004357314122570751031045 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|eF BIBM"y '6lR,?ԳpyVPN zH/ %! )Ͷ&-Ix,d?׾x%3.'ߧ쌐Jp5J"t3nhiiips@\pA\pA\pA\pA\pA\pA\pA\pQe/Wj0Ɍe&2L?Έ)>blVr8熸LZuҲ RI&YȤbeirOJE+8/.V~RDbSqQ{mު:ȯOHr#LxϘ-,SǖcRR.%Z{#F4eJkTfDliykoc&gF 23Yd, Os0f\5K]NvvC6h,%2Km:@cg\8/1/NedX$j5Ba*Xo*5K&_mT.jB$1Q3.5ʠ8I,d̒E F\) mYXmFQp.YPߖf ɈK3. .KL.dL0K䧍H>R".eR*tgfH2qy1Xb.J?ƔzH.F-WNC$Y0fDZ=d8"K,KRou.tvzSBE,Gd٭cѫB"D kК1&?>jTWQ}ϙ$R*|, ~Ϸ\-m]ֱSj|[j5ĥ,ˢXY%,Ӿ??7*ȷEV_bLj{EAu,mR)ɲBTa%@!՘ןtMqiJ"H$d0뷞k̨Va»eA8pncVQRԵ HrcE.ζpJLd%{l<7ͦɫ6|q$)kHnDیE$VN$e%{"$,2Ɍ$2 33dBf$d,A%"J?x(UQSϸ4J$dda$L֛Dг0?md"++x3:f[ե$E&B0YDEJiC}[(DX\s[Vܘ!neKI7&f=d!Y0+}Zx'1ƬtY3e_C89壻q~,2dyӭ=f2rSߊ9qh45&[SHMM֧ٳ;|p=Tw&^Ob!..--ճfn+˞KY|3VRIg& 9g]׵z]牮2|DDEٜ| bDVKd2q]qi̒bJEJ5YKH_ 4d*Ri%+cXn"2HQ!Pd"" w#2 Tb6&"0QG#2Q(ͺBA*anKE6K,ՓQ"r<Mqwԩp->n"!!~Գ3gNAX:;F#&22~3.Zm=> p %%%%%%%%%%%%%%%%\~>\z]eCA_V7Xj~P\T.9îCWNO]a[ ŗXʼn݇r߭ݢx;6fRu-Y&'%vL9K' O!^q 6,ı3fA,9<,IKȳ\6󓖭̑4m6e Հ[FH> 凜۷9y,vj*R-(%駔;Wlgt?63ZfG5v̆M ѹL[m~UfI;愅137]\w6YcOҳcԒϙH: W>] CJSW&C!Wvs yiaJ۱hu_H>Ӛ+.r@tTsp}uNc^=EڴKdοt|Ewi"!N&}X8CĊ$ wo^=~1[]& q DDĊr(S3!!eK9bd ߭W5yw2Լ#{:؜-%i=98Y7߇c_I}ݍ9{AmVrc]o}jR7_tϡ UN}o[@Dj$'ʮ3f%9R_ا$H%-4gnI~ܨ~Ŭ0w$9}Fu>aAETTY v@DDru2:}~DZK"!]Ɣ74XADʓ#)VKAl>c$T*{H_D FT Y!K""RO^d;Rkۍ/)??W0"؆'#g=zOk]&;@O"RtK/(Ɗ FFuş\r 9}»ZZ.v- .Ĩclԣ򿬼+ӳӧ}0az sQZbl=z"XH p&*>m{=' !Ҵsyo(.J };Ua=l* srmS=>ud\ ǀ$ C*ÇNYJھ?s%c-quo*^|dǏ~]%aN:w g>-{tX'LeD$j%P1"TR{Fھ/Gjզ;nZ:wjo[A芃#%8RS 1}ƶMy!mGl/ع1њl}K鑊K&˲~͢>bP\crYP|Q͟qhtz_ux %8RzkH;m[rQ^<:$R$7c{㒥m_yS)<1ԩmG.ܻYn}ZRMl L(+CVƄ"jĄJ5=`"Kv:m^ͮo w隆nmQSX_=` .nԽӷoycT:'P)K'˅-D"M`v.} R\ .ډo5݋Sz}L=CEU]O?U-}V^l|y/g-;4ן?:շ:nz=[СWksopS`ew}i~3O4OsjPMo?pH{׻-z4t{ 111np!Rߖ=F9!,"V-kBV|&Ӽ]bd1(姝14KhSH)”DDKپѭ\M1d(RQyd(-- q puiii q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q EcA65nЈl'T^J9I锓Ad d4iK* iuJ-(2"ZPD w@@\BϵbJMs'ʸPsh/'}yERBWjۑPp}vLJDr˦ٴ{ >C EnBRSScbb< hB%d2R^o =枔(R€}5mp4T>L4h&w**zKft;sc ܁1bKUm <_zpl!7Ấ!.*Jv"*+h w[ǐ T& qÑO_ųkMMelt`mGD(3zzfGm5ɲT;Q%H*LTp{?D9CblJv,e&>3V1: |UV .ߚʆ^M Kf2[nҕ}=. c':pMP]k!I髪 1ʾ$K~b%ɊJlvA_.>1Tj,N.NYi2ɟÒyAnÎL&P;%>G$I^9ILh27vyսrBbB]P eyY"ر⯉1$&\1&XltS ۳U^!1jmʘ1va>S7~ЪнVAP] <黅MbLK[]c6 q +Eߧ{|1n?!3?q vl۱YO!F^rcKm/ N*,Xy}{n`iYʲwLfLZd q D8dɘs+K=y K pQI$&zҊ_=/MZ KN gLںnG[68%B1[<^y&mBHIOx=r <,O+K۷(nwCu DTy 2䭛<ݔe# .cr!VZRhI˖ԋm ZXyNiF쒕Gľb.[uʬ5|ͧU>5UL &tPж{w^MSzI4Dhx!!&];쵽9DrK/8ˊ dNjU3_ڶwG5EM[ܵsVX4Qp@\U,wҊ߫Lv̘ޛe/Kժf('gjYY)?g1d7abK/fbyA0_oeiA5sĄݳF9[lo۱| VZ@Ke!"Yf) u.9SLH5Y5eeu48&|+9}1'y8j̙15ښ#ו|ۅ;!.m QJrCĜq5F9lvD^̶Lνg`h4f {[CѨg>WSV6R]iŲ6pi@nIG#f^Ѽi4 |/vJGznٞRW>K/ڝdF,78%fS̞!=hF++5o(3 wj%f0XdY ^<7WʱcU㕍LDvoJKVN, ^OoZzֳTei0V/SGQJ#b&DuK!cѮIKoegU.0MѨƍSNK7~ `]YIN.M "tZENwbL+Ǟ!",ĥ_EDUKNsb h43Q${KԘqŪzZh&huTS̘*k5Nox!%i4Wߦ̜*uX3dx-hOW$4ص$Jѷn K !#a$0F3{ows |&WM붘QJZ3k#jx .fa9F9+5CuS;k"ג#4 mq $6 䉦jPRcjgMU$4뼉<7%襓F=a-zM9kLYHcnLK/VFh֨jM YLo)[MKW217RIBC4BK/c[-hW,qLH>?>+s+_(W~iVcbjf=-&6̏&[EE^q DDF8Qk)+ /옘F5YrExsƇVN (4lPC]jx oیKVTl+ZU%xĥWv$mD646{su=ڭ5%f:r]Ac?v?z-ĥ"'F4kȺ5+t1WV1ŨWGD$oxĥr] k"cohgOvʊ٭i6NWvIEqx+!.o{շF{)EsV֣ʴ91uts\Tzv!7 د%ެ@e\{{]z]oۍBOm IDAT_Шu3ܵeX!п-rDZ .SbZ=: J7_C´jCbmv:aec qle񂟯KY롤Ԋƺҡ\ՖB: >Nt}alYVt3nCU,\:z{bqn]VmR-,ORS='Uo L/J"ɲ7$VatρLio6b,/XN_pׁo]T5p>{'|u en]r .ξnuΫ j:-]rJKF: W;޴ tZR(ҩVe_{keKBݫ":³ EtG)՟͒WB\z1ץR{(E\G̓7A5Jn8.DT("2Tӿō|UѼs]a!b"Bǒ%e\tE3ޕ0 "n!b5N LQ$gHAx7A?*\LĥwM8-' 1M?#Aw 1$ᯅ"Lx7tƽm06Pc$)$XnG<]ձCQY50l@P]Qui4ˡP(jMtWvXW^k@X}efM7\j0JpkM>g̀rҵ'%DPq vlq阕1;{덖ٞn([GFJCV'&"3ĢPTo`WiwW6-_U'h>wUwuX-ZZ5A\#.u\jL"UbXoOI*}u cb#+5=}C'BK RYEڲRt+mq6 9 b]i3A I"A]ݩUCk'7e;{)[U~aP#+\֘"R4 x|h~V+כSwOp܎SVbj8%̜RlwjǩZ1) Ak/4gZJ@\BlqeF丬]HHnXgcÞrYcWF۫_S;c6@w jatm ZA?^ӫ%4jy T#4]cUZt+>'P+%51oLlZP nZc,EnoycK+1;kKWa{@\BG?f.$IZedY g%|>ۜzŒUXS䫊 WPņ (kNgcs=ېExl/vKDNsNY)Iq[bLЩUm"Tm#1VaˤR)T/K+L&I6Y""AjR+J)BaP?ESW; ֶ9]D!5V"(.UzCz$UtpFS+C>^ۡ:dSҩ q \W-Yi--Ĭ䘒4d׾-\k>"mTY q עkۚ>iNHYi58 PB'|nP-Cw磭~k+3 j:J S-iیPTuA\Bޱ5 kԘ5&&NSb>j\BQ dWٮK䐛YYwz ZjLB)(QTuC\qS lեk"$u!T<֒A놸wpg+ӖzwݡԶS:[c q c=f jP,$r꡻7C\ه&9FC>2Tu q ~&@ٟuVc9@coFF4锏45h9 q sC& %%%%%%%%%%%%%%%%M2IaӅ7>#9+Z~KrLD̘zK*JKI.33"ЯKr| O^繒ZSoؚ?ۙa&"s%+V/Ri}NDro90;N;\we7uj,8Qh{"-8S7dI^;y+3WmiƸ,O]ů;2ri6"Vzr?tB_}_2mށFDW.-^Y_?ֱv{=]&"Å?.)?Vw˲c" ش墾Db)~߿Η!v3"b~ͅKe%ny-=mޗ/!"+>lIipqlQHbcrW[;5syny.|[gP~$9ӬQ"O =m-E"bG"c=_:7{D=dacWN'W-Ew Hr.}}IZ떐QOHUd>M&EBi!.oBR}9DDD??G""E^χIIIJa3 V\Q!Է7Sc)HܿIݻ}xi]>Qo}o}0˜ýo[;~ WnGVӯܮ%txcOwTW־>"yg}p(|Yi_9{+# Ł\7kRCv-aU|_|ˋ; D:2\Z&m_ḢCD.X ].>;Z~uxHDϬYuK~kOۭć]㒈H:CW]u'w}++]VtU;Zb]zWFl^uUG^w]孜w6sn5sǮٚxsGTSx(D$2mN'ҏ}vGg1wd[@BQrRZDOxf )Ov.Dp@!]wkK9wLT)I?)fcn;пx~݊?D=ы۪s_S˦u]CKgi,羙 w^SE!-l/+t}\ !UC~┥6Io-Y>Y9xʌ=K>dq ͣdY"z4!kgӗHDD&#"zj=n7y-}YKܪ!A!.o6򅼂?C]Uq"e _q}!uG_/%wWTzstk]q׼sfqnSL$RUCʓ7Pt\. k9V~^YľzԜ&V3$SZub2eWD~-ˤTXRw?f>=n|ԯU/VlH>A9;I̩k n˛uL>8ig"~ai3m:{ n_gZW>ۜ9|5ҋ4X|o,)];I8K-4OTJ[?}Ɗ3v] C?n|%ڏ/' {rv/+9e(OC~;_7(|DdT Q "f%Ɍ1b,3"eHx؞,rȔmy\8_L܄7A):9.q)cԀ=,H3bT=111D $]ڬ5t\?r}>}J=cT- i]ȟz0[kz~C;?RʖE.c݃ѷ{oHeZ-~mXUlm{U"AҼ]rṤYVC)qS?_YRGYDD;?'},BL&U 7!y~33.L|IοD$T~ Xק%kq8,9y,xnFɘdtPNyc-*W$}}ѧGt7:9=U ^9kRtK.HK`ۼyܻ`rW""RW2}N$%%m*s6m@ƈP! rV3V*4g,]8,G|a^s_t?aZÇ3Dd,͑|. 1ssB\ޤ{dBGerUg<Է ܷ!,D;{ж.pRL_A~s澽 6eر yXIAITt93j7KP<@ Vx|ѧJEI/{{3?ri?nZٞ$ 5 v3_DD4!"UDD$ee20˅zj~5x&oۡWX-,]%$ꀰݵ̻:]?0Ɗ_|H?DmeGL^˪9?"k{gHtn}[9nN?u>1A=9k?9Pֺg;1NA$gӝWo|F7Bȭw_'%h⢧& R{Zx7|x|DDf}|I;x_S?:>O Ǐt~SO˛ⲩD$_}ۨ9w.I hT2vΟ=|?-:2EmH?fμfL\|j K9q啦ϼ]`ĈKbl9Eun%hc₉H3^{jxDY~'~]֍4'MxtomѡwW׮8uR||1nUL0,2#]gͅ-ewԬ|ƿ4yRox{'vR^Y/\2ovgzf~֋&2郯oyW_Z_~n]5V+'60f)<ԑcg^6Bay3Fi8>#=9$9?>,:^w>qkKܐpQ~ȃ˗}O MHf»ϳ0@""}}5F+N %"z3é?x~eK`'p[pSWe xm N,xگ!=qZٿ,XJ7{{g^U}98$1å+}$jL *z/$Lhъzyճ6:=?z "46mt=Og2ỷU=NZs Fdeٺ;O: :[whC!c6z(Xb_gFU]ZI9GVU@WNLʌ8*en|++Rr6l.ugϖ1SvҮ|ݞ+əg/ISP5/::VmN]pK~{rmASnW1 iT!͂4w\vl0Ծ1a~-;F=}uV?q߰gE*ZpcIKKC\1CI2g?VADT~rLJ65O%{@sϻ: 0!.YZt@t߇UQo1;[DDTJ9g((l;4/:>UFώL+Y nĊOnB@]˞eȇ.'""M?~)ٙUT3A2H$" #ӧd?Y?ώ1[@dL+;M~.6eɚ)l^qn+&>s-n~pZ}e$bS_-r攻[YNY$8kIDAT*L @"2&5Hӫađo;Lh*ioǸщq~bg>]=rS[^|qH|&3mp| >NNes&m{JDDNw~LkbL&'unM,s3Vm ~*,TN?Rꑤ3Iy__Pr/,($80yd3D'\"(Db${cgL%`0H,$jWh?dZs5B| ZKڞk ߾YxبvF֕Hm/Iz9m֓gÏ'4ʦi|ײ)c}KuqG )? r=WϤi ,fKŏn>7>lS"%U+G<ɭmt~_Ĵ~`C`6Kp]x/µ+*?G lg6^妪e겱B|ד b>/@f02ޗ 􉭛=~-^*9 s#}A<@ .Lw̽5< FDY7(8[Q*'b;Wi[e""2^8_V]`d(QE~XSn-YzBn|mwNxo@H/Z {3Kpmh˞:}x /"b ,uQ=ePT϶E}E"1}Ǫ V|/M}TsL1̸hlKnxXPہXa63u`ԘO7 RRR|||< p۵kVAZZZ) eT*% Ee 4KZ ,GQX,4DtˀƘ$\$IO7mN\ttQc`tn4θ(TբW)$ t9DjJeII$IbO +Ȳ,˲j=(wjRqID>>> BєL&ш`4AAPT:Wj4MӧM-.HѨT*Vk+hT(*I`\(M/xV \\\\\\\\\\\\FP7f"ҨT~>5 -ۘdZp̲*U&bi]j פs6 YY  `mߺwk]i: Qֽc<&? 0 :XEIU}11[RSScbb< ZZZ-\\\\\\\\\\\\\Df>lIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/boot-maker.md0000644000175000017500000000741214122570751030420 0ustar ephraimephraim# 启动盘制作工具|deepin-boot-maker| ## 概述 启动盘制作工具是一款将系统镜像文件写入U盘等安装介质的小工具,界面简洁、操作简单。 ## 使用入门 通过以下方式运行或关闭启动盘制作工具,或者创建启动盘制作工具的快捷方式。 ### 运行启动盘制作工具 1. 单击任务栏上的启动器图标 ![deepin_launcher](../common/deepin_launcher.svg),进入启动器界面。 2. 上下滚动鼠标滚轮浏览或通过搜索,找到启动盘制作工具图标![deepin_boot_maker](../common/deepin_boot_maker.svg) ,单击运行。 3. 右键单击 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,您可以: - 单击 **发送到桌面**,在桌面创建快捷方式。 - 单击 **发送到任务栏**,将应用程序固定到任务栏。 - 单击 **开机自动启动**,将应用程序添加到开机启动项,在电脑开机时自动运行该应用。 ### 关闭启动盘制作工具 - 在启动盘制作工具界面单击 ![close](../common/close.svg) ,退出启动盘制作工具。 - 在任务栏右键单击 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,选择 **关闭所有** 来退出启动盘制作工具。 - 在启动盘制作工具界面单击 ![icon_menu](../common/icon_menu.svg) ,选择 **退出** 来退出启动盘制作工具。 ## 操作介绍 ### 准备工作 1. 到官网下载最新的系统镜像文件。 2. 准备一个至少8GB的U盘。 3. 获取启动盘制作工具。 - 系统预装了启动盘制作工具,在启动器中查找。 - 访问官网下载指定版本的启动盘制作工具。 - Windows系统可以从光盘镜像中解压 xxx_boot_maker.exe 到电脑中。 ### 选择镜像文件 您可以通过以下两种方式选择镜像文件: - 单击 **请选择镜像文件**,选中已下载的镜像文件后单击 **下一步**。 - 直接将镜像文件拖拽到制作工具界面,然后单击 **下一步**。 ![0|boot_maker](fig/select_file.png) ### 选择分区 选中制作启动盘的U盘,如果U盘有多个分区,只能选择第一个分区。单击 **开始制作** 或 **返回** 按钮。 - 开始制作:建议勾选 **格式化分区**,制作前请保存好U盘的数据。 - 返回:返回到选择镜像界面。 ![0|select_disk](fig/select_disk.png) ### 制作成功 制作过程需要一定的时间,请耐心等待,制作时请不要移除U盘或关机。待进度条满格,出现 **制作成功** 的提示,表明启动盘已经制作完成。 ![boot_maker](fig/boot_making.png) ![recoder](fig/success.png)               ### 制作失败 如果制作失败,可能由如下情况导致: - 磁盘格式错误 - 磁盘空间不足 - 磁盘挂载错误 - 解压镜像错误 ![failed](fig/failed.png) 当出现未知错误时,制作失败窗口会出现 “提交反馈” 按钮。单击 **提交反馈** 后,跳转到相关论坛进行问题反馈。 ## 主菜单 在主菜单中,您可以切换窗口主题、查看帮助手册等。 ### 主题 窗口主题包含浅色主题、深色主题和系统主题。 1. 在启动盘制作工具界面,单击![icon_menu](../common/icon_menu.svg)。 2. 单击 **主题**,选择一个主题颜色。 ### 帮助 1. 在启动盘制作工具界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 单击 **帮助**,查看帮助手册,进一步了解和使用启动盘制作工具。 ### 关于 1. 在启动盘制作工具界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 单击 **关于**,查看启动盘制作工具的版本和介绍。 ### 退出 1. 在启动盘制作工具界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 单击 **退出**。 deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_CN/p_boot-maker.md0000644000175000017500000000761014122570751030737 0ustar ephraimephraim# 启动盘制作工具|deepin-boot-maker| ## 概述 启动盘制作工具是一款将系统镜像文件写入U盘等安装介质的小工具,界面简洁、操作简单。 ## 使用入门 通过以下方式运行或关闭启动盘制作工具,或者创建启动盘制作工具的快捷方式。 ### 运行启动盘制作工具 1. 单击任务栏上的启动器图标 ![deepin_launcher](../common/deepin_launcher.svg),进入启动器界面。 2. 上下滚动鼠标滚轮浏览或通过搜索,找到启动盘制作工具图标![deepin_boot_maker](../common/deepin_boot_maker.svg) ,单击运行。 3. 右键单击 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,您可以: - 单击 **发送到桌面**,在桌面创建快捷方式。 - 单击 **发送到任务栏**,将应用程序固定到任务栏。 - 单击 **开机自动启动**,将应用程序添加到开机启动项,在电脑开机时自动运行该应用。 ### 关闭启动盘制作工具 - 在启动盘制作工具界面单击 ![close](../common/close.svg) ,退出启动盘制作工具。 - 在任务栏右键单击 ![deepin_boot_maker](../common/deepin_boot_maker.svg) ,选择 **关闭所有** 来退出启动盘制作工具。 - 在启动盘制作工具界面单击 ![icon_menu](../common/icon_menu.svg) ,选择 **退出** 来退出启动盘制作工具。 ## 操作介绍 ### 准备工作 1. 到官网下载最新的系统镜像文件。 2. 准备一个至少8GB的U盘。 3. 获取启动盘制作工具。 - 系统预装了启动盘制作工具,在启动器中查找。 - 访问官网下载指定版本的启动盘制作工具。 - Windows系统可以从光盘镜像中解压 xxx_boot_maker.exe 到电脑中。 ### 选择镜像文件 您可以通过以下两种方式选择镜像文件: - 单击 **请选择镜像文件**,选中已下载的镜像文件后单击 **下一步**。 - 直接将镜像文件拖拽到制作工具界面,然后单击 **下一步**。 ![0|boot_maker](fig/select_file.png) ### 选择分区 选中制作启动盘的U盘,如果U盘有多个分区,只能选择第一个分区。单击 **开始制作** 或 **返回** 按钮。 - 开始制作:建议勾选 **格式化分区**,制作前请保存好U盘的数据。 - 返回:返回到选择镜像界面。 ![0|boot_maker](fig/select_disk.png) ### 制作成功 制作过程需要一定的时间,请耐心等待,制作时请不要移除U盘或关机。待进度条满格,出现 **制作成功** 的提示,表明启动盘已经制作完成。 ![boot_maker](fig/boot_making.png) ![recoder](fig/success.png)               ### 制作失败 如果制作失败,可能由如下情况导致: - 磁盘格式错误 - 磁盘空间不足 - 磁盘挂载错误 - 解压镜像错误 ![failed](fig/failed.png) 当出现未知错误时,制作失败窗口会出现 “售后服务” 按钮,单击 **售后服务**,跳转到 “服务与支持” 的主界面。在服务与支持应用中,您可以通过留言咨询、在线咨询等方式获得帮助。 ![failed](fig/failed_01.png) ## 主菜单 在主菜单中,您可以切换窗口主题、查看帮助手册等。 ### 主题 窗口主题包含浅色主题、深色主题和系统主题。 1. 在启动盘制作工具界面,单击![icon_menu](../common/icon_menu.svg)。 2. 单击 **主题**,选择一个主题颜色。 ### 帮助 1. 在启动盘制作工具界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 单击 **帮助**,查看帮助手册,进一步了解和使用启动盘制作工具。 ### 关于 1. 在启动盘制作工具界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 单击 **关于**,查看启动盘制作工具的版本和介绍。 ### 退出 1. 在启动盘制作工具界面,单击 ![icon_menu](../common/icon_menu.svg)。 2. 单击 **退出**。 deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/0000755000175000017500000000000014122570751026042 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/0000755000175000017500000000000014122570751026607 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/making.png0000644000175000017500000005300514122570751030566 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw\e7u[6ٖFzBR I`T}h ^, EAD@H{nz2\̙dI~ᙝru.>T^^!PZZz!ZEE:mB/K!pER!\BW$.K!pER!\BW$.Oms:YYu5+w1xC .^2GN!Xm]wOk+WzJ_7~o'ővƷx{َ<*)B0 ¬Q' <%o`_fj^jr+{Bq\QueKw<>j@0b:F1le\#F !ıܲϷ#/mXv{> A}NL)Y&6댍:lBk쌗W/tӹòSB@(Tݴw>3!M( !BzBq,u3.n.7uXV]@0 n\j7BV™ !{BqLu3.<)Bz(:P0ћXPո'3y0-uwֲsRAB/nemKf Xe^-9=`_tbYBmBS݌v4եϓih]Ysɾ쐮g$IOʕθ qo߰瓠 zH3Zg!-)Þ%[MA4Շt spHٖ !DWۏR7BضEN<`ܵڶ?ضf""ߐIjChA=R:c?ǎqKz;7?S;?F\꺮YB~]-L|iVJafJ%/><ӆ~Uwuł`-#OH5uBtĢ{1ȳvVh1g?6793@򨤢!P-7a[쑬D;A!:m~c fz]՛|Oݎ)U#oBd'fOe%?#Cgt۽f ]G@Ƀ-Cvl 4HW=Jt;.;Bu CtW(::U7VTC38-e(KOHnUY)E9'$x0sn#mB*3 vJ`bv3.Az[{-#hY13u/ڸw]GP!p)*{*1ֵ2`mRcw̕9q!13{$1p_6~nٲe˺*!LtL<ĬBC8kuOҫ? _o]n~G߼}yohy{{{ss󑼗B_Gtac5ۀ*b$'@0EJZa{{{0LDiBG`{  x`4obF{>?yMB/ch tUdk;~hi~4'[,E7㲽9V?'IT4xB^q 5 MljEGH!p X~9~gVqcС{/! YyÇ'"7O&Çu]{/! Y]N>}Ȑ!.ЧOB݌n $_\2"H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+ (PwwoՏwSDzėWpo6%"&&g4)LvrS͍Cֈ!q)b"ozv4pvدwik}{kJ.=qFRD%4@Þ}/Z_s]]ch.u} td+ތ~S/SVoo=ؓRFE2Z@ .{g[r@/~}b;#s~sۯ ѓ7r^yMzI۝Scon7=sk_ye+wv̒!#Ϲ󇧇7cF_K]/eYF5ؽN*,(ћ#OiKITHI -t`7>{rvǛv?:)oʥ?BKS7[}1`W"I\ wB[6>Yeڡ_fޣ[M/?˺p7!i <|u9=rr~/J0;/V7zɧ|?CDL"&S? V[YӨM;ΘwTn߹;{n$R Hoqd䒋<m޹u]fݼV@A}4H\d!8$RĜ~g̾ys}JJJDDt]E3())AɄĥpO|(/q[u9ܾP0Ľ@мCS]153xTAa})zMMLH\ a @1~s(== UuOo^eyͫl!~tHEp L#g樢FE ܖsZyr >ozwda : z1wn9!cumMkAɥ'v)|oW]e[7+u_tɃ6.v>>ҵ?~7~x͂A 2@Ůݭ٧6dM@;I\:6Spԓ/:sh*;o~߸a((u7^49>x|oo߹aSEBfSn}iϛs'z+*///--=Wh_)+CEE] aӫMI#$.wpot`Y_f"W쳟lֽ>!$ >kZTGM;>υO+_F~^AF[.: RBS'+J o^u+[8^J} 9yvk$7E={v⩿qKW/7o'I\woS v}bQ6@BS KqdFK3{<t= {EbשRjpRRA$)ĥ8"F:}܋|AOb=-mwTWO$.E7E=|:ߺ?yz1n)oUGRfWQQ![l ߜş-dR PL1"㋎o|w睤Yɇf9DB,S.*~< }u\d-IU$Ŭ=c{(]ԏ7[qu-@2SKᖝ5ո:[ r2oF Pu`ϥ؛uP˞Ǒ#)ĥpډ L.{Ʃ-{0fϩv,_k/ßDq = %&q)۴?u5P?mג]D Mܻ߻z' nT8wBC"㋬/RP*X_[_nIb@&~!Iu)pu}sӺɜn#8 8EIvf<$3 O1AHu)dgD `ߒc"n(K:a "gZxϮ+R]?DCH9XB]ڢŝأ&<TjLĥʀ?A)9?Se禝d}K}v1xduM:"=4Ɍ=M"'p9m0;S'y"7BDRDBg,^W^)lcw/ljZNQ7c1uyRԘ"ĥx>Ǥ5dY4==W}46" ++u--n,Q'"Q+}N_{腖KA-PƝ--oYg(1Hu)LM+>szǾ{u<EO|Gǭ^X0L^!eH\ rȲ+u YuuYic0I"ĥ3稾R3TjyӍpuI z\թ LRS{ݷ@^3! @o1#ULK gy_vgf9M/g%qYYy]Z=y9^y?Bv|'o#'fkp`ĥQ;_ʘO^yW_.9EoVi B}=> ;w]sLttV=\-$'f_Q墅ЙHAcP+pp[{:%1b,Y3g2v\oqyEKC u!:(b'z"|H3fdm['eΞ=عJA7HDNpdme +߅ @My7qm33/\(kNJɈ-5}oל;`wyȘBK2~UZ2hrVDdY#b#1< ڙ\g"]e\3//Q*< `vd$ۻRt>1k󑉽rqQE2%B[R#I2A`7ҬQK:lotIfiy|~W:#<>9 pIPʞ𑬌Oq1M 2&<)"yRLhp<%@Z;t%3%&Ҍ;eE?nR!/)'2rv*Ee;Fu+3͊=i []5 NWg!33d$SQ_<{ӣOcC4rhw㡔d)a3G=Q# 4Ydܢx:0cqHvSG--k`R NILJw;?/(}WcH׺)L[QFy9d*f{\~Y5P D\W!l B}pCđ$62NЀ򵨮AS R1dr& (MÏFCc1~ɮ,'y%4~8g&Ə!wsڏƴ`}FsQ}6 +]v7g_R"ˍyk3q")"EbCj1D [3Xuhm琎ޏOsNʊ572ߎշ0[sPUAa +Mʹc/6_(EVKJYQ CGr^r!CCCTeU )kRg&ǂtɏb!h9gf })3p҉kLO(*DzLZěyP:;/A(|#1oDD* `d2>e"033z SFJR+YOw?0T_XkZn6R9$N>d;1):)̓da0e7@)B7_4(҈YE5ƪPYE8D2؛3ECͭUDs]"Oc='El^8.|T#9rycK9j:Y)-ǚыl4NO`0%/eb03xܒ#`߬.y( ܙ0 Ԡ ;aS@CxS#wcρχ`~!` -q%:e@fF'=GD vu +fE| 0j͆L*3>xm4rM1@MuPB|s)FLzus*< Nhmgc$qGffilH J:וfO<*#@ͼ9矯R2RJJ?s}UvutcM}V0> bcdf\Wzs 2j7:h]i∄dt5b֡h5ռo ls](-t:3JDNF:'< bG6N\dOkIXW˘IL&^ͬ k"38nlk4w]4yuEe "2KQk3F>ی1Q c'9qJ2%4J:Ϯڥ%~Rz!J#·}>;O 1Z~,iiA\DFku9 .I\ƻT(eYץE+m.E[KBXPI )NNB hwC*¯mmg`,j|4z0X ogko&ŸrI('Plx'qﲳ`4y@5H5f sKaچG^֫HiS IDAT(|⌹)|tnj&c,S]m:Q}$>w*͗>e}OPևdz'I\/^YPd1\iS,|@K|AiDyd͆alY'yM.#}fڂǡ~E(aP04F&Bh3 sj$526J.+HAD0왭-5̙qESP&u^$t oXeSإ 0c֥"/pf Dv{Ӱ;TjBl5(o#+.ICk|^&H6?;>/bkkH"QgE\2Y]oE4Wo a< T"֘y$ 8HRDdnXL}[cT^&RZ۱7ƚ a̎̉ th&5!7+uY)Th47?]?eF eW2_\'bf%b("bd!/d}fna'ID.: Bg{q+rZcŜ\引f4|ذ7ag&Ȯ!V{7bЩ`zȠu;1a0*b 屣>=:D(-""r Yڟ_r3H\#6%d" ,&3‰iSyWxJk7 cM!Cvj L#f6 LWaODNcfF08'&@﯄?:}U|$40Z-$ M"qR#nLLVD +! Oleur"֎Fvv9qa'}L[CWj$&*-͗pލ:>s9'1pte܉菳d$%`p16r\ cv=ϊu , 24ƻSI{fu@&^/PA!@2t(0/dny@)Rdn.SqK2.9wsZ}}Fk#bKtkFviI"^I\ƣpbAf7PKjjE;޷M}lx%ȋ'KxX[Y O3 jE) q) D&5|^GQO#0"O^>b{ITq)-ARXх"KQvFr5~/: ofcz9` ;x52G-`{Id_M!o03`$|S$ >i ?S,c3h!KYh)bad]֨1Јo B)<;@hwp ƨ; -7}.jXG||T;/s1zu˖7(\mW}+~r}'V.z ۟' |FO/Z)뫒sv5gǯF O7g3c@p3GNw~kF R|AI\B\rJͻ슁;z>C ` ?Ϯ`Ps;-1#cqCW?ya8e\E?'y?wK<0cpE޹e۸/u@h ޙ)~YƓk+5',vEO4m.8hڰh gK I*N$<'^Eokjmr=yэSҢ5)[sSZiQ::Fj)I 򩡡Yذ`yGSyPTjҥhzVǚ5>7-X.X:V2}\Zۚ5脲 R΀w%}qK[폧/| ,)S ~=L?)eҏw_zgN0:O&L=%_NR]BV4t8sSf~{Wg>C韧)(=#Ǒ:~0+3-s;);'hVv뿺最ײҨ18gnC۟2ǝ'Cz?/-ڸ@CSGHhCԉ7_{_󛟗ópmm;%:iT܏T4>N 򦋖YCMhRTymv (z777E":KopwdxmS2(-;]y~㕇/*u4/б꧗^Ƕi],Iv-;%Nn{w?9ofdfg/^4ysK PijF+wg~2&<<=R'\p9w\i nҾI%VGQ;{̦Z=C{ ^ gA0< c[C#o.hL=zLԯ!O;yI?U]'.|k+zeCw7׵wz'JwUw?iѬ%kN3uB~e̟^{?ܒ&'tvyymo(=2F[<?ܲ^Ϡޱ)w`4!ыe/ ?Yşϙ6L'<#y'*W>ح/W߸_q[%?[_E7|ߗ.\T_uم@ Jo}w|z=9hB>hu?Vݿ^zϟGߏW.[מ =[$\;ǟ뉛ގiԐ铋+YQH8GY7[&'A֊_YS'¢'/M'CM`pIZ/vTGEf{)%ynQ^[e$?#ͯz9ן;jy5:z7ڋSl]Gҕ<i/R겧ѓO }8Fw^ڦ'I֫6uK?[tok@K7hYcvxOC1s#?qo~tbOw~E[ү8krY/׮]n{ߢ5ZFS'TZ]O?e1 z}CΟ8* 7l%W,G  ktƯJ̚\O~MOH>~$jnpݚ7=oLy_E/5fr.5xƍu~]ris*L^OnOnČ'Qf5֯_Ә{ 2k>P75'J~޿|;q mm1bmݯTr_:ؾVz? T!ĵk=>⯎uOw)ڜԶ;PACfM.α%q٣(q`Qڼ=mH n]_ر7?MBCvn/KSQ6o?qLR`+VyF\`⏖4eXgFձƒ3zo=}fc+=.'a]sҨEOWmKsm?xy(!y r^sV7VIZ:?dvSYPy[:FLޠ+c%' pڕ{'L>9>o۷puƈdnmh kH};ovȒqzjva[V.Hn/JQs}]z4%Yb8lǦgQbC'TbȒ{QO-8q`e嗦725&NU@Az4iFu;?6C0p`^hoU OL *o;*K+ֶ؍LXUYQpˁ͍z:xJ2&?j6^*Q9^`ĂDGM7m PrF9 ع]bX?j=$yOu;[rHصY]վD@C[-ij>hK.T=[KCKI4BV?K6 !_ߓ %eZWnmh߹oY*"7zC0ndrVTk}aR/*ca9Xo@%и9ˌ(, v=II>j8\.\8oϔh*|\P 掎DB)ɾ&?# @FZRt=y5r-yeC N1?N~gm\UoV_ϫPəv0ϮG-*ʲȓ|})N ZGSK O-)ї2`5sF=Tb7җ74ݍݭes}~8<$oִYƥjǗiDނ.0rWl-`vȖW?ZτQBBR{{ #pK?1)yOR5sg\֯D`kVv%p|?jUe5F%dyڷnݥ5#/cO:=C-U/XYxdYNզm;zGu} K9ͫe+]{1[64?IjM5C%}l[Zpх쪑޲65 n'gXQ {}n>8;ґuE6LL)L^uo:W[ٙ웦i:mRp  LndYw/Ķ|qHy%cw$!}α(2^@S|Ggf-ʽE͝d6eΝ^PhZ#ֆl*:LcEو=pDstt2C(hTRҦ`esV<|ػ\5߽p{u-?u+4sǁx##YGIM]!~ȅW_MjFhc6y5Ɲ+|}xSO~kM'οJ4\m7Ҩ ՝isZX7~t=t?L7{`uwL|߿ϺK[j,7MŔUTھ#P3 qTwt_U|kžlͧ_2J6w=]^x*;lHKCk,xغNko=Fyi)TQpGwP_rw 66J)Pith-hHWhHK! B.@\ēx͉;31woo ?|%lYF_YGih϶JnxԀ c%n ގvK9.'U=_w/JguwWXc޹r%n3Ѽq%0^n'SJewS?y{Ɂg߽VӲ3;:?:m;WNaoklh|{~Pz^;3X{pSRͳ-/x[yiӢ#f} ݊PEls5/9Hno4W@wmbrK8*Ta\z/+eeu;2\0|F&B㉴[wh!&fE>Qo/{۶wZncqRJy=DV:RVr.oO,є≘mh&9.-AKl;!"l[X!+h.7pc}*(TJesIW[Z|8 L-2\Z lv}nowbWW1)4:GEٺwqp.eL":{.O-e]7U ã Ke^gVr3)K=Di8@K0rbw8w"~2k܊JYXdb>dDfltRÞʦ~َ}wz&Ӧ- iGbYKiҒ2M<./SWlp> 744|7ִp88K! B.@\r "D%K! B.@\ _Ewn=IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/select_disk.png0000644000175000017500000006227314122570751031620 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FYIDATxwx'[3Fnd 0Q$ET$ےguc;F'5t]3 Y\Ʋ:,Lv_@(02އ9OcuOݣ'd`9mƒESx>?y3Z..uT,{yy`Xt,Ůd:4 ±鞙hc~rgSgC`\8zcjD32U&E4]\+.{&~OՅT$W02i/TÒGtpZܛ44]t*.9]cgJ*SUu,g/4nݢh4MzĽI UKxR5%naL\þh<< 1i^]Ut20ikP̧na(SdCg926ɹ 6ݠAoOГU-.unt]0tpZClGɦgUfwfhh?VؑHa)9庪D?)9N Mn.=d3}']7EHo ?*f΂凋Ζ _ ;g]VOaͮ~v/4vVlYBD#V 74U3m?Fe]U*U;X@uBө,AuU⚆]3Y(qIA+=]=9(ܰXeޖ7CN[^INnX@5,Ex̉|8WոI30o6,.YXH{a21X@S}'iu@҇93\. VwF[h0l6K^aD\B]qjE = ើ!MwmoXSﶳ{Wo}ǿE1[70򍯾`;o٘:Oޝ:jQ++b#.!ͦ}3+lݿgn%H$6:>װrE5SY^\Y^:$0..ʿ[V#.aUt帏ٓhYxgc G'|ܜރUq [4#"wk)#y杮<+Pa"ؕm}@H\qcxd"Z-JfsCe]M[/^Dۏ͑sݿWwt Ox#Ѹ$YMj7U?ݚ;^~ /vvCEJ \X`{CNp-Kjo߽wE>q&/ED\MU)_C,W_]ZGF'f-,ִԓ:O>V[w ﴡκ;-~qpgeD\a"j:A$99D:{ng?IEܩiOu"0Z-yH4?870b~2S˗!"Y[(ۭDFmU٭n"jظ !{Bkwcy?0<:1<: 1MwnZ-pt_OPO߰i辇‚ rϜ:19]VR`WϢzMQW_<70oN_ޖesmCc, ۻ|xwGUnOȯa߿_wWov( ϚYIDNsV[F^މbOsL60oF"z79fV":t`*3+(/ǝ.7'ɬ$;-wz)Sx jI=rvVGhvo*KV^.֦:".ԾgaZHVX㜛su-K= s-N ~dVQ]uymU #|}uϮF70;g[ODe%v59,i>=hDTWp3eiI%el|Pk23DKR` 0 ~Tpdge,*"T0ִfC6n(J(_P]Mł!yyn" G1(ʳ{{fKW@뭎3篶w~Ǭ}"7@(t?s3TX,n( eed9jFJ%?YYqg/\F㪦qΣ8^0?q07.gJ >xwE* .uuCco}fl|3^~"DcDY|a}d da#iG'\o}H?XTUK⫭w;&Ӻb}.h-5-9~kI%,YIq#{~y>3.v/wj -o ѭwNWo(--.p:Sg/3KB|7c=>9rwlvgZ1at|'(m6Cѡp>uq +gnSUMuIf &NG&.|?ew؜й חՒ]`|›No1>9r9O/ZXf`( bQukܼvEf&ٟ|l;}uDt*Oafu{jEsWٻ!"r6,h|3K|灙ԂCDe% ʲ e%Y(/mdͣvgoݹ;w{qfx<VtJ}OHDMS3\H_ޡ %emEnNV8ٯO@W5nGoF DK Ʈ{)jݼjU̦wjli~U[F{3~yFQ14vrmye`f ZB͘AD=}`#G~vv":o`$+DggSa`h Ͷ76mܰes N\y\V}T[NDVՙ9GQrOr9Olp@\%9WZ5O;|j .Әk$㰹w4{ ݇.>vQ=Շ :/#Cs"E#zd)]B2Bj .w"FYds,4#K9l^_ch&ZwSr7΄1巛o%g[;1>n,?;B_uM%M5]]~;K{_NKڞh.y"Oy/郢/9X7=ΓmŋrQ>}05zG"1u{] M~}~8ugot Mɒxh[mֹP$@(J=ه=5L)""u͎GxbF3*}RU%y5 dǧ7M7N^g s2 }3j,ߧp~pd~91Fz#>Vo,f7:[r[M%lY77rُ8=;-,2;nv]kfy~ϦLml*pZG -w2i*o/cjYжZEA(XQ_~ X 'GLMP4ŻF&QMiAxNj3V" OՔjL26"jճO%yYDYd)S [*z3 9D$0H˯VۼT94#TA;52p3410VSon8p4ND4ߪ|ue'.fτPTM.'p\ 3r+w9aroP7:|kXQ+٭n4vuC"rXP$!uʢ\"5]/-^pbW>L8cjȤ0۬.=Yi>Q'o&w'omLU}w[^V[j0 P! E`4m( ޑɂ s-'"Y-tgXLؤ/9Wxc{xѸ%ZwzF+< 4160K}q"u?٪o-2mWkil]=5%l C4"Y;/N}Vƽ΍D4+v6ˑY.f t4>w;ʆd`eJ ;v֗#V0=9%{Ó5]%n͢F uؔޑɗ5PKDyoϜ߹vQXUq $J+npXUtZgvcnGO 'I蓕lzψ<BzV6je]RyKb6g'.g?;{ywgKԾTݍi"XA\>Ƹݿ'Ր%ٳd艟N<9b 1qN\*3 76<9g[9i1ry2̯xhRa2dV% 28Z{.؀e"1N'Ɖ ؂Dg~ 228'KU[~ 8.WǏǸt) Hb0RF@HH99œ7U99 ;l 1NDW:aiV25飤q8iDlF9E r4mߠOPWH҈1҉ldE KK]1,fXiÐd:yݻJ)If$I$"@$qN`M`h4B#4"C4KДC`ǥENTޤ "*qٔD"@Rʉ 4^K[KiOO\hfK-E"Գ@z1l6$#Q=|dY1PJIIH bqI)qgk_NIO)sӯd- 1$za#'RݑhDgD.JyaHdqXύqƘ(EP41t#ju8:Zf1˕bey51&²IT%cl[GOwi$`[YR9cx+J4%ZƉ&D$2f,EA kT_]u65ʲ,Iia#\u]EQ|YJc<#+`u=TU5H0TU]qiX$k̕PIKM|"#?9#f7{Xk4M[F4n_8<s q }bWP"-Lq_dDDh2N'Udmr\6OcDxE8SjJś㜘19Cd .S:͌ !/S0f#/XMɟb&*4rɬG\$//lV@\e rb 0_٪ɶe4͜4QҜsaRWq"F3\}3$ yٵe`y»m ]UxO$C[6]nV<*esn̿k1#!Qs"-ٻq[Sݴok Q?jF}i%Jڒ?cfj|d$]J ǰ\Nov+-MsvGZcqUQdyťZزXy&Ѽ-siv/G+J=Xchk%9=_즦iW[ۋ=ynyUkX-6o;o|-HӴK2\5X֣u֝%d_bnlm俔~<,MtPgDmY sUgqR^ Q,HљKK3i8<1d߂4,%1ͬ%09V ]/@"fbg3_&=`l3Rky9 )99KcƼ\l@\J#Yp ]_7%#JNl/0Yi^ѽXֻq2 gbwSNj164Y",7e8G8){ٕI{c|^24+g6LOlhe2wq T)DK?lv6)%=)HK5 D⃏$4e鸜,>˼>b7b9]]x݇੮.ך}L8S~ݾQ":~s`T^'ҧgg8Kq:H'|S{GRS z:ljx'ZQ,Ս΁ÂQLFb܎EYc MLi֚Uhm#&|>s^<{k`lJCjܮݜ'^D!"]ES':DŽa=Ól|IuW-++ ڬ[]ʰ`)ݾ5wH>tvOSuIMiWx+r\|yê샫U%6LD݃n!"M/e:uF#/{aO7N^g s2 }3aTujǶot*/e(W>UӛKٚn:zJo&ݹqz&| Gw&[yYfe10vh[-1tMNT@(ZNզb8mUd(/(/| {zݮm O+=9 d:m 1b>42?jJ s2VQ'gp| WcQ˭ugwN*."L"KPԜݺ7PYDD;i( " :h-ִ)7c\k{7}x8'"ooWxꁺ gBQ(BDOWL8qUkuGv|GwջV0mXUW7l(LzgmK{u_j]F| 9([W [PdT n@DјY"=4YYKD#^ >L8cjȤ0۬.=Y\Hq߆<"f9ƶՖ#L7TzaCф/k'wd ;\A;jKHD,V5='!06 rNXi;ϝ|u6"֚ao{ Gol%}6}s`9uMTqNƪ_q,s`c=+w(S+;s F7|86W LRw!V*"p4nOY$QuBѸݪmV%W㪖鰍NЏO\-3nэmmFӖhH\dŝ ᄌfi?깯%?X]L@(ek͢8myaw곲p4'|Gwn$Q_EnYĎmrٝ6K8&Nh<89yŽ,]Iz`$S5F±''$}ox4k`$Y4;2Ҿ{Cr8;n"*Du4mCc6:\p,M\±?XV8Q'j{ΰ41nc5yC1.XUq^,-+H6HnnQvYNyGXmYoH~-+Hҍ OMĮ UtdvRW^w/`uMi}vOaN~_c՛gopNM.{hකM^Onf+qM+zvkЭMWPv-MApXQXZܼ{Ϟ?Avxv4]֤SE ~ȞEBGIש31Q\Rv N6>M7Ԕ O>gnguMDA(/>F_MUy{Gw_1U{lk E0ZA`kP0fQݮ϶֕^jه*; /eZ --O>.ݥ#$X)y.rYytB4}2'dʯeLd,W9q㾻s 6{qNbtՓ}B-dhۜ$)K\ڲH_XJl,eXqm Ş8#=m͈/A.)N^ۼ]=lg橷ܸ2 NC9`%J"$ DK l@d^ 9 "'~ù(a 5ӆD4>"f2ddD jTNٿ*'D :&\80qkQA1 뾺 ʼn $8$ied YNrfT&꜈)P6#&-B!=i0!Rt!"X qKl{9m"dhXF(A. CѺ9.Zc,#G';r]4E3D3w)[ _bݜhsE85dPS}E9պ(ƩEzacn'_qd%j㜫\v\-RYN*3S,Fvg9 łD []EY9,(0Ccq' P֕(d81[A -OԔ8Cw-5$_[]&~yrs~ӝ%J%糉IplP>ɸ\.?,g,09g,y->KΉwxJXxs#1)q8qifTyf1AL&lX ]UhhfA<#CIe!Q&( 7(` l[jb&sDJsυIi>Jiщ`("bvvrՂ`}yl ]UxO$C[6sJD\nC #a|h&ʒ{o߽5j\>UƒJK30gs60֖|f3<"'ƈsJǚ6U'G+)ʿ;5rZ͜W}-Ғ\O٤>7nʮy G=XP]./.[wZI,'Sw/>4N/S:q5_j S]Y5q<^b(5mTU-~c[SV>2˵Bsn1%%hBܹz>Ę]AyCnʩHs<m1e(fS .Jr䤯;eKfh ӹF D&KghRAp_$5"89 D⃯!Hi"sSy5dq}8'or1>Nswrz`\k3jL[wF΁qjTS}xcvLKڞh~S"O??iuop|Z`$}x{""KT7:nv {nG''39<r;f=1641}Za[kJ7WDb2"?z}'썮)Yms:ws4D!"]ES'uy|aF3*}RU%y FbEGv1~{7xB}c_9k&{ّ|힦꒚V垹&UWJm'VCD_ntλKߨ7}3`|ȎOo4/1o|4df¨.ӯԼmeT^nQ̯m}7UHfY.ѝg—zptge]eVcqMw,ٔ鴍MN__m*o/cjYжZE󲒏gMHX 'GLMP4昽NȤZ")-tZ-rJD҂X\ZFD-zוޙ:@$/26,BQs DtPCe]x0'Ʋ3tfbbM|3ϵvw_ljq"V}盯++8q0{&"DjtuI>Mτ^W[>d7_tWa5 ݖۍU|eÆO~֯W7fN9q%mUV%;Ղ ê"p4fcvMVшׯziAxD4z62//6KOn`f".R5}pܷ8zG9YNmbL7TzaCф/k'wd ;\A;jKHD,V5='!06 rNXi;ϝ|u6"֚a9o~u'. XLO7ql228'<]7.Xu+<9N嗧]nr٭Jݾњę87[f}oںX74Q%"QiK|Jh` GcѸ{jD!j5]D58Q[Z`>s`c=+w(S+;s F7|8 Ҿw a"" G5M]7(ۭfIohaUq5j2~ݘ\ƪvx{m49gOz}g“@3cS,:]=5%l C4"Y;/N}Vƽ΍D4+v6ˑY.f ӣU6'Gm*~\+,QIz`$S5F±''$}ox4k`$Y4;2Ҿ{Cr8;n"*Du4mCc6:\p,M\±?XV8Q'j{ΰ41nc5yC1.XUq^,-+H6HnnQvYNyGXmYoH~-+Hҍ Oe:N%j7 3`^E84=97|œ scƪ7]vkm5;,ӓWVouoIYPv-MApXQXZܼ{Ϟ?A<F5qQa„d!]3U(iQ:}&&K:kp*6wζ)/igx=\v/>ssl* Bya]D4 l*38[͟?ڛg[(  N_ke6vm,/<~R[o$/6X{#1U- NX.պX0]hiyq.$Yb%aFqGZlq n 22[& 2I"N'~r㾻s '\'$[Iq6@Zɾ|F!2UmuY ?.mYf,C%[62d6ƍU| nbr KfD u'/S.g;|vlz͍+4$K\2 $((A"@$ fo Dm "a 2x9r FP3m[ 1NDӪ.(b\PZHj&#LOF!OIr҉ N~ a2΅] '%A4AXP Ir؉LVF$'aOeΉ8Q(b eSj]T"Stð1/}8`qUUE\.;.,' aˉ)sQ#̳bAG"XqA\vUVU.,[De1\ɌEQH(rJQq2xq[A %VN{Kָ%UMp f*qin5K5'"Y$5 _~U5EQPc+e׹ZM,KiaOcLIoqvFxLq%K%q @\q @\ .K@\ .K%q K%q @\ .q @\ .K% .K%q %q @\ .@\ .K%K%q @\q @\ .K%q @\ .q @\ .떄Y y2BaANey1f˧o?p{߫7Oy+3^}#ś W} ~[67304vo|pִ慣{".zoyz?࡞!úFf?Nw].ǞϲBQKز(r;c[mݗ̄23\wn {C9;'?^r{S7XEY'?sF{W$ l1'x`۽ecM;]'N]Ⴊwѥw6D}#Vz3Mp}$nڷ{ K箚CZouJ(Q{gߕmi,K uFD|߼wnhdȳNJDW@D_ p>̧_:DDP/0FEGeY08eOmQdKXz?s) LE*Khx{:ve:6,z$oƆKS=[Q^T#w槎pvtdKeYQcCu,vvs /|bo4Lm_qgw9kl{=y/D|CYvܼ`Z۷5} /O'AD6ޭi8YVRPQvߜ|vVwVF~?}_^CgқoY-_z}|?gg/~,KWoس+ֺ޻}ʒW^y?SYYQܰqbO踷342|c(mMu7nu6LL]h52vZ s&d\VUlk[\~mV"z辿/WY-m3s ãXl(>7QXd꫒#ܞ$BjVC;7Evg͵Y7\ӍϜ̹)+r<ѤwZ/&܂X,lVK{gߍ[MBNM\Nff3vbE1@\ZgQ!1/t8($z暭y!1Spg׿_ER})e:[lwNŞwO62cg>9GVy' aN^N!Ccl*͉̄lx16/a1.tɩMLNVYF=yy9=25ퟚ{ /(kRY^t=-o3.xhг{ss"Mʒ,KgS;֏{76T³^ȩsW~Sgd8wth5U[bMDzhd Ik`YzSg|G}<}2>>kp^QVʋj}<{, c==}CWot ;'w>N_EZ26%_hiAuJ_aBLfgg +MK ' vnۈ@\U}SǤ4Ӗh~?+1faM233yY1BPSƒV4D"8{/22cÝbZ3=q b%`X$IK1λ&bLrAXRl $[&j}> ߮iK]׃(X:,,B!պ#3t'$ !,aY)*zK,p8,ం0p8r}|_3ט7=jܥAŰD`k2cK\&uԕmROO0 so8 ̥rj+]|4|٦1i(V,ejZ2>4|]c%<}ђnmx x'q$ i}bIyȄ'}\`(BD$ڬ[8hmʣx:7]s ?^\vrKe7;YqܶqCyKh4ӥAOЏ0De'j#V2C6q 5:I*a#Lw7c_)=ɢDD/\ie{nWFƼ'N_>vxWA~6-QIE5z+Q vM-/6p;:듌>UͷF(]%"L-䍰WkX"5Ԙ'!00*T[UZI7\y{綍jU=KHt^igӄ|`um M\=17 Y%?-sy7d7Fm+/o'XD#NԔO31,e>7:ʠĶ'ҭ+ sη54%2p%NQVZ8p6D$(ŭ5eUkpwכ=`7'A/̅)N"L 0/Q]>i[j*-J"b+E޴ʃnA6JӧKWi:^D%5S!I`$ZOey\9bVL쵭M5sBSC[EQ~st|!Db=CU[ٟʏyXSa?]J-ݍĦdr55FA"xhQXX> 9 MNuhTev* E-P8nUDV ( kBHȾN&3qg&!ldI2k^B2s2$saeeeGQAAA0x`x@. JK%%@ r P\(cr/eu] IR !$6$gϞ:)낒bp/^ƊK;m ! A v׮nh//dc'u⢿ts:ttL2L45iǎ_?dziɈ_5K~vwZM֐a)yJ\ӼVmȤ7mJ b5h\ygMSɓ#dr| #h2)dvv\[\grPCaRQOT-d`Ĝ3fД9c./-!.#2 --ٙUZKkj1 rh=;fLO $KRIg֎56ueU7隋a̱gL2C9c.w׮wZKRwח-NmO3 ׷դ ,`Xc.;/7i a sf,LvjUs{`[AmͦYzwu}#D!vլKLR:a4:7Ud>)ʆAtm3ٙa`v W9_Ã-zȥl4dw,:qeI9ܩ_tY u)ŗpfXatM!4nq},;h1J:\F[IDI@ȿ'g|%?cZYc],δ;T7Wܕ60NCs*z3&>o ֑Pp7l|z׾Miꚫ~[Z_QȤƟùn V(Ik%yۥaMA !TմaBDD'N8glf)L"l$Ro. )dHSn&јz)B "ooՈ w4wV+?4M24 \ٸLKM^НD$ex_c2VRf-Jư}e !:wS#bR:Q][T(XID*\+88;^=eoZ}0hZƘ͞=駟z)fyy9r pdzzvzwϬٛ}goY hoocW^9yFaQc$"2 CMI9@0 G69`LF eLaDdn'k ;mΔ@kuHAZp׳z,]mkP0H~:)&`t4-#>2nf?HD'/pDt7HM#_SX!4 4Է5~dL/h01[l9#~+GYo>~󟗔0T>1VRRrm>.O;I&uuu)~c }̥ù@v(A. JK%%@ r P\(A. JK%%@ r P\(A.%!ɶ+~񃏾n+uԤ\~ʟ^}W}'sv @aHA.hٹ^yEe?m܂iӧv)xov}onb9cgIGzS2nwfkCumcrQfbl }J=G~zB|e0˖z*7_60Y#]͕;֬ٗ{jFtC4*yJ8*eUk7I+?ֱyLp7m&̌ wJ"' \&@gPGe~J%w_\ϦNf=*Ks=hٴlk}qw}KHFs5'+% eҕQP|e Θsɮ͵֑;c?K39]6/^?H zx׵٭7;mt_>FD\Zٸӷ} Qv}3o?(!s[>/tͼ7N?lI,yvZ˖k~>د4>x6so]25aRs+_}og|'_q3c}1Gj1ҭV+}IzYx\Dē/BMVIDAH-cMng}C@}q5O>oZe`IEg?c{u{~}^”ڤ.<4-{d9_yb60=TPdWr1c'Q'`A"v;y2D}-s.8._~w/=q;LdZڔ/k~qC"µmDF3()n tI:DQ5_^W|oG[3q[>^wcٹǷvJdn\N>֓/_bkOnRϝtد0AP_ $S+tF2oDDsFDR<(k5U Kv020|t(dˮm<8so\okeY垼)}޿4߱嵁%1")jەG#rdJ7-ň=^hװeg<7(uՒC1~v6<|)c5fZMgfd6"2dwνd"n/Eن%!B~ 5+Pێ_գ^0ĩJQ0}̚o~ E[tצ(TϾ]hھj[$"=s5j;_ز/re'[CDDqѾiٺ2cr4"شݏvteW%{{R;aJM^{~5Ͼaj Dv0W<'q˗rPkSߐrN/|K;So{|߿S9)@KSm{ɭMJш/55=u[(9;c3:Z|Ϟ..So7=ƭ/y32]&/SFcƑ ZZZXYYYAAAG0c%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(=H\d>HT 0xz=Ը7:moۚ{;w'IٹۥyRE]E9IE[Z~N4% l XmƦe]-FKkzUpjʼ9Sg;G:a@xFh ֿQ ?(F,?i)WqEm4c,> #c v ޯ{vS{Ā>(gTgd^uBމhB !KV(ѱ1xmgg}45D4!&Kh(̦W?v#FsSy9?h>!&Kh(%V!ރ 辯30ӄ~B.$vwlzt_aҌ73D4ϐKp+ID;1!x8|_ظj% G]9ow%|B)k{Ժ'GRZD4 oqJI7}ikۧذlx/}ذHBp%$*r_hx0;m $9&(B.A$i- z%^D/K]W{ln-QLP\t*Dv޸aʨeuj3[o) ozh=7VD篷^Q[n\ NlE%RV2t߮7"#涩e; *JS+wFՍ*'v pHV+OWܿey%-Ō`B. bU㲗#n^ӋUzI;3}p(%n%b_v&ԩEy/ %9^qmAmoD_B `1 !cdB}32+J*a$ #R$?)~h ߄$Ú`J)1(d)Hխ~ ܶoyf ) 1a?XC$)$COU>h𞞨|/l>"Ò,%t9$I o5yj/y1eĥdD8KcLJ!H[SK5\2zAa$Kg,e#R^jёSKKFW]řKL0r D iRajiy r.Inb1-ÁC.ZԒHfudL-ǹ'Ş=峣fÆ vcF cB ABXZ߸O{tw;&]|OsLgYRRXA"C.Wdu5 Yк)g"̻o}J]y}u-jCu"rZOpX'6$ kvv)i|M'ݞdMeu~}eB2v'82AXL!opI.S+D҆սe9j\+\n=!Z] BF_1sic]4%?*oҎPK#MHHJI`e"c$iJe㰾0gۏ>R蛵K$жiTsIro@.Qmߩ%#~ځ==wQ?eisIQDW'R[6ߩu߼(꾷x_& ɸሢD\&J\l1ګtwŁqJɔ"Pfv^ko0}=RHQѹg8|ږ?~w ܛ',2PgRUtV\2~(?vW0b8 ;5H2Kxiă\&&FLJ)0+j].z&[|z2P-w]2WjLa %P&"2AI$0  rɉ]ssw_~{,tyWnm>TtXσD-r F[syME7\i]?ޕ=҃vd<4>=[~ v4ZSE%ӬDZO@eb6Y?]_]^ߡ<_>h~m/>=_f;2zKoǝZ&.2[O#PDQ.=}?~spe ]oHm}ֺ}`gLJ.rx.E.4,^iFmqs"1L.~I;iÀ7Ÿr@.R#)˚Qg,f8#hR~WbVsysNq_ݽ7V~+)G2-k7awguҘvNJޟ;+8=޻$&?ĥr1yCۛjP6_|Cow1_=j?kB[srp•WJrjɥ$^-ԣ+e+hk_Ųu 6HԜ0!@]% (=Y=IxvgF;|)P L81V2d5ڙ^hGDz9͖|f^uMF_+qk]}w+M_q%Jh."O<`De F16Փ[hG3~SO|Aq 縸=Is۽xQψYd$qym *e )q{QD\&"ћUSNt\]u[ /`~۩9VF z2 X[-91&#67}3{׉A9 /;==ZXn$9~sb38ck[r;<de"Bi-09qsM g'gC[ UIsFys2mNLpA *$qb8'vzms]<:|#:#m|a2J 2gFOӘFޘtgxdx n0LP.$k13M'uC\s3 ^HQܾȼLvb&,2Iɬ٥bfLW.u5ޣ$9_֓н2|$22qÇ1kviI1$OMy6ӈ`Go7m2z%v$82I8"Tj:l$Ⱦ##A^Qݭ3tӭbFs8\&^GiG6L˼4㥚hĈqYΘ9VZ1=ǥxo[l둕ƉG7Ybj \B##q)N`RHkjIIri򖱅WV0WRwp4;Y7k}%c82 Q%EN$I"ɤRR8 צ\S?.bDgFN1qFze8`A.!,$ĥ$d$s)$$rbo)=¼ѧX'H|y3z@.a?V81b$&IJI")%q"}q.*nmՌw9o;: b\!E EAqk#2$i$ıOW.kCxe1pTU9fH3f39:1SK ڈI%I}"%qbEfd~;7o/!9.?k#kߎn'j=rc@Jr 7bZH3mKh%!6\'-oj{095~yQ>M2/dʃ6K8>gGΡ&8qɭ^83Ӽ{݋Z]]@?;?qυ6ۙnǣv pH$3~;28c\1.!O]Q% km4;)vnF҅d]ө댇ę4iW.J8.zSgZrVYxx^8qN'fLx({vFGM6unhA c^{'1K;\rńCA.+f"N=ǴBp+5 i䌙$܌RzR]x)~oȘIﶝsʰ,ReW:TE!+U,|(;31K7\ A$!I .fe;"w1.#/KMIed o{?=w4 r B|QFz 3^3o3.aDԾ^]YEpg|eD?=S}/R| 'q"kת<5sϾL]ciO89vFA$>)򎅿q ݳ<|dg;yxiSdg=IK\SK/n +\B<ѣEXvG։<{B^ZrV̫:ٿbtN;Ǐ͘30XQdXf[WΞv9T3a9q)H:k$UBb nvJo+j͓󉈏Ics)2 UU5vm?Yfݙ ;+#I?#'059ŧI jk$j?rRJ<王}dv\ 0>^ݙst#=77տ>r\W*qL[N/PH񦥆oIsZKfWscs]][z߽Z[x9_ňx6~ꖎM-~܇/^pEMZ붭de96]€bhZ39Rr _t%s4K/;n ҊOB7;pލgž>g֗{1}xQTTQ@yy9JK%#'#9F9r9 0!ˡf!Cf{13r$~_p"Pa}ch3zRJ4= "2MSJz=9t\^w$1^k?rskF[[Ī ^L ^w$%9Nϧzkki<"HB!OMMx scxL|tݎi D+hmq`b1h<մ޶޸y&![5<c1ּ2rqr ~}_jx]4u/b{CZyy9-JK%%@ r P\(A. JK%%@ r D'x`;hfIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/drive.png0000644000175000017500000005305714122570751030440 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|ߙٚ{' *]"*`AW}zE^U술4Qz P{l!,$r'Y)g>{Ι3,==|4Dh222.?@%*KU .TA\Pq )KI/ڜRjR8q(\QRp:v$۷[)]";eutުKR-vH iNI+[RZh~z ,~hO.X{0;Vm39ddIR[`:t5D\|NgqJE.<4{~I$ɜ]9<)`!oɜv p>.O]ǭCbL"r8tN7Cpժp:[QHXl˭{SuquȎrsC܍FߩqA#2E,IvI&Lܢ\NuvQj;$IQ Zo?:.x]"Iܹ%ZzkȒ"$C ZwC`QekXYU$^t.MHA\?Y+㲴*WJKΙC&7C`R~a +Ou(uY%zEw$;[r˪qVl]4nk6?{DLtH.:YQ,bSKqGke\Z9[%EEV/0<#ƀ9{ʫޮaz87yS J gR҉ʸK(6d"9qktTAC'se]|ATjJVeV$N9bgj]n&\˦dtJb o߾X[1RJ-g$fFF222.z7TzcI?}oOZ׏Z!ZUUu1h[]==%)DED '$IruZ$` j۝Rb6qQq鐬,IiQMRwJH>뚽gf;42{n#FmoѼj~X< hĕĞy_'˜1b*?YD!é5aٻַ+k}T}%'OmRnGkƀsᬸr&X1v'gq[eyVjUV9;YCں &=ٯK8_Xm4 z^c{mٚM'REWΉiT5\oĨ[?JEں_Z'9ZҺxMC]7y&Ա;G,_ѯ2DDw&D6Sxn߷u}'R *\aoq-{ϦV?R\n=#dwm߶q^wwRn\2nA{z|N^h^vX-[ǹH+ Ӱ<̽ԥ,\XMzTvoOm9mm:{WPl\z#[#}_[mL4ɦS%^'Yq:0ֺtyv-BOD$5f)O 1Z[aS:p(R#K>~*\|"RYo?sŘ%u Yzƌ1\TPp$d~Y|:"'޳YyA\^1Ga|(ڱ`&46>{jqٻW] "Ŕt'6(9ݚ-[7oSb~}/W$"nN?Gb^ň,XmчNFFziT%Dx jva[Ng++9X07ͭJ"d/+.8lm:\54ګyy 71_xaJ\Ǿ3ԧsxo}=X䅇%Iң521<'㶬͌,\2g@YoPv"")-a '~qk+Fçy ٥2q%Fz2`O^(tƘ\|O +W:z}gT>2wNsV?.|ƈ`lq"!$,@$^ ~"R5y $[[_l/9Z3ws71ea 9l`\O\s /`3l 3?v7Rפ йOo33rc4+7%gd<|H5JdR_f}w3%w-&S/w-'|f)6<U4#osK^y#_3NÔ];RF779z|>s xUxEATh"On3,+K:~2~&١JDMCD$D} g/:%؞eN0rP |2,g[Ko@Y.7Nב/>ٙo["g;5~͛2-s1S3=IQwT/I=粏M;_t|i%:[^YlKo1Gg#+__ye>.R."&^F=sTL  teKeAAYb1t[$"M+v Օ%f {>aR/NDxI]e ~㭢iGM2-W0אs'彲6XT4=hc-˫vg A:Vdd>jk0IJzm}_ph?\´>zq.;SUu;0۟_?wsyiqnAYY1G1):jJYD[\=#ۻb1WUVKZ&it|[jء沒b:0xpyui-(*-/ j꒻&gcGMϬD G' W)9vhEa} + LGذo}{8;5M9m_۳)ߨ㍌˅;U9YEE&=,koxᑝ.S\3.u2CH|ģe#z5wTTTȶ. @KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*Khι$Ip/ZZA0.f9*.,˗hqeYeYEV\ƸnGV@{#˲noΏKá( pEq8qYSu2H]Pqr\J8]qf8K*7Ɲ@kq+% Ϊ^`TsU=&FxMoC=3Y]_#0%r3B.GAǥ.ΩJ6*MJSQ/.df^WD^xkxfG}ǜg ~iyU?[;-зK6l;YT!i<BzH6Ri /KxRw6ims9ok/LqÓ}uݫ rH_FX?z0'+Mu@j˸'Kp FIp筲sz3yOk\3cjn<-‡_85Nq3F (&. +-+_IZqhPGꞿF6dHӡc'%b^Qn%vgUa<2,EpV\B[XKÌg^U%՜w<:m{?OXW6K9n+rkeP<Cy7GQBet+b("7AVdA`o*;pq<7е.MG?u_ xvWOH꒮A^Yz6,@Cw|;rܜѷ{Ɨ1]+KZ(h_~ܥz6"FeTvV"v3,?^RmtLΞ{|7+7L "3&uqKonGVk?ycGuhQ%:ˠel5k-^ ,===22YZ*%7fn0&ѹė-־@֊)`v"k YIҽ*t:Do~ܱtq~Gi?b-GM?f Km\ߩnIռkwvjrÅ>ψKhy ʥKh_emռ>[d5DlE\3ݯkDܕz\OF˅ԁj#8Qb1qSUɈ(܃Vn&wSؙg]t:? .R)MTB9.{ruEE!Mgh-/O%{zɯ^Ћ$($ڐubb+㮾4AbM1pmo&\yf%'șHuPî*힞]۞l^q un9m_]ݨ$my #';YΙkP~A-߽9ZBc:[sבVR ~N{ΞmbN‰5Ê.ٮ㲭(e),`WY[r.n:5){Gq=|,Yf=匄TklB֡û}'DO;8S{z3o׈U>| WR\j;$C8oRIC殃2(R\ռqN Iy9K}i2kH#=7B $k)rݑ:.KW9RY ÈÉ;e[l@;"oԔJE?|׏fD8kq8ܫ@ UN5۹1nhD %ܘX\I@}ݙq(=NCzAqׅJW9};\ Ip &dWs7FDT唹DQHJ9N`83ԭ.oYB ΅WQHKL7Tխwo-z7?,VuTYږx虯pVD֫~rSzroz-o2FkҀ{(To5KVc'm+6i_r(b0R IDAT*qKh_j|fƚsuQlD,vgDaubz)Dm6xGC#|Nj;ꊲ+;d ?O#[Oi6DK-.}Ev.L2'[;ZNÅ /h*'Tpr,AK^=(%Kn~OKeVhC֝~bz 꼒2o/AdX7Yjo(U-5ɳKDD)$Cc[~AW`t'.45?%I$Us""'?Ɖl%"36ؑWX3p"9K9Td91FQ8 e'VDrIZnLD$xGCvN| bn!CL€7f0$w6&Zn{1^=~,rP#G]Ցu#g33>n>|ݞ-E;W .(nR'v|Ekv-Yw<]ᩢcDH 4ͱIbSѧnc:  D9.kqg=a&EԍoOJܓmn|*bL*Lsu`OFrqw QROcjrqگ{JLCGu2TtrӉ qcm2R\5`X5JbK_Qs󢤐IRUV2H&Sz6I8+# Q&^Q "7dFF0ֈ$170%yhEQ 20 '^d 3B6[e+&]!̥AD\H+2@zt70@5 D9!.۸RJH\+ȵ*2z+b 1/+׶1DB8kS3-Iɜ+HdL#N u"i2bV׉RepK3ܜdI{0ōv29H#V8'0Xu" k0҉H+@\#PM\:]qБդ ƈs)˜59. ԫ] DFZiH\8#c{z[%c= .*l4DFBuS{Pi!e*AUTؓ'Yr'YIhsJe" qilCt&qĺĚ^`4@3Ra<lx Jq(` Ut -d!ᡳn***TAm] fw,˙+j -^:&5RR {#xx(TI"9&;^Oaa!R! mG`=JO*.Aۨk̽щ99.c|1NѺNC/!K*'FouID9QEcZ-> ն6Kk:uLhoDQt矮Qj4IETSh.d cՕ^ .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KU .TA\Pq @%*KUc\Z$fݶPM֚YA;ZEo5I%h]ro_h?wF S zme.%㏭*NXI [xWsIJ\S挕]_N]eM͘Us{e|z̔Ffy)m]|YB[_{:Dk]Ѽ\y\8'ڒlVG(ʋ`7rםgi7tgǚ `¶:~ԟO2{_⊱.tЋ7Erg=Ru]8أyiy\޸TPt"5zu-s1 mXS6 Eӧ;2XOؿ_#޺'/8',闀*)U>㞼sO?.ٚ^̼̝=/gVg[f>66tG>=nͼg>xYk"n.s7ƭ ݀;V<MD) ?\`wӷw>_jϱS3\p,K౓\45oYn=.xXA.</WQgW=p7,q*r vmO Mv?{1 _c^x屨e_ݘ[&Eti MZ<ܗ#7EÈFSZ9ݶddKw~%gy>{y v'"%{_F""9i>?ڔ'wutP_liO5]Ѯ_ }gOX޹ww\1?Tռ"zVHDJf{;K4@I9?,rKo,Uy뷾yYo w.<\>=]iEYp6֐ҿ{,~̌7gyyLcӷD-϶xgB9ye6t ڷtҦv!歟M:{cΞ /ݼqF ~ݗωxfQ[I |^2{ZH?E[+81ctrտ+, w0MdOI) ~v]b]}"Κ`J.Ohq7o|ⲤӹzާK]1%;qsMll|-Mx`dTwdOI-IIڰ5!dYv98֕qKU-s=c3 p 4 eWfڴn~=z8;9,zL6# 9IY2זW?2>*-ߤ*7oM9c;{z|fIgwkip=c<c42,%JX[9kژ>~AW;yYeIa؈x򤩃K68GEv׫/c+7<(7rҌ',$+$\ܽzklJ^ۭKlX #]q=;x{ ;??=}I@%SI')DBi(6u?Pr,oj.Wob&m&&6T3'S&?"2԰`m0A+ԴWizrH2'bm+֬ܓgsTش."XF9$fUeqlv_JIv>R9-*“6Cg޸I]3ƽfyϯ,3A o;oTٍr1!ٳKb"Iu1S/Ϩf7[6]>!Ħ0n-*Mo\HIy_j,ǖWsjB @uC""{ff؊;FJ6dkB}t~B[X]na3WHHxa=IH)Vb肢Fsj:zߗ~\;>-7u䢌\sMh.9?7Ro3kd*)`w :rj`͞wgT|-1DDeuhvи$za3}4"<ٍ>\}"CZ8?FX>ju(jg&=qd_?e3ǑWo_~aE$"bV\ҋ0N\=kSugq75M<g=ӻ6Quku,k|5Slz"Al" 7g-[V,5c^MKR4I{'&eϿ4.ȚU||Sχq_+a0N[9>_zvpnm4ڦ1~*:Gcg @腊1,59%%&e+!᭾b?Q=rP@+K͘@ 8H:NZ'xyy4 *5nͫl#@p0̉X)S""M>ۯ SaXNoOSjV~KmjwW; SV%5mo߻kHіe&j4$uQPTwt:X_X OMɭ!k 3~gkws?cϚC5jllL?9ځE" Ts/˽VOE?RV%utߪƟ^^ڰ5(ソkG\]UڲrQpK]J֊"~6 1Ďcg'd|t3.{Qn)'ĪUsx|G]ӱaٻkNedXʆ(xϩ*59)Ə^/$۾iCrW]E;W~K6+>2<"qJ^x5ɗh's>weLey_`s;1dOIϱ{',3ǖt'niM,!`Ut[ZvaqC{3̽Q}Á䄵 8/>gyVsY^BZ˃Z<(WSJR-W+O} 5:?U6!a.S/QEN-\G|~8+Ϫ y#gm3p彳V\M6dy t^tVݧ0:pOG5pm?f/m,4 næ7X|׋RkEXO9G`f>=Q?c~zFc/>gD;ic^'/\ST=3 g!{j%[԰kf_W $aXE29t^=?8 ч>^|f۬n~ 4ŗo׿w&Ey#ΙGky{%w<8g+#b~IDAT#}9f_]nSxO|-Uz>L8x"ؘ[`;E@,9[ ^~=_=9:X,`Y+i|#@2{sn|ťg`S1K~,<{ }~̞j󬇆~n~5i|~p_.,===227v[;5HJ󆑱mU=-;w'B8MFF$GB@l\fwvS`Bw?-?@j.w\ \iL %霞-@zҋ$D8K>n yʺ>| AW`dԠ 3[ua:tw޴m3'hOSh .TA\Pq @%*KU .TA\Pq @KivQ4'цKߨHnZ9M FPSr $U}C=Lѡ;ß ҟ^4ECsPI*сߩT(Ŀ@)=H7ģ^wW7{пzҒ[:mS Y%}].mLsq.3h|6Xz`)y;uoJ!~ZzNqF?(pFR1NSjK\Sy>M#&P#tǽ=M>M4x~IH>Hy{-; fN$RIBsKIO6&Ҡד?]{w):Pz:h`mw9yvZ>Hw-'iy=(l꽃nK RzeIKXJi4 MGi!v__H99*)qz~{)DF1=|_L}BDVOGŽo_KݨfYE+]/s)'^IC{A~wM?3IJ[P(?nAuEDcFQPP%Ȯ?DTuDQ@PrQZ Rzi#G۔y5Lf}y>'I337ahl }RNbJ/u\c ݖ`H_(N, >SPz /O}9?㵥8~ MVc7EK0bblQVH9xrY{fV s^9-B·}s1/J/i:7.D1}V<( }7n݈߷=3 +Cqh|jEIvbjOI? ni~2mhaypC`4o $cw!880p%11Q#o2+X| ""oXuѓe^,\-Hzxi"" sCĕ$ {[JkoI%Wy2zI4Ȳ J&=!N)]7\V˿nNd| <}#dL79rx<wy$8$y̘-.az8t raKtFdg\e}NFT()}m dPIsd#bъzjdD e]6#fʚ""dboI$]ya"I{Y{/6]FʮLWDrVɔ$m*\ ',M.z/]+E;噾^Ȟ E\1PXz2~Iq:(3Z4?{neG""zi-ǝW=.J\҉m%:n}'2F>)1;3ȭO/hGo/d NjիKGl P#V,@ށBR}D=!X*`m9*ġE ՊshXq =2"ۡ`ĉ#i1,"ѡNد+M$o-%Lům`Cҏ!!GFa'LuhV~.ńs(^W/hz=Ba8aO@ACHd G4݊/퉭hj0OL0`BT $f[oֈF? 5 z@a!Z_aǣϰQ9nEM^l ށ3.гH9FVoB/ޏ۟@~81-5!#]P"&3w ZCQoN:ݮb\o/?-KaP;TjGq,;A`z$p[_ɂ!*eGwBnV鯧7q6KJ`Vlu}[,7T#/sT{ˉ| h\EUSD|'.Eė>{>3#w]RlO[?JNjӡ_:D(M+Z5yjv"nʗzw⒮N6i?߽ i/akj}&Qjȩ)#9:(ڙǕ{533ʽ2QTut`\Rp%~gOMKN:ݚFm"œ?RBÝ':zƑ痗jXh-wBvnnNa)8U՞uߴňzv{P?쾑:⎔gj7쁶~;jpc|䵵O;$OTĨ(oQ =*M^^^fͼ]E%HJJs2!K""C|'.}D>×O%?WBTθ, 㒨FuC];$7kʸ\@oWQi|fjMDfyJ;q`|D5n|+|g2fs\999Vr"o4nl6_%f65MSy.?]u]/[VoU|*.L& J-#];%111**ehIII¸$"2qIDd㒈%!K""CDD0. a\¸$"2qIDd㒈%!fIII.?4%~xIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/failed.png0000644000175000017500000005070614122570751030551 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw\]vDd("mݵUjuu۽vjwmm( #!<A˗d=wI>>sq)))W#'nM-55o64KI .$A\Hq @%$:YJʕM cDQ$"c/1b: պY:Y@1F7:Z-xoS∈X|5a+TuD1c ,9{+hP_e/Ȭq/Sh=Bm䐸jIϯ}y3F#$]_|%ws,ьRX p /FSx{ȉŨI:r%ȁkL{n^3_鬁|z<+um9̝FD-k BLgl&~9 T^AcZvkX@MY~ƵN,DDqg?1]-{6=}"9J59tؘAK3&|҇Y'rOͣ6׮[xTzSEshEǖo[")UJWe[K/IqSu.pa,uE [HNvnӢs[?&a~5i:n~BqAʙl.bL޻v tɧue%{~u&^ dILN)iڹOHۤfr&mSϊQ;:jsI^&X^ީcOEYrrˮ0^0f_]>sLWw_Gk'>Dpo9]7ŘgwG?1~2"b [?|wᮄyߴz7G$^5wc3~F5- u4؁, K9|4޾eNKIS9Amܝ z3IzMLUc O%{[~ ""fļ9N=x"x#i,ꤾ֬$"-?)wݐ]6jJwRR{iýYɽâC۶ven;1!"Nw-Tۻnu4U?mXԾo#+dm|*2OձKZf,Sce%qÇٴk䕺;lc4]yt5+Ӵ6ɞ]vhDP]6Rʉ F]I^qʦxіw:VJ`b|xF}'đ‰}"n5OW?/Id{ _P셔s&j&YXDۑ8ɣ;FVF7>Wk-DuCESTϮQ7Ӓ|X)1CzzW[^uuP3^*"eJwf1ο`+ƻ|ύ>-WN&YnÇܹwNŠ+*5Y&֜1U .n !.)CێQWyۚ F"Rh5NEND3荌8TOɃ[i,Re!e]a>1]׭oiڸʻyя}oHTz뛖{7hC6ڿgm^)5ż;س"h׼4i2:cs5"2 1A'T*8JADd4XuԨ{_}Y=r|q'w\|Ӧ{zܹi/޻<]G=u=ZߊW0h3L"1}Ogc.=kyb;.X%}3R)'"2Uki&7Qp̜r!Sp]II/d$kl]5A>< )j"t6([/fJ1o)ͩB{>__є\\~s5&?ꎏ4{5wZOfr?/4mbnn}tISh '^ھ焱M RN޼Sk넆<*msW[.Uxy˦טh{A"x ,Kn m0;&6gONnΔ?{o_B(-Չԝ4O6{ My}QVVE={WgXpvᷛN֤R4\x19Hn5#sw}2&r8+lZ=׸֣XϮ_aȻ|t$MǑ]]{pIL"Uq;Ӈz`-+κ+k}︆1 .]׊ ),;ASZFWJR7Sl;jG1m q 7}Ҿ-w3\%"%ɤ홴}=qFPԥy!7RRRp fǑHw] thݤd xZs=QTUcDodPA^m78DFG7{;7hiPP]B]`8b6&]IC̓ 7rKjj*dlfm;7|4 AWHL-t:G^@4\kѕEҞMܘ)"Pf@u b}l_l*ņnSx45 P;.sşgЅDt's؆ ~D2jkacXؾYyo[ KEb>[/EeU=+| c%Hc-#A`~*F1f1= %\`,-;U]9])?a2)80$Bu 5JI#vpW6ΰ#>&6Tq ճA>Ae. *zĄ . "?{[ŽCbU!.FclǦnʍv$TJLg0ئcGW6u˹f\D8J̾.Ƅ?dvK̾X_%G׋?Cfsٶ;?Pؾc\:O"F.ra)Gb%TV,%YL\E_^,BEbA\B9!KQDƈsȄ'Q &T" %Qh &nl,Ą d0͒tus:,-fcHX4\:VDžG۷ dX<|փ~. եk+?OO'>Ƕc[+^zkѲn^AQL}ӏk.0QW "BV8ĥ < Ťu;ayxKVLykѲe4ZŔ-lyxӧY~n?Qp@\w(킅K*(K\F}Vgē'lv41ƸX, WTVL}iU7W/LJ93 &T.%ta\X/ߐ׭,\PRJ1i*zR+L[,?g% u~Ɗp:u&yHYºUs [%T)Se:Y XRRYg> qǘx'y$ԘSjYcβrFוxBvQ*g9kLJ1eumII'WtaCJJ+ku- V4@RLŶ'uyӌLoH% .]mzW1Mez˂J4cj)|ˊcsM_$-feUN*ĥ2˲suUs$>6GT)Y9c ۫E#b.<,+TXm,XTђČnnYV~uv^X֕JgtU]ouieYJbTS&9z+Xf&ĥ \N[T 3`^a*r \ll}4ZK8=d+ _ĥڝdj Y֭wHLjLF5m2$ IDATOgp٢XMkS5)U}pVcWv*r1K "EZ8RSYi|>xUʉɩOZ^y}!.]Sqq7zsRW>any&Q7岨fe}u q钬IHּ M򺲹\ҞyMlQC ɢ.GtU?s|P+fՕUjr#kL>$s|]qz'o׊1/T=鐕~uYi&?9۶~To.껽OEǸ:NԼ8Q똕WeZ㘘iOqZU݄t5Kc,b{yȣ'~rl}ӚƅmTJg]-_"(E8"r=KW吘xuY|y˳!aZP)1Y:9ayX]DKׅtaҲ?ݭK몄g?a]Y\hKLV_rnZEpsh[(ʞvժV9EDbVeZ($"B-:YO'R**v LtIa穛:Yd{fP۲*Җryv\:~MA\Bed1wǑ ivPiVz%-)vxgyS2+Jq UT1v+CGRt:>xqoGl*98d%,zKp!1!+vC2aiޤ uuFKK#YCU .FaFTvA #Q*̀xuXdÎSbI}WJݹ{ QV%CT8@5P fՙ&&cqSQuna>qx4|!n<G UE0N!֕VrJKW51/Hh?##RK-uFye\m3S[Tw:˪[adj .FiEۭ_3E2F{kzhz0ْg>iNbȯu)vSD*)"97Q|gkV׆Oc!.jw+wJA(z&cFhhL1I-rb!D,3Lh01@DBƫq*=d~2?Nh}ms8m q>X  MգlU޴Ɛ^#^8JQ*}!U;\m>+C7WdKEe #kVZKK,1;DT?T9%&_7W\Ci PCpp-jYiǖ+ NktnaQ5C\5:iPh+-Lҡ0PKF(* .Vޱ5 9s8JI5vmC萘Uo,C\BmLl%U㒪1 IDQ q קjߜV]OT)7󩺊!PUHnt؈a*"bŻ^*wd-fyѼXx~ż+\H+fna]yJBsv/_hɳY:lwʫC[)ȘcKJ-4 }5e\7%kš#$_τSJrm`Xd{OݘȂ_]}`a_M:#m}+%&ON}'NɕmGĖUYs%n9U jwxMe7E-u+FU@d{GD oLӾ]r aD0Ûxn+on9)i%Ӿ'j.[x@h+ۅlZl+.KKҾMUPtwҝ><1a5vYeLz./f+=3{+qc.PV|`'%!<Oj{=R]P "1c/Sf4~B3o g;iǕd>#'b]祜>5~bw5rS+ ߯U9y_Ν֭=aNٱÞ|M,|k#8"{mQa}k%s(P48e{O;mq萾#zXh g<|DDmcBpAO∈'߿ׯiyW\J3/52ZFDc[f?*%3x{xr"v_FM8"b3o|9܉tŊ!cgLx$BFDKwQe9N]v_Z;)tyǻpDݰlZ\lFw=ڝ#j٢sOc,iCWQdNSyzh)ݽˆ$U~?ɤTmBXɖOk{|ȮZ" ,9nyOWzltMy'GDQeO;T󾅛 $j,x>ݯ^ΟÓnLY.>eЮM䃺]^sk=hV|%{h;ϴN[ gvE{qmچ>xm7a^,ee-3mO$ XwmG^y\׬O?zH,GoQZDPޙB& 79|!1 if.-6} y{pKS̻zWy\{PĄڈ( m` U[ũx;/z"w"".E%pCJJDTRgcEˊDˮ_ݕɣ|;-{kyw?64܃#M;ʥ +~>|WfCKVݟuHoE_"jc Si&̺#ѾLd00RtLi<݉JY .#޻ՠGxa$f 7O),/}Ģ"Wye-bێ-a LWdr8P5:xs,P@[J iԜXZTHUnn̈́ɏo m>Ӧ8 ͏pDC/+~ԮJW"^Jx핥[}Zxfo~Phܕ\@G?Rk85-g,.tFj˄ :397Oo׿Fϝ޽jZ[O89f֑8TJvw%ۈvSK'iѡzG4"范e]*_ڽzNAlCu/QC6 怸+0w˼OXON}D:]\.B\Hq @%$KI .$A\Hq -_=iӛlg7LZyg1&|4uz䲒N}o yn-g??\)4pcy[_zba#┞{3rD]5YL;9y]?VeE{ߞǞ1]Jndq!>?gӱuj!uܓ-k&whcuhpr s|!u%}r,c񡍲p숙ǷW yo:h[ ?]ETMb{YtH_7۽//Vr_4X n~q;O݀$"Yw:J"e柷]b+opY6[mcPώp>a媳zvu\ߴquYGI[Y;x){_OrY~v٦ {Їm{w7>7iB 5mz{go^Э{X9뭖;kBѣi1OwG}c~==DKD3^[nsOwg];oYs*y3w]6}꘶_+s2_棟WGtv}}ë?e| 'E̞pt~ҊFM 5D41HHNx}E7aY۟(8xo3z|:?#5DXxbȃv5Y?KeOnLCS{i.^_N.[zqڰx7,W62ǭMM2ci-S뫥S |@#Swl[3FF$}lǼ;+wFhkq?.\|^f=S󗉗16$m/;C}Vmt.:⥄?p"͠Db2g9y}Fw4ʳ#f$`eZ1Lzeb]Kn˾\<ݐoXN3;|֟2;9"'tuQk)))qsLc_{{(\\Yr7=^"2OpTtI|5W_6gG DƘxy)+One[DfI]̣_?EͿ}zJL=kCu_B 2'Df{Ipys;hvˡ?W:ӑKwgtFß[pۿᄡҚGyhcbw6߃fzB=딳ygʻ;Lk^{ِ|RA4^^)rE&^^Ӗ/E}ƪ_',11?l(NO0f>V$Y6u Ygftیp Exim5ץƊjv=:hN|oo..=\ 0K^Ο^XKQHfsN/Z }棿7UyǍyYR c^sNM"kRRRygCKz] ?{KRjRփ_:~q1/n;h9RfȈi{gxWs )Bz>xm;[h8Rv rS|@9>='N&?b@ 2rY '""˹$޻Mѕ(6_8lTsʠ} sEV|pojZ{p:xv~e%ݢU\4-Gh *wd9Q5kw)iATu]cb`IDATdDĄOmV*+mb5{7,ONrػ9lb%v&G1O2. =o_$<@Z9WṁNT[hpJ: .sۡtXѭt:tKt˰bݝ鈉~wk{PQ0SpNӹO̬ J%J,lE:_ϲ]{{9:{YXLk#Ffvq"ާI{[༽^'&IKV~i(_sDDmd׼"""q֓XDIVzqO9ޔ# blxzxF""V|t/<-rr X])r/..IK{U\_ ^emv3Ē"oy9Oo_Dt]8ؽ w9yDDbvQu.V[9z(m7-ö⒈sxχn?v3EsHYf⤾Դusvxt(|܊ -D2"}q<1fBf,.{r I\%NrPg?ݽ4gNf)+rsGpg V\X(RKuͱυZ<0u7ow;}4v__1!J>%"Nf:Uhb$DA8"YzGf9C M>+"iy"2xDN^ մ7DbIA1@H,((QxywO<#w2wWs;Sm<}Xj]l>gNtڭnθhO=p lZcz8u@QqUޞ-8w/:=N=siP8iNG32g]X9)}<3O$ބS5use^lkLDAԡշ2oK]l!yg/<ײ;Ѯek3[hWͯW=ǜ\mȧOrv+<IP{5:a\n7{bY̌{CE< V70ҙ3ߝo6m;ջ:(>xoȶ]NU^γ}+VbʢOn[d]MtyK̕#_ŖuHHWd ql8ꗟZJ<d'wۻǨDć>sz"ApկE3q^݆=svyh};QQe4]?ɏY{28i*{ÝDxct6vï{=YS^4*xNקgG3dhs>?>9>lO鿙?YFwy\a]/}NK8,}[_h~ki 9~.ygq}KSZ1ӕ-k"+%kۺ |۫7~j&r" A6X-9mG:W8TKI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KI .$A\Hq @%$KIoc8?33;{7wq--T(ZbM@Ī5i41QG5QjoјkMi4Jr^97ww63\Sb= w]fKB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@ )KB.@J<BQT\- R PiiYV:lj)uGGGcii:g\}󼉉L&N5MzZR*Ak6昮󼑑rܬR1j뺮R)Z D(R,NV*mQ@!,rJ%AjFx.u]4Axr---QR] @]uP(D=EͨӗrL.z\zQ/K~SԌ:}%Kt`KDt+oaL(MGo50V  m;7?mQ?%B~ [삤6oNu\"l/:MտyϒeB!}t}_+7ЖAϼfoK5un]Mտ OM77/#dbYS˶ܱ29V=?<ݿkc~̋)}|:?}qd? &DeO,޼Kӓo`|[bspcbApBjM^xS¦֥k>cEy^ bJ5-Yv窦󧏌,۹cⴝn_SW}S]A'1[yN˃cEgǿpA?mX{/=+n}?Е6E0vyxM:?ȽM!Ă{{TK6у DzIRQO|oW,qB.@:T9et`*K (}rY @]}0D:$2Msjj*2 @T*Vsv8NE=!_*"怦iav*,+HD=TK!D"0 òFX0 %Wu Rzl3\r R%H! \r R%H! \r R%H! E+LN"a w@TM)3|!Ķ%MNrPLN,]yL~]ƗװcxF(nmW@G(%H!E0f[m-f7^PBQ}qhj|k^ ԜPײ,B.@ )KB.@ )KB.@ )KBd٨zo6rK|iQIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/selectfile.png0000644000175000017500000005277014122570751031447 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxwW'0鳼cYzOJDJ-Rz=ӳ=3;aqbpŘ==ݒZ-rM(z_dOwDfVdaXtݿ"x@!N4~ػA!qB%!BqI!P\BH %!BqI!P\BH ڦ<˭G?,9@))Rsc ԑ#w~kOϱMy9By6!.oLqi ᢝt%h|gdBl~1_B{m;ui,W[xm?zw Xipܦ1!<T]ޜy̭mKN_s\W(u-g:uctt0[(plkvB͙wNuk|OSlەR;^n^Ob\$\:!%bwB 6o-|zj/[b{b pᾰr}Ow6q]pDqswB ѿkimR_= vv4R;:_]p-9!;t$-'<6Etu#W !!] ᶫrm;k- ;='zOf? N$r MmmoI (}_M۟":-ܴhnVbn0..U0엟&UFgG}'<0&$&vwwÞy GBh'3^s||Bl||z?rƻ{Ft{T*r{y-ByZ==!9z p]WhT*kv@(RɶMcBy().䈂CRf:&PiIymuWEJ`P( _J m盹DŽPl0.K J 6<0@g~ny[r=Hh\,Tn>l,P!]xvL"wtn('5yo\()L3̝b1?_O.ͷE|TgpH'kb*X#Gi}GwTj͂M~k/tT*ܐ;Jmr9et=qէ{[C @9Hq*Aލ*̖Nm;p'w/L {k/h0@ڥBg?+s 6ڶ={lޞPvnrxĉ#к{+>:ַ]xWNڢR9c7o,G#h[ֶއoPkJaFrnl(@~C[+ȌPC-5޿4mc}goFl'?/o1ܛxD9#0P<jrKN_\,XJ66}pOc#sO_8<3$5v<靍+>"ukёT$p$HtSK_xzX{j{*;=r}\&[rA3ͭ?׹^}m}_1~[KHSǖG mVM[@iE Zs/i[Hb/5v]OZedCΞr݋ɉ O]\*:,޵ȡzL/_9}ul|`)-Զ4^divd򍉱-P '{:v~D]ٹѹlQjm{;Ж?9;V 3FSGv]2.87zs|Iߟ߾W7x-?r&Ը׿`=w?@4?}ө7}G w~zj('Hٹ~-Ua_qa`z(7e0F –ᮭε DjXiWOg xKSw+wSSOMMJ?۪lvKH6Znv)3=rm7j]X"Dfoϋ޶uC%Fߎ k~;vFdG! VPSo}ɐe6$Rj~G3K_GX!M/Ό}Tkw?PA13SS~wOr:'gK h%&o=qrai~vnfFېő Fn𝗏%%5tW&mݟ&4 ϴWrpWƧO&h}uwg@fOW:ڽfsuj(w?w2{?|gmi.~%[o<_ Amc@r a{?bwߝ=:={'^ZUrrr3+;;wg//?^lHߚZ07?d/=@\_u;wXۖڙ3;(Dv|8yC T(Fώ;v*NO/L\:=gl "۾7DօsDQ? *{7/_:,福{GVyغB&иwuzO#)q3P<5 W^O>;98['!{:+mS {qO+S7kB~Eit_}]Sȥ)fN@}T"GڻWÚwtl[%+@k;ogY^uclW_Q}wFӓng f'Kw=/ Avύ_T!S+Z[ƶ08"#6RP~ۻ]C]>tI5CgzGk:>jXN۞nj:CO>^_oyGf.,j5;1[:[3 ، ;6ԗ^OΎ0޶D\|}Kdq*sM/p i$UtLojl`w aCca0Qwc$%1;$wwvG2yV{9iJ,GJ/z#(/٥rֻ3<8ZuJz3b#7s lҵK_¿Fc &BJB,Bz2Œm7,TQ ǒ:`Cw 9wf@*uz۱Ξ=ui0f7vTaC2K޼s{S3/Lh2^{51pg?}j *?'y>i2vxώޚWV S1['ovm-qw0FREqYUǧrߞ(ɇ5޶`gwFPf#ƇN^^{ &v;{;Sr SG_J+yk_Z1#~p<|ڗkON]d8ԥ~9ƾ8އCٺxSOuPL3gŅ M߯I5+N8>q8jF$dh(J%oif/BcS'^ɩp)\Q_> H$B(R&[|'bmG^{ޘ?ǒ.R6guoyOOzφ["P-+4M<>󷲻z;ͥFfC:ĭ/*5q[_w٩.[^488b`4oMeto7߹02=Oɍh%[k9zq/acc#.5|㉥>p?y-Bfv;bCחj7KN߹y1-rP;GuܧwH(.+0&ҩlT+hCO{=;׎Z-GW\=Hugo]= 5~ƅӳYu3ҽ{wrā}}۵WnߞI/-J[wVxDLv1>?<>vhxC~x/6{=tU.S7OL O4~Ewttja1], %P't-~G޸:<59sPckgOO^&X{ϮomV>sevμqJ6oG.hh5pɥ@nF;>{?~ h__ B~3[Gݗ('nݢ_!g ߧɔ~$rƶZ8<(. |*5 scx0s[/@zr B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$KB B$@(. !$a cq(.Ru?ŵRғ<Z5 R+omA6",&(.Ruw`҂Ygms肫r#"MP1M5ՀfC1ܤ$ %|u m/J%znyT@1 yP \W2K d  ވc@DdӓB'd3JJi u'R@0a# " D AG JB-#䨼%" bAnk M(.X^99Qo/J` t=&tj (USA7 r@QP *j.xj\mkTZdsQ\{URRJ9VRd,LA ! `K, U? vo* %T#p{jol)/1c@sy(.=+*R%GhqvFpg|&Ww5w!lT^fjz fIa)!%&dFB_eNjZI;;R-%S(qA :5<,pgoW9%&0KAuRycLAA饞JA[5Gp)#Eu/ޭn,c9%&Kr pYq&=o]hp$&mUꮂVC+  eK_*aUC IDATԕI6ܝYiG 4cBd sPz J%TʽGJߐDMtJXE5tYӯ4 KLLr(.]J!势 p$a : M˹Ipu%&(Kʬ9?1B#o؊/$U` Gr!uI a! 3nn^9سG@I6ֻ$wǟ~R-@y^)U9+(0V)!+Ag={Bp"Yޠ$ UNTI*?RԡURj"8BxC$KHuʂ4T48Ԁ˚TwJ\-(6(R34j&G7f/*rII8t\sh4xX7>7+jWATms^qݴ\g {Ey+c$'wD%Vzq~%a=QF*J^a*\QJE}U%+Q0 yfͺm%v TcQ\;%l`S r `m$( ,%@+ -*yP\5ՕYrM.s9PAVLÈ^PBgSoay&j}rEO(,ox YA^>O'⒬ ?S2#lED4dޝR?+n:l⢤0pE!$}xYEC5tJBYTQ"(+!X>h,߉uِ[""r΁&Q\5G[lZ lkOV,G@IAһSgzAY-B#aĂ4o_TW$k$Z !Kp= (5+01k%*pJN)WJ(WT 55S7M# "d5=\6`oP8O`Q&Y%YE+ UWT ,ӑ!A)QJBQA9( A%pl si<[^O*DVi'8甕d^]i`p j)br\%(+Y'_ v4uڢn+*Gťt4ojo`:DP @%5w< LK iy&36B((7P*4Kb~1RU˫5IK%Iϙf M=w[g2/$Q*0z(.Ҳ䪡4jJur)(371@Tz>uAe_5.(}ϯ\RfUA.($((G/as򈣸$5ʢ``]rRUjfI9nJ`Z%8Smmc A )|A =*,peRҺdUjeY+h6-XyzP8փRTU%t]\-(4a+TG@.fPd6\qqtSˠL8-2V^tDqIKKTV94 렬ĂajuA GiN1desP GVdY kB)=ݴQt,iJJI%+Q\zr:n<(QA~)orP,fHkJ%\K.8z܄!ʘO=: K9SJT!UdjLS'̬Pbw/UOI,_1,mD1= dѰ5dæސOglWgAj0sB ;""Sb106(B:J˭i88W^A5iWEkYW1bJqSXk"2W^졵&+Bݑ`j"M!%,7SmzK_C[!5 @(F]dUP j >M%葐ZլlHB 5C:8D]gDס #}jzDM)ͻDʅ0uN■4^Mw)73?i:(TS%ҥ9ޕ @1 DJ*KWrv;%/AxzƵ67pTBsW)%Y%(+))((.ɲjITy<IZ ^U~My{""g H\{`8l0_Wdu&G!J`xAݩ!JKpyT3-qæX[|dUAɀk4NVGqIV(NPִkPq!ׄc:kUwp@d((7ڠ\^;}wFtM!S7.+7 no²^+-V֏%]ʖE@sx1nҼ9CQV"?|CᒡסY>E@0N5G,w,UX;w2HPzwCGD \)%v JƧ3&fvgx%[)VzP JoP"2Vdu!njz+B,'WcٮH5Cɸ鍃l7_t %G)eˤ]9+8r_$"PujQMe]ۿAeVJ0u. GqIyG1 JuΕ+,E-N:GP[)3Jиo 3D!Y&}A))Jte JK@0_*jE!pd]Wkz#ԜSY<zV4ҕL4ˋ 10Qpe[*'D֞ ,@Q!KR|RvHhJꂒ+`PyJ b `˦r!xZC`9:)DX2Մ-SBFǚ J@!0Ud dY2MVAY5@^PbN&^yLޚO5SNWJ鼓/1pR)&+=!NPR"$8&Jqxǝ<&(.I?1=&UR\eRoՐw60UY  )Xy;[ug*q%J\Rp4V by*Jj+һ'/`NJ z6˱$Y ][> ,Ѵ8P?RˆK u-t,JIۑ9<]0Z لF—5ӡ2] *[ hW>GqIIۡ1GI,XPB)4nV.PWBAsУ6] '[p.i˅S^V{`IbKA@NbP%Dk=O}Fҫ.M SyclAYHY(TiAdR<1(WpŔ[*46jhORƂRBU.B.•⚂DqImK!̋˻jB5s^bBmZIYei ^qqePzOCɶhʕ%Ty}ioSBI24J&!5`q9NdZe0?]wF蟬S86FT޹޾YTZ4u Sӵ|{J̶.?Qrߢ\^< ]W',TҿVPeTrU=+)+[ TK:'3QiI꒬ɫ.R^\J)eHmY2l @UTQSU.5@NZ9Q@!0BVD)  t]1qBVEqIV`BHRJi,lݔ_fd:nVP?vk; X%(sePVcD 2滝nZFIBqI?\`Ji7dVN˥E j(7ՊUV0Qܢn^KrGdM!rƘiJ)tRk.0bMl/hu=).pftMukYJ)'1RIR"P"(5|CA λUЊ)SaT,I@d=޽j\$$o*RZ$8qr' A 9PB/+d}g7SKUl^\A[HhJ冃:8.Pa=˓.WJRpAtOu.+ q%\a^tLdQ`<ƫS*(+냲ZQZtnS /JV֕@YI$Kfn*PʊxJŠA|bmPz (¢. GfNYI%;ulS)ٞw|A.&Ì J>u \J((0!Q!t(Dn6x]V% :qݟհd1hTDλy51f"c;iAiK"dweSz?+)4Ip.LL_uYYQ)2Z#e"&KA/?W jV9(oK-E;ҡ(n^Ju#e%+Sc ]ÝsҚgvԒ :FudϪT6;KgQiցwu~%e%yAڊs!w&<'͂ ਐB9  YDlw4M 賓Q\ M vfۥh#1' AG 8B(J(l^:ۛI3&iPV{@qI6Rji†(6s=Hֈ.PV%A"(ʫ++kb.x$bK1^Gs].Oꕗu$W&T9B!BH)Yl/楔E,ꡂff0f#Z  uPH]D];jv)&E95ιŢK`TuWq"(.ɽweWy9ǐ2!meY|zg|8cݨN?!lhVJ)Ƙ^UOrR]?%(.fZP7^ݮ]Wqu#9dQ\W<ߊp+Kkƕ#r((}CqIjhB%Ԫѿ?+cGHX侢$W5!XmCmPj$%y@(n^ !ԣ$@(. !$KB B$@(. !$KB B$@(. !$K6ZX}Efo~On޾CY*wW^wx}NMBKlv̾cjEiƮ]>p3gߟmcS7slqh>vip:dߡbil, _04WF{{; Xr|Fϑ޿yQ߻_hأʎhd.dρ'u@2qXuC ѓvey+5v<(.k,YH68x=WhY d\8~ah`vf~3ɼTdZf[m*?6V:v#=y塮ͫuxc=ٵݍfy 7tͶũE UE9Sg$rG.rқYq1oƾN];gα/:5ƔIDAT:\~1v@*,{17c ~_e9O% iWV ?xjͭDYL{m"^WУ]"m=ݸR,?;pFߝu)uksOe\Lu?쑸 CnpPw6Ȣ M\a{zie#GGGn̾}=>}֭[ag%8r{)ј/ȡo %|s޽GU 2LB ;"AEJi^ԅ[j[o[-ftO]ۥBzA E"p ` !91AA^$0p~J7wNfs3v9BCXoN=,X)r F%!`\r F%!`\r F%!`\> oZ[vu4Y;hV]\[_W(;0CW(%r ,w+.djmʴu(\y^LXmo,|a}>1DGxMKw +9G{k_ٔ4HٱnCϪI@.Q2A˛M^͠:EvNӎΧ^ ֿ#՝{+J8J'GbcQbn5ED{p@u9 H]\tH#t^lE~e&V߷Y W,oP2VeMkyuUVc궯X?3:#(_l{Gͫ_1a`aG+olq}܅r/xvނ}9)37R2/8Lm-zeJDa/;?}'t""'ʍu}9ژ%޸sUkw>S-[d_K}ڪvg^R_%W,H]T~&Lڐ5IܝR+ojN3^MZΏ;R销݌]/w:w wvw _UYjgG _9G[Eo$x{ٴzkcVE[ᆃxsg+6>Psss <!{~'-o:Re]wT5žHϾRê#o<]'m^dpU{[t-*2)ƣFe]zEwV]Y޲yఛC.%κ=yE*3[><'jJD0jrlrR;}*$^᱕F9RV0o.4某';UscVz+Șl80̝:DG \)s7""5z2Md6h=Ru#םkEz;<^>LIّ1b.W+KF8` ;GnSR_HTDИEnWjI 3ߌ?+q+ۧw%=ێ)[ݦvj "}>/ ve'hyPXW$/|́ |&㷩K/5}?T~>7:(sfTȿLp%96kwM(|Y kظ59hvX7guYsɇSJ$181z5㉎s5lH[_@L:@Dub_]Y$\mw7M>f9㔥>B~ڝ wV:缾8<9Ѧ-zKgʜ J=%X㌣ߧ>-h|mzrx<zF],lLRlֶb.4JNkN}O&TW *5d⊠s\J)qr\&)\Rxr~& tdv&}2e6=Prc.+DLxrY(J=PJRϢ˄'Zkv-SRJk]YtӢtyچ=5|h+Vt5_Bmۗ޶v[s&h].=nDXn@] $ٷoTӦobtY#?0ak-)1Nmݴ'll-T#8E.Q*ǹ^;Wm gC2U5-}FL\Q:DɨX}d6_DD%WE[vmm邖`mɺCW7ieێM³\T<]ك6}iъ wo UA=mۚZn}{~3M3qRO 477;Sy=z(,@cc#{`\2ROۅ\:7!+ e @Π\I .OQX6:X,<\:|?P'XSR*E"JHky뺱X,L.~m;HضfEDWygh4jv'ՕBKqG)8N>/f 085AP|D Y+%|۶-:6LQ\), .TT0B.#K0B.#K0B.#K0B.#K0B.#K03A<{!8=5wsBADLD{U]58N'+_}l\&/~]❥1c1_yS;m׎#'ܵuwkǏc8!n5z0K4]58~SZcc#q0B.#K0B.#K0B.#K0Hccc8/IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/fig/aftersale_services.png0000644000175000017500000004361114122570751033173 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxwxS0`ٛ2!;nh$/MҌi ͢I`` a`l6eY6p0e!KGz{$!//RDathpu@. \K.% r \pQRέ?Yeʌe&2LwׯgJĔ.Cru <^嵹FK$,dRrt{ym~n{Eqyjɕ_G\bDɊݧ~PuD6fgMQA㣍 /x.s:}FqUf2V\wnw*ѲY-fw >9ūw~HVd-rLOW/쫍5dFE[el Z+ۼPߴ`nVZi(J6?]NzVDlDVѽChOB}ӂ|dY6Yj-VMQ֪ dц,uQ-6Iw(}$YɒfJ6*Oq0'|mFoAʼn>!>V%\ZˊڳX2&X%FT)\LJL> IV]2Jw٥Z˘`6[ӫVԹCzu$FKmYMq>_8\ZKtpM$Yd9Pk&~O~p[emYx@RcQRdIv\D{I<*!Bc]#e-NtE"Bo%?m Kֺ ,[t혭\%eb2d1e,$ŅKW 3jʪϹk^c;=;l{+=?$ɤR5z&*UW]c·rXCsTҍle.-6ej ǎ1H`cg:ʬ쳻ϟpr飻\9l$"B:\|2&s(ר4o,vbRL!///>>r_~ݻwz8]WR|z[9Kcx=˞ϩ=f1LWr]uEգMm-?Itql6e4EL&ͦ$L&bqˈ WB W+Ef:}_[SmyF&h3GVoÂNUHq3GDxtB#jwTkdD_JC[ЧD8~gWgFWr~]Ţ݇BW>wH9ts *0"ࡷO<:֢=j5? ,"2?#ac\ujkWn;{ΦI>kqޚʌݷ?\YMFE1rzHX}lpZQ`\}T1[e3b@Y̹ʵS}Δ1é|mus?1|vwkK,~dJl}ԥK D$򿽥,xs3\i=p,oKNҩ9kοԱަQ_zOo\릛w9⻙D|u<#wDČ'Vo.:l l5ŻW3E̸1 W.7O$"AbW*Ũ7}D$\Cw&*m߭)ju}[$(3b3VʥהG}wӐaǪrEE' >#{u)U;H3yJߤcZE?3D$hM?_`3 .k#/$áEkKlp[ID۵w?>uW.R$& Ufc$cuM*wJ\U'۳딅#,G׎I;9"B ۩;eA6qth]q#Sd$BHZrxT^ jI6fgf&6-IMTn>V>>vPM TgdS7Ӗ{`)6=πaM n˫V&Ajm`tacG\;8eR4eg%&"ل@DyQqDJ2c$F$6piyVFog-A4i!pO(hE{Y3Z$"2[1fl7z5T=v.":>wE$.xiqQ N/A>;7wQܒnA1^!_fiG@|/a>A1LA TRT`q\^^}!4K$ J M~Vf}$(KP&+ZΕ9Fn\2&7A$( *0.U2RƏ?X[|⾙n=;awmYȾCǁ\z'!x $Xo|9Pf;% !QˡKub|󒵪p瞂ZFDB&(1+qLG~_ӮDȅ~Yw)Uru{dA ά[p))]۶1Aqyo`Z ,k,T׊hL7cm% {ߙ*mJxw}m?<}i||`(/:gdbPc/Lx2-y?e~!A* mX_"%?sxOQxDB2VTlB]7Rɕ|Oaqѱ!>jt 3t}ށa\us JxAU t CySEl^Z<7ozTq9v^~n&Ͻ{}4c"l~"kZ2Y@\z/eޏ[=Y j"0Mu"V ]7XbkvL Mỳ>c W${.ڝ99g.("no""Rvk>t4IT9tkƧ_q>x'r5Y£{[l|Vi<7nݗy¼Â>2)G'9~9vV\3xathv \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \x1\">Ogh{%#GjJ PUd5&"">ҐVG!CqC1r m̹k5UwN 噣 u-+4R{SҋBNh% V΍c]"ʊiS1mZM@1 4p4 E!&)!///>>ÀN,A la[ѱE"uCIicv hDֲ?SeEڸ\2,}C#N! %c$հ~9j=9?=Q3|F&\|cFm~C0q*DPMZ qΛ#Ϝbs?S<7j¯iz'(!0̈́+%cmE߳H== Eada=Ra %\>wy{t8Μ+!1f >,>,Ea pc{o<ʫMlÛs9̖c+"=ldd_@gS$",`v |1H/Zyb})IK獕6l֫lR ۺA0ԉrXlW-q2/?"9? r N۱oe;CrE7%4 +g}OrjNKhR}dH̤,c#&4\5dɘ[;y ϕ7mh(&r +Кi_{$-Z@uX .Vc:y&D4&#Aް; hD%\1H< mXnb^S}f@DA&C(ukdK٥s0ǘgqRz7I 籼Sh;MIָ"YMo8h`z1.[Pv7ibjzE[w^x#N5QBx `yǝCDhC.X=sܽ;L?jU3uwn^5yk7urv6;enGA\O-m!YvKnN59V#Gv;O0!41inlkRV5y!%=*J ˇ3IvMvn2ē|rŜ_mW-xjL15J/YU͘%vOq\|whrYA@ȥr!"Yf9.Ҫ͊9CLMm%j43[j y8vx7+<1wp1grѶ>tc.w nCrUTg.{Ѩfhm0t\ENNÉ[!^qQm\z^MҶjmh4i¼ԦÖKJ`K@.c,c>'նM>]LIϪgfuO>L0lp"<[!ާN^VRҞo[լLSS.Dz3bJV~5E[0 ^}&XIii~Zcq$LоZAi~b%皼#x%[9tپK;۪͊t sLF=czKly+.ơ\zdžKVx}ĬX80FBjjytzs\Zi~ö޷ޞף ^r12=4ZRL3O1u:ͬgĮIo[zfs ^w魜Jd%汹mR(T\F/S&5meW7f9iZz%[9L&G`[$Y5ϵZ̧Jύdnfuy4R̜&v882%+֨pm'!_]9M#BG\a!yi63T6cjgNS_$y?:H oF5Vp,zK|bXp{^tLȥk8F mjM |3f0_G+,5i$ !.wx!8t+^'>h>J) IDAT;e?hYenZL?iG:}AE^""ER|;\QkK+Mnq ޜi1Z;qEZ]΁VE (Ʒye]\d]ȥrY] wcOhg=J?-Wrs)cbjǯf~\zOU=A="յX7gYZLݬGݼ*Uߴ&+qo>Ox2)ν+Y4k^7?YVl0/X|A=WvK"8">ȥr)}=+Qd4oxC+SStu +EDv齐K/Z6|H|}8_gnW6c.rgr^ճ{xhG *>5[uU?%"=db,͒r 1݇XU[.S=Uw&^ J3Ee s!}̿aF{"Y6lmc;k;+Zՠ^M6 (b܋GQK[j!†K "9ϛҠ[y{->Z.wK%9x%+5;F LO C&tA.A>rAPOWExvPeB^2Jȥk~cTjoD##ɓ j'$2.KDV*"2D3| 뭈sW刀p bAE'B;~-H*8ELv?w"n%b-qL0ET*㓾v8 :~8RlNp\z7Éz!o!GMZ4?;yͱ1αS H1R(Hi }LyzmH;GbIe6&{x: (.qj鲗C QԎ!u5ouKhn4᤻~\chM=N?ihtJA8rٴmv[G̶SŞ(#S!I+D,Ɓ\:p($Z{8Uz'ymUJ=cptd`v Ec<Ǥj ˶wxhơrW:W!D\B=(8&D΋OA?yך~?tUvDtzi8tY,4h\B}>'(gpiUF-ʌvh Z~ uτ&G 5Zb-A.)%}95c ҺGvx":bJG1]^ ph './!X7b`L x-G;tYvpnlYJeyt\6bl@DWݳK]'7et~belhёH:?%fKh"RD?<޼?ϰvs;SFImT%};.&K0ZRLW0si$9雤N5m6. AN.4伥ҹ./> r XfDMk$eA]jޓk|Tm"M^cɱe|W8 p8м ZA;$Eӿi|j@#4TqJ8[l>ty0 B.šu3II jA'Q'Q3:c9pV\1*=4 M_\6 p%\K1Yt|iLTSH@_f +'ylE[=TU]#T ႏak.Ն߄qs. K^He_K+%~=Xi cNI1E*kV12,l0DDJ!jդVS*B!?Ancsyۦ/J8 EY}iϐc^i$5Z{ӗN i ]krltnetYJ\G9#{+SK s"j5db\rאs"u9T˄\JG%_tn[^V:};.(Nx\6.SMڿGc<"JlI%\Z4Ӿ:Ppzϟ[b1颋qeRuY¤ZrL3ix]&lʋO0_s.sL牤K(1+\•i6|s.5&4t<6K:+\;4H rV&]j%]vm4Z%DFiWr tPIp394a.r9w8-gXwC@.m8s~"쏿n/T0&tr mń%]:̨$ ڑˆH>6Kb@[ܙKK&M7fK.% r \pA. \K.% r \pA. \K.% a.?gm ĤH<9wUUAz[5;KI.x/] nnW<֮l[/|CJ/Q(<=N’Ϳ}˜Yt|Ȱ`m:*vnVq_{ ~0Zy=穒'1*h˫c$*z,]&KѓogdomJ}3-ڜ"7>/|bϖ<5! ", #/p֝w~h*sN!"VŇJ4gvEop(W\2w jOx܀WqeXG'Dd߼?؛_eֆf}"bչt鎼j6S'%H:E]wDIUK|mF;m7ˏlYc?#]\_:߶e={֢ oco[&/uo՞ܬGJ*e}=4qdrE?P9&,qԭX_M˫ԧw?SӓF\dcqkxzgַ{|ֿnZή'i7?<$7,Y{E_ho&\_[g5o rWK{];O.⭗+Gسj.zK8jʝ7tXݱ/}=o޿CD"v>ޡrӤRܩ(Ek1;/v/?,=?[,~eX$f}S!BmYIAAJ"vvŜ7~GFz=oeKk~ZQ"NU}TZ5_3|.zOXs׼kgTx/?<@ fVtFl9%%C.bԨ\O-_̜0~Au90o1xs-Q(`醱>*a)omE4em?9er7)x|%@0꾗W%=1kռ_FOYԿC,Yr6?AAD#Wݗ9+Sc;5g!㡙NW{Zs<Ԅx[}Yt|U>k'88W ޭP؊ JmPQb~^T$}B7I^KYphkGr^j7_(15SKDu,/ 2"JꝬ(zbދ߷Б@9_qq3߭-N;j ۻgm!{sLPoE;dۈLm :dRC|{qUN?]G9x9&ch\KUYGN]F qՔRd (4TZ8Suӛ?/[R+;~H>jHbƿ>b-Uh`/~=~}iĈnar3f"̩FUAɭ?[&]^Uc&f>J.ֺ38?_?RSk/}_7;e?ԣwt\rTyeHKD$9UX]?}T[k$#\gZm:} F3#eҍO}uE}C_wNH~Gv[˺%_|ხީ {^cWNɹjYb6cOY̬jg7d9)#L&F*ip_K: j$}`槗1бZ穏\]S4~J~l̢w&ŏq P|rMEջnaXiMLᎈZj#|\W]H}||EmGyMPHD 9rZϑTfӿgX$ H'z`_~γULݬMgֽ_vÓR#JؼwRJF&gBXXN:kϿKIDsÊ-73XZC=G\q*BH?,uP[Ν_ --* 3Ų_WED-mxk'}"U'w͝_{]}D15uO`M;>zeMC#px= )]xVV&Iǖ՚46 31?2ԟݑ7!<\v`ݒHu"/-}u_۳kJ<}<N-M!fv]Es_[;(`r5A. bDRd/[*i|8;G'?/Lk5K\lK!f~w[FַQ.9UXJ? S4Qu[ k߸_|h%"?Qf҇DgH+4on"jc< $N/\fne u?mM/cΪ 3vOw:i`㲯wZ>I=2n_kzY=şknp C?K?߾Ǹ?~ =yc:|CSv"MݰKv ^d#t"X32ٶ|q̱iMuO'1 ` }̂bPЇ>wtvv piv \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.% r \pA. \K.%&l6[UUdX,,3<="NNQjV P*;a[:MbUUUUTT( Aj(b dY$:((( @Oʝ:U.ceeeUUU:hg(w$YTNՔ* 鱸SɊftil6Om:b( ;x0O=:d2a Сh2<= <}Z%@"j(ܦEeCEQeOm:O_LΓK6\z9ۙM_|VI~n'k#+{uγ J9._ ̀ІYC jI V~gg_1l/V+,50Hb'M-Eyۉj/4"}万h2a C :1[gn*JUC|E)CDjKI[] 3;onQ=+UVYpּ}t5MO &cYqQNKnA\z փ)#ne^4hmK>pYb߾ u˩sf>V3([n̿K Oe-w83cg,㮹&W ؞ 1~#fUxJ{ѺS;qۮ3ubP̐sP̑UUl[ߞh2{΂ޟn8w\Z[^K ]T:1ݟ/ 2e!>!mS9.H b=@H#03bKDp ڲji]g)+8SVvz/ 햓i|{e?êee^3~>i o9b3ξ=bqif;Pİn2ua{Ta"޲XE#3F\Zm&7V'Pm?mˡcbNHNޒWN$5}zE;딹UgzTv\…e?f>cg1Hr̛WDR)~XGߞĈH3v˸[W6{՚MQ&Xl9ͯ|\]}-7)sHRfQK{6>gC$j_} JY/=fM~ecZX{#jv|2'8,؆[֎}rP ٹ!|f<ܷ xQ>P @,ۛCE5M. -^+fWTʒ !iɕuͦ@ӡ S@8MD.ݢۄP]s_&jabxڠM;[:0%iĐ0aߩ+9np '""E@|H+[{;;[F!r=*] W}`!S+ޘWXQSV\}ٵwn;|.tHE!YN0gxYu9%eڱ%I񤳇d{LqY[z5T)c# φ+Ο?}p޲|:}!}\w >SyO^cd1ԩ}10L=y(Lu9#Mά9,|_|{? M|޶qůXgSuϼ%P4Zq}y4~1xjT?P'ej>SounG hNV%]?TwڥRw5)2iw~mMOXL/09`]vf/6 C/{cW:,C@. &4*E>uy&'45jhm¾hu'{)a >)^ vB^^^||Сc\pA. \K.% r \pA. \DattuLyIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/boot-maker.md0000644000175000017500000000705614122570751030434 0ustar ephraimephraim# Boot Maker|deepin-boot-maker| ## Overview Boot Maker is an easy-to-use tool with a simple interface to help you burn the system image files into installation medium such as USB disks. ## Guide You can run, close or create a shortcut for Boot Maker as follows. ### Run Boot Maker 1. Click ![deepin_launcher](../common/deepin_launcher.svg) on the Dock to enter the interface of launcher. 2. Locate ![deepin_boot_maker](../common/deepin_boot_maker.svg) by scrolling the mouse wheel or searching "Boot Maker" in the Launcher interface and click it to run. 3. Right-click![deepin_boot_maker](../common/deepin_boot_maker.svg) to: - Select **Send to desktop** to create a shortcut on the desktop. - Select **Send to dock** to fix it onto the dock. - Select **Add to startup** to run it automatically when the computer is turned on. ### Exit Boot Maker - On the main interface, click![close_icon](../common/close.svg) to exit. - Right-click ![deepin_boot_maker](../common/deepin_boot_maker.svg) on the Dock, select **Close all** to exit. - On interface of Device Manager, click ![icon_menu](../common/icon_menu.svg) and select **Exit** to exit. ## Operations ### Preparation 1. Download the latest official image file from the official website. 2. Prepare a USB disk (8GB at least). 3. Run Boot Maker. - Boot Maker is built in the system by default, so you can find it in Launcher quickly. - Visit the official website to obtain the specified Boot Maker. - For Windows system, you can also extract xxx-boot-maker.exe from the image file. ### Select Image File There are two ways to select the image file: 1. Click **Select an ISO image file** to select the downloaded file, then click **Next**. 2. Drag an ISO image file and drop it to the interface, then click **Next**. ![0|file](fig/selectfile.png) ### Select a Partition Select the USB disk, or, in case the USB disk has been partitioned, you can only select the first partition, and click **Start** or **Back**. - Start: it is recommended to check **Format the partition**. Make sure you have saved the data inside the USB disk before burning. - Back: click this button to return to the previous step. ![0|boot_maker](fig/select_disk.png) ### Burned Successfully It takes a few minutes to make a boot disk. Please wait patiently. Please do not remove the USB disk or shut down the computer. When the progress bar is full, a prompt **Successful** pops up, which means the boot disk is made successfully. ![3|making](fig/making.png) ![3|done](fig/success.png) ### Burning Failed Common causes of failure may include: - Wrong disk format - Wrong disk space - Wrong disk mounting - Image distraction error ![boot-maker](fig/failed.png) When some unknown error occurs, you will see the button **Submit Feedback** in the "Process Failed" window. Click it to jump to the relevant website to submit your feedback. ## Main Menu In the main menu, you can switch themes, view manual, and so on. ### Theme The window theme includes Light Theme, Dark Theme and System Theme. 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **Theme** to select one. ### Help You can click to view the manual, which will help you further know and use Boot Maker. 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **Help** to view the manual. ### About 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **About** to view the version description and introduction. ### Exit 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **Exit**. deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/en_US/p_boot-maker.md0000644000175000017500000000724414122570751030752 0ustar ephraimephraim# Boot Maker|deepin-boot-maker| ## Overview Boot Maker is an easy-to-use tool with a simple interface to help you burn the system image files into installation medium such as USB disks. ## Guide You can run, close or create a shortcut for Boot Maker as follows. ### Run Boot Maker 1. Click ![deepin_launcher](../common/deepin_launcher.svg) on the Dock to enter the interface of launcher. 2. Locate ![deepin_boot_maker](../common/deepin_boot_maker.svg) by scrolling the mouse wheel or searching "Boot Maker" in the Launcher interface and click it to run. 3. Right-click![deepin_boot_maker](../common/deepin_boot_maker.svg) to: - Select **Send to desktop** to create a shortcut on the desktop. - Select **Send to dock** to fix it onto the dock. - Select **Add to startup** to run it automatically when the computer is turned on. ### Exit Boot Maker - On the main interface, click![close_icon](../common/close.svg) to exit. - Right-click ![deepin_boot_maker](../common/deepin_boot_maker.svg) on the Dock, select **Close all** to exit. - On interface of Device Manager, click ![icon_menu](../common/icon_menu.svg) and select **Exit** to exit. ## Operations ### Preparation 1. Download the latest official image file from the official website. 2. Prepare a USB disk (8GB at least). 3. Run Boot Maker. - Boot Maker is built in the system by default, so you can find it in Launcher quickly. - Visit the official website to obtain the specified Boot Maker. - For Windows system, you can also extract xxx-boot-maker.exe from the image file. ### Select Image File There are two ways to select the image file: 1. Click **Select an ISO image file** to select the downloaded file, then click **Next**. 2. Drag an ISO image file and drop it to the interface, then click **Next**. ![0|file](fig/selectfile.png) ### Select a Partition Select the USB disk, or, in case the USB disk has been partitioned, you can only select the first partition, and click **Start** or **Back**. - Start: it is recommended to check **Format the partition**. Make sure you have saved the data inside the USB disk before burning. - Back: click this button to return to the previous step. ![0|boot_maker](fig/select_disk.png) ### Burned Successfully It takes a few minutes to make a boot disk. Please wait patiently. Please do not remove the USB disk or shut down the computer. When the progress bar is full, a prompt **Successful** pops up, which means the boot disk is made successfully. ![3|making](fig/making.png) ![3|done](fig/success.png) ### Burning Failed Common causes of failure may include: - Wrong disk format - Wrong disk space - Wrong disk mounting - Image distraction error ![bootmaker](fig/failed.png) When some unknown error occurs, you will see the button **After-Sale Services** in the "Process Failed" window. Click it to jump to the homepage of **Support**. In **Support**, you can obtain help by leaving a message, online service and so on. ![aftersale_services](fig/aftersale_services.png) ## Main Menu In the main menu, you can switch themes, view manual, and so on. ### Theme The window theme includes Light Theme, Dark Theme and System Theme. 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **Theme** to select one. ### Help You can click to view the manual, which will help you further know and use Boot Maker. 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **Help** to view the manual. ### About 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **About** to view the version description and introduction. ### Exit 1. Click ![icon_menu](../common/icon_menu.svg)on the interface. 2. Click **Exit**. deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/0000755000175000017500000000000014122570751026064 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/0000755000175000017500000000000014122570751026631 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/making.png0000644000175000017500000006062114122570751030612 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|uB JIGi"ETY;˝?+v{ ""Rw:!!!=[1eg7 !/ܝɷB!āxB?g(ղ-휓׬Jg9O6e !Vxng&uIOj+@r|N|L;d Ѻ u | A {Bq83.AfRW|@ ͆o_Mĸ _yf| 7 !aUϸ4JOlԃ=Xq並{J7JlYT+@m֍{e$K\ !f˽e;,DR\z;7uxxpµZ"o+Bêq9aEuQ$1{*+أ(yϊW Jw&dgJe\qTg\VVoЃA]zzސdeMR;TJ(,zFz^BDr~9]K2gavMO[]˷%Ԭ 5ߪk{+eFAc/tجQbnF,/$ |"ﲼف@ejBVP5qBԛĢ{&g%*."_1m=sF޶Ie*lqgVo) WWCV!p#"1$+QxAFP]cIykWn[hsPu4ЯU!\@С3:mZM+uïZ7ԃm":viz6+Q︬B:: ]u ѹoIq: Jwi+" 1q!#}e0P (W%ť%6i1 _aZ\;%01t_rqg f6f:4fǯ !KPYϸܺ@+wm Exߖi'.8ljMIL9؏۷'[hQ=>%yyyBq`yyytꞀ|뿹m[O}oY\UUUVVv(B#ץp#' q<͑ܬ*f!.UUU>AX!CK^xb`!=޸Ԫ>@ )Z !vc.WȊ*|P^$|<hZC^B˪+*|]>.giRV!^UUXlm  !QqٶmUVMܳ%M';w߹⏠%k׮Dfg"ڵw]s !A=KC ԩSuucccw.!#g\c.BE!\BW$.K!pER!\BW$.K!pER!\BW$.K!pER!\BW$.K!pERK7m/},XYvm^~[T<DԒC`74W~s?xse'pݝ߫~onmx}e0¢ϣ:xrμrD.Y]W-sG-[}fqm;Ыl߶OͲgt='-U'gl5T[Ӎ+|5!ٟ:"9לqBH\H_ږZJWn GfgF4Qק5iN}_lWWWƶv3ID9K5_~QOL 76Y*XL@\FVVfJI'j>[I}g^]^5m#*zk}&]Qr?6fࢗ8ӟ7:O&q)o;c:M#;;D>zm~9_Vv+ES# |8S i11KYWPqqVQ5sf}^ +/3Tfㇷt!F"q)#OӜAm#;a/.]#-ܮ MST;B#{9O:X%>J4qV󩴡GeƂꁍPsΓo76E3/=sN)1~&of5]ΐ3JWĥ8 Ϲw=5suUlrBu9kniU';^ƌq({*#%8Bzѿ>@%+֨e.ǹڝAj>G~ATK!q)gO\H?+o|IfJͿL s&ucɐmр$.|'>ڌ>eOSȂ!W./ֵ}zػsm;H KqM?^~_.ƩaQnnnNNΑ q س}w94?uV(!=8,[ILQ.۶nM?y.YU^^ĥBX^^ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+#}B0Gn!:!Dm$.Tsc:^HORVwQaXBSVwg dF^lZشף`7PZR@R$d6Eh;mG ɀ7OR^̂$Bs;ļY?;%%()<bI?ZA)M{ܜ#}Xcg%36ןoOԺ=N; ;YY))~yyy!J@L _+S 猡3/@Fcj$7E ۷Uˈ<[ !I\wn›/OԱsxp\q#Z CR*#+Q^oBw߇u^;J+p?"ILqH$.!12N7x(Vh&M1,(UBĥ'Pc; fY#mcC$fԫ5=WOY)^^^,!3fVNaR PLƃAax!?j|IٝI/sgsm3?.]SxM@`˒^Z˞l=:ʏ5_F7p5 \+1 K1S Kᖝ\r2̗ɡa,}:(coԫHϐGRbWnm H3SZ1{LsݎU+pExudA/C$.Ł-}kWkQTo8vYf5փhi4wlؿWѱ$pKzսp9A)(H9d=HAwk{z=K7*RW/ǒ_#HJb\w݂j(Fk0̩7Y6PU;ѡY2)]:Ym y=WV2 !9KrAΏйTԑf r^sTҟzS& Tƅ:'y_X^c\BJ\} ,[ ;CWPdwX}ܪ/[ٳpRK7YQ]YIc:r4 N8JFRU*.)6U&ő8:\t#T$P\kjHE4cƎ; Ա|Q"pY0 fJ1S@R8{r9T~dG^ 1îO>n~IKYԗesden̚vђnv1+WX\îϜ;2ҬF HhF;˨ _AF\ZYѱsW*B5t+CEN$.UӧA)U >(侀VD݈O$ěJ f^E˹s3t+j=5 2aCI+KVF7˨ ܹ&KGVjr֍X?MCAEQL2QKgvlHwpxX +BUr塰Qs6Qʮm33ϙ (NJɰ%5޺k0C;ys3BK2zUdВŬ:BYP d\Fˣ%Fj]((kgsl> bY-I\F5{8c$5tخ>rԱ(E2U%߃j$ƆZ$$4e4ǥ:֬cYlU^z焮S5z\EN洋D*`~޳;|$+eTrt0v-Hq2'EQx8',٤:y0:w JorS+1c.@Sԧ'͑2ރy|TU\:d1*VFnVF=:K2I\FpKa3z4[@:WNIe8ERSmph2}ʁ`Cڬda5ԾM4KG:,BKDv۬1H.*FP'E Ea? M$.OXMwfRlVÝkԉ(,}{иI yb<ڶjI:k\t>ޛP$MS\ʙؙ DfM#McrQT C"gbPVjQ'ndbrN]afkD֣h]xkh:^k)9NFgpA!jx؉hcLhɜ1DHIgћD,46ct(Ƚ.{aҠ4bRҜø?G6oƧظ_|o^S68xqin/'qJ1cÐ4>Ȏynq~ K=ƀ*ъ((pHELJ7D h_)EW*q"J ?þ];Rw<50w qNa#4 '@֥'ynlF-҈ym#BbinQ^ aUXieBeǟF3ڠa&#HQI9WC;́Dʬq]^ǙiTY%qžblqd]t nUGDԐ`fa] qs:;p&DDd7(=kHJia% ܰ>:VkulNm}*t 3p^[k8*+ ~%qEj>9F䱖 b1f&|`kZ #} Uլ6^5M[F2xC[##Ѫ9˭ymV ً0lHE()W5+U$.4i1#&>"|cdGcy8H\F(;SnfZ~ԈTku.mw-Da 2- QBʌ'f576P&P|*3 y;(2O^ӫ}6eDd%JHeZG.9ɚH)2f:Z ?9X)kb"4Ny#b1aB6\q  ^`T2?X홠J?݌tt`4y%,]֬:ϧ8ud^ %ƓҀf( a9 P#s =GDy毄5B7~4pFM\ZgtD9eԅӠld4COQn±+MMͷ] drapYU I L >dkkY1Bl9 K(;˜{чllZh4nXfTb 2),-zeiR7a?w8uleh ^"kr:@{u:Ogi2ͤ DL@\,b< Txҧ&)Վ^)46/g}5+(C#vTb2eb"-C$H+l-N4]|z{و{ˠ[eF4Dč{1szG#~yYif/>{K@gwGk&9P)0g9 ECB 6J$.98DxNI2⒬dk-Rzzuę͏Vtsm1h9YPqZifnuؽ- %¨n oމmj?+B4[o$712;Bu$.H4Eвnn,ͅ$Bc &~]qfޔUo2RZhܻ}sZSsXXLSڵ4l_Mz2wS+6Ա`5gx n> WE B~+BWa},˞|ĔfTj">vJ.CUj2fpwgn,›xO))\.0z9Ϻm<6XQbrQr\54~@6qf*i0BUxG. g:0w%F{ΙLdJ6Kv@|=d]2zI\F/&l!iXb&"˒#8yo}]l+"c*ΙG>j Czbe}:k=0ycf-Gj"-eftoYG? db޹[fȚ$3c?xۍ{-$.Ud6J.`ȢL$'@k9*?OwCL,ŪXۭAը21ӗc*3hXo5}ۧdC :aZ.iI8 ȣy_HCr*͎rU));:̞q#[fs2<#-$.c vٴt-۷ [16fr5"\vkj|q>w 'F07%'`J.@ө}Z|iSmv3YuX\Ť N#k:ǡBy #.;Vd:'KhF(fUQl^\evb* lyG1WbL_;J%'@NԯU)dzjVrt0Bkz04񨬆"j-{1yReqc7sYuIɨ% 9JFvVm"cǸ#)RR5 nܿcFW4i<4*k?[v|_ޚToM#ͣ4S:cl܁3X^ }e4REF9IwDxQVD9җ!㟹` #X W;Y1Ρ4̆Phnzcu2 ʮA:Fܡ9S)HGU5a,c{6"ݺxNΠKt 8eao ~ZιC h)N͓(F#1=E˓:杲:C:t3*L>n;FE>|fJzPd±ΕɱGݼ@D!hg`X#)cg0e*7+Cz r5X$::9&TMaͩ׼H«iXVd1ƚȚVʜhQDh׊vq"aMڧGbEO,u-゜rC-;W8\[2SC<MQ4V24\F+(?Nd6_*F vnYB4I|/+RHX"uttչiJ婙 k5L BEȣpd keT F% 9;[ 8$T)#L'j9-:cF4|J>:w&=C\.EV|'&ctٍEIBH\F9bmպ?H 3Y*=BQXa1 H HSES?>\v0q:뎬v {.]3'Ġwk5w>dV%"@ʁ@d;"<҂y5Cc2jI\F50c%iڄ#|ebX2`6VCً|KD-Y(q+C)"Έ;;H_a#756 )@Wlv :-L2څ*,[6sD/ų ASa)eJK8 Yv2=v;8vm5Ԋ34XS<4׆ !!"|`X ff9p,eIPx!c`*="X32rQL"(e,! t ٜxl}IPxwchd5G8fwlB6 ||7#+]kokDGȫ1.E۬_!BH\ bHCו""t7s]hiαFV£ȫ`e<"ĥ8:|̬QQЬl/Jwtzv iCldWuq)Z 'Ka [0"" !xbMQdl=k*5(F#jiTE$*"^VE{e֙Ll!h!xD^/U(|)]pNd<<<*i1(OH8 '$9zDVh!Fjp0{x pҥca.0\PݜgPhZ`J)?_@#wuL>%٘%*QFV£nᑬ$.E$s & C3L:%cP"(ĄbHnWfp2Fuh%R7q.ĥ3.Qԭ51731uN8/+K)xD+aT2-c`)҈=Je_5(qw\㣨ĥy0 @*1Q LM p/}SB^)|q:gyn5+5KCU!c,ºw$+E$.EjKL@ʪP #PLAFPg܃[ }J)M.5Շj;bd l*Clco*AT A!^!QC!í"9HQsdt=)bҘnҘ #LU4GJĥ80g3l"P И5B@G@Q@Cu&0LJӸ1A I#.'#(Y)2lsXѵڷCRf wt,ɡ #4C4lL3C3Ⱥ0K2Myo0K"`JհB%$+AnŽurR  24Tdt d ai2f0sL̰d$EZ{9N{4\gHn DRJ_w$.!JfXthd3uF9C::tحd5h@uPJm4V#++Tš-4b34uc5# F縗kYt6%M8BӌIfJLsN+(I2mi<Λ8I\ KQVD 8K2`tlCFltu/@!BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\ !+BĥB"q)H\F)/o#Pek{Z /V}6~⯻|>9+pܷz5蝏Zkn`\9j_0M>;g]L#w<*q9KwTؓb[خQ}립K}rb'w_~㺟3"OLr߯J9i;2q}oy<˿ƙ}qMui%?xm~-5 P,fҔ m d^YuU-Ǔ&HⵏMw|Žs?}F f=vO?mD7xκ{ ]IBU3g`_MaI\gjqj(s`󜉛2κoW᧻6gg8k?|xUƺ{ǧQ'~ LcGuqܠ8 GĻ~MW]Qګ;}ogum[9nv}|Cl>ncG`i۞d/Jq-T WL?.ˣss\ y)ӯ]*z駾Wqэik;[pu)gzt}+;iH +jI5u+{?TF^hΊm;X{~a/6~ӓW7} Sy [+IN@)nl}ߍ8>Cv@Snݑ~{)g]4WAo5?];:WfwNu\J.i$Mn$.w#uco^ҸA]ǴlXyKW<Ɋ? dP5yeMmޢP|zxaG:Wl/ԍ&}k/mu#gU߽m5~jc.sǵ)ٺf]q֙6(ӼI+Ɣ|՘g+.~!aܻ\:{&x>@iTC9/?@ 1^_y޿܎ fx41hCojVS߮b\Zb'iSn㦜;c%TUEꜿз/oE1;lm|ɸr,Tj+V ; u{uj/^|ghN{q=s~ߟr-$.mGwq_BZϞ|˴m땻WWd ;qǠl x{ztd@/}eR뇋f>9/=iI v f_^ǼU2Oc/z}E`H;5Vó+J_~7Ͻt_=u~4XFˣ|גm~gt CmwPgi+W=Zycݝo=e m„k;nxOW(twb˰<,xIIO}z _>y{o>ƣۺm7}U1Go8%[@ҧPyN}H#đ|o .|Oیg^~tq,rN3m3w0, mήX[1%P0˧^{۽f3{û<ǫ;y@[m^ _3 Ћ֬Z;|H@/+[`?&u|H[==KJY3H\SPҀQ5oe}w׼z.&E]h$qrN.}bj.z .1+/wR;h z_pv>|qnG.ԉ%r.{aٿŝMӱgpo'm^8;K?d`?(ͩ8ѳi*7[D5iӾIt$.%w.knLQ|˷,^Y˻ozcFO"6N}t}m䄏.Q|Yn>Oybt y[ig=Sӷ||o'wu )mOm]fU[^)k|{w8<>}ˤþM2JhM:ubnרd纕L⥷Wf]xūmNͺlܰ^[0bϿKPbkw>m[ MGԴmmUq v}`ot~*pε;^*_?毑No[)c߹p=E??4/vvv>נMb޽bo.'iO@` [ :Y*G'KQ;\=ƒ'5ޑҷ5\sǝZ?'gvcYEÆvtOwieKYRW{\ҽI-K?2NiCwlc#^z⻸䝇zVDpÄ;ϸ{E/zvTU8 ^F›)j7_Cf$.B\vΒ`ڲ sMۡ[֔"PiD8qi׽c_zһymZbٲ%U+sSuʟ<5PjQ>29#S5vُs.37j'1.[5nw dL%_=z__ɿ/Y|c׎,AA55~rrTQSN;eG+ ='BQ(Go˾w+l _7}21;!lЍ٤&'.?yO2z :Gz\᷼:gg>-/zE&W~ Gv 4_mkaՎ=Дqů^r;_ς+7L~R:'_jdƽAn=߯}i甞%Gb;Z<-FHWW#$.BNL\tM}>Iك>UZ.|*lyP%eu{ޮeXRk锛1-k1Yǟw'3m³ѤE<M- ~Rm;Sz ~~4y*%w9+g(PM}_׎w~1SS4on}{nM{P\]O;Ff]ik,QrsssrreU%*9吪bD;-~yyyRGť4Q$)KF4!+BĥB"q)H\ !+BĥB"q)H\ K22,^TBDspW:dx++.BRfeF li.6:}U KٞN+\jzE3O$z覲'/~[oMNT7X#+g.yq?@)p|F-k9PUXw[vnSnNI83VϪh~rFrvܤ8wZO-ceoDn5={)߱~''pɎ>96/ؾҋ7}T;yhN#TV6J.{Rʼn9Y鵭QjNJ,ȍk}bd 1i\k}B6S'•s?XZZ|}1) o<n]\#yOk'(X3mۜ,~Gos|i{-=/ͪYZ1j{NOU;Z9+|%6-I%O*t1ŝpaiI'y صdƗ>f7ۻ8u\N "6eˎ#ro&2gdߌ8ŅR,Qh"6 HT^pP$ػ{gwoUXp􃏧dL,/Jr$%~k-MCSzj>miݷ__/s!_M(A3+PceOgu"2;p2׬x2ߕafDDz#ȴȡzp (iuRO;:V8Y,|_GkzٴlfmKt/=#۬CÁ:T!Rrs tF%ɵ«k?3.w|G ;Ɉ1k{SM=+yUԑ/4.e󤖟Nd/URT- z/9#ӠFTCbed z+:GDt Su/"P8<0ֽU w./LDgb7zg!җoH \"}:*~ݒ&I_zEQvGkl5v׸cZG KCujprM\n fL}N<2R\ mv\ոĉDDouo&FVɆܣuwʂׇo;HDmoUoIUv}- F_ND7qy"Fsͽw=e\C,2r=-aǝ_8#K8NI}+mkH;ޔd1"RF]+77dDĒg`we(ýut`Empt"`\~xpMRbm(!jЗqW]jZXe[Kw_,j4L)"1MHWU-ʉE`b!;nI% E{ .h q;1m! O8i(: aky"2<]7%{k&"G=̙<4yϻqL;{N4$ޮ9{Yǧ|%By?s+YU_]ᵀ-ekU@xBvb,ݲѝB|፳ъ֋/N-(}Kw}x=?of[JNn0n,1tE;e;xtlx)7?o}<3593fCyulAV^!2ZLѾY5;C"bI]TCVCKchASK^20%Nw85Ho@r#{WZm ŕ.'jwfKwV *%V=Vx OS-)EG+$LY'>7\']yncBC-?$Fu5zx.ѥbwܳFY}'<~u K󊎥$Y/5'g&vƗ&#>ĴGW:|*_{$FJlx\]Ϝ?dGD]筬uUڝdZv>_VvSC\y`aY+Jx{,YTb$ԕ9`{o}$J`\.O[Jj=#tI6'^oj3s޶\xH_z\5ݞ|e{'7|\fq>`uixvi@ӏ֟Pjvj#:'UUxpپף?""Cԋ $6Jl?lܑjQp!"zE.fFUn$O~5Q3m?&gV߃V8ϙ3Է6sM>FDR mqqP>b.;,)JT6Yd\抓tR鮿6O_^,I2HW#5yKÁe">q7Je6jE]""җus7%)\k -^Oݶ7(k[4ƈB5o1SDD,U+ajDIw:Q?;EDDmDD-<+ٌϵA$ٙ8X!*N=rTbz'<;4Jj쌌9;OFe{vVFԃ_vbP8)/%*e#'c~M]b3z** rr`nSrRѶ7}x3#(km8Pn l[/um/%\Qi10"R? 8W'yBꭞZꉝO>tԵbGmijţr/yޜ^ FGG1 \A. BK!%@r \A. B D4::ًݿ. AIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/select_disk.png0000644000175000017500000006513014122570751031635 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_F_IDATxw`?Ni3vb;;2HZf)J)hO[FiKhZ6M ;!{O'{ʖ{8IG&9N'}lmGGDǂ8۷ X @\ .K%ew}GVUUιJs✫sN]oTTTQ֒,q8wvOUEUeL#[]2uMU||rS'cwYڰnUVYU%1fJ5SVX )D\.WWcK58ե߱O$EeEVU2N͸RMw՘b׵Xk[zXpť߱_'>m 0_Vs*}';*. Zcpm:ԮW-+\>_9'-i(+XpneEcktBT~z Ř3Po?f1$zEU iedEs*.9'6[)S2VuQހ"gtXQ4tfIψ,+j@K82 R.tVEUUU Ȳ2Y3ww{Ș4?eQ Xp5}~ש(o\WrsAMJu6KJmεTZּ𨪪j1dLXvVt:ʊ/% ~YF8|a9Yy&qIJty;T~jm59&oF%ΖMV8LUqdEZ/81G*+Ϥ1IVIUkvf2X%pw}.Mj]I?a;}oT%}z]U⌹6s"\VmXyg?Bl-+BuI~TN:N5(&I4%Fgd&L$U"m/#._tVl9R\1Ћ&b$ :3QWGU5;2._tVl|q^*o먥#gvd#_-0WrzLċ-]&. 8" 0TUUQEQE7V(-n}[@a꾶UQ&X0N 1ι(DD:Q1UIQ`#E %eCײq \\*ɲ/sUegDDIUUUQ$AZ5s...cNY6}>F ,˟rUx3I"Ƹ,Z[q>cn?&$*u:\K^hND$Ov~DDg %p16`W RSS.c˗/޺u7jLon 7zKέdY,ł% .K%q K%q @\ .q @\p|ƦLpp\ڽ=OKQF6.DYUSs+ :,s(_/syD؀͏v83[̦'xc勯|ƴ""rtu;}IMIjwjD1))>rLuu}?ז/H rDqUER[_w?/= .󉢸txٔ;v,rnƌ, z)EDzgZ\nlSOE&ɲ9_Z:{e\niM?`~x.w5pںܫ"% ќisJG++*گ\|o~ub0E q _BŅŷKfLfe[L)1[Nw#N^p`6Km]>\2-?3#Y}õƪ}{ 뮹t6;<K/P].7tQYEs-:pKei$}%ڗ(I6PVxwM_"jnރ'{m"ʥDyjjM&csK;WԶj. "[ob _0ڲ]̝1ݏ6}+aB\—Џi/_ȇr-^0u'0MsCOϽU\8!&:Ena7z آuSO-+w{/˖FD M-mu ͢ ͯ%ƴw>zRHUT3cZ$I) "{ƉϞmOߞāv8:ro~}i&; m߲c׿^̢(~xd%6'%|mڲ'_3r攼{]}S{Ɖhp=ڴUUWID?c ͙FD|_Tp;ŔDS(!>48tD7\wya[{ǯ~~^Hw_wnz+yoi8>=D?$"4uӧ p.c& ^w|MkϞ9,۳^6ym+^o}PwyMFFOnljů⢹^sk{߽'ͭ8_2cq _))>u%4K]+/g2+= -2u?ѝxQ)lw|';̛|H3wo'~<N5W.pJLF/斶}&dEQڊ,0?pDYv?f53`uP^מ>e|?9pb^B|lB|7_PO_o~u't>y,f߲=kʢ NgdyC?gdQAF)^9t=nKDGK+_R81W?;;S bmlپ~efF $'NIvVe6nv+y{}W\+.fkvu9?ٸZ t{|f)!>ч=QVgo)=~AicC\— J֭,9]+8 ʪ;h䘽2j"2W,Ӛ -D&_ FܾE=Di'[o|QQm{ʺ?<@xګ/!YεΫ>YID-"2tH7\d"[>dGx|e""Zi穎%cm32={z7D6Z=j=}̙&alm̦-gJr`_Y]GDS&EOsLOK..'GJƗ"%|)56>Wfp\:^t`J8v{DSwIDߺvezZ}gƴ;~5Duϟ=6 (v3MoY5""CDqV6 @\|kW,nϕ7P)+ [L__?d+Nˊ<>r7}$(}Gl1-=DQ;{Zٞ(9ڝ9ÿ}fNéd)I9%SƥKDVl py|meM<'#Xn5"N~k":=O=SOyl6K8n"lA6іyZWp,ݻo:X,~M[w?;ݻE^71\KChn#wD0@7l޹zx[E?tXf.nid}/7g?>33"%88Kkʯl˶=>JNFғ[2sj^AA,;}?姞~yOߏa|g||guW,[y//~rg=Rm]_TMk[ZgNfves"zgD ~ "Zx^`+?Zƽߺ ?msۍ_yKfNG)Wzpb1ពȋ$NozkF#|TAw" EZx۷9~۷95?!&i4 ˝vq-W.]<nÜZ5'-`y۾mۼhG|nd49EQ˲z$eh]:ںdA|pis"[)w66FE$"ι =۷#.` .K%q %q @\ .@\ .K%K%q @\q @\ .K@\ .K%q K!Ѝެ9,9ǂ1&NcŸ `=Y9WEQQ%I[qߏFQ?2c@`LĥVbX1ס2q)2VqKp?9Wy' = )O/1zXو `L5~\cTaII)+.u)K*\9*"S NL"F JA %0ratGd& r*_ICl+c{%f8+.\ w}a߻lvY.|d_^9*!=Ch *ʊ"+,Y/E{((h՞ݽH7 q9Q|% "UeEH54>=\Uկ?;3 r8TU0ٜnX"Ry{<'F&DDʃ$qUUep6]U';{傪( }zH_]) *q_H* ׯ@\aKsEbqBKA0. 3bz iQkmo S8=G\>0B{tu)J-H;DGa/~^Z_}r _uUK_6Ӆ[).sͦwa8ie;]32">1]]x4楃:9?Z@ќ热\znػVm95;1շO?{V5ڏ\N _M-ާoڪ/ vWnᷮjhMKEnPUMesO?d"Olltեj:Vٰp-t)!<HksNQδSMn䬔x"ڸxY}g<=5/}MkvI'f9-OԶtZMrrEЋWiVz:z3ZubQ]u-9 #F۳cuesy|&to=XvҒM{K#@YJ\[Z=*MX"j:X^g,_|Aq +ksg ҤT@~]6.=(cD~pI:58t{⑨1tuv˲oё=ǫ(6oWZlOY% \hFFr/>Rpe -/==SbNwDqcYQ69VVc1-)MD 6W7CUYߚmrR,Ȋs^Z|Y!-VQעtljLщqo׷:./4襂ՍrRAGDV7u +QLyDJK"ʌZN@' ˩OKs)#J>WΊQ]-?3j6(7%Kڴd]2+5!? RvJ\e}k2m)N%"EU+2Shc6%)Tܼ_`|xg'5W?-rӁ`v{c,&"29n/(j5er{-/=Jœ>17vȊp:Pj.J!{WFRv`D~rz~5yg5u===q9[rSh߉i'e%ff=oj~\rz&e%k;&{W^F5u&ڢF^NclĬ診pvqJm sDC;>2wʄ[Iaohiy9k 4ey}kfJz|qɤ͜T^ǟvvwշtd%jeD6>;~g}@cw{ 1}RJIQ{kr^MuE}nzOwkwvt'ZmV3U6MH;.?e옐pDm4HFtObJ3e6j n/cb v (nhp8=6YLiw8LAfW>zkq1Q7\2i6[ D$sϛG*̔'Ğ:-'ƍ@cqWMS[^z 0" P˥'5f+Z])ژgi&~qI܏ܲD~F/˲ӝr(3V ǫnoucۄNl;ܴh10[҉}n /K/K'ƶΏ?;t{usk&deu+ť;;Y: ;R2By:"P. T|I}UԷvE,ijo;QLow8c‰YG+Z;x[Gcf"~v XFJ^m=pkϱJgD(w<'[]&ZScւt{`bO{E&QLolsfIY 6k)ZNqHs}maOIQvJM{ۣt xN4zfJ)$޽_(t}~۾mۼGjxMWR#bBOQ{=zW 򶓧/ݵӡsb@V^\.ִ;j2s| o끓5vA?)+y<"6'ڢ[:vTUu |jtYI%fظOOlrd&O+}C/$Ymc3m+.,A hsy|oܫ1kc8(E9ӔIl!Ŏ~\D^1m&SxQTTCnⲪpy gxc͎ g&Ʃc]NI?0,[h72D3J*#kJL & G E%-6=5SR!E#VΫb29]=I2 ky\2ƬIʣLiפqJVkc5ZEғ@$hw$pbH%9=\ Nq*JDTFHe9Y0%eX02x/QVHHHHOgH/>4Fb$)D~N~N@'?'J~ɀsBb0D-E;1?!ӏHi"I& ɣC*8y8]]K~NS$}N?o&6z.jI 1^ߡ:IOiĉ*rqttD"#H`=WTidoihilj䩧#E'" kw\_O}JDdBb(%E"H`$ p"(i#L>66Pg%m n<z?`G|CUq Qk BLL`wCD4wCj^C]DJD %E%՘/N2I'::/lw=d%IIIg3zAH\1~ rޘ>g~jiEɩqq+xn3z}^z\zGh4Z,у<[\8G\g I8#>sƘ C:`06qj1DGڴNy7"g?.u:|zXI5q5q(8I&9f$ 4Q5^`]߄%INeYU8H`c u:^L7qE/kc .K%q K% 6'Arq8uc@ ( usEQEEL.d1*qߏFQ?2Ƴ06D\jE/V sx*#R9 g #FD#Ysr\79q'C)^ô1NqF ['Xkr\3y00eO#RX?cyEc_Z\kPpF.S#*`F2b(.iJ޷iI#2x,eC^ .G,jdnw5>@~GL2X)*INl(pR QǼ.Gk:%f p|C"w]r'bĩ93cmV"ں@{#%9A9nU+ ޓ=ԧU>Pk5މx$"I`9Z]rQ#qPe(" C}Ĵq9cD~na%!S1 ~SUl1VlyˡU?;ɒ͝gxR8ˡI} ,łXY|*r2HA/X]GWde$'aY=(J, "9=IɈsb.Gӌf\{.x Ήg} MF=kMr,]41r`N!&NݤG]1&Nk `|Rv8 fp$۹i) m驉"$SC)e2 Y81\Gʞ]Z#U,Be+F .".̽c)>+GIYD =l<_t653R\@K.r`P/Oo08WXҩz`\=:#%؝=-+-˳S}i=׸DT .L$RB.UO,tPXFީp64ƿd_ QTHMGF z ˸l)҈ԗ8g3]6SYƚØm[짟{JpY[`%~몆ִD[@vu>\d_69_@&"?py< U4uɹY)paHU6l?\a2]2d8S3 TSu4?39+%69^Vzᙸ<;tvOK;%DuӚG.Q0}bݲDmKg4(''m\wr`'ZrR|>ɱ:z6-͟;P}sVuv8yu=-1Z;>,_|Aq +ksg ҤT@~]6.=(+ﲳ-jJDG&hKx׿y_iM=f]RRt/r͢qDHe-- D";osRLO:ލ{K[;mrMeEٰXY]kŴdRblBQ؝G+:m Ve}kJ\bIMz< +N$"yiMuKgYL[E]^35>F' ƽsS+#_긼 Ӡ 2W7NI:Zu F:>RRKD1QqZZXuc[~f"4m>P6oJEsPڴd]2+5!? RvJ\e}k2m)N%"EU+2Shc6%)Tܼ_`|x窜l_y[MӉڱJʽ~b4`u1EsjUDd2uNYЖ@D XaNkǘZ;dEmw8NOp5wtdQ+#)VQTU(^y}Knj";Q;mBԴVRlwM͏:]NϤu-sdH"D[ɠ'"$:شYqQu-vu fCm0-sLHI}֎=PNL%`)M{OY^ߚ,_\2yjfN*k}Z;M-#+9V+c$DaY;tؘxmw& TWg?;-]Z]IVLD m҃KOy5;&%.9t p#=##W^j;,_6PaDB NInl48լ׉};Q&ɠ?ZQ__S{+mḘ.GDOԴv;.D$sϛ/^_5Mmy j2B-3[,zKKlhmwf{ZV, %s?zpI>,ˊNw^ ˉbZVqɹXG0$鉻W;ƶ i :bw;\Ei5fSccVaLY_^NDmv+xf6M I.WKwvtjAkw&4d&ǵJ4o .I=XV_VbwFo179p6*V6ֵvj-nI'XD`MS/0$xzdkGמcΈPryNT7ڻ6+M4;۰/=!&=) =01Q忽vWECYU^BD 79^[c椬euY8D9^>`ް(;%ަ=KPaY'k_[cBb۷m7H~bEQNE=LGGO3^%P 8Cyw\uUqXUSI;]}[i IYs&(9uDhsLshUJ-.)4 -vƽ'.O~zb{ 3yZAzIoud$* p?^}{b6ƽ1_>FqHؾ%xl`I w,%#S-}9NB$U \8kv\809.u0NrzM,ĂDI)tfsjD{XR@~'$#-xp!xvy\Rl4~`*MBt2:$2 ABb/]4"omz!6//c2`2 EqL\%7כǩv:倓 BO_ NK[ѮRqڞa3DB3G!+`%F$ H$ ,8 2XhHmK)TmHx=ɥ]j ƈC`7ƉSVIT7D<<2'+I!Z"hTnRt'%AdAjqX0K 6uE*i$'!tLeQ͉8+|rőC8='MxR\*>eq)0٧H<^p XB/wX:'25'L&S#IjUeE(@s`0$IEq}r]j Vqd%hb|N`PbE|?EJfFqр`7j6(#[1DQ$ ;K$_@cq9Pa416ԺRFa0r Lj8o\cM7t620JKm_$VY(8I&9fG%z=jLu^~~>$I:NeUUq#E1At:Տ8NFK% .K%q œ 98gκ~x P :ι(x&ƸGVX(CqTUŊ1HU@ 0&Z; cs"⡟"_&sqLj`Z>mHgĈqΉ ʳwمkK#S#b1XUj8Kqld,4{ZwR 9挅C1C#V u52]HUC hгL T{^Y~ >P^ߔhqΙrdݼ2A?23*yu5:C֛??x1#=ٷ'TD2xq8kڜ.wŜoÖ0N[UEoר砺:UTsk_rw΃UUU9}V)Qy]C˱Ul"ڳXӍ-t1jz;JW]`RF 2,Т]8#:H Ę(kb7o֡=Tk5s8VAC%gV@ux匱p8j$b\.^G0, xO# u0"ԒN`g8imrm9c8q9r ;U33iMmTU53=2ʜ4Iݷ`ǂ_,}0 ?KᇡA0r3bmѵP]"C%1'Pt`7מ#8#ƹv!Ꝙ3{1br z!xX(h .G QbQM$ςҢhB5jG q!1n3j]6.=Fu9u-9 g>XxFFje ?- <ӽ`KKr6-|e)q7^Ckut513b:cxz7X3+К,_\2jfN*k}Z;M-#+9V+c$DaY;<$nӗot$؈59/m>ƞi:bjNڬf"lh/?e옐pDm4HFtOb'{]\c48k )lv:^Ƙ1$Q^pzlV^'pF &hE}N|+׆bnd,ˊNw^ ˉb̪I:1).&?3q xnlӉ-vGUV\m659ffK:ϔՍ?yyDgn|nvqnmd tyštg:KdzGjBCfr\[g]˾*['E9N&GD6239bos|ZA(v(7&f%o[)֚ϒN:Ze6 XFJ^m=p8/].ωXeъXkJ|̿HNx'k[&f01Q忽vWLSU^`Z'ۏ,S},kxgnV6-UuܔxlG K0_8k끲OF[fJq7-aOiwP8Yl7L#"YQ`s-꺥hJUUNHYѪF˛d[\Rh6Z쎍{O8\.WAfG+j;XH-Uh1G*[;=9WF{^/8wl~ <6S$;ܒݩ>j }C˪W.q5;.]:Uw9N@\jqyKbACD:'΃߹a^D:;$IoƃC< $Pb+㗶 r\Fd U&a>WH2SPF䭭ӝW/erwlXjLqX01&#Jz317sSt'^ gFzEܻgL+QJqIz A/$ D  BwkTN6@wm<מR.5cı0D)+^ FT"B DS?vBE*F7D[ĉv  8dfեO\XYĉH"HĴr:2ܨDG>!Oē&O<)w n2S$/ꉈ|Ub,f;,CFF|E$5RJJ2"ZQ@ 9n0Zc$.+u{|mn0ѴN!bO|M&hp*&/Vq*̩JE_l|8`qrqi1J 0u(1"n%chD0`5R@Q-c(J^($IB 4 5AF#cC+EQmqF #$5qKN7oV+F8.}X0f8&D$I0f\1` ֕z~MQX$t:YUUap1AtgxnT?8= j .@\ .K%K%q @\q @\ .K@\ .K%q K%q @\ .q @\ .K% .K%q %q @\ .@\ .K%K%q @\b .K%q K%q tX}ғէ`RAS%~zD4_Zǧ_v;ǿ~ټu`^k?n窏׫ٮnzr:\iˮ̇s""U5Wgg2+ZO>wʟ>UVY ;~M]}qLFÀ/tt9>zW]{MɪV^ ?GK+N,`Ω>{_g[?x\es| [_|W,KQz0w0SO;~jPd/w|ݲq[(rZjS_dy䢂`i۟wnEӭgE[֭|NO~$j\xK}|mW͘ZxD[mFKW+jϿanf_s}|+.]gtww_y"CDwA-+3Бs7-5 k0.}a!|酳kꚞW]Se)IDŅ>ѨXپ z}p?Q~lH%"q'&E1mKMF=ED%# .a]dʒ~󗽇ʟӃ MŅ]w [g|Õڔ)ɉ)ɉ}^k&z''+#1'~߸}Pٞ.ų~o?=uMWsfF?K`lمaM>˽mqEUgz:Qr].)zk,fEk)IX`Ɲ= foy/ٮNwŭ ͚_HXk_q _GN(:!;1tV_}y%3僭;\yyEE(5O<I]ݑ# 9ǎ}[zU]t .Ca93QKk~{91?'EQ&MX( O 9%_ǞLzM@DurN'^~">,-\|\"L\Z,(6sgM-*@DL&crRBKS>Ƚ<6VիOw^`zZrMͭ.ܗBD5W_; >{/~ 0ARU"ohZ QWǞ=`ޜ5&%"g26\~+1|j5۵S³%͟=e΃?}/Ņyʬ%:}]{==^BuyӧM.XBDpIҵwe ӧN\1?piˮ_|l4wXUSvyi뎃'G7_w}dXbme` %{oޱUW/dVZ "6o Sۧ"w󤂜Ԕpquu2::iB6K;ʉ(:KD] f|("mx/QJ/|t7?}۶͛? 4O\UUA{g2ؾ%|fs8s؇ @\ .K% .K%q %q @\ .@\ .K%K%q @\q @\ .K@\ .K%q K%ЍdYv8^9" cL^o4cbbto{jF [pFIHd Nd\rnE1+(]]]111!C?xH $HL "*ZޡzneR\rdBJ©m'_np3638Ud $ DDnIkȊKp8,  (pHd_nʼn pIؙoD˲lM& hey0kv{HoDH2{mlT 0бCm3:::?wsAG$!ט$E_]z^쯄a'̔T"%JLa}:&@ F`xq3eCLW`68c".UUEu ÎKUԟ}w@%3í..G`.KlepfDx&;mEci|91"%JƔy)kLLm2Qv%=vED|K/Tzʏ%Lt`~u:20ַ#.g3?+03=` ^7 Tt"&r'}G:CC@QI&9tDi~ "Υ ޷Z,Np=[L&#yo#'HŞ(x^ v[h\wId DDtBەDD;&)Jgo #zN#/'/,C.yO'eV4c%v4Gk\Ȭ$ғU1?)EX_Lcj5"W4z3tb:H/uG@&&$/gЯcA\~Ӓl?d^lˊgW-%ʆK8{=KVh=+tx:#-iWٻ` c{jWJ$1KHb艹XC@/Bz+ NMbD\Mnq껫֗L([pis^|iI9Oy{"XsZD?48f.QA -Ln樇zAixg 3X˳elCkOxk|צ3SϼO$7 &Vq//ig%ݽvJ'OS3ΎrяQ]".{k&CsK[Q~znN"+[@R၀R]x*sqsfK?YdTNwC$SKY.v˯}i]LUԊ:*t%Dv`x̌j줷jzFFzjNmozb=~-lS}heyU;k:nG Auq6γsO5kQ3**/Pr l%T":;5w %H.iG=>i'"&۴+tۨՅ۶͛?LfqI\UeEsϘ.(( 8Iu.X$*aK93~3~vl>%cܼ:̩:ụ l)gXZ&ظq$I@$i0SG "6`xۙ=Y7ե^w}%0,rO΅9trJ[ ,ٌ9W凡n <:zPsH\媢u _R"~,qLĥdݢ¼^ottd3tߜ%RClx,@Kzf!Btt,FrL]zVktt ; AżݰI: < O^42}#sܥhl:KQ! zm2Cc65O@L A<spTTker4"3f(r~w^cId2,h4|-|ߜq@Y[;n?1EK riF*7L#5<`0Hd4Y &($ a0d3Rsrdp͌gz\ (8K%q %q @\ .tX0Jn/ "$E_WUDtUp4^|9 hVz|~mXb=(tq Iy*we0 f3}0*~o.2[c>q c:1tɥ3t?q4h .K%K%q @\hX(IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/success.png0000644000175000017500000003570514122570751031021 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|[9jvıwH l @iHPf)@Zhii el MJ)a8[t9WWƉ-[}jmE9wND@VTT=r P\(A. JK%%@g)|k@QHR) !vU$9eʄf;&& v}ݪm`)HC>~˪7~ >M⢻-?YM{ZB&a0謜ԉ7Ҟ6Ɉ[e FobY]A0LIB3ǖn.XQ\2iBX u=,jf4 ;> $1"{Z'oM'v}u4BRo Ìz[ㅕ_-rwlwD 6L#ɕglܹtdԐIC2IkAäI!ۡ.mofxǦz !`0LsҶN[js!d=Ό`ȜA 3h؎Wu1=%3!#2 --9~G'0ȡyK ɜ $K8u1Ս;M),d!˖45`W ]sTm<ԐIf(#U]-Ү{ԛ[W.<$oFmX綧B el+q8u1`K aBBsͧN1ɕok+G6Z jךB Hi؎i3W$ t P)G-^ֲAÿks*4I܆0f]fHfOy-{_Ryx62B7?4bN3-Փ>ʡ;He[dЧ͈[a1ˠAB!;wӉ$tߗՔt:1Vb.KȐ֗m N;tרoc8=1&daSL'[bE> GѾ؝b!WTTԭ~ל{ wo@|uzc'U>N""0I a8@  c2bV.CF d6AD6v#L i69SK8uKKCɚE6(f"j $A"uҴX .@cA ևZjDt%."QGjݚ ]ͥa@q$$jA#Ns9lذ 6L|~9,1cts]w7ncLq}]\}Ag'pѣ[ZZp8.tv\ v(A. JK%%@ r P\(A. JK%%@ r P\B;!DDf]MKn>asHͧg[(|Opk_lj`/wx?X]ReG/u5s4;*ǐKh%*-ZEɆ򝅅 KU%,ڦ0V~2bdY6\uhns1"4YGɸo~b?t؇.VC2ӅX1s{߽b|3ct Vmݶv_.]y'}uK-mGO26'0L9cf>c}M=g<*&56\B)r8{d͋=;rOQyMsNfX1gq#9锴l6'# 4WOqmw z]}w1fݏ>ZL~E)L"KHT٠9ֻ=t碇Gǿ2aKY3ɖYV 3dP,M-+]':o֛Ŀwbx|]uǧGͻJ qhY]w-؞ a%g~}JM?w 0Q/^;%A'"M>}UUa_;u=vCe޴LF5U4"{NL:̦jɸӺ@ZA3=';7581OzV$fRDiC.~ Ii'v|sk+ o?s%[u-Cmgxʳq8.c뼫ΞQyll+Jr1e+_ƍt, ɲ<2 bAr f}1!ao[u_կms9mVTxagEarrc#F>tĠ7I,ơ-H}w/U}s}^yUov/m`$r[gxF0@\ZV+(l)_0yhvz^`֖';Ço8U~ ""bΝ5!>fC?^T}ENš+JSgشAk,b޳E73Ozjxk̖.e("IKr7y:r'L|Sƿ9\{ZJ)ĖoU?~| 9j6dΔ<>\Ex !e}{-ϝuQ܇n:_c16,y鹯4Y.Elx&_5uɆ:A|菩7י|p.o|7[B~襗j#";v8 ֗lVU} Y^ccSΙtԡc'N!?mh9A67I\B{Ҩ/+ڰvO~=<~!NF慏}}kfZ۳?)n{8 +)7}1*wL 57p& 2 -\PM59Ϝ:(;T?K/\{?BA;O|ԼvHXet)1?Z- K=r(;r=/7OfmO<9b}?*|+!Ғ"C?27cC2k7/mq;_C_n\[f2A)8cK᷂_.* )K>7Ll&s1GM2"g-[ʫy'fƞpɿ8}TJ暲yGsxFwn][hyǟs5&sx{1oW,59n^(]+Vϸwv;~Av٩j߇(yqNB.(^QO8b# Iwfqw1g{M+W+<ҰNre4}L>bpˮ:)~<8k2}ܯԽi6j]k=ۮ8vxdϷ,/Sgm҆vugs@bb-& ¤:ECцEX<8rl^֔Ut4iލ!eKYIC gR!0%u,á"`@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@@$XlGӶꝁMw7o AdF"rj^bnMu 55*9zsז}z r =m"四oljMgͫ=l4; $775ݑ = o)RVv~YʷvyGXgO2.:>4@X~"***B.!ƢAlVYRں/$i|'Nͼ;ۺфB.!PJ)W|:eLp97y45D4!&Kh(̚w=isFmSO˾Z V%tW4oZxOQAys{FuL24Kh(Mk>kS~TtFz&tr ]n%ɐ^tǻ_Ҍ3̜.{1@K80m'%mfcDԗO5sobs(IiфwġN*%ѷ՟Z{rA I져mi\3k_V}(|!KPI o<'d6=܍ $9&(B.A$i- ]xo\D>QѲa۸Zh=T((mi+U`9saS&(:衧X?\IܖU+MjJC:kmݷD}B2b ,aڶҔUuYgIF ;`oK+B׊_X.ӈ,(W-㲼[ŌB.aExAye[x~wqirƱ­$Rnֻ:Ho0g.'?O :Lew4qߋ FͷeP2Iv@'%j=oG !Kŏذ&!ۦ /=!R6 NxMMz[&9eoM<}g#I8pK_؇&KIB g=(|R>&SJ &D!@~ q~ 65nl ) 1,!LR WKKex[/Vј+zò| #.%#qE@\BcR AlDZZ敽K4/#X7\& ;_TS?ԭ"NK;'$LF7^" RJ!)̒.#s:_uÆ l%2Ssɬ>#LPRF. ̨9.ș13$"W;>?5^pyUbbu AUV7=i?d;2:"7mKsI-2[FD3 (r!- Bݟ]:=WSo4n>sOxbouߐ欍s4`]&"2XSK9F]&#\.ZvA)u%Fvɉ69iT%?ly5{pf#YK)cebR b$uY3bvX;F#vk yrN#?.eRzh?!kIDATU|Ӈ7[+q$3?y6E#pwuDcΓ>2U<_: c2(O\J\!8A!h1˘WZPYKuOecc~3;kO{/8W0|EڝJ3˄d$\JZj:'j15@i7XT﷼,R.55o\Ї +|D#Gr)on7->] w82՟jZڔ{]ymyCRRwj.{J&22E_~cs[X??>FϛmO}ymd'92yc:QTzc3-ˆ}si跫7 rx:myKՓc>nMgJs<77nͽ{z8:^^WZToFKHªmY=C?vvǸ[|kPc/Rx$ 2tZHrfPe*yptG3ْ_wSf\zó%osxA.QHur=2nϔ.|qǢc8%F\F}W}c:vQfm[:q׍vx! ^~{3b))P L81V2$5Й#PCQݳ4[)i:9''5.?7ʻ8r]i^X[#@H0e^P##Ps͔򦍯2;/>}w?ĤZwwz}܎Oɉ2ZLH<ՓXW^pjɉ1G+Cԝz'^sV@գŋV$rNq&gymqON| LDV(&'q aNn(14>{Òrs)-,|UF0+"*7?~MM0Yc%d]q5qarbǧytU|q׬-$ke^\&k!1ɘdRcKY_߹6c6N*&\F\&~8q4.Ƹ&Y>ؽ {q32GZH4iLwLX2|1NL#טe| Ë3Gx5483ƣ'V LT֑qƹdq4M3_='>~f4C/cQ˄\&"YPZ]Z4ɭ@$kK][0/4Χ9tE&G$2̭٢ p;#+qM#n(F3F$4RJ4Ԓ$'C.)^PupʧޔຍivfnpK8qdK vI.IDI)q!oϦ[Vy0]Ĉ.κ8g1qFze8`A.!,$ĥ$d$Zs)$$/r?Yp܁ǧ&['H|y3@.1MJL$%$8?ؔ.#; q.C:]y;PY3ĵȕA.U6bZG$UL+%9_GymG܊чWg^`!蚍t;`6;mS,1KhFL".IX),r5#ANLM]ZY_Brq}^ۺ֯};tY-ךG+=: oĴNBgZKi%!6#\F.ixyGuasm$i씙Y)d: _lm{h%o6K؃>gGΡ&8qɭ^8S|Gs+?hh.$;3qυ6ۙnǣv~ W$3~;28c\1.!Fn4;,ªwWd];- oGuÇ EWfcuδ+ac% r {zt3-z9q,<琒 QbAsG )M0%95ոK6>ȡ vjZCCY&OMcȺblIti3:ӌ7[璑=UAbC.gKX4I)#}"PSzރ7"zO۴1$6Y/% K%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@ r P\(A. JK%%@0@0BH)="~19N399Ya[ۗ$41f9 7!LlhhOMMMNNf{Pԯr)s\$@/[wiVVVBT~Ք:ǃVđi}Xbd0j鬩1 #3ưc/~kjj233=?@ 58@9EB!OᜇBx"fO_%@9B{1M}P?l:]TV7(ZxMUK `KMKn)xsCu;Ts]H&s ̒ꇕuߴ3}':0tZg!{Xy?kKe;{cg5ϓo[貚Ϣyן {Ivз!X4gIt !\,wrϽj}_=>ι[w^\B/bR3$'>฻.98ORk#13>ޝ6(tRt){XzO{*O\9(o?M7h!7>N$M ]'<];FNIXC/h\Uib,j)T]#.;#ry~zaucV{}萸KQy&2;|݂&I\WY9vng4e PC/67 ca1KjO8a6""ƈd(LPUQ԰}4G{m>Vo_9>0Ӌ%9zO`WϾtU>z9&ݚ[҇^}쁏%iv4nG'+I~ޣ=_ .-~?Gޓ`=0???ÈM6yEaDYfM,0 QL]|>)idiJ)}>_3'.58r=?qι3 tbU/i$ן^κ䒈NgJJix !!<55: p0W$"ۭihjj ---&@/`1l6x@ r =a>!~O5lama.X=Ctֻ1 = >%%@ r P\(A. JK%%@ r PQQQQ?du$IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/failed02.png0000644000175000017500000006236314122570751030737 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ MiCCPPhotoshop ICC profilexڝSwX>eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/%ҟ3 cHRMz%u0`:o_FZ IDATxwtlj{ޱ1q6^SM IHHHHB;ӌcޛ\eI{[g~,VrMz~g2s5{ޙa%%%"(4I hӁ@\ .K%G5 "+Rv-%9W8B Wslsxz&;-C7.eg*ҬY!YQdNZRhӳzC3,ێ-v[nml6+2atԍ"SǤW$-ut0g+Zbu,[=_P]`j,+$+=ܩ=Z:}<2+W7+hDKdْ|~`Jj,+$0aw{ jhd+i+mh2Cˊ)ܚ-3R%,%+oD>sA%z$ͱ$$)D R\r2u h$EvIQ dwXE$;d$hqZե$F* ZYeEIVI!/ChQmfvKsI/M7*k$"s48 8xIeYኢU^"*ZQ9lשMYmTȀ qzq)+dȊ,)Iix.۲wx;M ,{* ho8f-|{Jg8HRHO ' II/lu؈خ;.U8յVK Ɋop$#/4ǭAf-|f9g=.`jo/}F1<| 6%18%ҲƼfsG($ʟI&;%볪|+MM=93esw箑d K!K2v\9ĹʟdIVHV:e}?:9lj)2p^\'ouC{+!d$KvטgL.+($+_]Uf6[[ iUY#ns^\;+?qidNBbwZ$4|B,ƨp39.b_(%W!teIRH`zowϰoqQ][eeS1x9ʁ1|"â(42j(k ĉ$GȎG-$Idpì^ƥۧurjc≉f>6np.*\?$ˬ<ø,4l8CTT_-,.N񅐕gsIS5cGnagntiJƤklyQ_UJ$I* N3@:OG(3./;mꍺKS~1zr2jd>zuQfD8p^MvoR9ڬ$I$zhqZqi۝';U[%IUsޕj$Y]&Q$I0DKgIaJ$Wm I'KgPJvC] C3bZf+p޹zf"7 Ps[WA9JC,.EQDzi=D!}؞#w"j1X\N>}?)ǏGKUW]ٹqFv:O ZhQxx8Z.R$** y#EQ4LĖzFhD#! K%q %q @\ .@\ .,ආS_ODuvuZ٦7ULʩ5E,SPr Mzy>ݠIEʲi=O®yTo}fɋ\^#YEFm8 ׼?ّ7z3O 4dTh-ǶaɧxbJ%Sj#[Ɏ y\w*N'|A; TOկ_^ʐ~E"مe\ENl2>:[\OL>k6g.ʽ%ox'Pj̴S&NSo>RE3§p"9GR-\Зdί$o^ui v\q[u;{aJC:#^sf޿Fac.>M⍿}Lϖ.1ˎe7)=K@\ =}WF;'Xq]{;v)BX0N7H}Ց^?$rC(o=V1z om_9r>??ᄋA3zs=g]֒݇*lA)a['1V\c/h\CR&&{?RDJkag4[/_{J~SDI1܂VKHP/'{cDdiiq{lGM呚o/vpe→|xFTjsĩhjQgg{N@\zlvq5S|{WE&1 9jێ|aZpKMeO-{ory$ہן~z<2w fuȥ{2%Մ%ʀ޻ a"6@\1Q]UX;~sY;|U-^u-i?m&È;$ Vc+ܼJ rгFb .HjUwWxU;%nRՖOcNZr#:Fj9Wu%1)'3f9돵zJsC$%1)5\Hv!1E` 3$j7GvհH:&"+F1n<ᕟ Ӯc@ĴA/*U}V+'bZlJ{ןfrucC۫*dqR8K@\BW@͸fʏ+fνȭ'y)Ϡh|Rs>va>[iΝ#JM/!G׋Eκ{eR&\GSBL_Gv:5v4>tM?.W;Q&/T ~+"4Ew޶=fάPHi(8֡xIEq KIά+t4uR%_uhTADe69I>䆲҆Zbg9NNu'ä_ʩC7Űi[ S) y >q .Rwd{JI+Lq. 5ډS vc{f^E'#FƱs&mݶrsނ{G33S<e`S{7֖}$Y~ׅZec4.)Sh O7;Y4tIo)nظzaĴTpIi}]8;[ٱ*Ep=W4}揷M˼Ӝ4WU;.:ԫwf6oySƢ%y7$j oOQ4=DU{,cC7ym'kPOr̤xq^;f'_N"̺39܏fI*"usgbj_wUpuCW$34AJ'/_[}9ڇfDbܜoXu/^'(J爫 Rj%kG]s0^c#5s~~K8Qр& [zBY5ΈpLr/7?꥓nޞ0̚"X^ݪ=o}k[ҚN4< .tȵ{g߯ʰ7FKv|(rg<Ǜ',6|;Rk`[FLh?0Vϲ:.7e/wvx]W:*q .]P׸mI]tͺq}GSp"RZtek_n$}3j/W/JM1Z<+FCWꖿ:m/ypf{fiϗƜ6¾ˡ^~O|{|JA%FfKn-ޱe;88|'vUW <1>&N\-L?yߥtrS֦^]'9kƥ*d;oɑJ1{wsg-yP{uwK~ZG$01ޯ=H1x 6n5WMyLkSY-1cDA9u,8|h˦?hGꈸl}!?u߽S\6tUļ ?ռZ1/+mo_|gμ𷇮m$** -mWP _ N [:sKۙwtRK*JP^;'<\Y΂_k}mw""*--E\V\b .K%q %q @\ .@\ .K%K%q @\q @\ .K@\ .K%q K%q @\ .q @\ .K% .K%q %q @\ .@\ .K%K%q @\q @\ .K@\ .K%q K%q $Th88wS?߇ .ap#cNT[I5T[AMdFNY:2xZK:=yQPGPPg@\`V*ɣNEW̝dW4S(GtKGlۨyjhW ZOQX4MIgr VRR Jn=z%͍U{W%ܬTe{s]Ecc'av3Jjj?yk]{7Ԙ4q JKfebQ{u1?Sg\K^Oȍ)սHL@\©ӹ˲Hٲ~Hԕ.7ez^ZܓK?(RQ/> ĆMHQpn[xIm"e׶^DbS{ wMN \޲̝CA:;{%BfmP.- mbAJBpTJKN6sepszY޶Y^^ǡ>d*[61j%@utWI;dQ-K^R|WDSz'Vv7oioWӄS&Ҏ_YC)ԿK!)EY\Z ^e3Xdx],*z }{q&/oiVvy?ҧX\ ꥿aq=_;''77ņ!YZC2/,ֵ^rSYrcE9@\ҲlDĹ|l`o_J5:#fRX`?\Vp䃇zU8C41omUgeu_V~q!)羲V^蚕M_a: .A"Rw@^Ob.ZJR]q r(֕Jn=Hs֘Z]Yו.>nͅq C27W觮,nVjklƾK@\IûB:ܤ륯z%GĤS?W /0$:nlkquS]5^}1!6-+q]fPfU8MΉ[[$@qQOb>wU 靕Ez|9o-WD\ЊK>^mBZdE} ]4?Yyj뙦q4Jq/vʥ< fs.qR"ThX]kyXZurۿ_^Bb茣!i4buepyMvˡrf9iL>;}ZŤZKԘKqўc1^îYz%cKN @\P՞wh.zyǗ|XLJ8o b3%3yz81jxHHtNA7;vzKdvK JY:?>gȱv[b_"&ş&vK !| h79ԘǗI xil'yX_V3|טB/@\N8錟ˁf|Mn)5[_~'1| 0u1fгs3fBZ\R.(b5[lSs1Al^MIEKĘsQj5'햕w Zmu.B]:-sH'<.>nӉiX4}gck/|M-N! 3> #|((9")*9Z;}u{ ṉz_ %rW1=^;9yfBq}׺W^΀p87KvX [{uBᚩ=dߞ8NXc:.Yggaz& ~XIꕕt=%|uEQN$V'Fx19»W{1;P])B_еƤ3̫_qTRԕ5fߞ8q ; LgJv'&u(Ӱ` 3;.aL?c=[gܭxq 'fI7D.~XU_Tn_LL֌5[oin8 .uɝC}kL"bLi vT~q%)o&Tv' %VLLΝn8|==9ײ9ú'NQ]=JW]=/g%nbV](LՌTx!n١'{tН#+q gRc.*k(1oL e=)IUrqJ%t=[Vrڱ1pkjub:D% Lu?ӒJ׬t;~rnat-d#Ea򑺩I"l\WC$5αԽҭw(q gR`3㚛n91tL7%Q;!q̖Y(=H=,H;:ZԢ)؎7~Vbvf7E!Eif0͘aJk-ܞY&մ ) =!d#+q ݱطRE6&&rClr8J3.9EouL:6H<]!NOCv6gr00IX[VrWWNgn2F3F &ι.7vȍrCء[AvYڹC&"4"ӪOg=E?ڹln׼}wV"(q \fZo:ct#=gk}:8fЪU_O+YTQoJu1p5n\VY,-E+1w̻b웘nK{IUpq .1gۙ}pSykV]3ǭNt{۾:J@\YOLP睮]Z:]f'1ORWuFxjIK9%2;v5~ЭTtK̾%BQ K0LתfYyjLB-(QT.9QU+g_:g5JtqI}0修Otpfsw隌){ffۿ..3^(L$r-')4"W}qN'>xn@\E=N@\O7Ƅr0Hr-f)]:khf@\ξY;Jo瀸?烀&@\ .K%K%q @\q scCdg_l?S57eؓhq^&, ⌂6%ooV9E9%'>!O\l'"ޜ6XNX;־w{oܼܜOYˢmۘVqEU,xk]PRs~6-+wWϼ^{i<.7_;" {/}5'KpO͜5K;Nd\nK{?G""ޞweݚV's"QyŦ*%cK?[e""h*ٲ3ʉ[K{/=^y` RZTnW֗NP[%gXf-5mҭQ)#.\|r X̂x+[޸}߽w~?'?<.L$Rm͕Sn! 4FׄGp#xGtTuns]Y<㖇 /]Y}]ca)wM1E(EFEx0"&_WչβVZfDVʦ^GpӲ=;nwxH;OJ\qHJE o2KLy=(@=.Ĉ,9Tp[w1"K^D}6DA;cFD\Cێ̌*Qݽ.x/-qص1CٱWy%d¼k%/:cdDq_^%|B[ID;x[ꘃgx\ٳJrǿnQ "b~({@K/ޑ"";Z!}_w-g$نsQ}agN:C(ƍ=9'J߾͎ep87x2`/>/>4FYּm/_VS߿_wOĎxǦ~\c_;hcI$Uq۷_ƥ:jҼUI#"-DۼKTIDĴQ Z|ܙ536y#渹Tθ$`t%N Q0b$2i?35W_Fs]]Ս#+p.{ 3YY (J'Bc9{+9#"9_ژK“\ꏶFyfg81Qx[55sv/~gcR_Y_84їxeLe"m9'>+ D)߼RQ#?#2̻ۦK+>|#TݑtH%)[eVnIfsZ[+wQ/ԈRնOH\'4Di*R#$+Wq͔.tzO Ks4*[֤UW7yhЇKӏv {ORjw'3aR"G?XD`@D䗓^ywj&.f53Ny3>몠 :RW)]]  ~!GUwxr92g"5٣0胸sf>/>c]:FVs_V=b!a _s0I{?Q5?-XouJxg{tzOxG[-`TbG+B'DO_~Z 'ׄz&\6#W557Kjis""2yv?ݐ{pga{2K)_U;o$"ghۗj[8`lK8񎲬:'r3]`rr`!OYx<8h`L^^.e>USs2qϒyE}ywB&%9$bȬDB~u5سL_Tni:Q !xwQ|~HQvU ׽<}UWh$0n^`{ņOve83&z1wqV5T0۲b}9*PYȕOxj?^ϿߛOj)回~lW7hANd_7E("sgŒ #"::*Q ATDT* a\_[ri]'? .l~7ntƕc{fi\jI;j\_%W&z\ǡO?rQ㮜h{O Sstz[$lRw5#`4fбv-vIz&D]̆\~g~沞} BO(_쿮wƕ{eO$[3VY&ŘTD$npM BhVQFzxǏ5W=//ߖsSHO/~fICW=ړif73|~s;Ҿ[w0p53"ɡVn^=LL}띏3ڻw*;{ui)QTznj1AEkwT+g|Փ~uCCLxl黟WzK̼F/*\׊Ǫ],nߋh}M wv5ƃ_ ~}3l[;gU>~+g⃇L)jr)FmL32jqE-o`Ǜ\ kf-{yI.ʏ\݉Mq8_p SϘ&f_K&?o#ʾZ{21qQ㛿0^2և붵,R-[gmty|\מ~;Ȉts1V<><'Xŏ㣗^}!x+w'=o=EM?k-(?ge[qa>{2ӎ/y"3]:A|/p˂:b7=d-k}9E.Yc DDȅJ]ܻJJJ#kw7Z>\ӑ5Ւ3\*ƔWMyR}5s͊tyҿ{S[3m9+VL\>kB`s4;2}'ϊp)5i&M WleG_>gWS3Z7y15L[ p:*o717oG}qfEs\b+mIJWɘJuW~Y{~o뜶hA7e>9gVii Sf/bK8_x{e5 *@#.9ֳ D3C=K%q @\q @\\pO(\= WN뗊(ĺeD I,ˊ|IVHk 4~^YD\,Yh(- =\sbVE:ðvBu뷭nntQ~3#*G$q=D_Չ?8-G`8|ZuwX,~+![ "5VI@b<~3ISEzv%!K5۷Y|EIIE;wm/h  ߵH14x!^HAi<>,Ff"b:P/RƦ~/+s0s䶂#5v{5[qwN {IaGg[ڡk9CzkSU)u-!$$C I*KiG> M9W洵dJѡ=-&H۹#8 PER{cIs v[+-J5mqr馬6A;3WG[U K|]IwgL"b)W͜ψx˱ԏ]>vK'<5'*M W(l7nĕ6;eL *S3t#u\ݻ/{8_"nCS)QސwdwG𜱁7gr^>Lߴ|@ec5,+(`A,]#r￐_/,sɮ 7.yLq[eN*7slʚ{Z[,ٸW[UnW//'P[m潾2fWh)14Ecww/i5 1*!vl*4$Y4ƫ+'@-OtHn=^e>Wp\weM3,ui&[; FVX}R(nUK^~]ɂGN!o6."DKwnF ".Ox Zf߿N!":?s CţMfI%WzLe#"%hy۳ڭd4yF2KRUЅ#|;j ~Hm,ώ*m3#}bjCmK~Zfۜv]Ue3sz"eͩk֤T]?j6E Pӡhy(ub*$ۭmDDJC-/i*u[`d"bX>$StD)c%|g;t~:FRU]o̫%E{Ltg-29!ް`YkpԥQT_ydX86"}E=>9frHLMNX Td׫ >5BK$d_P~ 8{Slfg_Biڷ<0AL#%̲٤ eh,L JM2Ȉw׫uy2[YL;I'8jvoJϓvni$"˄Zl)$?-ܡu &//TԹ%s1tM;s"ݒl0x?r,Ã[wԻzom냯3+>]kaїOh7NfUkקpvK+"']+f~yIH>gAdv#u~z5IiS53cٗTexG̜HmY2mkWl-StSmw>j̜sCq^iqKh\Gn,Mӌ0 1˧t5,L% vUӧ[̢QE۾ƨۯK ʃ۾8f:9@o4߹"JNH*>s]rA֜it*08!Iqh- ._can!i@,o+>Ů6.DLqK{oc]Ȧ9eK Q9\g>q ԯ.wK[73OE쭛Wq]MI KrEw2| k,]\3r1)S )zMԙ_l NI$!PSzE].努;ԬߣӑYl7x#JIQã#M:t'wиPYڭ%jwGB/#E`vF^ߔG>YbeW]v/#׸3ǝxGD9ONߴY11IUzZfI2Ԧ:|}Χ_:ڈ3U]85(5/î&"+qDG!("m]7bFm4˯ ?KN+ٻH7ft(c +#S;4cgXw+uxw:src&\nS^HNLc^m釪%Ms49 1 Ee-acf Sڎ{,Z6r⥖CKU:=S"*l%Q#QgK;u?= &$+c87g=R4#< &@-410qZT\gA{Kgl]G>2xGIګ%DDLqM#jJϜ`#00 ʖ=ZE&&Ld-:P'DOa$7TrGdztϨKM۪?| 1sؼ> 1Ѥ[9V@PD5"QjQ(>gMRk42_TM̾z60IpqGccs;j1]%RSQ._}vaSh\cQE]j?AE7x&ON#/ÿ4bÁ\ m"'Z1*"*߉CU;M=I^s>Z㞶k#g\WҮJ.ZnsQ])>"c!g%R@P|x[2:_gn{ o^\fX03ڟQgIw}3ce*Q`b8Lj4(8Lw޴>^ v7M3Ȉ1@mVqp]okF4J5knԉ3xj=ֽ4w ꭩe y{7#_d6ݝx5=jҥ!j&z R[x%j[dA58sqަb8+0ūS5zQ?O߲/I  31ue(~RV=[3~Ι9Rbdp(#ϤUlr"RF*lîtVZ ^+˸ĨD_FD@iEn-)}hZq쳝!QFXVV<&{(m9ڮ6VU~)8tQ"} )J@M=_Sf4[_iH-ZS^iܾs{ˮ{?: ?҆tgdcc %Pfk+.gԈBJKUΜʌ2wXhjrOD)(8,QUުKR*)퍵 Vخc|I:>] ֔[b Kv\=vwXm '[Q"""!izhTu?~ko8MfHPi,a ޲ϮGyGe^qǏl/S,t>cr-'.yQ`\ґ2]P:kjɳkf?ٟwHbCFnK/4eVRa޵V!jȹDDT5""G\3$]2>hFϛϼ-¢PMm sGO`cDiĔ\?*I7yzF M޴#Ϗ3"?}l\`0OZWv,4~A=cF4=X 2ڤbS *ٗY=81o\b !2b$TuG#.aKI*hcܴQ㢽thΫl(ojBcTjZ֤juGx2"0疫n+ 򖫮t78Ԅ$6עO~׉u-Z)"ޞHR1"6fLxPwѣ3mjshp_xzOI~ZOwc>.p%Ƙ c63llKZWƧdYz~p/Cc?oEvc;~);eZ+TU.8';DgO>bDDk0S2J\e%O$ֶsұ󆒂#<6 tOGDd-]CaAJi60(*7bt:;.ZswLN3 M K ɋ_NZg'o>U#TM;sWY1=9ؽ1|pD"R 8qG% bRC_mYE ׌ u>_{_,Lp`0{U\!k8`0ض08㥣1ܴI=;4`j0=-,Sf<b%%%QQQkO+**T*>֫pQ^# 0^W1&mbTw%>YTW\o0EQ [>.M&`?0h2 / L |;.ipcM1???^?(WpLPT6M$9F MR OOOv?xf,jZZp8$Ie&9 (*JV> KM/78 &@\ .K%K%q @\q @\ .KdW Sfs8HV 3{]3U% -0Ȳb;v7 O1gJΟ?<>[/3f<O1κRm K% =Z$=,^M5˹8FD K$** p%q @\ .@\ .KJKK' *=IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/fail.png0000644000175000017500000006616014122570751030263 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxwXW33[iAE ^{,hbhF?{)j[-&EERwXXXvEGD0>ܹwg8@!2"f [->>6 п%B qB`\" !$%B qB`\" !$R~iZR] 'p^ҢEC?~+es!T*!.#?' H,ŦdǤ) MY:o!vƣSOV| ,Dz<4ݿ],eIl,#UJBZVurvvgF)<4p\# %'*.=4O%ZUYFWJ9}+fusxqlkDd5+Y'|*!T*˸tU(4k-K:[ :s1&wKy q n~,X>5ۊBB%fd%TإMr'd<9qw˽ZyiiVHPyY >vrjCRvbBf"x4<@^N@BJi.BcU71+q"qoJV'<d'gWV2Cog tz.9XČFjQfiVLˬdvnR ) "*ogkRqf狔nB<)4vJv7!2J e"` $Ô{ӔQĴ7pL!TeL&c$&OkѢE6Zg!pGg$f||<%B\||k]Tn R?OO-=K[:;).ز=cgtVY;G2əRnLpgG@f{zϽ&FQq=)yvm-T>KT(<$l衉ܼfM :iL%v+Whh.mk#=z;tnZSh0a7lԱ⅟mW'_ź-D$k(isZ/U9øD+a|o?%߽g]3s$zإD{Kz衠5^hZ=Rm&.o#1 ka\"-> D?Ko>d%DYE ѱ zu.$Uφ( yWD-UR?` kwÇ\d0MG+DkQ BI/lV&/f>n숝tqQ-?c4)t؆CIJ$C( yB֧X's)!;r׶nszƮ^wȍw.3"/Fqw=Ҏ&Xu]29F׶7qSycGl5M@g se(B^1øD@I<nϱu[?3.`fQ=;= g]rzsw;f\Wt~Aݦ|olە"O~ Z=D4ȯ䕐[G֜~Rqי f[|?xv]_o=zQSY;䗮Eؾ)B7WK itu钚S[Fpom haRpqz'EPOVu.MzZtnR Kx ,-H-Jb,PrYqr5ybF4\]m͔hcÖ |K15zoI|nf 0 5gEG~R9 9ʲ~cϊ̊GaHrhsǠ ʸaߎ^{[v:@[hXϡ}3M &tbnΣ} l5ᆟn(N&Y hoKzB~:'РkuoP'mZ0O\W=;BfPvm/[?YXѫASC k;% ~?kרQ Umּ{&x~ePAbZ6)I=CAر~f4ݤ!7C|-s@㽀x¸D@nw/|OsS?=EaG'k'uޛ8oTա˞=jyjvjdi`\"N+3Ňˏp2)*̳IWcmG1X?BH/Yo<,UNv䳃OLgNF5-j,K60kO^`obYva\"-Qfk+S:hGSF/vy_lKvoO_p{.8(#[-ks%X5gfb-swz$6U7 o3]˩'ryC %2DؼGÃN\8n^e^mFKڵ{gNءvW2-^O$__F>=ZlwTG\_y'kvZ}ꃻ R/'+9wdMg"Qg%(yPe=R;<2q( {p=d%L?ܤ$ )&_Ly?a?.:¥Ũ:g[VDR{u͒=Aeؤnb:A_Ř>)!c+7Ǵ\R-^2ȅSJ~rnH*&gVo/*xUo^z0*fW?la4qHTó;9w?FJը_Q|wyx8޲a'kV-8懑}*{#9>r,)^|˭S'^zMI@yiڰ ,G(O[7dnFܠG[YnJоC!}m+ɍyȡ " 8`9Oz&Ge5Ğ_s屿ڴ޾m6n$]CV~cȹ;M-O`+z}aOz2haݱ_]"Ø96h*I2";eȈ;w/_Jr̋lBS\vy]?luTՐo[5x} ȲhOYߙ{ˌK^rЉ ȹ7?OqsO iQqqq vQ&>~ni#t%倕{qސȈ4Ez tmi&EeJ}E괧qhҞK}j:=9EǸD!$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$!ƷPcay 鲏0R 5 R 5r@Y( ARɡ:R\j ϵ\$Ƙu(4}+71:QDo~d­Kp"$Ž$"H)p4Pw:B`뀹(*..ãCEQV`r<< |FT.Ь-Hm@cu*.UJz=9Y% Dp{Q]%&\X]@P$(\8l5tMu MZ1.U@EoUkXXQC>@Qš* ;5L%;'S r:<u`u*Dhȡ1nShҗ7 b,3Q`u^~;3{9Fy!gie&8zr7?$+ =O%f回ބ[D:41҃qJyny-(|nۂ?Qr4w&XZRVjMD|JyxW/sT*I~>:@o?f KVr2m ŇTEiQ>RrxL]݃YY+Cu;0+ƥ3%9|TdP6ےēS>?,#OAy^emSY+#"HvݪE%F0|官;|ĬWœg%|?zTi'uDf\MBC *waϟg.ݨL&2 Kd S7ۡ%~nja\1s撤odS=JfL@f󩩥Ӊ= %U}TĜ4+Rd$0+FJwLdf0.Xu&Hj)ΰ{)mIqb7c*+W IM7"2KJeVZesS*Lh*+"))8a\݁Kr:bSg4{6L*L@>Fn!>(+Uc;&F{g_Kqifv' ZF)4Ɣ˥S'uuwjb*e]+Z(5@VbOPT*8N/Q>YU(z; KKqitJZ2H=v 8^2LLo耪) v_:Tdf0.Sף BI%ierZ}4II%)7+gb砷ƥu*) (xӣ%2NO/T|-g%2?fIۑԽo7%u.:Nx]Os"Tb).f \4 4MY[.No,VW17Yc5](K9M:d~0.͕QDM*}T6uQV-Y+TZ ]F9W5G1o,a\TzPR|(8++/K}81S^9E47G.vkX֩ܞl2YWeu매/6~'Uúx8`\+Ǜׯ܍0J^| i!g+t¢fF]/K3+-K7,+?n+Zw%֕5 ]b"iB7?7sx}φeD,iTu&6Uv81hՖ>E3$7R)i$ҝø4K49q`S;HU9RsꋷJ~x>aTֆ( ucûگPr`g܌I%MDߵHP2i"_yWͭlb:}ږe{8Dztqicv*TllJu҈\-w +#8_]\ 4MIVv\t[WrXJ;{QX]D1ԯ1dPX" jje4-J]Y'0.Q1P)ʢo e!S^ywh,Ԥ4uc<%*? Ô>@Ҕwi&Px:)RWyC+I,44-Tn82kȡL %pq+P AMɩ6jIԑ6vm,Jd\}P90. %.u̜㊿j$x#J yKg+\r2bo3e)(Nft6gҿ T>K2Tɉčʍ^6:IQ@%]>@)Rs\f>eED5+D%fh$ %rqfkJ.)m~m3BLĠD`\"a.UzSCR{ ǕtpT$8| MX`~VLIn8ίDa\"./]iR[Z2Lqbt0Lɲi4\kH?"uj4U"K*^0qkRF&mrleY耟A 2uQ?uG]_`Wc4Ւ`\ )[fj{4c2+M&&3+ JE,{sJTqte&Umf٬|qYvCq ԘQPbQ^%z=ePr7]u 7)!hT<%6KTgҝ+Sz^/Bm 5jyU%/kZSEA_N]|d$dq@LMœ 4F\F`Z;|;Zx*̱(_Lɿs.$ӧg'o 6U~Ceۯy1PTg9P|5Kc0+/a\)Rg?z35{ZG7v{* n{\񿟻ƆJ_6|TDJiݟC[[vwwb8>Ov|oi m(`R|~Yht}Z;ҀDK3qi(ۖE8e'qou̕w:tV[ġ# o{*ع '~ p} ɾ1oN~Os;ٕ"HpO>?T7E9 ʻ?9C1*ƥn 4^-׺tILRxvۘ^6H|I7{k cͺ=k|go:ov(( XI|ʦ *gxDvO:)X|wz;5Z `Fù/.l㉣ں2e^\{'6|^m_ U) ]BCt 9>gm:4$oTYt\^GO:#k=y$y7ΛC;WxY:4(Rcc|r7<{&mJM9ь.n |duH[lY]C55ł2ޝ ]{?vd:إȥ& ܳ=3ϕ9&8Į㺒;(Uƽǎv:gÌNiay~X\ K3<{njTWv{ |{QA"b^kzglߢ/,7/޳HnfMMJ, erm2]Z'|ε_> ky:L1+0@}HNN' "v- s6<c0ν>ᴝ[ՓzP\Ďo7gz{7E+ w#Ӯ8|дׅ0.Iv9:6MiiC&v뵏4L+l3kTw ,73t65 DMV'q7wfV2{rMG~xʦ߄}_,e]M`=fmIɝj \'@Y4iTzj 3l3 hO$t{(iݺuuߏݵ@YuRG;%HRj}[ţ|u~N-K @ZFv KRxߏy5x\~>i0u$\^rI[r.ii]&EG-p2V+&8q/;/;mսgÈ@O|mFnaGکY:ZO$҂TJjl#h.r6_;)w>$5.O~uz-,Mj=6  '5bb޻}ݔځ[ԧ_tf/:_[B{}|_:ioȐF%,j>M=u?8ƢǃnZ~/xt_(ߢCSgN=;._D 9bsk@ɝih/[1u~>qΗGx|?B+0ui7e䦲ՠ|,)?>Yhpt[*"o]xȺy8vvLJQ%[a_z͖~pi=OT< ;J-(/_=KVaw7F'"ri=bXcwqէҚ Ϩ]D++U.}}m Whh |aFң޹`މMh IA/01-Ww?,-僯N?l~qΤ_XNT^h:g𨐿X~8Si&3nH5×?(I/;L]].0i#)iNXP/Fw#y䗿s̘n-ܻ}4گ_mk9s_Dϼp"4Ga"+W67G.?ptǒſeG-ыhpu_}ߧ_+W.=eeum۵i֠GV'{N4vӧfR. =tP#l};cŋBLuw>M8nzHajdZZR.UnbBzN+0ikN{sOZ^Z{A!Vm{>M ioqڹ'8ENOY~+9۫FU >ia}2wwku#O~;$*/_*V!PݪR͆l4W~q!!](`SyLRߎroDsN ) Xf40~æ,|U}fdɮm5G~Ȣ ;#/R yHReJLBӣçZC7"ع?;dNAɦˇnn])>[v(k~s7s{%9^sn KkշM ^9ENlL)n;E|K-;+~bv=pZ$~|fBަ0Z"!bgiVWt˸~mQ2-3|2mP/s\b*P:YNkT*YIqѐWP @$dESRx5/{IHѣ Cn^Q<,<0rٜ497o9L*RGF"(K־6Tץszp,_uKivnL޵֝ OYTirP-s_}_Kvo>oNWyQ;7_|Moo9^hN(~ =FdWOo~hxE^;ǩ([(ڴ;h۲󸽡6xJK?8Vr'L^AO IDATtA˚U yrr ډ(ȁ?SIM♭O\wn\ڱy'S |{/Z:?=n>]:k8B? `A3^;st|c*/xf`ýCVɹhsfu91nT.1$wm_4pb{.5EF5í,)Pghu | 1k@KK|<ܣL. ? u[-ۋpV :(CEvtgޮUxUV&y\3bfh{S' 3v+CϔU{+J5a G.[@W-_ɝ4K>1 C M^|m@ruN{isUq;FvO@Tqgvq)/_;XȚ{ִ;_i3M<,@UI5xޥ=6io(;%h16c6çSVkTJ'EKWh*/d_Ǡs۟m6oeS㳧Ob>t)5#V6k;QEͳN^4`WV}|i-lKDxnUo9qp_)H[}Dk N;D/HSi]Η=Zٻ|;,ߜœZH_IQġ},nH;a7WRL{wS)2B: mɦ ځީœACil-7Ǯrf߶!̭w-&:9HABLLSVҏ=ΎqM u3$١Fճ.3%>]))#1T꥙}K vi;{]3".^#ۀ+S-ys} h\̇~ Z(`ﭛmƲ.30v |&Yy94"O~Hm /\ma|̓?g4j}亏.Rak[fԼqwFے;мMDuݳώճg9kY&jyIoC#Q..>{|)QDNnN/ _5bMtɭq݄p U[l_P;xϧzrK`z:P6s5ko˩/^uK_'`Qnu7 gLC )B|Ùwȍb\QD&h@9-p{~sdXGO}:.%Z$;a1rhG>qd^kjUG_-_-@I].]b2nJX Jl,-Uh/rÄ ؛=,S,FUuCMtgSyCXcn;amܗ:y߫ #"bhR䟦eh;ϯzc3#!"zOhRl")F,b|Nqߏۼ5h\f#җ-!uL"fLٵ-cREy%n琵$ubf92G㠙շIwWmX]-}jZ)n{mԿzH FCV+/ ֵ]vry2l6iћsPT)v|7 u)Q8'>n9Mg<$5+`y$7ؙtQ&ւ}|IwHwg D )j;I'6/;c6įթUMC[spdk""Χ-|1 `5m|kVJ7;Zȕo8n /+nISzD|9*|[ӏvի!u_oݧ1PI=%eUqa z˙UW ;Pv=ฯVKR}c̣1BȨ"z6l \HV{4'u|a R)^VSW+[V,f}SF.o^&yt)jh'>NnoK>_{1E7uޘ;qq/ƛ(琴^Phuogҥ+. w^ Vl1dm62M6jқb B ii-g=*Ia`{%r՞[<͐Ġtwq tޫ1k6G|IMgWwX6(ֽM 3/YS3]:r {tW(Nf7ٹ}ݲc `%B[5=Rŷ^ ,z}?*F|("w"ьa2djsP{-#<3[kB:^I+r)KĽ#'eQ$v!H0\ۭYC#Qwun"M ~n i2n'lm>dsQ8}GG^Uena]\~y? (*VG<}?Gw'v6\ױnګd}cf}u Kc*(-[A//ĸɌ4^R6VJN]㣿汕UL9OCmþL_).okdWxmِߟU3x^mLχ.czȪ48:8 ϟPHu)G `H{^Ի4~U+F;=43ib3gƜİs;]r`Rq5}-"KybC'gt|ztKZ=k~}d\/fYSbܭX/,Ky-g 9+W}բO[,ŷaU,qjOw3>vpsU2F͘nhJnwzŊ /sI F蜯3=.mwSD"Rp M^,YMzťo61֟pXn}n/ު4*e*S’Nk̜M͍Mֻwf~O;yl߃mϬ|ڣ󹞳ԡ{m|YVC=wseW/W.,ڻ]>+DI?;l2S)jx i-^W=WFWX*|VNDը79ʼndxvg2G{sDՊo_'[b:e(yYρͿfu;k_&(R]ݽT9)/ԳrӷT}G[˵E"=̎-,/j=1Rk;8umӌs!]Z=IJF4*7쟹cpR">o$Mgr>CY@#R_}\1F3*ΐi5ET-@dJn|P7GodT5 2ОG~Nv3T.,xw꒓4ĭ읝)93Ną Ym܉HRoپtۥ ur}ɺKTwOУSN,S Ͼ{뒈7DFq=<iq4̘~$á5v7{?]vNJDR.3e\>xFo=06/szk,غ!!l@ԻݹE6ܹSnߪnݐA^OCa> H0<6z|={i!lӑaLD+DxH0g)z^znlI8d:yhƓOڎV\ l#>ԭiEIKq7n8ooqto߶wpuTܠʬ7Y_To_!lpIUOfJ42t5'3i;.k4\3o>[7%6W}|ӎ93rpXJXP##4( E82S>s[/hȎY8e7\fTN?9|vQDZ)|kRn_FQsDOMv7~d:׏^Be *9״l}۳yl}>zb{3:""_d\FJZ:yueжl(7"D9Wk/Dc/VkXܤ38_݋]-*&7|$^'ߗae eU*%_WF8+GDU]1CT/ʪo9j8)iud1kk4fB/kpvb>3FN~}d i#w\{P~cg׍QTвA*kwqlww̛zq D;K22 SRN)|tU:ڃtwO\.;*ȁV֫Z3ҹ:l<nZƝhq`f"˕+ᢒ2D|ݜc#Z_xX0o&˦H3+ݜ/Ғ#jxwwON_7di"g3˻M?ouEa$p2wnζiVytѠK V0,GBnkWw"A]`}s&?o*2A#M+N@Qүѝ?=OmZum~\ѕ;o5rxjϲN*Qj\]OO/]|i EK(jSV{՘3{:~uIħ_ܛ!ƆE'FBbjEMW1w)uۼV+{FNl1pzN,Dd?LhWo^{p .)gOdDnFY)p/[K$`~vzK|vhM)PLpfI#x+ffd0IVQqڽ[_|;N޾EdW ΌCѳ=vөON>t௛ҟ=ѓD*r\^M }ԹU*yI %ZPx^ IDATp.8R&-(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQ .DA\q @%(KQH՚i4f3 wJ9aXd Q")R> ϟ?8aLƲhAm6[vvvVV#0]TRLR(b,;͖jXJSbLTJbqZ]Tzbj>\TwAHP[.H)=te?)SR8JOh4P,k4bA\(,Z,.E)=<DaY.E)=!K4혥T†;4G8MKOY ڇNXV+}>nPS%ޞ~?cW3{q퀽/sz udg_n}RƳ'3zqDdKf?k0:_llegiTEVQr@4%=ƱV@>c{N{B}&o[OV!VUkٱF;aƩWܲ_錯b_=x_K3q oMM<òɖP$ݖVbY7EN023|q3^Ʊ\*23]'$u>>>{ae; vWl=j,6 i׽OS|/Xg2kvv>6]k]G%?f6MyRo:x>~_V6q, "cQ77oקwzp .iwvDc'yP%L/3~zjS+rH`pUSU9k.e臙:m؄BdħWyDv> H f5*2+K9/[ zaz})nzoheuI2oG̸Bj4f[$tG>o^f#KuSh]=r[Ӡkխk_ʳ3R nNuj3㣛f1U}v]9;zvt\F=%cc*x/Iwl-W5{~j7d_=.sK?)0bS0f䆫K{ ߝ 4@Z"!ѣ'dYO\ӅU0D݃pr3=ܞ;DOF7= V0˃x4۽M7;c߭~o﷋'mkhwSUP6ꎍWwf; 㝫g.R>NÌgf8F7ȈG^jQ5. .\B+%fZo pr:xHʺQq:5*y: T'"Ve:о{uym#9#QD:6Nm-gZJ1 *ѯMXv.F!sJ@ɢ 11a4]y/R)Dy^*}=$gR&z@IaZKYi]jZAl6\MDl h.H)=qT*Zmi1hjJesJOgeYVkZ zfFV[ng]z⒈ D"ʲl ]. <>)@c|||%Zbb"- .DA\q @%(KQ .DA\q %I曫o!'IENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/failed.png0000644000175000017500000005571414122570751030577 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxwXW33[ED5$jlhEcԘXb7h vE@XX>#8  !^G z0`\" !$%B qB`\" !$%B qBJe+>ߗZajc-;*{ZVy1|^\zJtQ":ȫK!TvJԻ4%;%,ϩ5Z YK]9RkJAZNrE*%.YVQ@rKT+GHi9C˟%ݩ_M$,H6!N R%9t8?+y,4%wrX׵3@rv||Ri.B~>%K11KHyX˷)CiJ$`3;.?Q˂{BI>Vb0./i!<5{U|& T$ oMoZz"Tq*|nwڗ,K9lwY8YұKBX{[QO=eWeDpMC'eܨx˲"Q\I !K(ЫT9}uqټNgYNI?8QM^5޺#m˽\^kX@lC@lPD}JRe5,VbYTCH~&%N,5XŬD}J^]eUZUsY9[˲WˬD1lHu%BLJRɡ b4 <+BCU¸dF_@c+%U?GR\wP0.[jF/qpphРAvB$qIQTnNiX2/X@UOka _u:mKO&(\DMխ cC2 Ղfݺ.%26a}O?'xN8@H$?&QyY`vnI՗\_-<ia!8iIt; 8 MK>G*7kWǽCGcVb ";K𑖮Yxp35 Ypgj=Xui OA[#Gϥ*.T?y]Eܝ٘9żNTך߻V.66,!py?.G7߻ģט>fU:2Z_Kp)0.Q>ţK"x_5|ʥ4pO=<-417J~ZS\SxGZǪyM9J =|.]T t֗M{qi.x75kT'sb/rgHV0-سg~_Oys{n-|||o%uxO9u_[uݑo:pU) 5jv7]snDV.nbmͧyz~ʱY9WK(հ׏kJ޺I/]R1uU}3ؽ:FksTQdƞݿ E]Pj-fSn5X%_ڽB"\Rplp ӹQh:L4L{S$s#‰8PQY `\"v5F]PnM쩍wjRZ yGYq'M7zTJBAmohV#p,KR$i׎<@$IM`D0.ڶr䢋 qLS+غY_y8󾕥rV&~4gḺbW~^zѸG=[ӽJT`ש{@{QFO/gAh\".DF0.Qi+}M[Cӯ'(' c\mLzDK]nj/j'|VZ: 4k|dro ҙKoNTκq5O,.KThǖ_Omlg/Ѧ)v쩔o<\6t^vp Ō?x4DZMw)rk3jr-]87Z@e̽_WG_>EGg;Ya[f4u~f% ڪb-"&ѽt(;*= ݝ%fV"@I ;񴽛s>O8e`e.ѕ\n#c֪{M/"ɈT'-|l) ʸ '"ˬ}߷Gww x0\#<ښ}QרgS+]rv?w,%2&}' \9<4+qgJ7.I̹+cLNTWmL:+GLډuH&Nj|\̃a`=l*q#mШ F9JvKG>2 ~ƫۇ6^WM]Z֫7k>sWO g(G/@j_Fecaݦva o.8~1v߭3֖ %zsgɓVc~1Mbŵx"k2o gZsdӇmG߆V+nGw=aj{*>Lrnü6snޥÍ+vՃ;7}Hl?  C sCz{'{'*՟RG>wo3W~Jɹ5q'f YVlVɎøD)(ϋ:qփ}V0I;}6Ϊ[[hXrqW`_ܻ#ۻUm_S^ Yt$N˸UXG58<<:2q^gt/^2mRnS:ѕM _q֮1'46^)i=}WCk^^90ߖyqg/պ|ݱC+u4.m~ Z|^U~:l۠ߌ!mOzxuu#2Dplkd¥Ѵ4%o:rm2#sP^&^^K3|S |=Jw6+qj=:T-r\Vٕc݃˦ZZ5kߤ-(uՕ(3'wkB/_g[x֨OVH >Bp~emFȧg|ٸU 6{F[8Qp}ORXx>|Tttoy7w*nhluu*ωy 6>AMkBQl ri1*@/b`ˋL4I/}tMQ'G&XUdS^̸@LL %B^LL D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!A0.BHK!D!ADd1^"лqʐ>( r )!1 +TJЪAjTV L^`mk)%z s-' # !<qϊy+!5ZmptDeQ7Ís(5.%¥@QU sSTttoy72@+ixrtRhjQCf R%*=LTIr_L/x'O  UW}/D KTB /9g"68BN SLTq&u!u~ԂxϝBn^*w `uwyA4RuKe,k `.0B8}mAV~!GvM+c B`u^p뗑XQi\=G)&X 3@X]W2J_6]-r&h#BøD37,'P WU0.Q1 mF!0.+wg˻) |߿(1* N觌 !wC?W#S>zpu*VȌAVBz*i"ۼ&֘%2fXX,2P(},nJ%ןw2q ?ܻ<r#};oD ‚D?/lo$yab"d0yM'(˺۶x19KCΐڠrCb]T%*pw{oܾ]]rdw E^y\%&¸DF?wrqNR) z,Iiy4Q(nVySpN3]z?cٰD P3'˻) Pg‡"99XZR>̀A KkEDPK'Je$'F7n ` L եe+N⯗E#Ёi3)x!\<[ekǗ4TZ_pxdf;aBK&OFJB'<#ƜTS*+*+z]OL֘ ҲEF]߸ƔJœ&"2h9TL(7ON)Iǎv6@*OH BuS͢Dz擒@Kqiӻ<d TأٝF)0Jdµ|SA*fIIˉ= M򒤤?{,1'N T2i"]8+-~}pCpYK Vp Nyoΐ–'f`qs;Eew7c~#I)FW@ R.,R=v,1)ƔJ%&eTWD\z0.-~Rr ݅ J% #LbEKN=9p`\Z$!VSk=v$1טrtDA]Vq]O.aia|ʠV"*-rأ'a^*NYVԫqV>S`aii0.-SRK鱇Nj^&L YY~T cQi3nOGD4nGOhw)!Au'%TX]Z*/3^䍒ɥSf%IM/lT*8_-HM@@*}s%Ich5Cjw^G*: |gג|-Y"~D@ٖ˧zPD*NGW3Ns+xZsfVJ%cri'egWāCR>;JdS2Y=ecR0so0.Ю1y"-*+WʿijL1L;^+ok9Ǡ %ڭK'D6eLQYYZstטSY0.-X:եL'%"rJP3 [e`)g',ƥѯKQru.9JeSGf%\pT#gƉ)5T3? e%+C, %`|`/T"IV*nNkT"< zrJYøTN%EE1U|l UD]Zdn7푳 DabÖ3~>au,ƥEu$Lwue=\TҐș/y+]-ƥD0 IDAT44ekC˺<+߬41wYc)k9M:dy0.-IDuJl(TWfg$H:j_T;H!qia ׯQA@I%#@Ӭ,Aܜibʧ(^9E ܴ4p-ۊK'+5,+זn~9uX}J*O++QȤUDR$?^zUx,kHh6JL+9SN',hrpra\Z0}iYV5ƺKݮhob]iTc2iwenu(4 \"tuSA4H֡}Z&iVuɑE¸Hfk a(kSr&ԌˀaҤGR ~u>F\v/]\?FS=Y2d0.-K}S$nCh\#V7l"Q7.`\Z.鳒at,mZe|6x֕x:"t":6bn_a\e0<%DȲ+rG_`4V;RrY}ep2@"6IdҲ'|L`kշ?#(J޻%dg| NX6[6`~ay x^TIڪn;$kSO\QQY0k4^ KPXZr0 д}in" &k[]DFM̂k>G}]έ-mo I8.!B0.}\gnΪ_<}Xޭ,5VڂHd `g̯?$b!#WܞMߦ-tdKT@55&L K[+]Sߊ,VI*ֽؠט=qGq0KQV=RV2dPumY:IgܤA0.Q9X }=sD)%Xl,YhyipTKd̰K"(Jce6$lq tR&kn82q BB' b v]Օu0I}*R"Q]_g@EDL1cn4w'wVvLd=XTѥxG }~$DfkL'(`<쨾8yKKjȚ}Tdn$+q$1 `fSZOXQu5\u#|(X֤I%ip0+MN>KJ2#0^q@QT޶Y:c>+MZ* 5F%FXPtͧ*%*~|G$(Qդڇ/bϓ]Q .SI\ݛ3բy]ii%>8`iqg|7MI(Iʒqgqi.ob`\W2IL},59yFެY5Ҳڧ6!%'`-sWqWrQ)Lf~!ËBøDCHd$+9.?SPr!J ˥p9\Z.$j-h8^!Z(1C$ a(36-l8RrIa ۠k5oOR`%% cH_uM] J=WxvQVR\"v6@zq6i\~0+LIn8Da\"W>tY+-&?1 :`ybL.5}Sf2H},¬DoWLzܺ ЧNì4@z5JÀ.rnd|:vøDo|(S; Q_Z՗fq5+J I-`Q %*2S;֥!ep͟"ĄWvIhD%qJJ_fAզ.Qng L%Sc&AE%zk͡oR5Qn;c 4)kIàĬDo qF()2ɨ7u=q LmdɿE6¸Dǰ{D}uYHdC7/'S2KT C#!}YTu a01 a'< OTl D%zNJ0hv'cJ2qʐ@I>EN a\LD.B %B qB`\" !$%B qB`\" !$%B qB`\" !$%B qB`\" !$hrӲ

؇Wuo -=;:D1YGO£Kϝ`؜W??J}1:>3KqAb#rɁ8mʽ3ۯ%˼胫w7Kŵ NJ(0dzuݟ\O"yv nٍə#+C=yD"ceץ4o߾G(Ӫc78גGGN]xQxts]be?so#$eGdE]~64>dxISwZit ~cDq(fcQ@_<Mi'>$`HP@HQFTvgX]>z7d[~iA0Ϳ9h>9t1Uo/GjRM;x׮dGbCغjma;wvx`-D1T^Ax!K M|9IڿV¨E?|bE8*K[Nm$:oR|\1\֫*|75y. Z::uWxU^-#vqOvbai`I0ewm_7ݐˆ-}6˪B᡹|G>Z:lKW;/춽 1;-zG@rѶAuPE]qKqKfomܿ_א)Gf. KtzaƵopWsKb:Nnz G}X0.?<'G;ׯ YͧaOP7 ryznLMh^?/oک;qm7%qsH^/cv`W)Kߧ%|yh|JgZs;O>~ߨoM`6ίtI^0hW:,؃gmO$ڜ"y:,v|gmӡHo1M@;67}sfA?U;ed✎ fTn95;a[^?a\~h*2AN΃:v5uԫR|UD&O~KGɟ;gfMkJL^AOߛREK}3=2d\m{q}֋V +`֏Z:b&V%ʽjҿqI9UӦU"'9ImuM.l?ŷ0(uEGrqq_`Y9t{N30(o n41}jSmjb0.?4$-l)3 k4+O/Z}?Cl򩵻/HZYF%ÿg|*AJxF"~qhS[䦿̵s-9ws͏.9/$k/x( <]\2~n綠6/6fOͼp}0ƿ6rH~_'P6ug~u@F?1} ~aPZ'n? {'{Oā(rTlW/UZ3l Mv7Ew%g:5%%=]Kb?`¿KʶMj@yŖ o;bo K@44L?&@:+9ϵzz,χ 䳁5DqG) O]I?Jw>%E izK~:~q{mT,;iz4NW/ z(cv{;ç/Jq7٢ lvR ::\ z~HEgϣ5*G(Ϳzp}1]w9H;;̻]ɰ-3: ;Ƕk ?rzŬbN4Wo7ſzlSGo[&~ZՃz|¾|lThS6c:kďN迡-"=[J|'taD}ه&YW`@YfO0~='7ciWnYt痯wrѵGyM vm}nc@U4~Tq.^Nc[-yzu)yWK&ܰ9/]R%Vnun}!ܴsU7nz4 4K<~z8~snLʾgT$ ޽Kz:? iS("vwL4<-wrt?YޭwRyutsb(y̙}z9gM}YΘ KL&]M y`Vc_}r9k}Q]ȤeN}2IЅc{8Ym?۹C +icg-?Rjʷ^[>)a\TQRG_?GS/~Gw ۲qjPuO>ڴv#j='l ӛ9pd:ë?<8#k4|eoe<BgQv,]8zٸ.5|;jO&yRxJ^~!}yaǒSCnWym7i?Qnfsh`]Wsh> 6Gw?y {(L E4DvSL/V+A)W*&Yi}ZҀC慬9xO΄=.?@*L%.r Xʪ'9:8YS[fOړPVJ_LT}Η}#T͸dBV5.\ud-A&&@/Oٵ|U_@T/X.OpxHd_f^l]*v\YDqkլ6nY? ;r4^ r@Yܶ\_0:S-*G;_un;sإt]IA*PyEÛa-:Z<:w*fWL8 *D4ao[5dM|{W|宊}].۷ӵD}`}?kd}VrLE~SgcfϺw,0_jgODY97Vx̬"ny> Z;N/ͼ+-jUy7#VYtssIvMP*7Nk~ o ipyi)iWD wrC*o=}#RME?_/hU''FG=~Ԗ5-(b/-^u%Τlʙ%~:琛m|pܝ 83;`H0<[p J ^0:=dR=ޥQٚ꾻s5LŮ+Z%)"=oRH*4}}~83S¼EM~dޡߞH,W`A c ?:9Xf@QE5֟v&jΊ(?qf Q^'wM ;!Dm._z+NfȚ4ÿ%CT兙}`ק5f:a$_.Vg%ZU x7~[Uvark+qIgDORA }OjF8;!ӫ٠ W+Ei%)aFW7^C\PԢ~둪oz|$5EvUGqyg=W ^eG:0X|zӠ>ž=7T?:U}ud 瞎@w-y쾵Ԧ}eIRjh4B؝_?Zo:Ϙ?<}Ǯ9?\m+Cm5dȗ-=o:kP {GiG%SuOG7}zU{uj=Zy$܆ũN5&5!\yYF|6EEkH5Ö>tiYmśt者ǣ_,4aNjOEqYb|fj$Upo@ۼL0"r'w=Yf @8ZE oh:|1 wЏW Flqu☱^ep2Jb]jdfIDATqmUr/ %uӼZBYW?q9'd$H^Wd'%I(u@W$5ngs?f ¿<םGxIjU*..9Ĵqg6tq^l) rG?g-0N $977%}l ^Ɲ{NmƀCqqonͳwUر._78Fߵ5#{&ڹK6uey rŔo=O_lʶ/x7Biw[l <}LrٯiIxrcCgvb666LFm&7 FRV|lWemJIF7;MG~m}nv6Զ­Kk~9ƊE?vGPg_ӻQhGWQXEbF ܽu&P-Da\QSHjP9"syP!urQG=W{{Hǻ.э]j^l٘tȈic9|ߴ{7Ymڎ9 ^cFeW9]u|U Q&3YK :\vm;f/T7cWS W&2Ya\)S=t.5:qqa_ I%"fD@ӊC| @a2c_p{ulecek#O~OTi^}iZnrfquM)wJZgǮ8~zlJ9nN}d{?\?e^)EɶuVwXoF>PתjhV]flFU+1 'VL,k0𚬈7<:Nޚ5VXҺV,ڤ~f]MJ@zN)m oѸur+>;a\rEˎ$]tAO$Ur߶s'hp;S~uo7$6(H(_ӐKjL4n󧝜oY9,0VYݗFDml~%{(8x̲hN3VhMlhrg'7|YPzg~U~2<Mxt_fO$*oBt9 @}:C'P[Ë,?v%7dښVU{{y/$78ȫwZ^9;-mE.fR'5/R5܈){qEQk挖_֛3gށ[ k}{$visի m(d6qܐUM3?3žݹ yO6%ɉ9N \75n,_(ro qY2 XIІF(dz%O~rqڝz#f֔% ow+ 3` *wreuZpDD@dVA_lPr.-r$3ta]?]iحG?(;wJmnO69.͞\]?ժq%8|v;q 6;;zF~s~(Ũ3 ^G|D_u 2H֥v`ŽY4]A}ILRvܫfNNBq-ۦɋGw(.~L/Qm|~GuNҰ'TmQwQo㣨gflvC. "%x|'wy G@Õs^!./5Ճ̢ٵlƿ\H-r[0a.{mɆk]#w;zKV"o/ۺDDor} O:h蟇0~=nhk拈Ҟ~ڡ[4mq  6kg hnoZ,zϛ?Ķo*+}昉s *_DDtÐؚ?ٽ%0ޑ׋jW7_X0{۹S< {_3f?{iLu#%qbFm\7o#sq pYZ߬wÿBPIYm,.J6MǶOխر"O^*6#Uf8vd˩u[{^h"vx?O_yymg |u& 00rddѢfuE͍CDD&u:_/ln?`2^7@k:b椟e}]ee}RᦢyM#epĔX$ #1Kp8vwaGW6,x}cek"YWewv蝭 \b_ED\gOhU"f[6=?CΛ쵿5ԿnܱҪpE|E-o*-&Ⱦx䈽3cA'tWN9W7-K˝護|'_<>ظvZ%i6:+hϸp|]>:Xs_ e!"bvhOcc׆utN״&~iȭZI|5٨yïT!ZJ5׽:nO К=mNV>} 9 /^J=s""ۤe&}ߟQ}VO|8Ј1ûfݙڽ/ޓFd4mgbNݚ[;ݺοn{?_L7/=مūznoY_i"˻i¨4M} ]ڟ 7U)kerJϏ$z89;55${jbјYV,jI6Y1SFyڶ]gQS gCy“Faa!K"W7uKc%$""C/~$WPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPHNX,VZZ "eYm'zD@4Mux$lKImiu`Yieeeiii%zPu)rivqqqii륒@=u=3M8fee%S1)>V d狿=nӦ-#[[8&\ipcke6rncSZy,[WrbpU~zʮ:k_i>d6-Mə7Jf"!8xi&~Eڳ}n)U{YD=#Wލg0SWͷ=M_Ьu ;&I?zʱ(Y<^@.QgxG=8_w`{z,"޳"w ǘX{y^%W_NSpH\ڶLGx%h_C^%swж+ҥ3Ykzo'?Z=ƞiRKyO %O.;='nc]34iUjL޷O ?nԏD2ѫַ-0ƞc'E7x@ 1 Vo~wΐ+6^}G\z!E}}y,w2%73Oag8\~ّ/?{忯7l;vm?-l2pgfy+=3ݐ=5hli&)H=i\D6-YB.#'^ w|ou]|Kr|H7t X?- xvsY8 KgVvm: Oi o>;7|ZݺObg̟IKߑ{nӦ8skL.QDر#%%%ѣPCUUU6m=:PXX<{5MK $˲tKA,ttvr c"%&Y m& imD$O.^o H/5NkP(xD$ʸ@ {<ʁD1M3 @ L_g<ӨQ#QVVf~DW,˲:xzzzjjIRRRDRRR pݕH$?ziiN|>v=:lt:=OSV#^L0NgR%a.EDdXI %KPB.@ %KPB.@ %KPB.@ %KPB.@ %KPB.@Ir~$p8ә_Y'D,iKDcsX )@.qJTTÑKWW4`pOgfl=>qJėkZė+ZQh8 #\p;'Z ʭ1_\SM<8%[OsC_ǯuN+((I0A+,,dKPB.@ %KPB.@ %KPB.@ %8D0m?5xIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/selectfile.png0000644000175000017500000005665614122570751031500 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxw|?33Ջ*^lJ##MK.\.GBB  0{mɒUW>3hW`T$͘%p:i&\bڰ)9!VCK^^(iK$0<<+bk}kΩ lHKBȻ3~T(LTY-k -T=`IZwc9k kxϜBN!ֵLS]Rz2qZum[W)LXKY4XMqBȻ2ew6aK!R${}$XiU4^[6%i26brD! !7=gk,-"K'(&Xlۯl606rᑎ}l)J6U @?˞{4Yns]qE?{wq)伷)%V),=^3#ę۶* )5nмKBbѻyY\VDJ.yW3L<<3mWGtS9v"e$ϕB(HaJ Ҳf2+[l-~icm ?Zu!eGϕB ᒑtڶmi4 !8%m0 >8%/1ef ~PiIyU=L$*2i"LHC4:4m8ϘBΈ!e:2dpmA .!畚JXB9+ 5.m[ݱh|>X/hD!:Cˉ'رy0}BCޙ3g2Ƽ16soh"K/tڴiL~]]ЎE!g!e µ@E/ %!xBqI!P\B' %!xBqI!P\B' %!xBqI!P\B' %!xBqI!P\B' T}}ǒL65>S@%omvV髞+Vnܙ}Θͮ#>!IL1m|t92=5~L%;S?=W^[re?]uVᆎg' 0/`~<6+}JOtzPѵ^cjt'7ϸ{duSMU_5:m|%_J9?Ħ'z`}"m?K^ϽOoKܹ|8a߸Qϟ7Zrл+ggݱ0xJ'W.䥜gdp %}ۭ[n(Zr`]Ϟ~rIѼ5]1k$ ig:Ɇ|%?81>@y{w=9_{1 _қ^joool{omzpv>ȿ>ӫ~V*MʿYU|+}܏\9>4P:>ΆAz檟3_~{TLZxq6.:wލ|*ذ]/yCuu" 㽗UVOo>o>vj`CfYU7><' CX7/<ç_-IN}g "nϚ[k1@4iV8ytdZj^ܲVvo7 ?ـZħ>do}qщW*[gMerܵl o k:z g.b57_Zd`{{fg}#f_:{?lۋ?|z>2)X,Tb_ӹ |6|~?>ޞlxt1OO/p%eϾ&.ikgG?Ep#jca,0j<PDӾ;KK4ků~qLP{wŠ'GqY˿O.Ӆ}PU?}o) /_{te}qR-7z8kܼqk#5C:4c -_0׽!߮N(c퟼nv1?y?شWV]ˋ 3ruڀyl嫻g֑:奍K聩Ԯ~}>Wگ̛;B<[^tDžßP `5[~ߺ]U]_}G=q 1eaPuzY^uӦwU>W\u_{Rŷ=?_cO}wJ6;,$rQ\-Xxͯ>J{?s X|P}*O}⁾??wz՘X޼OH1CvQ'=^GqYsc=ñ.G=_h|EGHc$T=Ɵ;fo?|O}#BU-㮻5F9JyȘ/Y)_|=OYyV<Tog icߏケ>ӤRGl{ì`6Dw;+MgQ3;\J`YsƸܐMSV?‰Od _#_˖^wWx9k2GXp芁C#Ǎq0!sRݛL?c?r% Ϙ1=1hׇߣDu93'NWcУߺO=֚/Kݒ1oڶyQ|5z`}˿t˿|7W=~ْpœJN%{¥Ai5&HYp_ܾGcGvɸ]t]GZ:f;OξA1~3UZ<] 3]s4*N\ᮄdk֌}z J|ƻV2j\?2p- {O5mű]G_|\ozL N&.Ytݽ)*ٹ/=|0|-  wMk/lXkocQǙ<\`+kR}/;<'<+ا_¬SJX'ionܳkƭ zx`\p o޷nݎ_𧿄V9aڥ7wI#Tj1g y 7yΛ@ gO}y_e\[{sn%O$e;> gѴK_]][>{ WhAs7뾇?*@u7  {[~C׮\?9 1@%c ?T2/ xZ6kֽTyM:텟xO?\o̸\ݏq~m0nT֌]{εuUhL|ܹW]ey}mX?>;łcn:9#(.̖=d.Vi2λ˧r_o,ugv;li]U[3`"ie/sx??gqc555vsg=tԏk$㖮[߳ȹ=)7>qƄ+ov}"\Q^Q^Z^&z=}?3:ѳ[?=c>1i<3 V/[cK_z也3ǖ5Mw[m7葀W޷53QȎ7_=&BSGW 7kĀS߽Xټ]ih{wv]݈bym(ϛ5*/oҦ}i~UR@%y3|%S|Tv3|>νh}AqyV` .v76LJ6]B]wo+-ȕN-7 z>Wu7} uO*vFݺc.V2kBscXַh/ yGwĠ{// DdI>kgbOGP z`Vෂ6b7Ovϴ,zŦl3m+>0z7olw ˳پ_x셽=M;,/Q c8zÏ?Q{|y[3=wiM`]پg~{oc?曾O6]HL4ziaۿ7^mtݹUy? ?z۵WS7nCqyW#Pu{&m~c7d~Qèo_q嚭6u5SO?vgzͼ}k⒵k^g]͍QQ=fԹs.]h̪;Q&yg[~i5#(Ow%?k7{KΟ<27LP=~W:>s~ 6>ǟ~ӯ6mC+KBp0d&JT"N$Rx2Kvcޱ(ܽٿjW~noE.(W!ճ/j%W8d+'.򟼾/}h{]_~dekY O_rׯB5H9_w5_7x㩧|?<(`E_&r9'9E(.=yDyu?_~ophWwTA#`YEYMʹ fVR&=rܫoa^^h{'6w|iEW;JO5y8dZٚpÝ7^h.UK{xۦ{;_~eiߣ2=(-;=? ;:1sϙ2R׮okg/7BSK̮f8*#5c:kTfɄ9UR6e&S_ڿXW5eJʶ]RvXMVMxVuZFmwאSСCr|:BYB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBB<$O(. !KBD?'@RJ b~ IDATa<B<$IA>h;@)IINKrjMCTq1䔢$JADR Z-j6l؊eleIp Ҙ**CP#KwtsB"d4pR*,H)KiQ LCqp1 -BШ8W!9.$KXcswzRhS 'wPH)3BmI m[`WrUB! >tAI!a a -i¨V.'K M2(.N9ٔ/w̖ X?ǠTJ331pi`c b$-4U[LuF5Bͪ+B]lRhEqINVAII)呴zG[Ӡ1!F0di w=́"!0ŤB"-cL`;1ejf('199>RJ)e5ba-|4uAJc#&dOJtWcdϕRtΐ K2t#RJ![=N=- 8A>(qA~1u%&%es;:l(9~4U6$CFqI`[Jْh5pn  N82bA~Q[«BGRj!w`D;89%&Kr p!_R65WFA<1f+uBAuhr-n)EmrNI]dh(.ɉ韕-ԡ90)2;~P:/s%rcλ<ka? UkQI{ɱ㕮Lr(. (J!Dj7%8M2` AP}u(CMXl; )ah$CEqIꟕqK>|8d.* %dtT` ʼ vubcgJL2$%91FCeJ4J"gK!G9ҜK!ܗEj Hw'΁N*SJ TG:2™z?K.CqI<ɍ;Y4GZ挪qeVxPfk@ge^P%+,?(R 5_cvjݪ̌NLM5deߵ IV -=7?Xr>7޹0)y_\CYJٝu %5`~Tc墨$).ԣVvqì1UHE7V1(oX5ޯ]Q \gZiJ/}kSIGqI/WZ~MabjJ1 nPy>Ad/N[fDHߊS%:d@ilgll/˜BT\g!}DgS@g5y1zBEOs$rr*0 (.`ZsaDaiKqN((AgPsPgeHP&+5V,X#?EqI }8Yٝowtan&T*ll B1(} ލ ZZm_5BcL4u20K2 hݴQcFʝeJ 5(g\b2},3[V$$E{--i>`|ea,sJ`t<mMRT`隦 !dy=6`АY^29L2KRrU) dT Ɍ3`Hw'dJڒAY4rBXi6.Tj>mi0*"Cf M(+ (.IҲ#=` _l̅H*1 JeXgJ0mS;D;.-Q A1(@2avd0wi!jp֏}/HUtNRH /Zu.3 ('g4KTDN*(:T ɏr 甖i[fR#/2` L+*J'ݫkʖM"]XxaP2@enKIv 3铳]y[0 &2ʲR"QCqI[ ;:D:wIb-d܈se;4j+~_A奁ƖYz$ȺB 3$W 3TiDw\`!c5ipPc]b`=i{X˔eT+!ﶷV2^+6cL졦"/+s>}L])wy 0R~!kzgRV-] mPNzr{48uY(.I tyAy 1k4&s\V:^^R-`tG`VdL26HP:L0fIׇ@ 5Il\2])ݹw0`qK(A ZeTVIdqr_(ݓ.%Xkzg_!9,(+IQdtV J{p J 5M/l8c;@*tM>HPuUO>RRP(.I\IUx ($ϖwNeuͦ<3sV1*e #c)MoV͐w=O/) ;]uń-W?Q̧Lg%WLftɘbw!YXqֿx˲D_H 91Q!KRЕb*JM0(;j;U(DjJM]P%:dƊIL! RJT&K^רxߑPCK2K'os 0Seaz9A z`$IdڣjĔSĕRfwJ9g%2fE J5pPJ7g9ϝKP\M7([e,KSJtSa ,X-JGV2_—yӑq.w MJJONz{5vhCJq1-(Qx U%T&ώPgCbNbI+tnƘ5a.2<1"pEA= TT3X%qT~襊ER!eqjKT"Y0G1\O}A-TPCBS\ Ͷ{ ΋G*ˤbC JljC5%r'] vx\r'.O<(s UQ_#9LCets_2k[=(-2`A"ov0*䨑 SVQ \4MӬrS㌧%Tw3S'^U f^rvtQb`}5F+)Cg\ϻ+dvEyC3PqvkrWܧj[o[JȢ>*JK9`|l^pUݵSQڶ0(J@p3` UDvcu>@ n\T](.IۢNSkȸT ]|bAٛPL1+þ@5ťT2J|@9-tBCrEN(%8Y}PIQ\BR4;lkTdAeߖlP*AVEΞdOB=(/Ԥ)e!nh/@_Pf;CA2 l:cU"T]AP\<3׃U(Q 8쭺] Xx2aQ%#+2I3Li2-aJI@L _/ DJ`7{+rS)R&.dOG5גJK2KR4Mt6k%o F?gQϫI]~ )(sG5*)RN2gf9p_JI2KRD=K̞X@e FQʾg ~r4O ИנDv0Gc,TRtH 8%;uCύSK ʵԈ~4 0pvwv^2w SqY1hJ2LCJKjP\BLyJDB.aT@Do ΋e-}KpD,Uo$-fbB"N\RiIGIsnQ 3){$c-ʾy{g+׼t]&sW:oAn`W7ev]VyHbLeOU.j:#.ɀR)ĥRYۃ;&~} 0. otէ*[]`M̻PP CLB2 Kuq+-scEqIsz0 R)%Rf"VeQK7p%ܱ?RHP"Pbqذ9i'X)׳en6JL2K2%fyLZ&ǻEJc.(sţ``l(AXpX9Nsg%Z㢸$rsu]WJ9eUyU:κT1^<(˩ 9(؀Θ?#l`/3t0 %JJL2Kr|N\b*v]զ*r줂٩YRІ!FLɋ:rYI]#K2\ %I2ҺEil2 6{T@La4(؋ۛC,hShQ\p_EK*.xR;(ݗC`&]J ;m㥵h0 'Q\+H~ڕVѝw'eJR~BA}\tAi{(HftYYPZxCqI<<1b5+61Q~s^jt[!(CNq| Z'de%9i$&cr#oOJʂ\ӆ'(|/(Q{ 4IꔽXS9YIwīuwb’sι[!=nW$m$2g?dR:7&(q@0aNOXo]J M%9U]fWR>j-_TQK4>pPbA+Q2a b絴 IɁt$'⒜AjLin+Ѵ^*|ݖ겕OG`aqA«*`~U: G%Z$ kgtUۖεs+)+ɠ$' MťifX:}UmҟTH ,Ǚt& @D& Vjzg[u]׳W{*i~%9yd fCSsхZ##6i$-lp8r U(V H)dNz? $P\s_T")ifE9IdP\OiB!B)"$S#R )eZ@R4d,̀! %"p&]b#R汮iωE'+sܩω-$'ݕ Yé4TJ]oyƹ.`s; S!$Q\\\)9wi2ް*4)(ɩCqISDޔR:e8wAV^]PPaGqI_A]l4rk#r䔡$J.4 ܗN8ׂsg{ȽDd$%9r\;Ab_RJ3⒜&qݮjB Q\B' %!xBqI!P\B' %!xBqI!P\B' %i 3E18@@mMD-_a|2'đKbn߶vsCm@>^3X]{׭/Ɲ32zlxؘq1!,BhزSW3TlTo?ߨQTַDQ7c^})e%@qIܔQ3璚Mo4;?MMuQI+ج|'ٻz\c{zT-۲e1e1a1@QTOe_WhhmKL-dkHS44N_4wVsUYc" *vd[Sc" P2Lk5%M׾#XwW6M dk]0?eMouETi4dQ\(Έc_?aŒ}|v167nK[V$*2ڲ]5/ [piW=}>4aD||ȘfX kTՏ|߷}@(N MU-:Znض[x+3-TCRJ"fMQ0 c%&ӊąXٔ fZu'̘nIRJ:vǂ>f{ 4lh ͚5߱eF~’u'ϿlŒƽv\m_r8VƔ}ؔ1M:z-F8pԼpɌI_;)݇ehJ]nܔ}z^F@9gub}{6~=R2wT' 0vW5+&/)/5wnZiڹ)+;8{93! ((xuUgݵ֣VvVkj֫**("r@ܓ9}>h53yߙ';:Tq|[/Y[J SRW5XU%~Ag`~fpyHnX3؁Ms8#TԯGfZL9Yx%ob?q.].id*Q^ta{ osQ[֯f#GefڛZn&lm+Sl6ɹKMRM4Ӳu!DDuCB鴣DM6׭]{cVH+cۨG5H`QU"vЃƇ/ ʆ;z=MWo=QxC}]}uf{dysZ/]ѻWAG5---,vzFK"^:xbԚ9;Y͑HG87_("Fm3|Kj^잃c>KY>͗JDݽF_khHkF޳/2{3PiBg8ڻb:؅G[Ni!"K R[ պ4M U񆵫llsʣ"Fl@!Xa$dwn4{~obX4bJzQRYW }555 /°$V$=N=e#Aѝjkk]bWe""".jgE#9-KB.@ -KB.@ -K#缵~}xNM\ֽ}8EU|ݍ\"LihzhˣN}-S*7ETOoFurw#B.ݜ;ڿ姼y?W{ED2s~7eV/e螁[#nV{9zZ&>9ٞW]qXtk-/m;-Dw3 /_wSU|齊_iQ;/[q}מ57TNGvKDN:c˳<ϋ+*O/nlYୖCN^hrҩW?UaL@E" o"fI?W Zg>p>I}ھ/ 8^\"7\s="" b!m?3/"Fl9/W-3zlT?\yc~o׾#Q"nyMmC*,eǝB 5_v3"bY<7zDԕ;0ǯx-0=tcI//ɲ { 1umGFO1rUY{g0|4Ցѿ(AqW\BOL<[R/i5>3M[-fTãjl{*v춅F~ŽoKyᅰZXol%Ӽo jnULxfH(Tݯ#.2 Ymͮr/Á7եC\B|M夾ƺ;_$E܌'$TGtWۖx^bY?eJkRw-MW+<6G.!"BH\~传9;~NqϞo0ϼ>5{y_.*9FDOu%WVγ:-F(pMXzgEҜR5ME>!mw-y#=S t8x_Ī]ve6g{#'7{戈w\w|S37aߞm'MOi"OK/Q :طx{= sLqøkSo}VrW5?hOa޲ \9zL,]Ed _Énu[7.7.?<+EDF^pE]@Ir֣c?!wq X>֦|y|N /o?6<>Xzzd^ߞ/smg+}78&sR' :%@zՍaY%Q#jQ5x)w2wu:sUOl%I!Mx"qYEWuG̈Z-{΅c]~l|bRxv4#Z4mFmuɉ&U2l13Bkl覲3>U 1^y11ihC*}dPDdU2.?l\=24ucaE%6S/?>NRj-#19]9*;7e7N-<^?e_&D Y) j;0"k-W}9uh'nzW3 W"ym;k神[G7|oeKC?tM:u]5zkw>CGK9;r %ɻZӮ g^ }OԊ _ أ׵N}0[66T#x#aviQ2 Kg|yT(ły]:|6wwvgHϪMW,O*}OFMMMeeesZ\b2lxV<)?M;-L5ZT(+ءYefy""\y[Ǧq1ˆكc؉%[8k]tf]!}zGlպ9k3_s5AĔH)+ 6X);(f֔ ;Wr= |-D`iߑ{._dn{C}ǔ~M Ta2Ĵ\|UbTIWO%v QPR9D$q-nZ3oyG=˃Fxe+>E8Ճ\"G ;ֻoLy/nu{pa=(Qْ x>tr݄L/ҸUoa6bt4d[CS-J{UURt#rde}ę*1eC6+%=[.9ke@KmH>=1'm b<9?̳O@}V2.* o ~.'mAus=""Af"0w9&CJ)q|>_0̧c~,+[JD$&" e՛U.EĶm0ld2l6Ot <||>ovR/"bYi_Ɏ9=: 0M3/0"bFe[r Z%h!\r Z%h!\r Z%h!\r Z%h!\r Z%h!\$H\Ɠ9x"2i9eޟx"fE$EUW-|G;m;/z/olD:t^mjcg;Erjm~ծ]%h!)& jӚX--}ծ]8vb([6O4;~IƯ?EUߝQSSSYYa.qB.@ -KB.@ -KB.@ -KbHmmm8(rӇIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/fig/aftersale_services.png0000644000175000017500000004440614122570751033220 0ustar ephraimephraimPNG  IHDR(ӹ pHYs+ IDATxu|E륆 -݆Ƙ0cswcLƔ :3\{B G4I[8Jڰ~+= ͧGr%''\] ZJJ 67 .A\(Pq @%"KE[gm6eF2ed&ˌNeĺti2uX/9!.Ϧ8z2S$,2478%1tڸymG=w?:>i*1%%Qm;5S4+ˣٴNi1K\Wu@_>2 NEQb$&`߸YfVTbd6hWLX? F^Q'/n4K$btA~aG/>Kפ`N-$JNl6@}eg<9{z56K,$z3vl<,QDP&~qh%2KdʜtT˸<8'+߫,S,j201+^/5%.TҲHds[PjZ_#,d fIԩyB.^ +E ^i":xE_V˸-$1ٲ1,.$!cZч'eR zbԜ3#n1K$rzU˸L_j,TcRcÆEsF,2|=Zep6Q$Yd#TzK./mYj*2TT/r_KIvn 5^U-%:q(+:'1c?g1e.8ML9LQu"Kڪsyܒ5ڷەe˫Qdeڝg˱M< $4*>whQ,h,ɲUןtMqiJ"%d2K7!|hX`#J~!<'=>=?UCňXb,l+锬Z]Esluv<&JJЧfY});u*Is YTKQ2I22Ɍ$.楥rH,+qJsӕ(U1kqiH$$22Y&E"j%rWf2eg^vVЍWhvm-YRHI-h|e&ԼK384V#"씶 q kJ:11k&d`.f1,tY墡ӗd^CrGg%f-2D.҉AG\5FiYklƜ8ԛj)%''_ӺtRYד)))KKIIszW5rO;hl/&_) Cqq \=DH՜%+O~<(j&m?x/ҷYhVɗ׾^TE DTr䟧?X[UObJ.vsl!(OOzy<P)(()}|SFeY"+ʺi  sR '8ղJN?RםOJu[hi| /aa|5uӱ="IIo.1[P3%T`k501~sK-ٖϨgU)|)Ri w7a{D.+;@&SԱ`bǏěIݶc~J WMlVjO9mئWU!.wzS:,ĞRi.o#UR4nl@tq 8Ovu[_ImHϊ >*ٞ)eo+%uZ/e읻견oܻW(%۝loٺ{sC@+XQ 26lιp|16»JU3iݷa}43fژYfwUC\q}xB[+XYČ~갑.0ğ'"s|wO}kpw%gG|aWT({wz'Wh~uĶeOw򘘊W²/nck3RyWn*_N0ŧBn-1 `%[2El;n^o6k%~]!Ul9}NKB;KlfY]HٽWʩ<"1uǿ;t|t`ȸ,rV- .:wO%Ml'O>E7nTV7ˈX5k# usGFM=K߽5; h|;Tzq/Ʋ2FV}}i&/ZC :(m mđe2%B\•I)>~F䉈Wk5ew1"qz]yrM:}o t̙e멩t/j=>`]pQXb$FLuM rrE}""λ5ߴѹsΔ E)GOIgY &Bg洍;OJ^*"<Թ߮OUލ{{\}WcΩ܆:s 7ɚzL'y%eWj_KMw qͬn5{b+z.j]n{5Mԩcㅛw9SԳpRm{G&`5.cËpm:.~#GϨjuBU{vnݧ#^NMϕ j߸P>$@c:uP9Փ\u`x"!À-smh>%C\=_&dZδ5ܧ:/=3{ʎh:k{\N5,+Rn9' %1Ͽ3~hvO:AЬC+g5W{2izC#>ILݷow;xwnS 10#䱣Wؒdni㈍3r+3~'տY-+.q`N=s枋L}x N|kŧ#>}0M~OR᱑A^*S: DfNN5Dd̽kb88B\Ҵ9{CoO$:<6wW}˥DcРxpx0zXȊv|:x0?.<&~gOM 1&9}=L&ɣNJW1Sp?7jf۷ڼ7p/9ǕŖ7M쯿L͑ ̪~^,|;ѱ>R.9~筽DS]P;LxmÁ?z5L՝؂ݴ"Ч)OښjR"" r/ΘLgx~;_nI2+|Stc-# 3v,OPG\J9whu+4kё^C:5Xpw/ߚP+1%NSjV-mܭўW*dc}<% 9oqy!oDMS[XG`h_ySto$?vzk;vMEжט^=zqDnk3tٿoX9uH~7悄};/ݲlDBp~>rېΘtzȮ|Ǒ?|'n{pPoymoTuXA7{7f̊IgT&㈄F|c"ʼH)#2Ө ed6Ri  DDZyxZK:=PH3jܜBQH3@@\B͵J>KNЩÔX}hUZB%ؘb;PtiONKQCѾt1*PvȠYu@_rf@b,#b7љI+yjՎ=:& NǚF6,܊8dFGW7<<<\.##ƨm^A[VQi+MFpn#OrKJJ dne~B6Ȇ7tq\yh"1`;@Ig\ך['RDK"B %Ԋm6-+I]ݦ<7x$7j(3vP]µ}d?͠DT9Cblrv?āwZX2ء*yYY˛aAu Y;̖gk!P~.r%"tᚠe,c$IlY[>$E(vR4˿~U[~dRk0Bu Wd&͇n6iؑdj$ɿ}N 5 ;}B^9!1JPeyO^"]xy/ q W1&/vnquS ۹Y^.1uʘ1v$^^>sel2.,ԝF. l~Ř,UYc6 q l +Q~JK]>X2l.TX,g\Xrt#1UKN7s}Wy:T6PvRy31"3io$Ą@DCnf] a)v'Db!.ZT$-[~ /҅TR.98@\}71i:*-qu\D޴..;Qiu;_ ) PZnJˈ8W7JJa#7T@D A޼MQț֓P>K1&&4*׺Λ>J l93r9$/̬k$ؘAjLcruUَ`A\L̬:z׮]ْČinv^Xe3R[B\+E[]ZkUIg1Z͔z+-XF^X.'-,rykכ,lV,[8㫺۩fq/TN2FFZCuLykGiz+ռo(3 wlj%f0sY$YO3gVӦ~T>+U1^YߘDd󦡴tKKweT2. +qZd=wi>kt]; e(*:npDdruH\޼jﲩ+]mK]tWS.3l2_RJF;u%||y .@X=?1+ekk6:$( IDATn$!֩T q bD[]VάX3T~1W1uS' up+^  q {螟T]VVĜX5&Ԩ>w7&ĥXDF[MV~+5ͦK+[^s4pCK7c]-h8=P?s&MJ\Rge+?Ѵz>1Sc <â"7""Ex=jtӞrJgWlVWr!>!.ݕSqqBTx]ϖpԕɆ~p۹żzqQurEXyii[]A\%KG'4*(-ҹdu-%fr]8Nhn;v?-ĥ~yxC겮VWV1W1&!:p?Kwл8U88_H=CV}:K.5^fM9$>ۯjgb[B\՝8=8F?m똕WeZ혘prԝz6w!7 خ%\,q_oUW%+uŴzq*9F?1YWEGpoC=UDqڹ;U7"+| ӊMvv8aUXc qƬeuӉեteWRBr٧?91Wl&&+)Χ:em+p7sv55 4jM稏""΃$lU!9e]H|s,P`1ĥ[ΐImԽ:=ʌّI2m_CFx*Q<q:uvûb~wcN贚^ߺhzut%D"B\;ۺ"4:pz>u-!.R5ꕉ ^{K/w.nu$vAPA\+˲AR@YA4][ C\@W;ǒ X~T~:Kn qƪ.v:UszWU{XB`Yi_IQLpu+F㞁Remb"":@358xӨn@Ni9n0g LKt%T&emI+$Ρy{oRԕjO@DK(g ȶ3^#yy ۏ'sv(:p|* .휏K,PJS?i@ɲݬT =NC6nPpv-ST$"SDž,)7%)4 Ӈq& {Kp k21#7m:buNn_^EZR+q4 9 bMaGDmXɪbZNS1UF#B+GkDZX3+Jq UT1>z/4GK7f%N>xqz_]X*98d%,fKCb!+%zS MlaiþNq:gg+Nu<ҒHmV:| %\?̈엵Kq2lkMYm\V}֗ P%\CbZcze$_ˏ,~^11`/g/y.9?Ou`uT:"UGq6\s8[գ ٞrj*$0WT-iM#8FnL2S,IERN\Tƌf2IqjiH#pZ5@o!Kʶٶ6s(J%(e.VzCֺr$UppVר}!];\u6+MIn8WbKP"%+- 'fEǜ쮐}JVML%뿶oʹl#Kpp-0cq[bMIˍYjk]܎eU5C\5:iPˍh---?ZL uCaǡ>PTuA\BT-3-cKr66+MLbgZ:Y^J=%Ԗ$z]"ܬW.06.ӶtJpp}ͩoz.7j󩺋!P>4*Vph_n;[wb5g Fh۶l>[HJ[]޽zL "m3^7Jg`E=i"u0TӃ }Q[Iv.ܴ6Ťy1㶤;H#勇_ʩEnqZED,o#BSS-YĊe2;upUj>]@kӇEpDHN;v,|:gؽ<勞ZtrW>DDD?+Uem_A֏r5@Dć<^ba/xe|[DߥJ Bg7 צ4ںeO*w&""mǷfiyNUgƳ} UvqH!%LodR҂o*7vkm;M\~Ĥ*~REI;EIZO6c8Q.B\ĥ>8#J^eJ̀ACBK.& h(2xǞKZ?]DDg^~h%瞈ZR?p|ל/mͫ. M_n ɌHɭ!<;֊2euZMYUqctctx.u""by{ޝ0WkyUI~Y2۷1`)]|82wN(D[@\Nڶ}(=ٵsmd4%X&MWg=-KTi3z/;es={ ۵cÁ{&zYN%&yCys\ {T;'_^ӏ?&7g"K'z_uӷΝ>W"Rɹ~WQ{I~yH7*&K#JciCpDR@bƆ.Ȍ?"viӓK5ᑍq~ANgoH'YI2 <\Vje&L&&K2eaS.&WA6iEN?|ץro[/UywaɋGgM{x.?gF؜J]nǴeI?7wc2{c:ӭO$F~C63tTiI[zh8`.͹DR^$[rg6ϞI5/p.)B]q^6/=djBXV:<ю$":1[;eX}~ZFD4+5-.ZcM&Ҩ" b;~|hM˙/ƘǛc9bŴbUe6Oݮi%h/ "؄8o7Gh EF "Nv7[immwo:n\ݢMٵ,:%2!x÷t{8+nC8"7; ]o9tQ;!B\p8GD椟gc4mr9?*9ЃDDyH=x0HdN>f[juVoάEZE'2U:k,*\Ko|F=h|5r-{ji׬#G~ZHJL))ܦ yt#͍`(; 7l7 {'Y̗ʾͫ7$}mҼ{8S[iZ&߾xOZ߻:O{}t9<)iY}^c+&P ßlA*J۽f{uorrǙ6:H*LZ;g[Mw;j% ƿŨ&veVvzŪ =:[NW]HDDDޣZl᜺#"r'vC ˎD|P)HL]Hڵ}_)^>z.ؔ@b%7͌3wlL.m1鍞O>tfmCb 陏X?%%lФW])u}<*y4{G [}V>MǎV9*%?yQ(^ҿcP jm](DĩY=bwk -#"J־7IY;;'9Ꮟ 6yY8G}{ܐfaX9=ï_~ %;z^7zᏽw Pj۫GK6 +Yݳ3tҘhO8؇_?\#nt{ݿ8&[1c/YtI/ ΔPq1FiTVXdm%^LH3hrߝ _UHGƵS̛.q]ywH7o9CmRj3_{y~H[OK/<{pȓӟE7ڲ`JVi5SJI6|L _V1|i7ty[?`iŖ%svݿ==hޟy噏ޘ@إuW:"M3Xο=4xi=Vޡu泓{$m>6 bC&;Un9G?y񥛚Hvݏw`H kկD8wc"9g|s/o~8g֝=o{hwqh ;u9fP^W tfI:+٣ξŧih&6†C{E{v; %ե`@%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @%"KE .A\(Pq @P'DQ,((0 &IeƘ[qFt*U̖c phx4@}eYB___\(gjPq.((HIzs'IRvvl lH٠2Y B xzzZ>n35XE177W׻!@DDQtuCtx8;71///((mqS] n(< WiNf% yV8MY7eYvu+ ,n@ p\+O2bgw]XRY-{f4f:SV3e̿v1#bFŌRZ"^sѡT \Ùג/_6ryhWn 18cVxl/oFDĊ-Yy|h`oʷt]GK_ŗؤ|oř0}b'4Tas,K9^ nq ~Xrt'*n~+3t∤ܓ/<<"+fo8&# o?"ʯ"6y_do'""O<+B "*9x"oqLI)8=m=:5M׶oH66K .;WT̯ly<ǫ'.x䰗zXkW /ۚ.wos!IL%:- Z2Uү?LD'թ]ppXu_O,HSmr:IDATDD|OWEyC_"mzcjfLyq?rodFzyQnEw|{~=Wvm1^,8f8ABB[dQ.$ێqD$fZ;{%dׇR ezz虱LTi;kI+d{-c?qx_ц/>n_!Gר:ߵ]㢛JJJZlV8AJJJé.c i 'Ĉ{іӿ#cDId9[#F|@wk8?zzh5҄?ܽRf$3jՆls̘XsR/yo/79z\~'vMWGcy$⸛u蓻@CT6Wc%h;v9eW5]j|[1w_fyoO/""<#y~ܠ&*"I4E;\bMӘQw딝xR|wqZJaFY$fp[Es6M=dK2MOtSsקּ/t ޿rn}RoH {K}qyc#{NР{xxpaD臻TiiiYp(56s +]JegFV7Yjpt4Mii 7 QYé.}||ctM')"Ic qzǧ!?`0 z 3󼏏(EEE:rW$`0x{{4Y7$"NR %I+]nAeY-}p///A}A%yxxjKJJL&hq0qǩj^Zd -.HժjNg+AV7^]K"yej@%"KE .A\(Pq @%"KE4#h4HV{yT(<$ӷG2nҠ ::Q\j,3,-W&Q姴\|+ uRsc+VtP' .Nh+nj5-P'0u2x)g=*[~p:.999<<@%"KE .A\(Pq @۩c@a;qNDAL`b ]MvIENDB`deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/boot-maker.md0000644000175000017500000000736614122570751030462 0ustar ephraimephraim# 開機碟製作器|deepin-boot-maker| ## 概述 開機碟製作器是一款將系統鏡像文件寫入隨身碟等安裝介質的小工具,介面簡潔、操作簡單。 ## 使用入門 透過以下方式執行或關閉開機碟製作器,或者建立開機碟製作器的捷徑。 ### 執行開機碟製作器 1. 單擊任務欄上的啟動器 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器介面。 2. 上下滾動滑鼠滾輪瀏覽或透過搜尋,找到「開機碟製作器」按鈕 ![deepin_boot_maker](../common/deepin_boot_maker.svg),單擊開啟。 3. 右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg),您可以: - 單擊 **建立桌面捷徑**,在桌面建立捷徑。 - 單擊 **釘選到Dock**,將應用程式固定到Dock。 - 單擊 **開機啟動**,將應用程式添加到開機啟動項,在電腦開機時自動執行該應用。 ### 關閉開機碟製作器 - 在開機碟製作器視窗,單擊 ![close](../common/close.svg),關閉開機碟製作器。 - 在任務欄右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg),選擇 **關閉所有** 來關閉開機碟製作器。 - 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg),選擇 **離開** 來關閉開機碟製作器。 ## 操作介紹 ### 執行準備工作 1. 到官網下載最新的系統鏡像文件。 2. 準備一個至少8GB的隨身碟。 3. 獲取啟動盤製作工具。 - 系統預裝了啟動盤製作工具,在啟動器中查找。 - 訪問官網下載指定版本的啟動盤製作工具。 - Windows系統可以從光碟鏡像中解壓 xxx_boot_maker.exe 到電腦中。 ### 選擇ISO檔案 您可以透過以下兩種方式選擇鏡像文件: - 單擊 **選擇一個ISO檔案**,選中已下載的鏡像文件後單擊 **下一步**。 - 直接將鏡像文件拖曳到製作工具介面,然後單擊 **下一步**。 ![0|selectfile](fig/selectfile.png) ### 選擇分區 選中製作啟動盤的隨身碟,如果隨身碟有多個分區,只能選擇第一個分區。單擊**開始**或**返回**按鈕。 - 開始製作:建議勾選 **格式化分區**,製作前請儲存好隨身碟的資料。 - 返回:返回到選擇鏡像介面。 ![0|boot-maker](fig/select_disk.png) ### 製作成功 製作過程需要一定的時間,請耐心等待,製作時請不要移除磁碟或關機。待進度條滿格,出現 **製作成功** 的提示,表明開機碟已經製作完成。 ![boot-maker](fig/making.png) ![recoder](fig/success.png) ### 製作失敗 如果製作失敗,可能由如下情況導致: - 磁碟格式錯誤 - 磁碟空間錯誤 - 磁碟掛載錯誤 - 解壓鏡像錯誤 ![boot-maker](fig/fail.png) 當出現未知錯誤時,製作失敗窗口會出現「意見回應」按鈕。單擊 **意見回應** 後,跳轉到相關論壇進行問題回饋。 ## 主選單 在主選單中,您可以切換視窗主題、查看說明手冊,了解開機碟製作器的更多訊息。 ### 主題 視窗主題包含亮色主題、暗色主題和系統主題。 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **主題**,選擇一個主題顏色。 ### 說明 查看說明手冊,透過幫助進一步讓您了解和使用開機碟製作器。 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **說明**。 3. 查看關於開機碟製作器的說明手冊。 ### 關於 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **關於**。 3. 查看關於開機碟製作器的版本和介紹。 ### 離開 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **離開**。deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/zh_TW/p_boot-maker.md0000644000175000017500000000755614122570751031002 0ustar ephraimephraim# 開機碟製作器|deepin-boot-maker| ## 概述 開機碟製作器是一款將系統鏡像文件寫入隨身碟等安裝介質的小工具,介面簡潔、操作簡單。 ## 使用入門 透過以下方式執行或關閉開機碟製作器,或者建立開機碟製作器的捷徑。 ### 執行開機碟製作器 1. 單擊任務欄上的啟動器 ![deepin_launcher](../common/deepin_launcher.svg),進入啟動器介面。 2. 上下滾動滑鼠滾輪瀏覽或透過搜尋,找到「開機碟製作器」按鈕 ![deepin_boot_maker](../common/deepin_boot_maker.svg),單擊開啟。 3. 右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg),您可以: - 單擊 **建立桌面捷徑**,在桌面建立捷徑。 - 單擊 **釘選到Dock**,將應用程式固定到Dock。 - 單擊 **開機啟動**,將應用程式添加到開機啟動項,在電腦開機時自動執行該應用。 ### 關閉開機碟製作器 - 在開機碟製作器視窗,單擊 ![close](../common/close.svg),關閉開機碟製作器。 - 在任務欄右鍵單擊 ![deepin_boot_maker](../common/deepin_boot_maker.svg),選擇 **關閉所有** 來關閉開機碟製作器。 - 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg),選擇 **離開** 來關閉開機碟製作器。 ## 操作介紹 ### 執行準備工作 1. 到官網下載最新的系統鏡像文件。 2. 準備一個至少8GB的隨身碟。 3. 獲取啟動盤製作工具。 - 系統預裝了啟動盤製作工具,在啟動器中查找。 - 訪問官網下載指定版本的啟動盤製作工具。 - Windows系統可以從光碟鏡像中解壓 xxx_boot_maker.exe 到電腦中。 ### 選擇ISO檔案 您可以透過以下兩種方式選擇鏡像文件: - 單擊 **選擇一個ISO檔案**,選中已下載的鏡像文件後單擊 **下一步**。 - 直接將鏡像文件拖曳到製作工具介面,然後單擊 **下一步**。 ![0|selectfile](fig/selectfile.png) ### 選擇分區 選中製作啟動盤的隨身碟,如果隨身碟有多個分區,只能選擇第一個分區。單擊**開始**或**返回**按鈕。 - 開始製作:建議勾選 **格式化分區**,製作前請儲存好隨身碟的資料。 - 返回:返回到選擇鏡像介面。 ![0|boot-maker](fig/select_disk.png) ### 製作成功 製作過程需要一定的時間,請耐心等待,製作時請不要移除磁碟或關機。待進度條滿格,出現 **製作成功** 的提示,表明開機碟已經製作完成。 ![boot-maker](fig/making.png) ![recoder](fig/success.png) ### 製作失敗 如果製作失敗,可能由如下情況導致: - 磁碟格式錯誤 - 磁碟空間錯誤 - 磁碟掛載錯誤 - 解壓鏡像錯誤 當出現未知錯誤時,製作失敗視窗會出現「售後服務」按鈕,單擊 **售後服務**,跳轉到「服務與支持」的主介面。在服務與支持應用中,您可以透過留言諮詢、線上諮詢等方式獲得幫助。 ![aftersale_services](fig/aftersale_services.png) ## 主選單 在主選單中,您可以切換視窗主題、查看說明手冊,了解開機碟製作器的更多訊息。 ### 主題 視窗主題包含亮色主題、暗色主題和系統主題。 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **主題**,選擇一個主題顏色。 ### 說明 查看說明手冊,透過幫助進一步讓您了解和使用開機碟製作器。 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **說明**。 3. 查看關於開機碟製作器的說明手冊。 ### 關於 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **關於**。 3. 查看關於開機碟製作器的版本和介紹。 ### 離開 1. 在開機碟製作器介面,單擊 ![icon_menu](../common/icon_menu.svg)。 2. 單擊 **離開**。deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/0000755000175000017500000000000014122570751026321 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/attention.svg0000644000175000017500000000204214122570751031045 0ustar ephraimephraim attention deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/icon_close.svg0000644000175000017500000000145714122570751031166 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/notes.svg0000644000175000017500000000315314122570751030174 0ustar ephraimephraim notes deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/tips.svg0000644000175000017500000000307314122570751030024 0ustar ephraimephraim tips deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/deepin_boot_maker_96.svg0000644000175000017500000002141514122570751033031 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/close.svg0000644000175000017500000000057214122570751030153 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/deepin_launcher.svg0000644000175000017500000000763414122570751032201 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/deepin_boot_maker.svg0000644000175000017500000001720414122570751032514 0ustar ephraimephraim deepin-boot-maker_5.6.12+dfsg/src/help/deepin-boot-maker/boot-maker/common/icon_menu.svg0000644000175000017500000000477714122570751031035 0ustar ephraimephraim image/svg+xml img_upload img_upload Created with Sketch. deepin-boot-maker_5.6.12+dfsg/src/translations/0000755000175000017500000000000014122570751021260 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_pt.ts0000644000175000017500000002431014122570751025635 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Erro de formato de disco: Formate-o novamente Insufficient disk Space: Ensure that the disk has enough free space Espaço insuficiente em disco: Certifique-se de que o disco tem espaço livre suficiente Disk Mount Error: Insert the disk again or reboot to retry Erro ao montar o disco: Insira o disco de novo ou reinicie o sistema para tentar novamente Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Erro ao descomprimir a imagem: Verifique o checksum md5 da imagem para assegurar a sua integridade Internal Error Erro interno BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. O Criador de unidade de arranque é uma ferramenta simples para gravar ficheiros de imagem do sistema em unidades flash USB e outros suportes. Boot Maker Criador de unidade de arranque ISOSelectView Drag an ISO image file here Arraste um ficheiro ISO para aqui OR OU Select an ISO image file Selecione um ficheiro ISO Next Seguinte Reselect an ISO image file Volte a selecionar um ficheiro ISO Illegal ISO image file Ficheiro ISO ilegal Detecting ISO file, please wait... A detetar o ficheiro ISO, aguarde... ProgressView Burning A gravar Burning, please wait... A gravar, aguarde... Do not remove the disk or shut down the computer during the process Não remova o disco ou desligue o computador durante o processo Cancel Cancelar QObject Removable Disk Disco removível Removable disk Disco removível Boot Maker Criador de unidade de arranque ResultView Reboot now Reiniciar agora Done Concluído Successful Bem sucedido The error log will be uploaded automatically with the feedback. We cannot improve without your feedback O registo de erros será carregado automaticamente com o comentário. Não podemos melhorar sem o seu comentário Submit Feedback Submeter comentário After-Sale Services Serviços pós-venda Close Fechar Sorry, process failed O processo falhou Process failed O processo falhou UnmountUsbView Verifying data and safely removing the media, please wait... A verificar os dados e a remover o dispositivo em segurança, aguarde... UsbSelectView Select a partition Selecione uma partição Format the partition Formate a partição Start Iniciar Back Anterior Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding A formatação irá apagar todos os dados da partição mas pode aumentar a taxa de sucesso, confirme antes de prosseguir Formatting the partition will overwrite all data, please have a backup before proceeding. A formatação da partição irá sobrescrever todos os dados, faça uma cópia de segurança antes de prosseguir. Disk Format Error: Please format the partition with FAT32 Erro de formato do disco: Formate a partição com FAT32 No disk available Nenhum disco disponível Format Partition Formatar partição Cancel Cancelar OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_af.ts0000644000175000017500000002266414122570751025612 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Volgende Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Kanselleer QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Gedoen Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Maak toe Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Kanselleer OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker.ts0000644000175000017500000002272614122570751025143 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView Drag an ISO image file here OR Select an ISO image file Next Reselect an ISO image file Illegal ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Format Partition Cancel OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ku_IQ.ts0000644000175000017500000002274614122570751026235 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Pêşve Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel پاشگەزبوونەوە QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close داخستن Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel پاشگەزبوونەوە OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_az.ts0000644000175000017500000002456614122570751025641 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Yetərsiz disk sahəsi: Diskdə kifayət qədər yer olduğuna əmin olun Disk Mount Error: Insert the disk again or reboot to retry Disk qoşulması xətası: təkrarlamaq üçün diski yenidən daxil edin və ya yenidən yükləyin Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Disk görüntüsü faylının açılması xətası: Görüntü faylının bütövlüyünün yoxlanılması üçün md5 yoxlama cəmi tələb olunur Internal Error Daxili xəta BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Önyükləyici Yaradıcısı sistem görüntüsü fayllarını USB yaddaş qurğusuna və digər daşıyıcılara yazmaq üçün sadə alətdir. Boot Maker Önyükləyici ISOSelectView Drag an ISO image file here İSO görüntüsü faylını buraya atın OR OR Select an ISO image file İSO faylını seçin Next Sonrakı Reselect an ISO image file İSO faylını yenidən seçin Illegal ISO image file Doğru olmayan İSO faylı Detecting ISO file, please wait... İSO faylı aşkar edilir, lütfən gözləyin... ProgressView Burning Yazılır Burning, please wait... Yazılır, lütfən gözləyin... Do not remove the disk or shut down the computer during the process Əməliyyat zamanı diski çıxrtmayın və ya komputeri söndürməyin Cancel İmtina QObject Removable Disk Çıxarılabilən disk Removable disk Çıxarılabilən disk Boot Maker Önyükləyici ResultView Reboot now İndi yenidən başlatmaq Done Tamamlandı Successful Uğurlu The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Xəta qeydləri rəylə birlikdə avtomatik olaraq göndəriləcəkdir. Rəyiniz olmadan biz proqram təminatını inkişaf etdirə bilmərik Submit Feedback Rəy göndərmək After-Sale Services Satış sonrası xidmətlər Close Bağla Sorry, process failed Təəssüf, əməliyyat alınmadı Process failed Əməliyyat alınmadı UnmountUsbView Verifying data and safely removing the media, please wait... Verilənlərin və daşıyıcınının təhlükəsiz çıxarılması yoxlanılır, lütfən gözləyin... UsbSelectView Select a partition Bölməni seçin Format the partition Bölməni formatlamaq Start Başlatmaq Back Geriyə Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatlama diskdəki bütün məlumatları siləcəkdir, lakin bu əməliyyatın uğurla başa çatması ehtimalını artırır, davam etmədən öncə təsdiq edin Formatting the partition will overwrite all data, please have a backup before proceeding. Bölmənin formatlanması bütün məlumatları siləcək, bunu etməmişdən öncə ehtiyyat nüsxəsini çıxarın Disk Format Error: Please format the partition with FAT32 Diskin formatlanması xətası: Lütfən bölməni FAT32 ilə formatlayın No disk available Disk mövcud deyil Format Partition Bölməni formatlamaq Cancel İmtina OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_es.ts0000644000175000017500000002440414122570751025625 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Error del formato de disco: Vuelva a formatearlo Insufficient disk Space: Ensure that the disk has enough free space Espacio insuficiente en el disco: Asegúrese de que el disco tiene suficiente espacio libre Disk Mount Error: Insert the disk again or reboot to retry Error al montar el disco: vuelva a conectar el disco o reinicie el sistema para volver a intentarlo Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Error al descomprimir la imagen: Compruebe la suma de verificación md5 de la imagen y asegúrese de que esté correcta Internal Error Error interno BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker es una utilidad sencilla para escribir archivos de imagen del sistema en unidades flash USB y otros medios. Boot Maker Creador de arranque ISOSelectView Drag an ISO image file here Arrastre un archivo de imagen ISO aquí OR O Select an ISO image file Seleccione una imagen ISO Next Siguiente Reselect an ISO image file Cambiar imagen ISO Illegal ISO image file Archivo de imagen ISO no permitido Detecting ISO file, please wait... Detección de archivo ISO, por favor espere… ProgressView Burning Grabando Burning, please wait... Grabando, por favor espere… Do not remove the disk or shut down the computer during the process Por favor, no retire el disco ni apague el equipo durante el proceso Cancel Cancelar QObject Removable Disk Disco extraible Removable disk Disco extraíble Boot Maker Creador de arranque ResultView Reboot now Reiniciar ahora Done Finalizar Successful Listo The error log will be uploaded automatically with the feedback. We cannot improve without your feedback El registro de errores se cargará automáticamente con sus comentarios. No podemos mejorar sin su comentario Submit Feedback Enviar comentarios After-Sale Services Servicios postventa Close Cerrar Sorry, process failed Lo siento, el proceso falló Process failed El proceso falló UnmountUsbView Verifying data and safely removing the media, please wait... Verificando los datos y quitando el medio de manera segura, por favor espere… UsbSelectView Select a partition Seleccione una partición Format the partition Formatee la partición Start Iniciar Back Atrás Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding El formateo borrará todos los datos de la partición, pero puede aumentar el porcentaje de éxito, por favor confirme antes de proceder Formatting the partition will overwrite all data, please have a backup before proceeding. El formateo de la partición sobrescribirá todos los datos, por favor haga una copia de seguridad antes de proceder. Disk Format Error: Please format the partition with FAT32 Error de formato de disco: Por favor, formatee la partición con FAT32 No disk available No hay disco disponible Format Partition Formatear partición Cancel Cancelar OK Aceptar deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_sk.ts0000644000175000017500000002336514122570751025640 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Chyba pripojenia disku: Prosím pripojte disk znovu alebo reštartujte systém a opakujte Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Chyba dekompresie obrazu: Skontrolujte kontrolný súčet MD5 obrazu a uistite sa, že obraz je kompletný Internal Error Interná chyba BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Deepin Boot Maker ISOSelectView Drag an ISO image file here Presuňte súbor obrazu ISO a tu pustite OR ALEBO Select an ISO image file Vybrať súbor obrazu ISO Next Ďalšie Illegal ISO image file Reselect an ISO image file Znova vyberte súbor obrazu ISO Detecting ISO file, please wait... ProgressView Burning Vytváram Burning, please wait... Vytváram na disk, čakajte prosím... Do not remove the disk or shut down the computer during the process Prosím neodstraňujte disk alebo nevypínajte počítač pri tvorbe Cancel Zrušiť QObject Removable Disk Vymeniteľný disk Removable disk Vymeniteľný disk Boot Maker Deepin Boot Maker ResultView Reboot now Reštartovať teraz Done Hotovo Successful Úspešné The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Protokol chýb sa automaticky nahráva so spätnou väzbou. Nemôžeme to zlepšiť bez vašej spätnej väzby a podpory Submit Feedback Odoslať spätnú väzbu After-Sale Services Close Zavrieť Sorry, process failed Prepáčte, ale vytvorenie zlyhalo Process failed Vytvorenie zlyhalo UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition Start Spustiť vytvorenie Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Disk nenájdený Format Partition Cancel Zrušiť OK Ok deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_zh_CN.ts0000644000175000017500000002374214122570751026223 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center 磁盘格式错误:请勾选格式化分区或关闭安全中心USB自动检测重新制作 Disk Format Error: Please reformat it 磁盘格式错误:请勾选格式化分区重新制作 Insufficient disk Space: Ensure that the disk has enough free space 磁盘空间不足:请确保有足够的剩余空间 Disk Mount Error: Insert the disk again or reboot to retry 磁盘挂载错误:请重新插入磁盘或重启系统后重试 Image Decompression Error: Verify md5 checksum of the image to ensure its integrity 解压镜像失败:请检查镜像文件的md5, 确保镜像文件完整 Internal Error 未知错误 BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. 启动盘制作工具是一款将系统镜像文件写入外接存储介质的小工具。 Boot Maker 启动盘制作工具 ISOSelectView Drag an ISO image file here 拖拽镜像文件到此 OR 或者 Select an ISO image file 请选择镜像文件 Next 下一步 Reselect an ISO image file 重新选择镜像文件 Illegal ISO image file 非法ISO文件 Detecting ISO file, please wait... 正在检测ISO文件,请稍候... ProgressView Burning 正在制作 Burning, please wait... 正在制作,请稍后... Do not remove the disk or shut down the computer during the process 制作时请不要移除磁盘或关机 Cancel 取消 QObject Removable Disk 可移动磁盘 Removable disk 可移动磁盘 Boot Maker 启动盘制作工具 ResultView Reboot now 立即重启 Done 完成 Successful 制作成功 The error log will be uploaded automatically with the feedback. We cannot improve without your feedback 反馈问题时会自动上传错误日志,我们的进步离不开您的反馈和支持 Submit Feedback 提交反馈 After-Sale Services 售后服务 Close 关闭 Sorry, process failed 制作失败,非常抱歉 Process failed 制作失败 UnmountUsbView Verifying data and safely removing the media, please wait... 同步数据和安全移除中,请稍候... UsbSelectView Select a partition 请选择分区 Format the partition 格式化分区 Start 开始制作 Back 返回 Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding 格式化将彻底删除分区上的数据,但可提高制作成功率,请确认后继续 Formatting the partition will overwrite all data, please have a backup before proceeding. 格式化分区将丢失该分区上所有数据,请做好备份后继续。 Disk Format Error: Please format the partition with FAT32 磁盘格式错误:请使用FAT32格式重新格式化分区 No disk available 未发现可用磁盘 Format Partition 格式化分区 Cancel 取消 OK 确定 deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_it.ts0000644000175000017500000002422414122570751025632 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Formato Disco errato: formattalo per cortesia Insufficient disk Space: Ensure that the disk has enough free space Spazio su disco insufficiente: assicurati di avere sufficiente spazio su disco Disk Mount Error: Insert the disk again or reboot to retry Montaggio disco fallito: inserisci nuovamente il disco o riavvia Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Decompressione immagine fallita: verifica l'md5 checksum dell'immagine per garantirne l'integrità Internal Error Errore interno BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker è un semplice strumento per scrivere l'immagine di Sistema su Pendrive USB o altri supporti. Localizzazione italiana a cura di Massimo A. Carofano Boot Maker Boot Maker ISOSelectView Drag an ISO image file here Trascina qui la ISO OR O Select an ISO image file Seleziona un'immagine ISO Next Avanti Reselect an ISO image file Riseleziona un'immagine ISO Illegal ISO image file File immagine ISO non legale Detecting ISO file, please wait... Analisi file ISO, attendere prego... ProgressView Burning Scrivi Burning, please wait... Scrittura in corso attendere prego... Do not remove the disk or shut down the computer during the process Non rimuovere il disco o spegnere il computer durante il processo Cancel Cancella QObject Removable Disk Disco rimobibile Removable disk Disco rimobibile Boot Maker Boot Maker ResultView Reboot now Riavvia ora Done Fatto Successful Fatto The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Il log di errore sarà inviato automaticamente col feedback. Non possiamo migliorare senza il tuo contributo Submit Feedback Invia feedback After-Sale Services Servizi post-vendita Close Chiudi Sorry, process failed Ops, creazione fallita Process failed Processo fallito UnmountUsbView Verifying data and safely removing the media, please wait... Verifica dati e rimozione sicura del dispositivo, attendere prego... UsbSelectView Select a partition Seleziona una partizione Format the partition Formatta la partizione Start Inizio Back Indietro Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formattando eliminerai tutti i dati e le partizioni, incrementando però le possibilità di successo, desideri proseguire? Formatting the partition will overwrite all data, please have a backup before proceeding. Formattando la partizione sovrascriverai tutti i dati, assicurati di avere un backup prima di procedere. Disk Format Error: Please format the partition with FAT32 Formato disco errato: per cortesia formatta la partizione in FAT32 No disk available Nessun disco disponibile Format Partition Formatta partizione Cancel Annulla OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_hu.ts0000644000175000017500000002467114122570751025640 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Lemezformátum hiba: Kérjük formázza újra Insufficient disk Space: Ensure that the disk has enough free space Kevés a lemezterület: Győződjön meg arról, hogy a lemezen van elég szabad hely Disk Mount Error: Insert the disk again or reboot to retry Lemezkezelési hiba: Helyezzen be lemezt vagy próbálja újra. Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Képdekompressziós hiba: Ellenőrizze a kép md5 ellenőrző összegét annak integritásának biztosítása érdekében Internal Error Belső hiba BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. A Rendszerindító Készítő egy egyszerű eszköz a rendszer képfájljainak írására CD / DVD-re, USB flash meghajtóra és más adathordozókra. Boot Maker Rendszerindító Készítő ISOSelectView Drag an ISO image file here Húzzon ide egy ISO lemezképfájlt OR VAGY Select an ISO image file ISO lemezképfájl kiválasztása Next Következő Reselect an ISO image file ISO lemezképfájl újra kiválasztása Illegal ISO image file Hibás ISO lemezképfájl Detecting ISO file, please wait... ISO lemezképfájl észlelése, kérjük várjon... ProgressView Burning Írás Burning, please wait... Az írás folyamatban, kérjük várjon... Do not remove the disk or shut down the computer during the process A folyamat során ne távolítsa el a lemezt, és ne állítsa le a számítógépet Cancel Mégsem QObject Removable Disk Eltávolítható lemez Removable disk Eltávolítható lemez Boot Maker Rendszerindító Készítő ResultView Reboot now Újraindítás most Done Kész Successful Sikeres The error log will be uploaded automatically with the feedback. We cannot improve without your feedback A hibanapló automatikusan feltöltésre kerül a visszajelzéssel. Az Ön visszajelzése nélkül nem tudunk javítani Submit Feedback Visszajelzés küldése After-Sale Services Értékesítés utáni szolgáltatások Close Bezárás Sorry, process failed Sajnáljuk, a folyamat sikertelen Process failed A folyamat sikertelen UnmountUsbView Verifying data and safely removing the media, please wait... Az adatok ellenőrzése és az adathordozó biztonságos eltávolítása folyamatban, kérjük várjon... UsbSelectView Select a partition Partíció kiválasztása Format the partition Partíció formázása Start Indítás Back Vissza Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding A formázás törli a partíción lévő összes adatot, de növelheti a partíció működésének sikerességi arányát, a folytatás előtt kérjük erősítse meg Formatting the partition will overwrite all data, please have a backup before proceeding. A partíció formázása felülír minden adatot, a folytatás előtt kérjük készítsen biztonsági másolatot. Disk Format Error: Please format the partition with FAT32 lemezformátum hiba: Kérjük formázza a lemezt FAT32 fájlrendszerrel. No disk available Nincs rendelkezésre álló lemez Format Partition Partíció formázása Cancel Mégsem OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_fi.ts0000644000175000017500000002372314122570751025617 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Levyformaatin virhe: Alusta se uudelleen Insufficient disk Space: Ensure that the disk has enough free space Riittämätön levytila: Varmista, että levyllä on tarpeeksi vapaata tilaa Disk Mount Error: Insert the disk again or reboot to retry Levyn liitosvirhe: Asenna levy uudelleen tai käynnistä kone ja yritä uudelleen. Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Levykuvan pakkausvirhe: Varmista levykuvan MD5 tarkistussumma sen eheyden toteamiseksi Internal Error Sisäinen virhe BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Mediat on helppo työkalu levykuvien kirjoittamiseen USB-muistitikkuihin ja muuhun mediaan. Boot Maker Mediat ISOSelectView Drag an ISO image file here Vedä ISO-kuvatiedosto tähän OR TAI Select an ISO image file Valitse ISO-kuvatiedosto Next Seuraava Reselect an ISO image file Valitse ISO-kuvatiedosto uudelleen Illegal ISO image file Laiton ISO-kuvatiedosto Detecting ISO file, please wait... Tunnistetaan ISO-tiedostoa, odota... ProgressView Burning Kirjoita Burning, please wait... Kirjoitetaan, odota... Do not remove the disk or shut down the computer during the process Älä poista levyä tai sammuta tietokonetta prosessin aikana Cancel Peruuta QObject Removable Disk Irroitettava levy Removable disk Irroitettava levy Boot Maker Mediat ResultView Reboot now Käynnistä uudelleen Done Valmis Successful Onnistui The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Virheloki ladataan automaattisesti palautteen mukana. Emme voi edistyä ilman palautettasi. Submit Feedback Anna palautetta After-Sale Services Myynnin jälkeiset palvelut Close Sulje Sorry, process failed Valitettavasti prosessi epäonnistui Process failed Prosessi epäonnistui UnmountUsbView Verifying data and safely removing the media, please wait... Osoitetaan oikeaksi ja media poistetaan turvallisesti, odota... UsbSelectView Select a partition Valitse osio Format the partition Alusta osio Start Aloita Back Takaisin Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Alustaminen poistaa kaikki osion tiedot, mutta lisää onnistumisastetta. Vahvista ennen jatkamista Formatting the partition will overwrite all data, please have a backup before proceeding. Alustaminen ylikirjoittaa kaikki tiedot, ota varmuuskopio ennen kuin jatkat. Disk Format Error: Please format the partition with FAT32 Levyn alustusvirhe: Alusta levy muotoon FAT32 No disk available Ei levyä saatavilla Format Partition Alusta osio Cancel Peruuta OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_sq.ts0000644000175000017500000002433614122570751025645 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Gabim Formatimi Disku: Ju lutemi, riformatojeni Insufficient disk Space: Ensure that the disk has enough free space Hapësirë disku e Pamjaftueshme: Garantoni që disku të ketë hapësirë të lirë të mjaftueshme Disk Mount Error: Insert the disk again or reboot to retry Gabim Montimi Disku: Rifuteni diskun ose rinisni sistemin që të provohet Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Gabim Çngjeshjeje Disku: Verifikoni checksum-in md5 të pamjes, që të garantoni integritetin e saj Internal Error Gabim i Brendshëm BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker është një mjet i thjeshtë për shkrim kartelash pamje sistemi në diskth USB dhe media tjetër. Boot Maker Boot Maker ISOSelectView Drag an ISO image file here Tërhiqni këtu një kartelë pamje ISO OR OSE Select an ISO image file Përzgjidhni një kartelë pamje ISO Next Pasuesi Reselect an ISO image file Ripërzgjidhni një kartelë pamje ISO Illegal ISO image file Kartelë pamje ISO e paligjshme Detecting ISO file, please wait... Po pikaset kartelë ISO, ju lutemi, pritni… ProgressView Burning Po piqet Burning, please wait... Po piqet, ju lutemi, pritni… Do not remove the disk or shut down the computer during the process Mos e hiqni diskun, apo të fikni kompjuterin gjatë procesit Cancel Anuloje QObject Removable Disk Disk i Heqshëm Removable disk Disk i heqshëm Boot Maker Boot Maker ResultView Reboot now Rinisu tani Done U bë Successful E suksesshme The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Regjistri i gabimeve do të ngarkohet automatikisht me përshtypjet. Pa përshtypjet tuaja, s’e përmirësojmë dot Submit Feedback Parashtroni Përshtypjet After-Sale Services Shërbime Pas-Shitjesh Close Mbylle Sorry, process failed Na ndjeni, procesi dështoi Process failed Procesi dështoi UnmountUsbView Verifying data and safely removing the media, please wait... Po verifikohen të dhënat dhe po hiqet media pa rrezik, ju lutemi, pritni… UsbSelectView Select a partition Përzgjidhni një pjesë Format the partition Formatoje pjesën Start Fillo Back Mprapsht Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatimi do të fshijë krejt të dhënat te pjesa, por mund të shtojë gjasat e suksesit, ju lutemi, ripohojeni, përpara se të vazhdohet Formatting the partition will overwrite all data, please have a backup before proceeding. Formatimi i pjesës do të mbishkruajë krejt të dhënat, ju lutemi, bëni një kopjeruajtje, përpara se të vazhdohet. Disk Format Error: Please format the partition with FAT32 Gabim Formatimi Disku: Ju lutemi, formatojeni pjesën si FAT32 No disk available S’ka disk të gatshëm Format Partition Formatoje Pjesën Cancel Anuloje OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ms.ts0000644000175000017500000002347114122570751025640 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Ralat Lekap Cakera: Sisipkan cakera sekali lagi atau but semula sistem untuk cuba sekali lagi Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Ralat Menyahmampat Imej: Sahkan hasil tambah semak md5 imej dan pastikan integritinya Internal Error Ralat Dalaman BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Pembuat But ISOSelectView Drag an ISO image file here Seret satu fail imej ISO di sini OR ATAU Select an ISO image file Pilih satu fail imej ISO Next Berikutnya Reselect an ISO image file Pilih semula satu fail imej ISO Illegal ISO image file Fail imej ISO tidak sah Detecting ISO file, please wait... Mengesan fail ISO, tunggu sebentar... ProgressView Burning Merakam Burning, please wait... Merakam, tunggu sebentar... Do not remove the disk or shut down the computer during the process Jangan tanggalkan cakera atau matikan komputer ketika proses penyediaan masih berlangsung Cancel Batal QObject Removable Disk Cakera Boleh Alih Removable disk Cakera boleh alih Boot Maker Pembuat But ResultView Reboot now But semula sekarang Done Selesai Successful Berjaya The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Log ralat akan dimuat naik secara automatik bersama-sama maklum balas. Kami tidak dapat menambahbaik tanpa maklum balas dan sokongan anda Submit Feedback Serah Maklumbalas" After-Sale Services Close Tutup Sorry, process failed Maaf, proses mengalamai kegagalan Process failed Proses mengalami kegagalan UnmountUsbView Verifying data and safely removing the media, please wait... Mengesahkan data dan menanggalkan media secara selamat, tunggu sebentar... UsbSelectView Select a partition Format the partition Start Mula Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Tiada cakera tersedia Format Partition Cancel Batal OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_mn.ts0000644000175000017500000002301414122570751025624 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error Дотоод алдаа BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR эсвэл Select an ISO image file ISO файлыг сонго Drag an ISO image file here Next Дараах Illegal ISO image file Reselect an ISO image file ISO файлын сонголтыг болиул Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Цуцлах QObject Removable Disk Зөөвөрийн диск Removable disk Зөөвөрийн диск Boot Maker ResultView Reboot now Одоо дахин ачааллах Done Дуусгах Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Хаах Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Цуцлах OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ru.ts0000644000175000017500000002673314122570751025653 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Недостаточно Пространства на диске: Убедитесь, что на диске достаточно свободного места Disk Mount Error: Insert the disk again or reboot to retry Ошибка Монтирования Диска: пожалуйста, подключите диск снова или перезагрузите систему, чтобы повторить попытку. Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Распаковка образа не удалась: проверьте контрольную сумму образа md5 и убедитесь, что образ корректный. Internal Error Внутренняя Ошибка BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. BootMaker - это простой инструмент для записи файлов системных образов на USB-флешки и другие носители. Boot Maker Средство для создания Загрузочного Диска ISOSelectView Drag an ISO image file here Перетащите файл образа ISO сюда OR ИЛИ Select an ISO image file Выберите файл образа ISO Next Следующий Reselect an ISO image file Повторно выберите файл образа ISO Illegal ISO image file Недопустимый файл образа ISO Detecting ISO file, please wait... Обнаружение файла ISO, пожалуйста, подождите... ProgressView Burning Запись Burning, please wait... Запись, пожалуйста подождите... Do not remove the disk or shut down the computer during the process Не извлекайте диск и не выключайте компьютер во время процесса Cancel Отмена QObject Removable Disk Съемный диск Removable disk Съемный диск Boot Maker Создание Загрузочного Диска ResultView Reboot now Перезагрузить сейчас Done Выполнено Successful Успешно The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Журнал ошибок будет загружен автоматически для обратной связи. Мы не можем работать над улучшениями без ваших отзывов Submit Feedback Отправить Отзыв After-Sale Services Послепродажное обслуживание Close Закрыть Sorry, process failed Извините, процесс не удался Process failed Процесс не удался UnmountUsbView Verifying data and safely removing the media, please wait... Проверка данных и безопасное извлечение носителей, пожалуйста, подождите... UsbSelectView Select a partition Выбор раздела Format the partition Форматирование раздела Start Начать Back Назад Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Форматирование сотрет все данные на разделе, но может увеличить вероятность успеха, пожалуйста, подтвердите это действие перед продолжением Formatting the partition will overwrite all data, please have a backup before proceeding. Форматирование раздела перезапишет все данные, пожалуйста, сделайте резервную копию, прежде чем продолжить. Disk Format Error: Please format the partition with FAT32 Ошибка Форматирования Диска: Пожалуйста, отформатируйте раздел в FAT32 No disk available Нет доступного диска Format Partition Форматирование Раздела Cancel Отмена OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_am_ET.ts0000644000175000017500000002305414122570751026203 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error የ ውስጥ ስህተት BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR ወይንም Select an ISO image file ይምረጡ የ ISO ምስል ፋይል Drag an ISO image file here Next ይቀጥሉ Illegal ISO image file Reselect an ISO image file እንደገና ይምረጡ የ ISO ምስል ፋይል Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel መሰረዣ QObject Removable Disk የሚወልቅ ዲስክ Removable disk የሚወልቅ ዲስክ Boot Maker ResultView Reboot now አሁን እንደገና ማስነሻ Done ተፈጽሟል Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close መዝጊያ Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel መሰረዣ OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_eo.ts0000644000175000017500000002264614122570751025627 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Sekva Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Nuligi QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Farita Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Fermi Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Nuligi OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_zh_HK.ts0000644000175000017500000002374114122570751026224 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center 磁盤格式錯誤:請勾選格式化分區或關閉安全中心USB自動檢測重新製作 Disk Format Error: Please reformat it 磁盤格式錯誤:請勾選格式化分區重新製作 Insufficient disk Space: Ensure that the disk has enough free space 磁盤空間不足:請確保有足夠的剩餘空間 Disk Mount Error: Insert the disk again or reboot to retry 磁盤掛載錯誤:請重新插入磁盤或重啟系統後重試 Image Decompression Error: Verify md5 checksum of the image to ensure its integrity 解壓鏡像失敗:請檢查鏡像文件的md5, 確保鏡像文件完整 Internal Error 內部錯誤 BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. 啟動盤製作工具是一款將系統鏡像文件寫入外接存儲介質的小工具。 Boot Maker 開機碟製作 ISOSelectView Drag an ISO image file here 拖拽鏡像文件到此 OR 或者 Select an ISO image file 選擇一個 ISO 影像檔案 Next 下一步 Reselect an ISO image file 重新選擇鏡像文件 Illegal ISO image file 非法ISO文件 Detecting ISO file, please wait... 正在檢測ISO文件,請稍候... ProgressView Burning 正在製作 Burning, please wait... 正在製作,請稍後... Do not remove the disk or shut down the computer during the process 製作時請不要移除磁盤或關機 Cancel 取消 QObject Removable Disk 可移除碟機 Removable disk 可移除碟機 Boot Maker 開機碟製作 ResultView Reboot now 現在就重新啟動 Done 完成 Successful 製作成功 The error log will be uploaded automatically with the feedback. We cannot improve without your feedback 反饋問題時會自動上傳錯誤日誌,我們的進步離不開您的反饋和支持 Submit Feedback 提交反饋 After-Sale Services 售後服務 Close 關閉 Sorry, process failed 製作失敗,非常抱歉 Process failed 製作失敗 UnmountUsbView Verifying data and safely removing the media, please wait... 同步數據和安全移除中,請稍候... UsbSelectView Select a partition 請選擇分區 Format the partition 格式化分區 Start 開始 Back 返回 Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding 格式化將徹底刪除分區上的數據,但可提高製作成功率,請確認後繼續 Formatting the partition will overwrite all data, please have a backup before proceeding. 格式化分區將丟失該分區上所有數據,請做好備份後繼續。 Disk Format Error: Please format the partition with FAT32 磁盤格式錯誤:請使用FAT32格式重新格式化分區 No disk available 未發現可用磁盤 Format Partition 格式化分區 Cancel 取消 OK 確定 deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_hy.ts0000644000175000017500000002272214122570751025637 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Հաջորդ Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Չեղարկել QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Փակել Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Չեղարկել OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ne.ts0000644000175000017500000002300414122570751025613 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next अर्को Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel रद्द गर्नुहोस् QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done भयो Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel रद्द गर्नुहोस् OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_nl.ts0000644000175000017500000002427414122570751025634 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Schijfindelingsfout: formatteer de schijf opnieuw Insufficient disk Space: Ensure that the disk has enough free space Onvoldoende schijfruimte: zorg er voor dat de schijf beschikt over %1 vrije ruimte Disk Mount Error: Insert the disk again or reboot to retry Schijfaankoppelfout: sluit de schijf opnieuw aan of herstart het systeem om opnieuw te proberen Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Schijfafbeeldingsuitpakfout: controleer de md5-controlesom van het imagebestand en zorg ervoor dat het bestand volledig is Internal Error Interne fout BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Deepin Opstartmediummaker is een eenvoudig hulpmiddel om installatiemedia van een systeem naar een cd/dvd, usb-station en andere installatiemedia te schrijven. Boot Maker Opstartmediummaker ISOSelectView Drag an ISO image file here Sleep een ISO-imagebestand hierheen OR OF Select an ISO image file Selecteer een ISO-imagebestand Next Volgende Reselect an ISO image file Herselecteer een ISO-imagebestand Illegal ISO image file Beschadigd ISO-imagebestand Detecting ISO file, please wait... Bezig met herkennen van ISO-bestand... ProgressView Burning Branden Burning, please wait... Bezig met branden... Do not remove the disk or shut down the computer during the process Koppel de schijf niet af of sluit de computer niet af tijdens de procedure Cancel Annuleren QObject Removable Disk Verwijderbare schijf Removable disk Verwijderbare schijf Boot Maker Opstartmediummaker ResultView Reboot now Nu herstarten Done Klaar Successful Succesvol The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Het foutrapport zal automatisch worden geüpload. We hebben je feedback nodig om te blijven innoveren. Submit Feedback Feedback versturen After-Sale Services Naverkoopdiensten Close Sluiten Sorry, process failed Sorry, procedure mislukt Process failed Procedure mislukt UnmountUsbView Verifying data and safely removing the media, please wait... Bezig met verifiëren van gegevens en veilig uitwerpen... UsbSelectView Select a partition Kies een partitie Format the partition Partitie formatteren Start Starten Back Terug Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding De schijfgegevens worden volledig verwijderd tijdens het formatteren. Bevestig en ga door. Formatting the partition will overwrite all data, please have a backup before proceeding. De schijfgegevens worden volledig verwijderd tijdens het formatteren. Maak een back-up voordat je verder gaat. Disk Format Error: Please format the partition with FAT32 Schijfindelingsfout: formatteer de schijf met fat32 No disk available Geen beschikbare schijf aangetroffen Format Partition Partitie formatteren Cancel Annuleren OK Oké deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_fr.ts0000644000175000017500000002450114122570751025623 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Erreur de format de disque : veuillez le reformater Insufficient disk Space: Ensure that the disk has enough free space Espace disque insuffisant : assurez-vous que le disque dispose de suffisamment d'espace libre Disk Mount Error: Insert the disk again or reboot to retry Erreur montage disque : Veuillez réinsérer le disque ou redémarrer le système Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Erreur décompression image : Vérifiez la somme de contrôle MD5 de l'image et assurez-vous de son intégrité Internal Error Erreur Interne BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker est un outil simple pour écrire des fichiers image système sur des lecteurs flash USB et d'autres supports. Boot Maker Boot Maker ISOSelectView Drag an ISO image file here Faites glisser un fichier d'image ISO ici OR OU Select an ISO image file Sélectionner une image ISO Next Suivant Reselect an ISO image file Sélectionner une autre image ISO Illegal ISO image file Fichier image ISO illégal Detecting ISO file, please wait... Détection du fichier ISO, veuillez patienter... ProgressView Burning Gravage Burning, please wait... Gravage, veuillez patienter... Do not remove the disk or shut down the computer during the process Veuillez ne pas retirer le disque ou éteindre l'ordinateur pendant le traitement Cancel Annuler QObject Removable Disk Périphérique amovible Removable disk Périphérique amovible Boot Maker Boot Maker ResultView Reboot now Redémarrer Done Terminé Successful Réussi The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Le journal des erreurs sera automatiquement envoyé avec des annotations. Sans cela nous ne pouvons pas améliorer le programme Submit Feedback Envoyer des commentaires After-Sale Services Services après-vente Close Fermer Sorry, process failed Désolé, le processus a échoué Process failed Échec du processus UnmountUsbView Verifying data and safely removing the media, please wait... Vérification des données et retrait du support en toute sécurité, veuillez patienter... UsbSelectView Select a partition Sélectionner une partition Format the partition Formater la partition Start Démarrer Back Retour Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Le formatage effacera toutes les données de la partition, mais peut augmenter le taux de réussite, veuillez confirmer avant de continuer Formatting the partition will overwrite all data, please have a backup before proceeding. Le formatage de la partition écrasera toutes les données, veuillez avoir une sauvegarde avant de continuer. Disk Format Error: Please format the partition with FAT32 Erreur de format de disque : veuillez formater la partition en FAT32 No disk available Aucun disque disponible Format Partition Formater la partition Cancel Annuler OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_kn_IN.ts0000644000175000017500000002274414122570751026221 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next ಮುಂದೆ Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_el.ts0000644000175000017500000002442414122570751025620 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Σφάλμα προσάρτησης δίσκου: Συνδέστε τον δίσκο ξανά ή επανεκκινήστε τον υπολογιστή για να προσπαθήσετε ξανά Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Λάθος κατά την αποσυμπίεση της εικόνας: Ελέγξτε το md5 συνάθροισμα της εικόνας για να εξασφαλιστεί η ακεραιότητα της Internal Error Εσωτερικό Σφάλμα BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR OR Select an ISO image file Επιλέξτε ένα ISO αρχείο Drag an ISO image file here Next Επόμενο Illegal ISO image file Reselect an ISO image file Επανεπιλέξτε ένα ISO αρχείο Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Μην αφαιρείται τον δίσκο ή κάνετε τερματισμό του υπολογιστή κατά την διάρκεια της διαδικασίας Cancel Ακύρωση QObject Removable Disk Αφαιρούμενος δίσκος Removable disk Αφαιρούμενος δίσκος Boot Maker ResultView Reboot now Επανεκκίνηση Τώρα Done Τέλος Successful Επιτυχία The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Το αρχείο καταγραφής θα ανεβεί αυτόματα μαζί με την αναφορά. Δεν μπορούμε να το βελτιώσουμε χωρίς τις αναφορές σας. Submit Feedback Υποβάλλεται αναφορά After-Sale Services Close Κλείσιμο Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Ακύρωση OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ast.ts0000644000175000017500000002264614122570751026013 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error Fallu internu BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Ó Select an ISO image file Esbilla un ficheru n'ISO Drag an ISO image file here Next Siguiente Illegal ISO image file Reselect an ISO image file Esbillar otru ficheru n'ISO Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Encaboxar QObject Removable Disk Discu estrayible Removable disk Discu estrayible Boot Maker ResultView Reboot now Reaniciar agora Done Fecho Successful Con ésitu The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Zarrar Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Encaboxar OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_pam.ts0000644000175000017500000002267414122570751026002 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel I-cancel QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Successful Milyari ya The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Isara Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel I-cancel OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_sr.ts0000644000175000017500000002636614122570751025653 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Грешка при форматирању диска: Поново форматирајте Insufficient disk Space: Ensure that the disk has enough free space Недовољно простора на диску. Осигурајте да диск има довољно слободног простора. Disk Mount Error: Insert the disk again or reboot to retry Грешка монтирања диска: поново прикључите диск или поновно покрените систем Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Грешка при распакивању одраза: верификујте МД5 суму одраза и проверите да ли је одраз комплетан Internal Error Унутрашња грешка BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Творац Покретача је једноставан алат којом се исписује системски одраз на УСБ преносиве уређаје и друге медије. Boot Maker Творац Покретача ISOSelectView Drag an ISO image file here Превуци ИСО одраз овде OR Или Select an ISO image file Изабери ИСО датотеку Next Следеће Reselect an ISO image file Реизбор датотеке ИСО одраза Illegal ISO image file Неважећи ИСО одраз Detecting ISO file, please wait... Откривање ИСО датотеке, молимо сачекајте... ProgressView Burning Уписивање Burning, please wait... Уписивање, молимо сачекајте... Do not remove the disk or shut down the computer during the process Немојте уклањати диск или искључивати рачунар током процеса Cancel Откажи QObject Removable Disk Уклоњиви диск Removable disk Уклоњиви диск Boot Maker Творац Покретача ResultView Reboot now Поново покрени сад Done Готово Successful Успешно The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Записник грешака ће бити отпремљен аутоматски са повратним информацијама. Не можемо напредовати без ваших повратних информација Submit Feedback Пошаљи информације After-Sale Services Услуге након продаје Close Затвори Sorry, process failed Извините, процес је неуспешан Process failed Процес неуспешан UnmountUsbView Verifying data and safely removing the media, please wait... Провера пдатака и безбедно уклањање уређаја, молимо сачекајте... UsbSelectView Select a partition Изабери партицију Format the partition Форматирај партицију Start Покрени Back Назад Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Форматирање ће обрисати све податке партиције, али може повећети стопу успеха. Потврдите за наставак. Formatting the partition will overwrite all data, please have a backup before proceeding. Форматирање партиције ће обрисати све податке, молимо направите резерву пре него што наставите. Disk Format Error: Please format the partition with FAT32 Грешка формата диска: форматирајте партицију као FAT32 No disk available Нема доступног диска Format Partition Форматирај партицију Cancel Откажи OK У реду deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_vi.ts0000644000175000017500000002265114122570751025636 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Kế tiếp Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Hủy QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Xong Successful Thành công The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Đóng lại Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Hủy OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_hr.ts0000644000175000017500000002374314122570751025634 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Nedovoljno prostora na disku: osigurajte da disk ima dovoljno slobodnog prostora Disk Mount Error: Insert the disk again or reboot to retry Greška montiranja diska: Umetnite disk ponovno ili ponovno podignite sustave za ponovni pokušaj Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Medij za podizanje sustava ISOSelectView Drag an ISO image file here Privuci ISO slikovnu datoteku ovdje OR ILI Select an ISO image file Odaberite ISO slikovnu datoteku Next Slijedeće Reselect an ISO image file Ponovno odaberite ISO slikovnu datoteku Illegal ISO image file Ilegalna ISO slikovna datoteka Detecting ISO file, please wait... Otkrivam ISO datoteku, molim pričekajte... ProgressView Burning Snimam Burning, please wait... Snimam, molim pričekajte... Do not remove the disk or shut down the computer during the process Nemojte ukloniti disk ili isključiti računalo tijekom procesa Cancel Otkaži QObject Removable Disk Uklonjivi disk Removable disk Uklonjivi disk Boot Maker Medij za podizanje sustava ResultView Reboot now Ponovno podigni sustav sada Done Učinjeno Successful Uspješno The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Zapis grešaka će biti automatski poslan s vašim povratnim informacijama. ne možemo poboljšavati bez vaših povratnih informacija Submit Feedback Pošalji povratnu informaciju After-Sale Services Close Zatvori Sorry, process failed Oprostite, proces nije uspio Process failed Proces nije uspio UnmountUsbView Verifying data and safely removing the media, please wait... Ovjeravam podatke i sigurno uklanjam medij, molim pričekajte... UsbSelectView Select a partition Odaberi particiju Format the partition Formatiraj particiju Start Pokreni Back Natrag Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatiranje će izbrisati sve podatke na particiji, ali može povećati uspješnost, molim potvrdite prije nego nastavite Formatting the partition will overwrite all data, please have a backup before proceeding. Formatiranje diska će izbrisati sve podatke, molim napravite sigurnosnu kopiju prije nego nastavite. Disk Format Error: Please format the partition with FAT32 Greška formatiranja diska: Molim formatirajte particiju pomoću FAT32 No disk available Nema dostupnih diskova Format Partition Formatiraj particiju Cancel Otkaži OK U redu deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_nb.ts0000644000175000017500000002262714122570751025622 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Neste Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Avbryt QObject Removable Disk Removable disk Flyttbar disk Boot Maker ResultView Reboot now Done Ferdig Successful Vellykket The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Lukk Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Avbryt OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_lt.ts0000644000175000017500000002361114122570751025634 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Disko prijungimo klaida: Įdėkite diską dar kartą arba, norėdami bandyti vėl, paleiskite sistemą iš naujo Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Atvaizdžio išglaudinimo klaida: Patikrinkite atvaizdžio md5 kontrolinę sumą, kad užtikrintumėte atvaizdžio vientisumą Internal Error Vidinė klaida BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Paleidimo kūrėjas ISOSelectView Drag an ISO image file here Vilkite ISO atvaizdžio failą čia OR ARBA Select an ISO image file Pasirinkite ISO atvaizdžio failą Next Kitas Reselect an ISO image file Iš naujo pasirinkti ISO atvaizdžio failą Illegal ISO image file Neleistinas ISO atvaizdžio failas Detecting ISO file, please wait... Aptinkamas ISO failas, palaukite... ProgressView Burning Rašoma Burning, please wait... Rašoma, palaukite... Do not remove the disk or shut down the computer during the process Proceso metu nešalinkite disko ir neišjunkite kompiuterio Cancel Atsisakyti QObject Removable Disk Keičiamasis diskas Removable disk Keičiamasis diskas Boot Maker Paleidimo kūrėjas ResultView Reboot now Paleisti iš naujo dabar Done Atlikta Successful Sėkmingai The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Klaidos žurnalas bus automatiškai įkeltas kartu su atsiliepimu. Be jūsų atsiliepimo, mes negalime nieko patobulinti Submit Feedback Pateikti atsiliepimą After-Sale Services Close Užverti Sorry, process failed Atleiskite, procesas patyrė nesėkmę Process failed Procesas patyrė nesėkmę UnmountUsbView Verifying data and safely removing the media, please wait... Tikrinami duomenys ir saugiai pašalinama laikmena, palaukite... UsbSelectView Select a partition Format the partition Start Pradėti Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Nėra prieinamų diskų Format Partition Cancel Atsisakyti OK Gerai deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ml.ts0000644000175000017500000002302114122570751025620 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next അടുത്തത് Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel റദ്ദാക്കുക QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done പൂർത്തിയായി Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel റദ്ദാക്കുക OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_da.ts0000644000175000017500000002327214122570751025604 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Diskmonteringsfejl: Sæt disken i igen eller genstart, for at prøve igen Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Aftryksudpakningsfejl: Bekræft venligst aftrykkets md5-tjeksum og sørg for at aftrykket er komplet Internal Error Intern fejl BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Bootskaber ISOSelectView Drag an ISO image file here Træk en ISO-aftryksfil her OR ELLER Select an ISO image file Vælg en ISO-aftryksfil Next Næste Reselect an ISO image file Vælg en ISO-aftryksfil igen Illegal ISO image file Forbudt ISO-aftryksfil Detecting ISO file, please wait... Registrerer ISO-fil, vent venligst... ProgressView Burning Brænder Burning, please wait... Brænder, vent venligst... Do not remove the disk or shut down the computer during the process Fjern venligst ikke disken og luk ikke computeren under oprettelse Cancel Annuller QObject Removable Disk Flytbar disk Removable disk Flytbar disk Boot Maker Bootskaber ResultView Reboot now Genstart nu Done Færdig Successful Vellykket The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Fejlloggen uploades automatisk med feedback. Vi kan ikke forbedre det uden din feedback og support Submit Feedback Indsend feedback After-Sale Services Close Luk Sorry, process failed Beklager, proces mislykkedes Process failed Proces mislykkedes UnmountUsbView Verifying data and safely removing the media, please wait... Bekræfter data og fjerner mediet sikkert, vent venligst ... UsbSelectView Select a partition Format the partition Start Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Ingen disk tilgængelig Format Partition Cancel Annuller OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ja.ts0000644000175000017500000002271114122570751025607 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next 次へ Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel キャンセル QObject Removable Disk Removable disk リムーバブルディスク Boot Maker ResultView Reboot now Done 完了 Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close 閉じる Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel キャンセル OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_pl.ts0000644000175000017500000002426114122570751025632 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Błąd formatu dysku: Sformatuj go ponownie Insufficient disk Space: Ensure that the disk has enough free space Niewystarczająca ilość miejsca na dysku: Upewnij się, że dysk ma wystarczającą ilość wolnego miejsca Disk Mount Error: Insert the disk again or reboot to retry Błąd montowania dysku: Włóż dysk ponownie lub uruchom ponownie, aby spróbować ponownie Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Błąd dekompresji obrazu: Sprawdź sumę kontrolną md5 obrazu, aby zapewnić jego integralność Internal Error Błąd wewnętrzny BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker jest prostym narzędziem do zapisu pliku obrazu na pendrive lub inne media. Boot Maker Twórca rozruchu ISOSelectView Drag an ISO image file here Przeciągnij tutaj plik obrazu ISO OR LUB Select an ISO image file Wybierz plik obrazu ISO Next Następny Reselect an ISO image file Wybierz ponownie plik obrazu ISO Illegal ISO image file Nielegalny plik obrazu ISO Detecting ISO file, please wait... Wykrywanie pliku ISO, proszę czekać... ProgressView Burning Nagrywanie Burning, please wait... Nagrywanie, proszę czekać... Do not remove the disk or shut down the computer during the process Nie usuwaj dysku ani nie wyłączaj komputera podczas procesu Cancel Anuluj QObject Removable Disk Dysk wymienny Removable disk Dysk wymienny Boot Maker Boot Maker ResultView Reboot now Uruchom ponownie teraz Done Gotowe Successful Zakończone pomyślnie The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Dziennik błędów zostanie automatycznie przesłany wraz z informacją zwrotną. Nie możemy poprawić bez Twojej opinii Submit Feedback Prześlij opinię After-Sale Services Usługi posprzedażne Close Zamknij Sorry, process failed Przepraszamy, proces nie powiódł się Process failed Proces nie powiódł się UnmountUsbView Verifying data and safely removing the media, please wait... Weryfikuję dane i bezpiecznie usuwam media, proszę czekać... UsbSelectView Select a partition Wybierz partycję Format the partition Formatuj partycję Start Rozpocznij Back Wstecz Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatowanie usunie wszystkie dane z partycji, ale zwiększy szansę na ukończenie instalacji. Potwierdź przed kontynuacją. Formatting the partition will overwrite all data, please have a backup before proceeding. Formatowanie partycji usunie wszystkie dane! Upewnij się, że masz kopię zapasową przed kontynuacją. Disk Format Error: Please format the partition with FAT32 Błąd formatowania dysku: Sformatuj partycję jako FAT32. No disk available Brak dostępnego dysku Format Partition Formatuj partycję. Cancel Anuluj OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_pt_BR.ts0000644000175000017500000002406414122570751026226 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Erro de Formato do Disco: Reformate-o Insufficient disk Space: Ensure that the disk has enough free space Espaço insuficiente em disco: Certifique-se de que o disco tenha espaço livre suficiente Disk Mount Error: Insert the disk again or reboot to retry Erro ao Montar: Insira novamente o disco ou reinicie Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Erro de Descompressão da Imagem: Verifique a integridade da imagem (MD5) Internal Error Erro Interno BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. O Criador de Mídia Inicializável é uma ferramenta para gravar os arquivos de imagem do sistema, em dispositivos de armazenamento removível e em outras mídias. Boot Maker Criador de Mídia Inicializável ISOSelectView Drag an ISO image file here Arraste e solte a imagem .iso aqui OR ou Select an ISO image file Selecione a ISO Next Próximo Reselect an ISO image file Selecione novamente a ISO Illegal ISO image file Está imagem ISO é ilegal Detecting ISO file, please wait... Detectando a ISO, aguarde... ProgressView Burning Gravando Burning, please wait... Gravando, aguarde... Do not remove the disk or shut down the computer during the process Não remova o disco ou desligue o computador durante este processo Cancel Cancelar QObject Removable Disk Disco Removível Removable disk Disco removível Boot Maker Criador de Mídia Inicializável ResultView Reboot now Reiniciar Agora Done Concluído Successful Bem-sucedido! The error log will be uploaded automatically with the feedback. We cannot improve without your feedback O log de erro será enviado com o feedback. Submit Feedback Enviar Feedback After-Sale Services Serviços de Pós-venda Close Fechar Sorry, process failed Falha no Processo Process failed Falha no Processo UnmountUsbView Verifying data and safely removing the media, please wait... Verificando os dados e removendo a mídia com segurança, aguarde... UsbSelectView Select a partition Selecione uma partição Format the partition Formatar a partição Start Iniciar Back Voltar Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding A formatação apagará todos os dados da partição; mas, poderá aumentar a taxa de sucesso. Confirme antes de prosseguir Formatting the partition will overwrite all data, please have a backup before proceeding. A formatação da partição irá sobrescrever todos os dados. Crie um backup antes de prosseguir. Disk Format Error: Please format the partition with FAT32 Erro de Formato do Disco: Formate a partição em FAT32 No disk available Nenhum disco disponível Format Partition Formatar Partição Cancel Cancelar OK Ok deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_lo.ts0000644000175000017500000002275214122570751025634 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel ຍົກເລີກ QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel ຍົກເລີກ OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_uk.ts0000644000175000017500000002716214122570751025641 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Помилка форматування диска. Будь ласка, виконайте його повторне форматування. Insufficient disk Space: Ensure that the disk has enough free space Недостатньо місця на диску: будь ласка, переконайтесь, що на диску достатньо вільного місця Disk Mount Error: Insert the disk again or reboot to retry Помилка монтування диску: Будь ласка, знову підключіть диск або перезавантажте систему, щоб повторити спробу Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Помилка розпакування образу: Будь ласка, перевірте контрольну суму md5 образу, щоб забезпечити його цілісність Internal Error Внутрішня помилка BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker — це простий інструмент для запису файлів образів систем на флеш-пам'ять USB та інші носії даних. Boot Maker Створення дисків ISOSelectView Drag an ISO image file here Сюди можна перетягнути файл образу ISO OR АБО Select an ISO image file Виберіть ISO-файл образу диску Next Далі Reselect an ISO image file Повторно виберіть файл образу ISO Illegal ISO image file Некоректний файл образу ISO Detecting ISO file, please wait... Обробляємо дані файла ISO. Будь ласка, зачекайте… ProgressView Burning Записуємо Burning, please wait... Записуємо дані. Будь ласка, зачекайте… Do not remove the disk or shut down the computer during the process Не виймайте диск і не вимикайте комп'ютер під час процесу. Cancel Скасувати QObject Removable Disk Знімний диск Removable disk Знімний диск Boot Maker Створення дисків ResultView Reboot now Перезавантажити зараз Done Готово Successful Успішно The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Журнал помилок буде завантажено автоматично з відгуками. Ми не можемо покращити без вашого відгуку Submit Feedback Надіслати Відгук After-Sale Services Післяпродажне обслуговування Close Закрити Sorry, process failed Вибачте, не вдалося виконати Process failed Помилка під час виконання UnmountUsbView Verifying data and safely removing the media, please wait... Перевіряємо дані і безпечно вилучаємо носій із системи. Будь ласка, зачекайте… UsbSelectView Select a partition Виберіть розділ Format the partition Форматувати розділ Start Почати Back Назад Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Форматування знищить усі дані на розділі, але може підвищити ймовірність успішного користування розділом. Будь ласка, підтвердьте дію. Formatting the partition will overwrite all data, please have a backup before proceeding. Форматування розділу призведе до перезапису усіх даних. Будь ласка, створіть резервну копію важливих даних, перш ніж продовжувати. Disk Format Error: Please format the partition with FAT32 Помилка форматування диска: будь ласка, форматуйте розділ у FAT32 No disk available Немає доступних дисків Format Partition Форматувати розділ Cancel Скасувати OK Гаразд deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_fa.ts0000644000175000017500000002305214122570751025602 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error خطای داخلی BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR یا Select an ISO image file یک فایل ISO انتخاب کنید Drag an ISO image file here Next بعدی Illegal ISO image file Reselect an ISO image file لطفا دوباره یک فایل ISO انتخاب کنید Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel انصراف QObject Removable Disk درایو جدا شونده Removable disk درایو جدا شونده Boot Maker ResultView Reboot now هم اکنون راه اندازی مجدد شود Done انجام شد Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close بستن Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel انصراف OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_sv.ts0000644000175000017500000002265014122570751025647 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Nästa Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Avbryt QObject Removable Disk Removable disk Löstagbar hårddisk Boot Maker ResultView Reboot now Done Klar Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Stäng Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Avbryt OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_cs.ts0000644000175000017500000002372414122570751025627 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Chyba při připojování disku: Disk odpojte a znovu připojte nebo počítač restartujte – pak znovu zkuste zapsat Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Chyba při rozbalování obrazu: Zkontrolujte md5 kontrolní součet obrazu a ověřte tak, zda je obraz v pořádku Internal Error Vnitřní chyba BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Vytvoření spouštěcího média ISOSelectView Drag an ISO image file here Soubor s ISO obrazem přetáhněte sem OR NEBO Select an ISO image file Vybrat soubor s ISO obrazem Next Další Reselect an ISO image file Znovu vybrat soubor s ISO obrazem Illegal ISO image file Neplatný soubor s ISO obrazem Detecting ISO file, please wait... Zjišťování souboru s ISO obrazem – čekejte prosím… ProgressView Burning Zapisování Burning, please wait... Zapisování – čekejte prosím… Do not remove the disk or shut down the computer during the process V průběhu vytváření disk nevyjímejte a ani nevypínejte počítač. Cancel Zrušit QObject Removable Disk Vyjímatelný disk Removable disk Vyjímatelný disk Boot Maker Vytvoření spouštěcího média ResultView Reboot now Restartovat nyní Done Hotovo Successful Úspěšné The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Společně se zpětnou vazbou bude odeslán záznam událostí ohledně chyby. Jen tak to můžeme opravit/vylepšit Submit Feedback Odeslat zpětnou vazbu vývojářům After-Sale Services Poprodejní služby Close Zavřít Sorry, process failed Je nám líto, proces se nezdařil Process failed Proces se nezdařil UnmountUsbView Verifying data and safely removing the media, please wait... Ověřování správnosti zapsaných dat a bezpečné odebírání média – čekejte prosím… UsbSelectView Select a partition Vybrat oddíl Format the partition Start Zahájit Back Zpět Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Nenalezen žádný vhodný disk Format Partition Cancel Zrušit OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_bn.ts0000644000175000017500000002514714122570751025622 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry ডিস্ক মাউন্টে ত্রুটি: ডিস্কটি পুনরায় লাগান অথবা আবার চেষ্টা করতে সিস্টেমটি রিবুট করুন Image Decompression Error: Verify md5 checksum of the image to ensure its integrity ইমেজ ডিকম্প্রেশনে ত্রুটি: ইমেজের md5 checksum পরীক্ষা করুন এবং নিশ্চিত করুন যে ইমেজটি সম্পূর্ণ Internal Error অভ্যন্তরীণ ত্রুটি BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR অথবা Select an ISO image file একটি ISO ফাইল নির্বাচন করুন Drag an ISO image file here Next পরবর্তী Illegal ISO image file Reselect an ISO image file পুনরায় একটি ISO ফাইল নির্বাচন করুন Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process প্রসেসটি চলাকালে ডিস্কটি খুলে ফেলবেন না অথবা কম্পিউটারটি বন্ধ করবেন না Cancel বাতিল QObject Removable Disk অপসারণযোগ্য ডিস্ক Removable disk অপসারণযোগ্য ডিস্ক Boot Maker ResultView Reboot now এখনি পুনঃরায় চালু করুন Done শেষ Successful সফল হয়েছে The error log will be uploaded automatically with the feedback. We cannot improve without your feedback এই ত্রুটির লগটি আপনা আপনিই প্রতিক্রিয়া সহকারে আপলোড হবে। আমরা আপনাদের প্রতিক্রিয়া ছাড়া উন্নত করতে পারবনা Submit Feedback প্রতিক্রিয়া জমা দিন After-Sale Services Close বন্ধ Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel বাতিল করুন OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_zh_TW.ts0000644000175000017500000002400014122570751026241 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center 磁碟格式錯誤:請勾選格式化分區或關閉安全中心USB自動檢測重新製作 Disk Format Error: Please reformat it 磁碟格式錯誤:請勾選格式化分區重新製作 Insufficient disk Space: Ensure that the disk has enough free space 磁碟空間不足:請確保有足夠的剩餘空間 Disk Mount Error: Insert the disk again or reboot to retry 磁碟機掛載錯誤:請再次插入磁碟機或是重新啟動系統 Image Decompression Error: Verify md5 checksum of the image to ensure its integrity 映像檔解壓縮錯誤:請檢查映像檔 md5 總和檢查碼,並確保其完整 Internal Error 內部錯誤 BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. 啟動盤製作工具是一款將系統鏡像文件寫入外接儲存介質的小工具。 Boot Maker 開機碟製作器 ISOSelectView Drag an ISO image file here 拖拽 ISO 檔案到此 OR 或是 Select an ISO image file 選擇一個 ISO 檔案 Next 下一步 Reselect an ISO image file 重新選擇 ISO 檔案 Illegal ISO image file 非法ISO文件 Detecting ISO file, please wait... 正在檢測ISO文件,請稍候... ProgressView Burning 正在製作 Burning, please wait... 正在製作,請稍候... Do not remove the disk or shut down the computer during the process 製作期間請勿移除磁碟機或關閉電腦 Cancel 取消 QObject Removable Disk 卸除式磁碟機 Removable disk 卸除式磁碟機 Boot Maker 開機碟製作器 ResultView Reboot now 立刻重新啟動 Done 完成 Successful 製作成功 The error log will be uploaded automatically with the feedback. We cannot improve without your feedback 意見回應將會自動上傳錯誤紀錄。沒有你的意見回應與支持,我們無法進步 Submit Feedback 意見回應 After-Sale Services 售後服務 Close 離開 Sorry, process failed 抱歉,製作失敗 Process failed 製作失敗 UnmountUsbView Verifying data and safely removing the media, please wait... 同步資料和安全移除中,請稍候... UsbSelectView Select a partition 請選擇分區 Format the partition 格式化分區 Start 開始 Back 返回 Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding 格式化將徹底刪除分區上的資料,但可提高製作成功率,請確認後繼續 Formatting the partition will overwrite all data, please have a backup before proceeding. 格式化分區將遺失該分區上所有資料,請做好備份後繼續。 Disk Format Error: Please format the partition with FAT32 磁碟格式錯誤:請使用FAT32格式重新格式化分區 No disk available 未發現可用磁碟 Format Partition 格式化分區 Cancel 取消 OK 確認 deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ky@Arab.ts0000644000175000017500000002277214122570751026535 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR جە Select an ISO image file Drag an ISO image file here Next كئيىنكى Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel جوققو چىعارۇۇ QObject Removable Disk تارتما دىسك Removable disk تارتما دىسك Boot Maker ResultView Reboot now өчүрүп-күйгүзүү Done بۉتتۉ Successful ئيگىلىكتۉۉ The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback جووپ پىكىر تاپشىرۇۇ After-Sale Services Close جابۇۇ Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel جوققو چىعارۇۇ OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ro.ts0000644000175000017500000002336714122570751025645 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Eroare montare disc: Introduceţi discul din nou sau restartaţi pentru a reîncerca Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Eroare decomprimare imagine: Verificați suma de control md5 a imaginii pentru a asigura integritatea acesteia Internal Error Eroare internă BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR sau Select an ISO image file Selectați o imagine ISO Drag an ISO image file here Next Următorul Illegal ISO image file Reselect an ISO image file Reselectați o imagine ISO Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Nu scoateți discul sau nu opriți calculatorul în timpul procesului Cancel Anulează QObject Removable Disk Dispozitiv amovibil Removable disk Dispozitiv amovibil Boot Maker ResultView Reboot now Restartează acum Done Efectuat Successful cu succes The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Jurnalul de erori va fi încărcat automat cu feedbackul. Nu putem să ne îmbunătățim fără feedback-ul dumneavoastră Submit Feedback Trimiteţi Feedback-ul dumneavoastră After-Sale Services Close Închidere Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Anulare OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_gl_ES.ts0000644000175000017500000002337514122570751026215 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Erro de montaxe de disco: insira o disco de novo ou reinicie para intentalo de novo Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Erro de descompresión da imaxe: verifique o resumo md5 da imaxe para garantir a súa integridade Internal Error Erro interno BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Creador de arranque ISOSelectView Drag an ISO image file here Arrastre aquí un ficheiro de imaxe ISO OR OU Select an ISO image file Selecciona unha imaxe ISO Next Seguinte Reselect an ISO image file Volve seleccionar unha imaxe ISO Illegal ISO image file Ficheiro de imaxe ISO ilegal Detecting ISO file, please wait... Detectando ficheiro ISO, agarde... ProgressView Burning Gravando... Burning, please wait... Gravando, agarde... Do not remove the disk or shut down the computer during the process Non elimine o disco nin apague o computador durante o proceso Cancel Cancelar QObject Removable Disk Disco extraible Removable disk Disco extraíble Boot Maker Creador de arranque ResultView Reboot now Reiniciar agora Done Feito Successful Correcto The error log will be uploaded automatically with the feedback. We cannot improve without your feedback O rexistro de erros cargarase automaticamente co feedback. Non podemos mellorar sen os teus comentarios Submit Feedback Enviar comentarios After-Sale Services Servizos pos-venda Close Pechar Sorry, process failed Sentímolo, o proceso fallou Process failed O proceso fallou UnmountUsbView Verifying data and safely removing the media, please wait... Verificando datos e eliminando os medios de seguridade, agarde... UsbSelectView Select a partition Format the partition Start Iniciar Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Disco non dispoñíbel Format Partition Cancel Cancelar OK Aceptar deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_br.ts0000644000175000017500000002355714122570751025631 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Fazi en ur sevel an disk: lakait en-dro an disk e-barzh pe adloc'hit ar sistem evit klask en-dro Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Fazi diwaskañ ar skeudenn: Gwirit sammad kontrol MD5 ar skeudenn ha bezit asur emañ anterin Internal Error Fazi diabarzh BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Boot Maker ISOSelectView Drag an ISO image file here Rinklit ur restr skeudenn ISO amañ OR PE Select an ISO image file Diuzit ur skeudenn ISO Next Da-heul Reselect an ISO image file Diuzit ur skeudenn ISO all Illegal ISO image file Restr skeudenn ISO maez-lezenn Detecting ISO file, please wait... O tiguzhañ ar restr ISO, gortozit mar plij... ProgressView Burning Oc'h engravañ Burning, please wait... Oc'h engravañ, gortozit mar plij... Do not remove the disk or shut down the computer during the process Na dennit ket an disk ha na lazhit ket an urzhiataer e-pad an argerzh Cancel Nullañ QObject Removable Disk Disk lem-laka Removable disk Disk lem-laka Boot Maker Boot Maker ResultView Reboot now Adloc'hañ bremañ Done Graet Successful Berzh The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Renabl ar fazioù a vo kaset en un doare otomatek gant an evezhiadennoù. Diaes e vo deomp gwellaat hep hoc'h evezhiadennoù Submit Feedback Kas evezhiadennoù After-Sale Services Servij goude gwerzh Close Serriñ Sorry, process failed C'hwitet ez eus bet war ar prosesus, digarezit Process failed Fazi ar prosesus UnmountUsbView Verifying data and safely removing the media, please wait... O vezañ gwiriet emañ ar roadennoù ha tennañ-maez ar media en un doare sur, gortozit mar plij... UsbSelectView Select a partition Format the partition Start Loc'hañ Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available Disk ebet hegerz Format Partition Cancel Nullañ OK Mat eo deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_hi_IN.ts0000644000175000017500000002300614122570751026201 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next आगे Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel रद्द करो QObject Removable Disk Removable disk हटाए जाने योग्य डिस्क Boot Maker ResultView Reboot now Done हो गया Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close बंद Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel रद्द करें OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_he.ts0000644000175000017500000002265514122570751025620 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next הבא Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel ביטול QObject Removable Disk Removable disk כונן נשלף Boot Maker ResultView Reboot now Done בוצע Successful מוצלח The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close סגירה Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel ביטול OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ug.ts0000644000175000017500000003006614122570751025632 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center دىسكا فورماتى خاتا: فورماتلىماقچى بولغان رايوننى تاللاڭ ياكى بىخەتەرلىك مەركىزىنىڭ USB نى ئاپتوماتىك تەكشۈرۈش ئىقتىدارىنى تاقىۋەتكەندىن كېيىن قايتا سىناڭ Disk Format Error: Please reformat it دىسكىنى فورماتلاشتا خاتالىق كۆرۈلدى، قايتا سىناپ بېقىڭ Insufficient disk Space: Ensure that the disk has enough free space دىسكا بوشلۇقى يېتىشمىدى: يېتەرلىك بوشلۇق بولۇشقا كاپالەتلىك قىلىڭ Disk Mount Error: Insert the disk again or reboot to retry دىسكا يۈكلەش خاتا: قايتىدىن دىسكا كىرگۈزۈڭ ياكى سىستېمىنى قايتا قوزغىتىپ سىناپ بېقىڭ Image Decompression Error: Verify md5 checksum of the image to ensure its integrity تەسۋىرنى پىرېستىن يېشىش مەغلۇب بولدى: تەسۋىر ھۆججىتىنىڭ md5 سىنى تەكشۈرۈپ سۈرەت ھۆججىتىنىڭ مۇكەممەل ئىكەنلىكىنى جەزملەشتۈرۈڭ Internal Error نامەلۇم خاتالىق BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. قوزغىتىش دىسكىسى ياساش قورالى بولسا سىستېما تەسۋىر ھۆججىتىنى ئوپتىكىلىق دىسكا، بارماق دىسكا قاتارلىق قاچىلاش ۋاسىتىلىرىغا يازىدىغان قورالچاقتۇر. Boot Maker قوزغىتىش تاختىسى ياساش قورالى ISOSelectView Drag an ISO image file here ئوپتىكىلىق دىسكا تەسۋىر ھۆججىتىنى بۇ يەرگە ئەكىرىڭ OR ياكى Select an ISO image file ئوپتىكىلىق دىسكا تەسۋىر ھۆججىتىنى تاللاڭ Next كېيىنكى Reselect an ISO image file ئوپتىكىلىق دىسكا تەسۋىر ھۆججىتىنى قايتىدىن تاللاڭ Illegal ISO image file ISO ھۆججىتى قانۇنسىز Detecting ISO file, please wait... ISO ھۆججىتىنى تەكشۈرۈۋاتىدۇ، سەل ساقلاڭ... ProgressView Burning ياسىلىۋاتىدۇ Burning, please wait... ياسىلىۋاتىدۇ، سەل ساقلاڭ... Do not remove the disk or shut down the computer during the process ياسىلىۋاتقاندا دىسكىدىن چىقىرىۋەتمەڭ ياكى ئېتىۋەتمەڭ Cancel بىكار قىلىش QObject Removable Disk يۆتكىلىشچان دىسكا Removable disk يۆتكىلىشچان دىسكا Boot Maker قوزغىتىش تاختىسى ياساش قورالى ResultView Reboot now ھازىرلا قايتا قوزغىتىش Done تامام Successful ياساش مۇۋەپپەقىيەتلىك بولدى The error log will be uploaded automatically with the feedback. We cannot improve without your feedback مەسىلە ئىنكاس قىلغاندا خاتا كۈندىلىك خاتىرە ئاپتوماتىك يوللىنىدۇ، تەرەققىياتىمىز سىزنىڭ ئىنكاسىڭىز ۋە قوللىشىڭىزدىن ئايرىلالمايدۇ Submit Feedback ئىنكاس تاپشۇرۇش After-Sale Services سېتىشتىن كېيىنكى مۇلازىمەت Close تاقاش Sorry, process failed ياساش مەغلۇپ بولدى، كەچۈرۈڭ Process failed ياساش مەغلۇپ بولدى UnmountUsbView Verifying data and safely removing the media, please wait... ماس قەدەملىك ئۇچۇر ۋە بىخەتەرلىك ئۆچۈرۈلىۋاتىدۇ، سەل ساقلاڭ... UsbSelectView Select a partition رايون تاللاڭ Format the partition رايوننى فورماتلاش Start ياساشنى باشلاش Back قايتىش Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding فورماتلاش رايوندىكى بارلىق سانلىق مەلۇماتلارنى ئۆچۈرۈۋېتىدۇ، ئەمما مۇۋەپپەقىيەت قازىنىش نىسبىتىنى ئاشۇرالايدۇ، داۋاملاشتۇرۇشتىن بۇرۇن جەزملەشتۈرۈڭ Formatting the partition will overwrite all data, please have a backup before proceeding. رايوننى فورماتلىسىڭىز بارلىق سانلىق مەلۇماتلارنى ئۆچۈرۈۋېتىدۇ، زاپاسلىۋالغاندىن كېيىن داۋملاشتۇرۇڭ Disk Format Error: Please format the partition with FAT32 دىىسكا فورماتى خاتا: FAT32 فورمات ئارقىلىق دىسكىنى قايتىدىن فورماتلاڭ No disk available ئىشلەتكىلى بولىدىغان دىسكا تېپىلمىدى Format Partition رايوننى فورماتلاش Cancel بىكار قىلىش OK جەزىملەشتۈرۈش deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_th.ts0000644000175000017500000002527114122570751025634 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry ข้อผิดพลาดของการเมานต์ดิสก์: ใส่ดิสก์อีกครั้งหรือรีบูตเพื่อลองอีกครั้ง Image Decompression Error: Verify md5 checksum of the image to ensure its integrity ข้อผิดพลาดการบีบอัดรูปภาพ: ตรวจสอบแฮท md5 ของภาพเพื่อให้แน่ใจว่าสมบูรณ์ Internal Error ข้อผิดพลาดภายใน BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Boot Maker ISOSelectView Drag an ISO image file here ลากไฟล์อิมเมจ ISO ใส่ที่นี่ OR หรือ Select an ISO image file เลือกไฟล์อิมเมจ ISO Next ถัดไป Reselect an ISO image file เลือกไฟล์อิมเมจ ISO อีกครั้ง Illegal ISO image file ไฟล์อิมเมจ ISO ที่ผิดกฎหมาย Detecting ISO file, please wait... กำลังตรวจหาไฟล์ ISO โปรดรอ... ProgressView Burning Burning Burning, please wait... Burning, โปรดรอ... Do not remove the disk or shut down the computer during the process อย่าดิสก์เอาหรือปิดเครื่องคอมพิวเตอร์ในระหว่างกระบวนการ Cancel ยกเลิก QObject Removable Disk ดิสก์แบบถอดได้ Removable disk ดิสก์แบบถอดได้ Boot Maker Boot Maker ResultView Reboot now รีบูทเดี๋ยวนี้ Done เสร็จสิ้น Successful สำเร็จ The error log will be uploaded automatically with the feedback. We cannot improve without your feedback บันทึกข้อผิดพลาดจะถูกอัปโหลดโดยอัตโนมัติพร้อมกับข้อเสนอแนะ เราไม่สามารถปรับปรุงได้หากไม่มีข้อเสนอแนะของคุณ Submit Feedback ส่งข้อเสนอแนะ After-Sale Services Close ปิด Sorry, process failed ขออภัยกระบวนการล้มเหลว Process failed กระบวนการล้มเหลว UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition Start เริ่ม Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available ไม่มีดิสก์ Format Partition Cancel ยกเลิก OK ตกลง deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_km_KH.ts0000644000175000017500000002575614122570751026222 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry កំហុសក្នុងថាសម៉ោនថ៍ៈបញ្ចូលថាសម្តងទៀតឬចាប់ផ្តើមឡើងវិញដើម្បីព្យាយាមម្តងទៀត Image Decompression Error: Verify md5 checksum of the image to ensure its integrity កំហុសក្នុងការដោះការបង្ហាប់រូបភាព៖ ផ្ទៀងផ្ទាត់ឆេកសាំ md5 នៃរូបភាពដើម្បីធានាបាននូវភាពត្រឹមត្រូវរបស់វា Internal Error កំហុស​ខាងក្នុង BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Boot Maker ISOSelectView Drag an ISO image file here ទាញឯកសាររូបភាព ISO នៅទីនេះ OR Select an ISO image file ជ្រើសរើសឯកសាររូបភាព ISO Next បន្ទាប់ Reselect an ISO image file ជ្រើសរើសឯកសាររូបភាព ISO ឡើងវិញ Illegal ISO image file ឯកសាររូបភាព ISO ខុសច្បាប់ Detecting ISO file, please wait... រកឃើញឯកសារ ISO សូមរង់ចាំ... ProgressView Burning កំពុងដុត Burning, please wait... កំពុងដុត សូមរង់ចាំ... Do not remove the disk or shut down the computer during the process កុំដកឌីសឬបិទកុំព្យួទ័រកំឡុងពេលដំណើរការ Cancel បោះបង់ QObject Removable Disk ថាសចល័ត Removable disk ថាសចល័ត Boot Maker Boot Maker ResultView Reboot now បិទ​និង​បើក​វិញ​ឥលូវ Done ធ្វើរួច Successful ជោគជ័យ The error log will be uploaded automatically with the feedback. We cannot improve without your feedback កំណត់ហេតុកំហុសនឹងត្រូវបានផ្ទុកឡើងដោយស្វ័យប្រវត្តិជាមួយនឹងមតិត្រឡប់។ យើងមិនអាចកែលម្អបានទេបើគ្មានមតិត្រឡប់របស់អ្នក Submit Feedback បញ្ជូនមតិត្រឡប់ After-Sale Services សេវាកម្មក្រោយពេលលក់ Close បិទ Sorry, process failed សូមអភ័យទោស ដំណើរការបានបរាជ័យ Process failed ដំណើរការបានបរាជ័យ UnmountUsbView Verifying data and safely removing the media, please wait... ផ្ទៀងផ្ទាត់ទិន្នន័យ និងដកមេឌៀចេញដោយសុវត្ថិភាព សូមរង់ចាំ... UsbSelectView Select a partition Format the partition Start ចាប់ផ្តើម Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available មិនមានឌីសទេ Format Partition Cancel បោះបង់ OK យល់ព្រម deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_de.ts0000644000175000017500000002451514122570751025611 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Datenträgerformatierungsfehler: Bitte neu formatieren Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Fehler beim Einhängen des Datenträgers: Bitte überprüfen Sie, ob die Verbindung zum Datenträger korrekt ist oder der Datenträger korrekt in das Laufwerk eingelegt wurde. Starten Sie anschließend den Rechner neu. Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Fehler beim Entpacken des Abbilds: Bitte prüfen Sie die MD5-Prüfsumme des Abbilds und stellen Sie sicher, dass es sich um ein vollständiges unbeschädigtes Abbild handelt. Internal Error Interner Fehler BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker Boot Maker ISOSelectView Drag an ISO image file here Ziehen Sie eine ISO-Abbild-Datei hierher OR oder Select an ISO image file ISO-Abbild auswählen Next Weiter Reselect an ISO image file Ein neues ISO-Abbild auswählen Illegal ISO image file Unzulässige ISO-Abbild-Datei Detecting ISO file, please wait... ISO-Datei wird erkannt, bitte warten... ProgressView Burning Wird gebrannt Burning, please wait... Wird gebrannt, bitte warten ... Do not remove the disk or shut down the computer during the process Entfernen Sie während des Vorgangs nicht den Datenträger und fahren Sie den Computer nicht herunter Cancel Abbrechen QObject Removable Disk Wechseldatenträger Removable disk Wechseldatenträger Boot Maker Boot Maker ResultView Reboot now Jetzt neu starten Done Fertig Successful Erfolgreich The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Das Fehlerprotokoll wird automatisch mit der Rückmeldung hochgeladen. Ohne Ihre Rückmeldung können wir uns nicht verbessern. Submit Feedback Rückmeldung senden After-Sale Services Kundendienst Close Schließen Sorry, process failed Entschuldigung, Vorgang fehlgeschlagen Process failed Vorgang fehlgeschlagen UnmountUsbView Verifying data and safely removing the media, please wait... Daten werden verifiziert und das Medium sicher ausgeworfen. Bitte warten ... UsbSelectView Select a partition Wählen Sie eine Partition aus Format the partition Start Start Back Zurück Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Bei der Formatierung werden alle Daten auf der Partition gelöscht, sie kann aber die Erfolgsquote erhöhen, bitte bestätigen Sie dies, bevor Sie fortfahren Formatting the partition will overwrite all data, please have a backup before proceeding. Beim Formatieren der Partition werden alle Daten überschrieben, bitte erstellen Sie eine Sicherungskopie, bevor Sie fortfahren. Disk Format Error: Please format the partition with FAT32 Datenträgerformatierungsfehler: Bitte formatieren Sie die Partition mit FAT32 No disk available Kein Datenträger verfügbar Format Partition Partition formatieren Cancel Abbrechen OK OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ky.ts0000644000175000017500000002276514122570751025651 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR же Select an ISO image file Drag an ISO image file here Next кийинки Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel жокко чыгаруу QObject Removable Disk тартма диск Removable disk тартма диск Boot Maker ResultView Reboot now өчүрүп-күйгүзүү Done бүттү Successful ийгиликтүү The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback жооп пикир тапшыруу After-Sale Services Close жабуу Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel жокко чыгаруу OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ko.ts0000644000175000017500000002400114122570751025620 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry 디스크 마운트 오류 : 디스크를 다시 삽입하거나 재시동하여 다시 시도하십시오 Image Decompression Error: Verify md5 checksum of the image to ensure its integrity 이미지 압축해제 오류: 이미지의 md5 체크섬을 확인하여 무결성을 확인하십시오 Internal Error 내부 에러 BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker 시동 제작도구 ISOSelectView Drag an ISO image file here ISO 이미지 파일을 여기로 끌어다 놓으십시오 OR 또는 Select an ISO image file ISO 이미지 파일 선택 Next 다음 Reselect an ISO image file ISO 이미지 파일 다시 선택 Illegal ISO image file 잘못된 ISO 이미지 파일 Detecting ISO file, please wait... ISO 파일을 검색하는 중, 기다려 주십시오... ProgressView Burning 굽기 Burning, please wait... 굽는 중, 기다려 주십시오... Do not remove the disk or shut down the computer during the process 시동 디스크 만들기 중에 디스크를 제거하거나 컴퓨터를 종료하지 마십시오 Cancel 취소 QObject Removable Disk 이동식 디스크 Removable disk 이동식 디스크 Boot Maker 시동 제작도구 ResultView Reboot now 지금 재시동 하기 Done 완료 Successful 성공 The error log will be uploaded automatically with the feedback. We cannot improve without your feedback 피드백과 함께 오류 로그가 자동으로 업로드됩니다. 우리는 당신의 의견 없다면 개선할 수 없습니다 Submit Feedback 피드백 제출 After-Sale Services Close 닫기 Sorry, process failed 죄송합니다, 프로세스가 실패했습니다 Process failed 프로세스가 실패했습니다 UnmountUsbView Verifying data and safely removing the media, please wait... 데이터를 확인하고 미디어를 안전하게 제거하는 중입니다, 기다려 주십시오... UsbSelectView Select a partition Format the partition Start 시작 Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available 사용 가능한 디스크 없음 Format Partition Cancel 취소 OK 확인 deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_sl.ts0000644000175000017500000002416414122570751025637 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Ni dovolj prostora: poskrbite, da bo na disku dovolj prostora Disk Mount Error: Insert the disk again or reboot to retry Napaka pri priklapljanju diska: Za nov poskus znova vstavite disk ali ponovno zaženite računalnik Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Napaka pri razširjanju posnetka: Preverite md5 checksum posnetka, da preverite njegovo celovitost Internal Error Notranja napaka BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Ustvarjalec zagona je preprosto orodje za zapisovanje datotek s posnetki na USB pomnilniške ključke ali druge nosilce. Boot Maker Ustvarjalec zagona ISOSelectView Drag an ISO image file here Sem povlecite ISO posnetek OR ALI Select an ISO image file Izberite ISO posnetek Next Naslednji Reselect an ISO image file Ponovno izberite ISO posnetek Illegal ISO image file Nedovoljen ISO posnetek Detecting ISO file, please wait... Prepoznavanje ISO posnetka, počakajte... ProgressView Burning Zapisovanje Burning, please wait... Zapisujem, počakajte... Do not remove the disk or shut down the computer during the process V času izvajanje tega procesa ne odstranjujte diska ali zaustavljajte delovanja računalnika Cancel Prekliči QObject Removable Disk Izmenljivi pogon Removable disk Izmenljivi pogon Boot Maker Ustvarjalec zagona ResultView Reboot now Ponovno zaženi Done Končano Successful Uspešno The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Beležka z napakami se bo samodejno naložila s povratno informacijo. Brez povratne informacije se ne moremo izboljšati Submit Feedback Posredujte povratno informacijo After-Sale Services Storitve po prodaji Close Zapri Sorry, process failed Oprostite, proces se ni izvedel uspešno Process failed Procesiranje ni uspelo UnmountUsbView Verifying data and safely removing the media, please wait... Preverjam podatke in varno odstranjujem nosilec. Počakajte... UsbSelectView Select a partition Izbira razdelka Format the partition Formatiranje razdelka Start Začni Back Nazaj Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatiranje bo izbrisalo vse podatke na razdelku, a lahko poveča možnost uspeha. Potrdite pred nadaljevanjem Formatting the partition will overwrite all data, please have a backup before proceeding. Formatiranje razdelka bo izbrisalo vse podatke. Poskrbite za varnostno kopijo pred nadaljevanjem. Disk Format Error: Please format the partition with FAT32 Napaka pri formatiranju diska: formatirajte razdelek kot FAT32 No disk available Ni diska Format Partition Formatiraj razdelek Cancel Prekliči OK V redu deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ta.ts0000644000175000017500000002276614122570751025633 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next அடுத்து Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel நிறுத்து QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done முடிந்தது Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close மூடு Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel நிறுத்து OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_id.ts0000644000175000017500000002266314122570751025617 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error Kesalahan Internal BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Atau Select an ISO image file Pilih berkas ISO Drag an ISO image file here Next Selanjutnya Illegal ISO image file Reselect an ISO image file Silakan pilih kembali sebuah berkas iso Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Batalkan QObject Removable Disk Disk yang dapat dilepas Removable disk Penyimpanan removable Boot Maker ResultView Reboot now Mulai ulang sekarang Done Selesai Successful Berhasil The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Tutup Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Batal OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ar.ts0000644000175000017500000002406014122570751025616 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry خطأ في تفعيل القرص: يرجى إدخال القرص مرة أخرى أو إعادة تشغيل النظام لإعادة المحاولة Image Decompression Error: Verify md5 checksum of the image to ensure its integrity مشكلة في فك ضغط عن الصورة: يرجى التحقق من عناصر المطابقة md5 للصورة وضمان اكتمال الصورة Internal Error خطا داخلي BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker صانع إقلاع ISOSelectView Drag an ISO image file here 1111 OR أو Select an ISO image file حدد ملف صورة القرص ISO Next التالي Reselect an ISO image file اعد تحديد ملف صورة القرص ISO Illegal ISO image file 1111 Detecting ISO file, please wait... 1111 ProgressView Burning يتم الآن الحرق Burning, please wait... يتم الآن الحرق، نرجوا الانتظار Do not remove the disk or shut down the computer during the process لا تقم بإزالة القرص أو إيقاف تشغيل الحاسوب أثناء العملية Cancel إلغاء QObject Removable Disk قرص قابل للإزالة Removable disk قرص قابل للإزالة Boot Maker صانع إقلاع ResultView Reboot now إعادة تشغيل اﻵن Done تم Successful تم بنجاح The error log will be uploaded automatically with the feedback. We cannot improve without your feedback سجل الخطأ سيتم رفعه تلقائيا مع الملاحظات . لا يمكننا التحسن بدون ملاحظاتكم Submit Feedback إرسال الملاحظات After-Sale Services Close إغلاق Sorry, process failed نأسف، فشلت العملية Process failed فشلت العملية UnmountUsbView Verifying data and safely removing the media, please wait... التحقق من البيانات وإزالة الوسائط بأمان، نرجوا الإنتظار... UsbSelectView Select a partition Format the partition Start ابدأ Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 No disk available 1111 Format Partition Cancel إلغاء OK موافق deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_en_AU.ts0000644000175000017500000002263614122570751026212 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Internal Error BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR Select an ISO image file Drag an ISO image file here Next Next Illegal ISO image file Reselect an ISO image file Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Cancel Cancel QObject Removable Disk Removable disk Boot Maker ResultView Reboot now Done Done Successful Successful The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Submit Feedback After-Sale Services Close Close Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Cancel OK deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_ca.ts0000644000175000017500000002461614122570751025606 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Error de format del disc: si us plau, torneu a formatar-lo. Insufficient disk Space: Ensure that the disk has enough free space Espai de disc insuficient: assegureu-vos que té prou espai lliure. Disk Mount Error: Insert the disk again or reboot to retry Error de muntatge de disc: torneu a connectar el disc o reinicieu el sistema per tornar-ho a provar. Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Error de descompressió d'imatge: comproveu la suma de verificació md5 de la imatge i assegureu-vos que sigui íntegra. Internal Error Error intern BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. El Creador de mitjans d'arrancada és una eina senzilla per escriure fitxers d'imatges de sistema en una memòria USB i altres mitjans. Boot Maker Creador de mitjans d'arrencada ISOSelectView Drag an ISO image file here Arrossegueu un fitxer ISO aquí OR O bé Select an ISO image file seleccioneu un fitxer d'imatge ISO Next Següent Reselect an ISO image file Torneu a seleccionar un fitxer ISO Illegal ISO image file Fitxer d'imatge ISO il·legal Detecting ISO file, please wait... Es detecta el fitxer ISO. Espereu, si us plau... ProgressView Burning Es grava Burning, please wait... Es grava. Espereu, si us plau... Do not remove the disk or shut down the computer during the process No desconnecteu el disc o atureu l'ordinador durant l'operació. Cancel Cancel·la QObject Removable Disk Disc extraïble Removable disk Disc extraïble Boot Maker Creador de mitjans d'arrencada ResultView Reboot now Reinicia ara Done Fet Successful Correcte The error log will be uploaded automatically with the feedback. We cannot improve without your feedback El registre d'errors es carregarà automàticament amb el contingut. No podem millorar sense la vostra informació de retorn. Submit Feedback Envia la informació de retorn After-Sale Services Serveis de postvenda Close Tanca Sorry, process failed El procés ha fallat. Process failed El procés ha fallat. UnmountUsbView Verifying data and safely removing the media, please wait... Es verifiquen les dades i s'eliminen els mitjans de manera segura. Espereu, si us plau... UsbSelectView Select a partition Seleccioneu una partició Format the partition Formata la partició Start Inicia Back Enrere Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding La formatació eliminarà totes les dades de la partició, però pot augmentar-ne el bon funcionament. Confirmeu-ho abans de continuar. Formatting the partition will overwrite all data, please have a backup before proceeding. Formatar la partició en sobreescriurà totes les dades. Si us plau, feu-ne una còpia de seguretat abans de continuar. Disk Format Error: Please format the partition with FAT32 Error de format de disc: si us plau, formateu la partició amb FAT32. No disk available No hi ha cap disc disponible. Format Partition Formata la partició Cancel Cancel·la OK D'acord deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_bo.ts0000644000175000017500000003402214122570751025613 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center སྡུད་སྡེར་རྣམ་གཞག་ནོར་འདུག རྣམ་གཞག་ཅན་དབྱེ་ཁུལ་འདེམས་པའམ་བདེ་འཇགས་ལྟེ་གནས་ཀྱི་USBརང་སྒྲུབ་ཞིབ་བཤེར་སྒོ་རྒྱག་རོགས། Disk Format Error: Please reformat it སྡུད་སྡེར་རྣམ་གཞག་ནོར་འདུག་པས། ཡང་བསྐྱར་བཟོ་རོགས། Insufficient disk Space: Ensure that the disk has enough free space སྡུད་སྡེར་གྱི་བར་སྟོང་མི་འདང་བས། བར་སྟོང་འདང་ངེས་ཡོད་པའི་འགན་ལེན་བྱེད། Disk Mount Error: Insert the disk again or reboot to retry སྡུད་སྡེར་ལེན་འཇོག་ནོར་བ། སྡུད་སྡེར་ཡང་བསྐྱར་འཇུག་པའམ་མ་ལག་བསྐྱར་སློང་བྱས་རྗེས་ཡང་བསྐྱར་ཚོད་ལྟ་གནང་དང་། Image Decompression Error: Verify md5 checksum of the image to ensure its integrity སྣང་བརྙན་སྡུད་གྲོལ་བྱེད་མི་ཐུབ། སྣང་བརྙན་ཡིག་ཆའི་md5ལ་ཞིབ་བཤེར་བྱས་ཏེ། སྣང་བརྙན་ཡིག་ཆ་ཆ་ཚང་ཡིན་པར་ཁག་ཐེག་བྱ་རྒྱུ། Internal Error མ་ཤེས་པའི་ནོར་འཁྲུལ། BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. འགོ་སློང་སྡེར་མ་བཟོ་བའི་ཡོ་བྱད་ནི་རྒྱུད་ཁོངས་ཀྱི་ཤེལ་བརྙན་ཡིག་ཆ་དག་གསོག་འཇོག་བར་རྗས་ནང་འབྲི་བའི་ཡོ་བྱད་ཆུང་ངུ་ཞིག་ཡིན། Boot Maker འགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད། ISOSelectView Drag an ISO image file here འོད་སྡེར་སྣང་བརྙན་ཡིག་ཆ་འདིར་འཇོག་རྒྱུ། OR ཡང་ན། Select an ISO image file འོད་སྡེར་སྣང་བརྙན་ཡིག་ཆ་འདེམས་རྒྱུ། Next རྗེས་མ། Reselect an ISO image file འོད་སྡེར་སྣང་བརྙན་ཡིག་ཆ་ཡང་བསྐྱར་འདེམས་རྒྱུ། Illegal ISO image file ཁྲིམས་འགལ་ISOཡིག་ཆ། Detecting ISO file, please wait... ISOཡིག་ཆ་བཤེར་འཇལ་བྱེད་བཞིན་པས། ཏོག་ཙམ་སྒུག་རོགས་གནང་། ProgressView Burning བཟོ་བཞིན་པ། Burning, please wait... བཟོ་བཞིན་ཡོད་པས། ཏོག་ཙམ་སྒུག་རོགས་གནང་། Do not remove the disk or shut down the computer during the process བཟོ་བའི་སྐབས་སུ་སྡུད་སྡེར་སྤོ་འབུད་དང་རྩིས་འཁོར་གློག་གསོད་བྱ་མི་རུང་། Cancel ཕྱིར་འཐེན། QObject Removable Disk སྤོ་རུང་སྡུད་སྡེར། Removable disk སྤོ་རུང་སྡུད་སྡེར། Boot Maker འགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད། ResultView Reboot now ལམ་སེང་བསྐྱར་སློང་བྱེད། Done གྲུབ་ཟིན། Successful བཟོ་ཐུབ་སོང་། The error log will be uploaded automatically with the feedback. We cannot improve without your feedback གནད་དོན་ལྡོག་སྐྱེལ་བྱེད་སྐབས་རང་འགུལ་ངང་ནོར་འཁྲུལ་ཉིན་ཐོ་སྐྱེལ་འཇོག་བྱེད་སྲིད། ང་ཚོའི་ཡར་རྒྱས་དང་སྐུ་ཉིད་ཀྱི་ལྡོག་སྐྱེལ་དང་རྒྱབ་སྐྱོར་བྲལ་ཐབས་མེད། Submit Feedback ལྡོག་སྐྱེལ་སྤྲོད་པ། After-Sale Services བཙོངས་རྗེས་ཞབས་ཞུ། Close སྒོ་བརྒྱབ། Sorry, process failed བཟོ་མི་ཐུབ་པས། དགོངས་པ་མ་ཚོམ། Process failed བཟོ་མི་ཐུབ། UnmountUsbView Verifying data and safely removing the media, please wait... གཞི་གྲངས་གོམ་མཉམ་དང་ཉེན་མེད་སྤོ་འབུད་བྱེད་བཞིན་པས། ཏོག་ཙམ་སྒུག་རོགས་གནང་། UsbSelectView Select a partition ཁུལ་དགར་རྣམ་གཞག་བཟོ་བ། Format the partition ཁུལ་དགར་རྣམ་གཞག་བཟོ་བ། Start བཟོ་འགོ་ཚུགས་པ། Back ཕྱིར་ལོག Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding རྣམ་གཞག་ཏུ་སྒྱུར་བ་འདིས་དབྱེ་ཁུལ་ཐོག་གི་གཞི་གྲངས་ཚང་མ་བསུབ་སྲིད། འོན་ཀྱང་བཟོ་ཚད་མཐོ་རུ་གཏོང་སྲིད་པས། གཏན་འཁེལ་རྗེས་མུ་མཐུད་བྱེད། Formatting the partition will overwrite all data, please have a backup before proceeding. རྣམ་གཞག་ཏུ་སྒྱུར་བ་འདིས་ཁུལ་དེའི་གཞི་གྲངས་ཚང་མ་བརླག་སྲིད་པས། གྲབས་ཉར་བྱས་རྗེས་མུ་མཐུད་བེད་སྤྱོད་བྱེད། Disk Format Error: Please format the partition with FAT32 སྡུད་སྡེར་གྱི་རྣམ་གཞག་ནོར་བས། FAT32རྣམ་གཞག་བེད་སྤྱད་བྱས་ཏེ་ཡང་བསྐྱར་རྣམ་གཞག་ཏུ་སྒྱུར་ནས་ཁུལ་དབྱེ་བ། No disk available སྤྱོད་རུང་བའི་སྡུད་སྡེར་རྙེད་མ་བྱུང་། Format Partition ཁུལ་དགར་རྣམ་གཞག་བཟོ་བ། Cancel ཕྱིར་འཐེན། OK གཏན་ཁེལ། deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/0000755000175000017500000000000014122570751022731 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_da.ts0000644000175000017500000000114314122570751025415 0ustar ephraimephraim desktopA tool to create boot mediaEt værktøj til at oprette bootmedie til Deepin OSBoot MakerBootskaberDeepin Boot MakerDeepin bootskaber deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_pl.ts0000644000175000017500000000117714122570751025453 0ustar ephraimephraim desktopA tool to create boot mediaNarzędzie do tworzenia nośników startowych dla systemu Deepin OSBoot MakerTwórca rozruchuDeepin Boot MakerTwórca rozruchu Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_pam.ts0000644000175000017500000000106114122570751025605 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_hi_IN.ts0000644000175000017500000000133214122570751026017 0ustar ephraimephraim desktopA tool to create boot mediaडीपिन ओएस हेतु बूट मीडिया बनाने का एक साधनBoot Makerबूट निर्माताDeepin Boot Makerडीपिन बूट निर्माता deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ro.ts0000644000175000017500000000120214122570751025445 0ustar ephraimephraim desktopA tool to create boot mediaUn instrument pentru a crea medii de încărcare pentru sistemul de operare DeepinBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ug.ts0000644000175000017500000000130714122570751025446 0ustar ephraimephraim desktopA tool to create boot mediaقوزغىتىش تاختىسى ياساش قورالىBoot Makerقوزغىتىش تاختىسى ياساش قورالىDeepin Boot Makerچوڭقۇر قوزغىتىش تاختىسى ياساش قورالى deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_eo.ts0000644000175000017500000000106614122570751025440 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin ekmarŝo faristo deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_pt_PT.ts0000644000175000017500000000112714122570751026061 0ustar ephraimephraim desktopA tool to create boot mediaCriador de Livecd de arranque para DeepinBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_it.ts0000644000175000017500000000123614122570751025450 0ustar ephraimephraim desktopA tool to create boot mediaUn tool per creare una pendrive avviabile di Deepin OS. Localizzazione italiana a cura di Massimo A. Carofano.Boot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_de.ts0000644000175000017500000000116314122570751025423 0ustar ephraimephraim desktopA tool to create boot mediaEin Werkzeug zum Erstellen von Bootmedien für Deepin OSBoot MakerBoot MakerDeepin Boot MakerDeepin Startmedium Ersteller deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ms.ts0000644000175000017500000000114314122570751025450 0ustar ephraimephraim desktopA tool to create boot mediaAlat yang menghasilkan cakera but untuk Deepin OSBoot MakerPembuat ButDeepin Boot MakerPembina But Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_fr.ts0000644000175000017500000000116614122570751025445 0ustar ephraimephraim desktopA tool to create boot mediaUn outil pour créer un média de démarrageBoot MakerCréateur de démarrageDeepin Boot MakerCréateur de démarrage Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ko.ts0000644000175000017500000000116314122570751025444 0ustar ephraimephraim desktopA tool to create boot mediaDeepin OS용 시동 미디어를 생성하는 도구Boot Maker시동 제작도구Deepin Boot MakerDeepin 부트 메이커 deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_km_KH.ts0000644000175000017500000000124114122570751026021 0ustar ephraimephraim desktopA tool to create boot mediaឧបករណ៍ដើម្បីបង្កើតមេឌៀប៊ូតBoot MakerBoot MakerDeepin Boot Makerអ្នកបង្កើតប៊ូត Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_sl.ts0000644000175000017500000000106614122570751025453 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerBoot izdelovalec Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_hr.ts0000644000175000017500000000110014122570751025433 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin medij za podizanje sustava deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_fa.ts0000644000175000017500000000126414122570751025423 0ustar ephraimephraim desktopA tool to create boot mediaنرم افزاری برای ساختن دیسک راه انداز سیستم عامل دیپینBoot Makerسازنده بوتDeepin Boot Makerسازنده بوت لینوکس دیپین deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_gl_ES.ts0000644000175000017500000000116614122570751026027 0ustar ephraimephraim desktopA tool to create boot mediaUnha ferramenta para crear soportes de arraqueBoot MakerCreador de arranqueDeepin Boot MakerCreador de arranque de Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_af.ts0000644000175000017500000000106614122570751025423 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Selflaai Skepper deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_lt.ts0000644000175000017500000000117114122570751025451 0ustar ephraimephraim desktopA tool to create boot mediaĮrankis, skirtas sukurti Deepin OS paleidimo laikmenąBoot MakerPaleidimo kūrėjasDeepin Boot MakerDeepin paleidimo kūrėjas deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_vi.ts0000644000175000017500000000106014122570751025445 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ar.ts0000644000175000017500000000117414122570751025437 0ustar ephraimephraim desktopA tool to create boot mediaأداة لإنشاء قرص إقلاع لـ Deepin OSBoot Makerصانع إقلاعDeepin Boot Makerمنشئ إقلاع ديبين deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_zh_CN.ts0000644000175000017500000000113514122570751026033 0ustar ephraimephraim desktopA tool to create boot media启动盘制作工具Boot Maker启动盘制作工具Deepin Boot Maker深度启动盘制作工具 deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_zh_TW.ts0000644000175000017500000000113014122570751026060 0ustar ephraimephraim desktopA tool to create boot media啟動盤製作工具Boot Maker開機碟製作器Deepin Boot MakerDeepin 開機碟製作器 deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_th.ts0000644000175000017500000000122314122570751025443 0ustar ephraimephraim desktopA tool to create boot mediaเครื่องมือในการสร้างสื่อสำหรับบูตBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ru.ts0000644000175000017500000000134014122570751025456 0ustar ephraimephraim desktopA tool to create boot mediaИнструмент создания загрузочного диска для ОС DeepinBoot MakerСоздание Загрузочного ДискаDeepin Boot MakerСоздание Загрузочного Диска Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_bn.ts0000644000175000017500000000131014122570751025424 0ustar ephraimephraim desktopA tool to create boot mediaডিপিন ওস এর জন্য বুট মিডিয়া তৈরীর একটি টুল।Boot Makerবুট মেকারDeepin Boot Makerডিপিন বুট মেকার deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_id_ID.ts0000644000175000017500000000111614122570751026001 0ustar ephraimephraim desktopA tool to create boot mediaPembuat CD But Langsung DeepinBoot MakerDeepin Boot MakerPembuat But Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_cs.ts0000644000175000017500000000120614122570751025436 0ustar ephraimephraim desktopA tool to create boot mediaNástroj pro vytváření instalačního médiaBoot MakerVytvoření instalačního médiaDeepin Boot MakerVytvoření instalačního média deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_el_GR.ts0000644000175000017500000000123614122570751026024 0ustar ephraimephraim desktopA tool to create boot mediaΔημιουργία εκκινήσιμων Live CD για το DeepinBoot MakerDeepin Boot MakerDeepin Εγγραφή Εκκινήσιμων Μονάδων deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_hu.ts0000644000175000017500000000121614122570751025446 0ustar ephraimephraim desktopA tool to create boot mediaEgy eszköz rendszerindító adathordozó készítéséhezBoot MakerRendszerindító KészítőDeepin Boot MakerDeepin® Rendszerindító Készítő deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ky.ts0000644000175000017500000000116114122570751025454 0ustar ephraimephraim desktopA tool to create boot mediaDeepin OS жүктөтүүчү медиа түзүү аспабыBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_nb.ts0000644000175000017500000000106014122570751025426 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_uk.ts0000644000175000017500000000132514122570751025452 0ustar ephraimephraim desktopA tool to create boot mediaІнструмент для створення завантажувальних дисків для Deepin OSBoot MakerСтворення дисківDeepin Boot MakerЗасіб створення дисків з Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_am.ts0000644000175000017500000000112114122570751025422 0ustar ephraimephraim desktopA tool to create boot mediaLivecd boot maker for DeepinBoot MakerDeepin Boot MakerDeepin Boot መፍጠሪያ deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_hy.ts0000644000175000017500000000107114122570751025451 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Boot Ստեղծող deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ja.ts0000644000175000017500000000107314122570751025425 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin ブートメーカー deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_az.ts0000644000175000017500000000121014122570751025436 0ustar ephraimephraim desktopA tool to create boot mediaÖnyükləyici daşıyıcı yaratmaq üçün alətBoot MakerÖnyükləyici YaradıcısıDeepin Boot MakerDeepin Önyükləyicisi Yaradıcısı deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_sk.ts0000644000175000017500000000113314122570751025445 0ustar ephraimephraim desktopA tool to create boot mediaNástroj na tvorbu boot disku pre Deepin OSBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_sv.ts0000644000175000017500000000107114122570751025461 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerBoot SkapareDeepin Boot MakerDeepin Boot Skapare deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_he.ts0000644000175000017500000000106014122570751025423 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ca.ts0000644000175000017500000000122314122570751025413 0ustar ephraimephraim desktopA tool to create boot mediaUna eina per crear mitjans d'arrencada per al Deepin OSBoot MakerCreador de mitjans d'arrencadaDeepin Boot MakerCreador de mitjans d'arrencada del Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_ast.ts0000644000175000017500000000106114122570751025617 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_tr.ts0000644000175000017500000000121414122570751025455 0ustar ephraimephraim desktopA tool to create boot mediaDeepin İşletim Sistemi için önyükleme diski oluşturma aracıBoot MakerÖnyükleme OluşturucuDeepin Boot MakerDeepin Önyükleme Oluşturucu deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_sq.ts0000644000175000017500000000113014122570751025450 0ustar ephraimephraim desktopA tool to create boot mediaNjë mjet për të krijuar media nisjeshBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_el.ts0000644000175000017500000000136714122570751025441 0ustar ephraimephraim desktopA tool to create boot mediaΈνα εργαλείο για την δημιουργία εκκινήσιμων μέσων εγγραφής του Deepin OSBoot MakerΦορτωτής ΕκκίνησηςDeepin Boot MakerΔημιουργία Εκκινήσιμων Μονάδων Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_mn.ts0000644000175000017500000000132414122570751025444 0ustar ephraimephraim desktopA tool to create boot mediaДээпин үйлдэлийн системд зориулсан ачааллагч үүсгэгч хэрэгсэлBoot MakerАчаалагч үүсгэгчDeepin Boot MakerДээпин ачаалагч үүсгэгч deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_es_AR.ts0000644000175000017500000000113514122570751026023 0ustar ephraimephraim desktopA tool to create boot mediaCreador de discos booteables para DeepinBoot MakerDeepin Boot MakerCreador de Booteo Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_pl_PL.ts0000644000175000017500000000114414122570751026040 0ustar ephraimephraim desktopA tool to create boot mediaTwórca płyty rozruchowej trybu live dla DeepinBoot MakerDeepin Boot MakerTwórca rozruchu Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_bo.ts0000644000175000017500000000146214122570751025435 0ustar ephraimephraim desktopA tool to create boot mediaའགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད།Boot Makerའགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད།Deepin Boot Makerགཏིང་ཟབ་འགོ་སློང་སྡེར་བཟོ་བའི་ཡོ་བྱད། deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_es.ts0000644000175000017500000000115014122570751025436 0ustar ephraimephraim desktopA tool to create boot mediaUna herramienta para crear medios de arranqueBoot MakerCreador de arranqueDeepin Boot MakerCreador de arranque deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_en_AU.ts0000644000175000017500000000113414122570751026020 0ustar ephraimephraim desktopA tool to create boot mediaA tool to create boot media for Deepin OSBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_es_CL.ts0000644000175000017500000000112414122570751026015 0ustar ephraimephraim desktopA tool to create boot mediaLiveCD editar arranque DeepinBoot MakerDeepin Boot MakerAdministrar boot de Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_br.ts0000644000175000017500000000113014122570751025430 0ustar ephraimephraim desktopA tool to create boot mediaUn ostilh evit krouiñ ur media loc'hañBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_sr.ts0000644000175000017500000000124614122570751025461 0ustar ephraimephraim desktopA tool to create boot mediaАлат за прављење покретача Дипин ОС-аBoot MakerТворац ПокретачаDeepin Boot MakerДипинов Творац Покретача deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_id.ts0000644000175000017500000000114214122570751025424 0ustar ephraimephraim desktopA tool to create boot mediaSebuah alat untuk membuat media boot Deepin OSBoot MakerPembuat BootDeepin Boot MakerPembuat Boot Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_pt_BR.ts0000644000175000017500000000123214122570751026036 0ustar ephraimephraim desktopA tool to create boot mediaFerramenta para criar a mídia de inicialização do DeepinBoot MakerCriador de Mídia InicializávelDeepin Boot MakerDeepin Criador de Mídia Inicializável deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_pt.ts0000644000175000017500000000120614122570751025454 0ustar ephraimephraim desktopA tool to create boot mediaUma ferramenta para criar unidades de arranqueBoot MakerCriador de unidade de arranqueDeepin Boot MakerCriador de unidade de arranque Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_bg.ts0000644000175000017500000000121114122570751025415 0ustar ephraimephraim desktopA tool to create boot mediaИнструмент за правене на стартиращ диск за Deepin OSBoot MakerBoot MakerDeepin Boot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_fi.ts0000644000175000017500000000111614122570751025427 0ustar ephraimephraim desktopA tool to create boot mediaKäynnistysmedian tekeminenBoot MakerMediatDeepin Boot MakerDeepin käynnistysmediat deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_am_ET.ts0000644000175000017500000000114014122570751026013 0ustar ephraimephraim desktopA tool to create boot mediaBoot Makerየ boot ዲስክ መፍጠሪያDeepin Boot Makerዲፕኢን Boot መፍጠሪያ deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_es_ES.ts0000644000175000017500000000112514122570751026027 0ustar ephraimephraim desktopA tool to create boot mediaCreador de Livecd de DeepinBoot MakerDeepin Boot MakerCreador de Arranque de Deepin deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_de_DE.ts0000644000175000017500000000113414122570751025771 0ustar ephraimephraim desktopA tool to create boot mediaDeepin LiveCD Startmedium ErstellerBoot MakerDeepin Boot MakerDeepin Startmedium Ersteller deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop.ts0000644000175000017500000000102614122570751024751 0ustar ephraimephraim desktopA tool to create boot mediaBoot MakerDeepin Boot Maker deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_zh_HK.ts0000644000175000017500000000112514122570751026034 0ustar ephraimephraim desktopA tool to create boot media製作開機碟的工具Boot Maker開機碟製作Deepin Boot MakerDeepin 開機碟製作 deepin-boot-maker_5.6.12+dfsg/src/translations/desktop/desktop_nl.ts0000644000175000017500000000117614122570751025450 0ustar ephraimephraim desktopA tool to create boot mediaEen hulpmiddel om een opstartschijf te creëren voor Deepin OSBoot MakerOpstartmediummakerDeepin Boot MakerDeepin Opstartmediummaker deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_tr.ts0000644000175000017500000002442614122570751025647 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Disk Biçim Hatası: Lütfen yeniden biçimlendirin Insufficient disk Space: Ensure that the disk has enough free space Yetersiz Disk Alanı: Diskte 1% boş alan olduğundan emin olun Disk Mount Error: Insert the disk again or reboot to retry Disk Bağlama Hatası: Lütfen diski yeniden takın ya da yeniden denemek için bilgisayarı yeniden başlatın Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Kalıp Ayıklama Hatası: Kalıbın bütünlüğünden emin olmak için md5 sağlamasını denetleyin Internal Error İç Hata BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Önyükleme Oluşturucu, sistem kalıp dosyalarını CD/DVD, USB flash sürücü ve diğer ortamlara yazmak için basit bir araçtır. Boot Maker Önyükleme Oluşturucu ISOSelectView Drag an ISO image file here Bir ISO kalıp dosyasını buraya sürükle OR YA DA Select an ISO image file Bir ISO kalıp dosyası seç Next Sonraki Reselect an ISO image file Yeniden bir ISO kalıbı seç Illegal ISO image file Geçersiz ISO kalıp dosyası Detecting ISO file, please wait... ISO dosyası algılanıyor, lütfen bekleyin... ProgressView Burning Yazılıyor Burning, please wait... Yazılıyor, lütfen bekleyin... Do not remove the disk or shut down the computer during the process İşlem sürerken diski çıkarmayın ya da bilgisayarı kapatmayın Cancel İptal QObject Removable Disk Çıkarılabilir Disk Removable disk Çıkarılabilir disk Boot Maker Önyükleme Oluşturucu ResultView Reboot now Şimdi yeniden başlat Done Tamamlandı Successful Başarılı The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Hata günlüğü geri bildirimle birlikte otomatik olarak yüklenecek. Geri bildirimleriniz olmadan gelişemeyiz Submit Feedback Geri Bildirim Gönder After-Sale Services Satış Sonrası Hizmetler Close Kapat Sorry, process failed Üzgünüm, işlem başarısız Process failed İşlem başarısız UnmountUsbView Verifying data and safely removing the media, please wait... Veriler doğrulanıyor ve medya güvenli bir şekilde kaldırılıyor, lütfen bekleyin... UsbSelectView Select a partition Bir bölüm seç Format the partition Bölümü biçimle Start Başlat Back Geri Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Biçimlendirme işlemi disk üzerindeki tüm verileri siler, ama başarı oranı da artar, lütfen devam etmek için onaylayın Formatting the partition will overwrite all data, please have a backup before proceeding. Biçimlendirme işlemi bölüm üzerindeki tüm verileri siler, lütfen devam etmeden önce yedek alın Disk Format Error: Please format the partition with FAT32 Disk Biçimi Hatası: Lütfen bölümü FAT32 olarak biçimlendirin No disk available Kullanılabilir disk yok Format Partition Bölümü Biçimle Cancel İptal OK Tamam deepin-boot-maker_5.6.12+dfsg/src/translations/deepin-boot-maker_bg.ts0000644000175000017500000002407214122570751025607 0ustar ephraimephraim BMHandler Disk Format Error: Please reformat it or disable "Auto scan USB storage devices" in Security Center Disk Format Error: Please reformat it Insufficient disk Space: Ensure that the disk has enough free space Disk Mount Error: Insert the disk again or reboot to retry Грешка при монтиране: Включете отново диска или рестартирайте системата Image Decompression Error: Verify md5 checksum of the image to ensure its integrity Грешка при декомпресиране: Моля проверете md5 сумата на образа и се уверете, че той е цял Internal Error Вътрешна грешка BMWindow Boot Maker is a simple tool to write system image files into USB flash drives and other media. Boot Maker ISOSelectView OR ИЛИ Select an ISO image file Изберете файл с ISO образ Drag an ISO image file here Next Следващ Illegal ISO image file Reselect an ISO image file Нов избор на файл с ISO образ Detecting ISO file, please wait... ProgressView Burning Burning, please wait... Do not remove the disk or shut down the computer during the process Моля не премахвайте диска или не спирайте системата при правенето Cancel Отказ QObject Removable Disk Отстраняващ се диск Removable disk Преносим диск Boot Maker ResultView Reboot now Рестартирай сега Done Готово Successful Успешно The error log will be uploaded automatically with the feedback. We cannot improve without your feedback Доклада с грешките ще се изпрати сам с отзива. Без вашата обратна връзка и подкрепа, не можем да станем по-добри. Submit Feedback Отзив After-Sale Services Close Затваряне Sorry, process failed Process failed UnmountUsbView Verifying data and safely removing the media, please wait... UsbSelectView Select a partition Format the partition No disk available Start Back Formatting will erase all data on the partition, but can increase the success rate, please confirm before proceeding Format Partition Formatting the partition will overwrite all data, please have a backup before proceeding. Disk Format Error: Please format the partition with FAT32 Cancel Отказ OK deepin-boot-maker_5.6.12+dfsg/src/tools/0000755000175000017500000000000014122570751017677 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/src/tools/translate_generation.py0000644000175000017500000000074314122570751024465 0ustar ephraimephraim#!env python import sys,os,fnmatch from subprocess import call translations_dir = os.getcwd() + "/translations" if (len(sys.argv) == 2): translations_dir = sys.argv[1] + "/translations" print("set translations dir:", translations_dir) tslist = fnmatch.filter(os.listdir(translations_dir), '*.ts') # This would print all the files and directories for tsfile in tslist: tspath = translations_dir + "/" + tsfile print ("process", tspath) call(["lrelease", tspath]) deepin-boot-maker_5.6.12+dfsg/src/tools/importPo0000644000175000017500000000046014122570751021433 0ustar ephraimephraim#!/bin/bash qtPath=/opt/qt5-static/5.3/linuxg64 qtPath=/opt/qtstatic/5.3/linuxg64 qtBin=$qtPath/bin qtlupdate=lupdate qtlrelease=lrelease qtlconvert=lconvert $qtlupdate $1 tslist=`ls po/*.ts` for ts in $tslist do rm $ts $qtlconvert -i ${ts%.*}.po -if po -o $ts -of ts done $qtlrelease $1 deepin-boot-maker_5.6.12+dfsg/src/tools/importPo.bat0000644000175000017500000000051714122570751022203 0ustar ephraimephraim@ECHO off SET PATH=D:\Dev\QtStatic\5.3\vs2010\bin\;%PATH% lupdate.exe %1 SETLOCAL enabledelayedexpansion for /f "delims=" %%i in ('dir /b/a-d/s po\*.ts') do ( SET TsFile=%%i ECHO !TsFile! SET LangFile=!TsFile:~0,-3! ECHO !LangFile! lconvert.exe -i !LangFile!.po -if po -o !LangFile!.ts -of ts ) lrelease.exe %1 deepin-boot-maker_5.6.12+dfsg/src/tools/exportPot.bat0000644000175000017500000000044314122570751022374 0ustar ephraimephraimECHO on PATH = D:\Dev\QtStatic\5.3\vs2010\bin\;%PATH% SET PROFILE=%1 SET ProName=%PROFILE:~0,-4% SET TsFile=po/%ProName%.ts SET PotFileName=deepin-windows-installer.pot lupdate.exe %1 -target-language en_US -ts %TsFile% lconvert.exe -i %TsFile% -if ts -o po\%PotFileName% -of po rm %TsFile% deepin-boot-maker_5.6.12+dfsg/src/tools/exportPot0000644000175000017500000000034414122570751021627 0ustar ephraimephraim#!/bin/bash qtlupdate=lupdate qtlrelease=lrelease qtlconvert=lconvert tsfile=po/deepin-boot-maker.ts $qtlupdate $1 -target-language en_US -ts $tsfile $qtlconvert -i $tsfile -if ts -o po/deepin-boot-maker.pot -of po rm $tsfile deepin-boot-maker_5.6.12+dfsg/src/translate.qrc0000644000175000017500000000453314122570751021250 0ustar ephraimephraim translations/deepin-boot-maker.qm translations/deepin-boot-maker_zh_TW.ts translations/deepin-boot-maker_zh_TW.qm translations/deepin-boot-maker_zh_CN.ts translations/deepin-boot-maker_sl.ts translations/deepin-boot-maker_sl.qm translations/deepin-boot-maker_sk.ts translations/deepin-boot-maker_sk.qm translations/deepin-boot-maker_ru.ts translations/deepin-boot-maker_ru.qm translations/deepin-boot-maker_pt_BR.ts translations/deepin-boot-maker_pt_BR.qm translations/deepin-boot-maker_pt.ts translations/deepin-boot-maker_pt.qm translations/deepin-boot-maker_pl.ts translations/deepin-boot-maker_pl.qm translations/deepin-boot-maker_nl.ts translations/deepin-boot-maker_nl.qm translations/deepin-boot-maker_ms.ts translations/deepin-boot-maker_ms.qm translations/deepin-boot-maker_it.ts translations/deepin-boot-maker_it.qm translations/deepin-boot-maker_hu.ts translations/deepin-boot-maker_hu.qm translations/deepin-boot-maker_gl_ES.ts translations/deepin-boot-maker_gl_ES.qm translations/deepin-boot-maker_fr.ts translations/deepin-boot-maker_fr.qm translations/deepin-boot-maker_es.ts translations/deepin-boot-maker_es.qm translations/deepin-boot-maker_de.ts translations/deepin-boot-maker_de.qm translations/deepin-boot-maker_da.ts translations/deepin-boot-maker_da.qm translations/deepin-boot-maker_cs.ts translations/deepin-boot-maker_cs.qm translations/deepin-boot-maker_ar.ts translations/deepin-boot-maker_ar.qm translations/deepin-boot-maker.ts translations/deepin-boot-maker_zh_CN.qm deepin-boot-maker_5.6.12+dfsg/README.md0000644000175000017500000000342714122570751017235 0ustar ephraimephraim# Deepin Boot Maker Deepin Boot Maker is a tool that helps user to create a bootable usb stick quick and easy, it is designed to support deepin install iso, but it works for all ubuntu live install iso too. ![screenshot](https://raw.githubusercontent.com/linuxdeepin/deepin-boot-maker/master/docs/deepin-boot-maker.png) ## Dependencies Deepin Boot Maker is designed to support Windows/Linux/Mac platforms. It has no external dependencies on Windows and Mac OS. On Linux, you need packages below: ```bash #For release based on debian sudo apt-get install p7zip-full mtools syslinux syslinux-common ``` Official support platform: - Deepin 2015 - Mac OSX 10.12 - Windows 7 32/64bit, Windows 8 32/64 bit. ## Installation - Official binary release The only binary release is from Deepin OS iso for now. You can download iso from: https://www.deepin.org/original/deepin-boot-maker/. Or you can find binary file on the root of iso. - Repository Install If you are deepin user, you can install Deepin Boot Maker from repository: ```bash sudo apt-get install deepin-boot-maker ``` - Build and install See [INSTALL](INSTALL.md) for detail. ## Getting help Any usage issues can ask for help via * [Gitter](https://gitter.im/orgs/linuxdeepin/rooms) * [IRC channel](https://webchat.freenode.net/?channels=deepin) * [Forum](https://bbs.deepin.org) * [WiKi](https://wiki.deepin.org/) ## Getting involved We encourage you to report issues and contribute changes * [Contribution guide for developers](https://github.com/linuxdeepin/developer-center/wiki/Contribution-Guidelines-for-Developers-en). (English) * [开发者代码贡献指南](https://github.com/linuxdeepin/developer-center/wiki/Contribution-Guidelines-for-Developers) (中文) ## License Deepin Boot Maker is licensed under [GPLv3](LICENSE). deepin-boot-maker_5.6.12+dfsg/.tx/0000755000175000017500000000000014122570751016461 5ustar ephraimephraimdeepin-boot-maker_5.6.12+dfsg/.tx/config0000644000175000017500000000100014122570751017640 0ustar ephraimephraim[main] host = https://www.transifex.com minimum_perc = 80 mode = developer [deepin-boot-maker.deepin-boot-maker-v2-ts] file_filter = src/translations/deepin-boot-maker_.ts source_file = src/translations/deepin-boot-maker.ts source_lang = en type = QT [deepin-boot-maker.deepin-boot-maker-desktop-ts] file_filter = src/translations/desktop/desktop_.ts source_file = src/translations/desktop/desktop.ts preTranslate_file = src/app/platform/linux/deepin-boot-maker.desktop source_lang = en type = QT deepin-boot-maker_5.6.12+dfsg/.tx/ts2desktop0000644000175000017500000000033614122570751020510 0ustar ephraimephraimDESKTOP_TEMP_FILE=dde-boot-maker.desktop.tmp DESKTOP_SOURCE_FILE=src/app/platform/linux/deepin-boot-maker.desktop DESKTOP_DEST_FILE=src/app/platform/linux/deepin-boot-maker.desktop DESKTOP_TS_DIR=src/translations/desktop deepin-boot-maker_5.6.12+dfsg/.project.json0000644000175000017500000000021014122570751020360 0ustar ephraimephraim { "type": "homebrew", "3rdparty": [], "ignore": [".tx/*","debian/*","docs/*"], "license": ["GPLv3"] } deepin-boot-maker_5.6.12+dfsg/CHANGELOG.md0000644000175000017500000001140214122570751017557 0ustar ephraimephraim ## 2.0.4.12 (2019-05-27) #### Features * fix format partition failed ([124adcdc](https://github.com/linuxdeepin/deepin-boot-maker/commit/124adcdc7faf10c07801a16c8be7ef2c5b25e9c6)) * support reject usb storage ([88159a3a](https://github.com/linuxdeepin/deepin-boot-maker/commit/88159a3abcf5b38425459db776b9df8130c7b296)) ## 2.0.4.11 (2019-04-10) #### Features * support connan build ([e8cd151e](https://github.com/linuxdeepin/deepin-boot-maker/commit/e8cd151e85a72c347ace81d0456c56c0523e893b)) ## 2.0.4.10 (2019-02-26) #### Features * disable bootloader on other arch ([1e2d727b](https://github.com/linuxdeepin/deepin-boot-maker/commit/1e2d727b7620a641026eb05bfbc4f7c35077381b)) ## 2.0.4.9 (2019-01-04) #### Features * disable button when start ([0ff3f118](https://github.com/linuxdeepin/deepin-boot-maker/commit/0ff3f1189a61355383c5231fa342c95e84d86e5d)) * add genericName ([5fd1dd0e](https://github.com/linuxdeepin/deepin-boot-maker/commit/5fd1dd0ec1e739c16054833c2b8430fbb7306532)) ## 2.0.4.9 (2018-11-29) #### Features * add genericName ([5fd1dd0e](https://github.com/linuxdeepin/deepin-boot-maker/commit/5fd1dd0ec1e739c16054833c2b8430fbb7306532)) ## 2.0.4.8 (2018-11-12) ## 2.0.4.7 (2018-11-07) #### Bug Fixes * error icon ([feda6f75](https://github.com/linuxdeepin/deepin-boot-maker/commit/feda6f75690bfe082975c088f3ef22fdbae0f2d3)) ## 2.0.4.6 (2018-10-26) #### Bug Fixes * df failed ([7db87883](https://github.com/linuxdeepin/deepin-boot-maker/commit/7db87883a501cf0f0ca515b95f972e24902868a6)) #### Features * support list disk ([d6a80d67](https://github.com/linuxdeepin/deepin-boot-maker/commit/d6a80d67f88bee2aaf17ef720761c9417a6057ec)) ## 2.0.4.5 (2018-03-07) ## 2.0.4.4 (2018-03-07) #### Bug Fixes * set titlebar background transparent ([86e2bc35](https://github.com/linuxdeepin/deepin-boot-maker/commit/86e2bc3535281b989e205729e03161508a1c0cfd)) ## 2.0.4.3 (2018-01-29) #### Features * full support 64bit linux ([2caee62a](https://github.com/linuxdeepin/deepin-boot-maker/commit/2caee62ab95a554f576f2f75dd17d17548da2fb4)) * use ionice when extract on linux ([11dca452](https://github.com/linuxdeepin/deepin-boot-maker/commit/11dca452eb0c45556c327da2d0dc1115a1d34671)) #### Bug Fixes * make titlebar transparent ([4f2434cd](https://github.com/linuxdeepin/deepin-boot-maker/commit/4f2434cdbf29072d904565c5377859a2ab7b3daf)) * remove none linux binary ([9060c185](https://github.com/linuxdeepin/deepin-boot-maker/commit/9060c185896f34aebc67be199a727187da22901e)) ## 2.0.4.2 (2017-11-28) #### Features * use native window on mac ([b940476b](https://github.com/linuxdeepin/deepin-boot-maker/commit/b940476b7ff3727a10f4f6f251de12457613580a)) #### Bug Fixes * resources file path error ([290fbaec](https://github.com/linuxdeepin/deepin-boot-maker/commit/290fbaec2d0988e5f712849e5da73d70621591ae)) * cannot import bundle when build ([4892ad17](https://github.com/linuxdeepin/deepin-boot-maker/commit/4892ad17acfeecf21e5c9e74fb2c51e21e56e33c)) * can not find 7z.dll on windows ([80acf911](https://github.com/linuxdeepin/deepin-boot-maker/commit/80acf911637cbeb83c791e3095a0b29540ddc042)) ## 2.0.4.1 (2017-11-23) #### Bug Fixes * update windows svg ([c8cb32a0](https://github.com/linuxdeepin/deepin-boot-maker/commit/c8cb32a0e04220473cf395541bd9d74ed5d085f6)) * remove windows drag hints ([c784e892](https://github.com/linuxdeepin/deepin-boot-maker/commit/c784e89215a70546e27b9df70f2437f3c2d8789c)) ## 2.0.4 (2017-11-06) #### Bug Fixes * remove self draw checkbox ([f746286d](https://github.com/linuxdeepin/deepin-boot-maker/commit/f746286d4bf969826644c77636d7ebde4a689b8b)) * correct windows build depends path ([2c633237](https://github.com/linuxdeepin/deepin-boot-maker/commit/2c6332378f3ec769ace7419f1714a30e356dba3e)) #### Features * support disable tiblebar ([c18d73a3](https://github.com/linuxdeepin/deepin-boot-maker/commit/c18d73a33fe6af886cf51cc7453e73fda4441f10)) * add about translations ([9ba198b6](https://github.com/linuxdeepin/deepin-boot-maker/commit/9ba198b678fe8c0818c1785a7e5815942b5b10fd)) * hidpi support ([2f4b2e3b](https://github.com/linuxdeepin/deepin-boot-maker/commit/2f4b2e3b8fe580a364b32c56b3e3151631729d6d)) * use DPageIndicator ([8b60da94](https://github.com/linuxdeepin/deepin-boot-maker/commit/8b60da946dbfc1a368c49f59eb6f4f558179d182)) * use Dtk::Widget::DWaterProgress as progress bar ([fcbab6f1](https://github.com/linuxdeepin/deepin-boot-maker/commit/fcbab6f19c71fdf363a433eee9b1fdbc3641b26e))