pax_global_header00006660000000000000000000000064142326440160014514gustar00rootroot0000000000000052 comment=eaf06f6b925a53aa1a8fb54e1877c36d344d1cf0 dde-calendar-5.9.1/000077500000000000000000000000001423264401600140335ustar00rootroot00000000000000dde-calendar-5.9.1/.gitignore000066400000000000000000000005611423264401600160250ustar00rootroot00000000000000# Compiled Object files *.slo *.lo *.o # Compiled Dynamic libraries *.so *.dylib # Compiled Static libraries *.lai *.la *.a build*/ *.pro.user* *.DS_Store *.core *.autosave # qm file is auto generate from .ts file *.qm # vim tmp file *.swp .vscode/ build/ .qmake.stash Makefile !debian/[source,changelog,compat,control,copyright,rules] CMakeLists.txt.user *.user.*dde-calendar-5.9.1/.project.json000066400000000000000000000004221423264401600164500ustar00rootroot00000000000000{ "type": "homebrew", "3rdparty": [], "ignore": ["debian", ".tx", "assets", "translations", ".git", "README.md", "*.conf", "CMakeLists.txt", "*.user", "*.o", "*.desktop", "*.qrc", "*.svg", "*.png", "*.qm", "*.ts", "LICENSE", "*.pro"], "license": ["GPLv3"] }dde-calendar-5.9.1/.tx/000077500000000000000000000000001423264401600145445ustar00rootroot00000000000000dde-calendar-5.9.1/.tx/config000066400000000000000000000011541423264401600157350ustar00rootroot00000000000000[main] host = https://www.transifex.com minimum_perc = 80 mode = developer [deepin-desktop-environment.dde-calendar] file_filter = translations/dde-calendar_.ts source_file = translations/dde-calendar_en_US.ts source_lang = en_US type = QT [deepin-desktop-environment.dde-calendar_desktop] file_filter = translations/desktop/desktop_.ts source_file = translations/desktop/desktop.ts source_lang = en type = QT [deepin-desktop-environment.dde-calendar-service] file_filter = translations/dde-calendar-service_.ts source_file = translations/dde-calendar-service_en_US.ts source_lang = en_US type = QT dde-calendar-5.9.1/CMakeLists.txt000066400000000000000000000051451423264401600166000ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) project(dde-calendar) #compile flags if (CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Wextra") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra") # Enable Qt builtin debug mode add_definitions("-DQT_MESSAGELOGCONTEXT") else() # -Wl, -O2 Enable linker optimizations # -Wl, --gc-sections Remove unused code resulting from -fdsta-sections and # -ffunction-sections set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2 -Wl,--gc-sections") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -Wl,--gc-sections") endif() #代码覆盖率开关 if(CMAKE_COVERAGE_ARG STREQUAL "CMAKE_COVERAGE_ARG_ON") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -fprofile-arcs -ftest-coverage") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -fprofile-arcs -ftest-coverage") endif() macro(SUBDIRLIST result curdir) file(GLOB children RELATIVE ${curdir} ${curdir}/*) set(dirlist "") foreach(child ${children}) if(IS_DIRECTORY ${curdir}/${child}) LIST(APPEND dirlist ${child}) endif() endforeach() set(${result} ${dirlist}) endmacro() ADD_SUBDIRECTORY(calendar-basicstruct) ADD_SUBDIRECTORY(calendar-client) ADD_SUBDIRECTORY(calendar-service) ADD_SUBDIRECTORY(schedule-plugin) ADD_SUBDIRECTORY(tests) #前后端都有翻译所以将翻译放到更高层级 find_package(Qt5LinguistTools REQUIRED) #lupdate start #此处其实只有当没有自动翻译需要手动翻译.ts文件才有意义可以创建不同语言名称的ts文件,下同 set(TS_FILES "${CMAKE_CURRENT_SOURCE_DIR}/translations/${PROJECT_NAME}_en_US.ts" ) find_program(LUPDATE_EXECUTABLE lupdate) foreach(_ts_file ${TS_FILES}) execute_process( COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_CURRENT_SOURCE_DIR}/calendar-client -ts ${_ts_file}) endforeach() set(TS_SERVICEFILES "${CMAKE_CURRENT_SOURCE_DIR}/translations/${PROJECT_NAME}-service_en_US.ts" ) foreach(_ts_file ${TS_SERVICEFILES}) execute_process( COMMAND ${LUPDATE_EXECUTABLE} -recursive ${CMAKE_CURRENT_SOURCE_DIR}/calendar-service -ts ${_ts_file}) endforeach() #lupdate end file (GLOB DTNG_TS_FILES translations/*.ts) #lrelease start #发布qm文件 find_program(LRELEASE_EXECUTABLE lrelease) foreach(_ts_file ${DTNG_TS_FILES}) execute_process(COMMAND ${LRELEASE_EXECUTABLE} ${_ts_file}) endforeach() #lrelease end qt5_create_translation(DTNG_QM_FILES ${DTNG_TS_FILES} ${DTNG_QM_FILES} ) set(CMAKE_INSTALL_PREFIX /usr) file(GLOB APP_QM_FILES "translations/*.qm") install(FILES ${APP_QM_FILES} DESTINATION share/dde-calendar/translations) dde-calendar-5.9.1/LICENSE000066400000000000000000001045051423264401600150450ustar00rootroot00000000000000 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. {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 . dde-calendar-5.9.1/README.md000066400000000000000000000000711423264401600153100ustar00rootroot00000000000000# dde-calendar Calendar for Deepin Desktop Environment. dde-calendar-5.9.1/calendar-basicstruct/000077500000000000000000000000001423264401600201305ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-basicstruct/CMakeLists.txt000066400000000000000000000011671423264401600226750ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) project(basestruct) # Find the library find_package(PkgConfig REQUIRED) find_package(Qt5 COMPONENTS Core DBus REQUIRED) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) #安全编译参数 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong -D_FORTITY_SOURCE=1 -z noexecstack -pie -fPIC -z lazy") include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) file(GLOB_RECURSE BASESTRUCT_SRCS ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) link_libraries(${Qt5CORE_LIBRARIES} ${Qt5DBus_LIBRARIES}) add_library(${PROJECT_NAME} STATIC ${BASESTRUCT_SRCS}) dde-calendar-5.9.1/calendar-basicstruct/src/000077500000000000000000000000001423264401600207175ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-basicstruct/src/DebugTimeManager.cpp000066400000000000000000000043621423264401600245700ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: Jun.Liu * Maintainer: xxx.xx * * 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 "DebugTimeManager.h" #include #include #include DebugTimeManager *DebugTimeManager::s_Instance = nullptr; DebugTimeManager::DebugTimeManager() { } void DebugTimeManager::clear() { m_MapPoint.clear(); } void DebugTimeManager::beginPointQt(const QString &point, const QString &status) { PointInfo info; info.desc = status; info.time = QDateTime::currentMSecsSinceEpoch(); m_MapPoint.insert(point, info); } void DebugTimeManager::endPointQt(const QString &point) { if (m_MapPoint.find(point) != m_MapPoint.end()) { m_MapPoint[point].time = QDateTime::currentMSecsSinceEpoch() - m_MapPoint[point].time; qInfo() << QString("[GRABPOINT] %1 %2 time=%3ms").arg(point).arg(m_MapPoint[point].desc).arg(m_MapPoint[point].time); } } void DebugTimeManager::beginPointLinux(const QString &point, const QString &status) { struct timeval tv; gettimeofday(&tv, nullptr); PointInfo info; info.desc = status; info.time = tv.tv_sec * 1000 + tv.tv_usec / 1000; m_MapPoint.insert(point, info); } void DebugTimeManager::endPointLinux(const QString &point) { if (m_MapPoint.find(point) != m_MapPoint.end()) { struct timeval tv; gettimeofday(&tv, nullptr); m_MapPoint[point].time = tv.tv_sec * 1000 + tv.tv_usec / 1000 - m_MapPoint[point].time; qInfo() << QString("[GRABPOINT] %1 %2 time=%3ms").arg(point).arg(m_MapPoint[point].desc).arg(m_MapPoint[point].time); } } dde-calendar-5.9.1/calendar-basicstruct/src/DebugTimeManager.h000066400000000000000000000055611423264401600242370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: Jun.Liu * Maintainer: xxx.xx * * 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 DEBUGTIMEMANAGER_H #define DEBUGTIMEMANAGER_H #include #include #include /** * @brief The PointInfo struct */ struct PointInfo { QString desc; qint64 time; }; class DebugTimeManager { public: /** * @brief getInstance : get signal instance * @return : the signal instance */ static DebugTimeManager *getInstance() { if (!s_Instance) { s_Instance = new DebugTimeManager(); } return s_Instance; } /** * @brief clear : clear data */ void clear(); /** * @brief beginPointQt : 打点开始,Qt * @param point : 所打的点的名称,固定格式,在打点文档中查看 -- POINT-XX POINT-01 * @param status : 性能测试的状态,比如测试时文件的大小 */ void beginPointQt(const QString &point, const QString &status = ""); /** * @brief endPointQt : 结束打点,Qt * @param point : 需要结束的点 */ void endPointQt(const QString &point); /** * @brief beginPointLinux : 打点开始,Linux * @param point : 所打的点的名称,固定格式,在打点文档中查看 -- POINT-XX POINT-01 * @param status : 性能测试的状态,比如测试时文件的大小 */ void beginPointLinux(const QString &point, const QString &status = ""); /** * @brief endPointLinux : 结束打点,Linux * @param point : 需要结束的点 */ void endPointLinux(const QString &point); protected: DebugTimeManager(); private: static DebugTimeManager *s_Instance; // m_MapPoint; //beginPointLinux(printStr,Description) #define PERF_PRINT_END(printStr) \ DebugTimeManager::getInstance()->endPointLinux(printStr) #else #define PERF_PRINT_BEGIN(printStr, Description) #define PERF_PRINT_END(printStr) #endif #endif // DEBUGTIMEMANAGER_H dde-calendar-5.9.1/calendar-basicstruct/src/calendardatastruct.cpp000066400000000000000000000015041423264401600252730ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "calendardatastruct.h" dde-calendar-5.9.1/calendar-basicstruct/src/calendardatastruct.h000066400000000000000000000015761423264401600247510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 CALENDARDATASTRUCT_H #define CALENDARDATASTRUCT_H #endif // CALENDARDATASTRUCT_H dde-calendar-5.9.1/calendar-basicstruct/src/commondatastruct.cpp000066400000000000000000000015031423264401600250110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "commondatastruct.h" dde-calendar-5.9.1/calendar-basicstruct/src/commondatastruct.h000066400000000000000000000062371423264401600244670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 COMMONDATASTRUCT_H #define COMMONDATASTRUCT_H #include #include #include #include enum jobtypes { jobTypeWork = 1, jobTypeLife, jobTypeOther, JobTypeFestival, }; typedef struct JobTypeJSON { uint ID; QString Name; QString Color; } stJobTypeJSON; //关于名字的国际化暂时不做处理,如果后期确认需要国际化的很少则通过client做适配来处理 static QVector globalPredefinedTypes { { jobTypeWork, "Work", "#FF0000" // red }, { jobTypeLife, "Life", "#00FF00" // green }, { jobTypeOther, "Other", "#800080" // purple }, { JobTypeFestival, "Festival", "#FFFF00" // yellow }}; typedef struct _tagJob { _tagJob() : ID {0} , Type {0} , RecurID {0} , RemindLaterCount {0} , IsLunar {false} { } qint64 ID; qint64 Type; qint64 RecurID; QString Title {}; QString Description {}; bool AllDay {false}; QDateTime Start; QDateTime End; QString RRule {};//重复规则,如:工作日起床闹钟 QString Remind {};//提前提醒,如:提前几天或几分钟 QString Ignore {};//如:工作日起床闹钟,除了周五 QString Title_pinyin {}; QDateTime RemidTime; //提醒时间 qint32 RemindLaterCount; //执行稍后提醒次数 bool IsLunar; } Job; typedef struct JobArr { QDate date; QList jobs {}; QList extends {}; } stJobArr; typedef struct JobTime { QDateTime start; QDateTime end; qint64 recurID = 0; } stJobTime; enum RepeatType { RepeatNone = 0, RepeatDaily, RepeatWorkDay, RepeatWeekly, RepeatMonthly, RepeatYearly, }; enum RepeatOverCondition { RepeatOverNever = 0, RepeatOverCount, RepeatOverUntil, }; typedef struct RRuleOptions { //初始化 RepeatType rpeat {RepeatType::RepeatNone}; //重复规则 0 无 1 每天 2 每个工作日 3 每周 4每月 5每年 RepeatOverCondition type {RepeatOverCondition::RepeatOverNever}; //结束重复 0 永不 1 多少次结束 2 结束日期 int tcount {}; //多少次结束只有当type=1才会生效 QDateTime overdate; //type=2时才有效 } stRRuleOptions; Q_DECLARE_METATYPE(Job) #endif // COMMONDATASTRUCT_H dde-calendar-5.9.1/calendar-basicstruct/src/commondef.h000066400000000000000000000020301423264401600230320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 COMMONDEF_H #define COMMONDEF_H #include #include const QString CalendarServiceName = "com.deepin.dataserver.Calendar"; const QString CalendarPath = "/com/deepin/dataserver/Calendar"; #endif // COMMONDEF_H dde-calendar-5.9.1/calendar-basicstruct/src/dbusdatastruct.cpp000066400000000000000000000252361423264401600244670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "dbusdatastruct.h" #include #include #include void CaLunarDayInfo::registerMetaType() { qRegisterMetaType(); qDBusRegisterMetaType(); } QDebug operator<<(QDebug argument, const CaLunarDayInfo &what) { argument << what.mGanZhiYear << what.mGanZhiMonth << what.mGanZhiDay; argument << what.mLunarMonthName << what.mLunarDayName; argument << what.mLunarLeapMonth; argument << what.mZodiac << what.mTerm; argument << what.mSolarFestival << what.mLunarFestival; argument << what.mWorktime; return argument; } QDBusArgument &operator<<(QDBusArgument &argument, const CaLunarDayInfo &what) { argument.beginStructure(); argument << what.mGanZhiYear << what.mGanZhiMonth << what.mGanZhiDay; argument << what.mLunarMonthName << what.mLunarDayName; argument << what.mLunarLeapMonth; argument << what.mZodiac << what.mTerm; argument << what.mSolarFestival << what.mLunarFestival; argument << what.mWorktime; argument.endStructure(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, CaLunarDayInfo &what) { argument.beginStructure(); argument >> what.mGanZhiYear >> what.mGanZhiMonth >> what.mGanZhiDay; argument >> what.mLunarMonthName >> what.mLunarDayName; argument >> what.mLunarLeapMonth; argument >> what.mZodiac >> what.mTerm; argument >> what.mSolarFestival >> what.mLunarFestival; argument >> what.mWorktime; argument.endStructure(); return argument; } void CaLunarMonthInfo::registerMetaType() { qRegisterMetaType(); qDBusRegisterMetaType(); } QDebug operator<<(QDebug argument, const CaLunarMonthInfo &what) { argument << what.mFirstDayWeek << what.mDays; argument << what.mCaLunarDayInfo; return argument; } QDBusArgument &operator<<(QDBusArgument &argument, const CaLunarMonthInfo &what) { argument.beginStructure(); argument << what.mFirstDayWeek << what.mDays; argument << what.mCaLunarDayInfo; argument.endStructure(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, CaLunarMonthInfo &what) { argument.beginStructure(); argument >> what.mFirstDayWeek >> what.mDays; argument >> what.mCaLunarDayInfo; argument.endStructure(); return argument; } void CaHuangLiDayInfo::registerMetaType() { qRegisterMetaType(); qDBusRegisterMetaType(); } QString CaHuangLiDayInfo::toJson() { QJsonDocument doc; QJsonObject obj; obj.insert("Suit", mSuit); obj.insert("Avoid", mAvoid); obj.insert("Worktime", mWorktime); obj.insert("LunarFestival", mLunarFestival); obj.insert("SolarFestival", mSolarFestival); obj.insert("Term", mTerm); obj.insert("Zodiac", mZodiac); obj.insert("LunarLeapMonth", mLunarLeapMonth); obj.insert("LunarDayName", mLunarDayName); obj.insert("LunarMonthName", mLunarMonthName); obj.insert("GanZhiDay", mGanZhiDay); obj.insert("GanZhiMonth", mGanZhiMonth); obj.insert("GanZhiYear", mGanZhiYear); doc.setObject(obj); QString strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return strJson; } void CaHuangLiDayInfo::strJsonToInfo(const QString &strJson, bool &isVaild) { isVaild = true; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(strJson.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { isVaild = false; return ; } QJsonObject rootObj = jsonDoc.object(); jsonObjectToInfo(rootObj); } void CaHuangLiDayInfo::jsonObjectToInfo(const QJsonObject &jsonObject) { //因为是预先定义好的JSON数据格式,所以这里可以这样读取int if (jsonObject.contains("Suit")) { this->mSuit = jsonObject.value("Suit").toString(); } if (jsonObject.contains("Avoid")) { this->mAvoid = jsonObject.value("Avoid").toString(); } if (jsonObject.contains("Worktime")) { this->mWorktime = jsonObject.value("Worktime").toInt(); } if (jsonObject.contains("LunarFestival")) { this->mLunarFestival = jsonObject.value("LunarFestival").toString(); } if (jsonObject.contains("SolarFestival")) { this->mSolarFestival = jsonObject.value("SolarFestival").toString(); } if (jsonObject.contains("Term")) { this->mTerm = jsonObject.value("Term").toString(); } if (jsonObject.contains("Zodiac")) { this->mZodiac = jsonObject.value("Zodiac").toString(); } if (jsonObject.contains("LunarLeapMonth")) { this->mLunarLeapMonth = jsonObject.value("LunarLeapMonth").toInt(); } if (jsonObject.contains("LunarDayName")) { this->mLunarDayName = jsonObject.value("LunarDayName").toString(); } if (jsonObject.contains("LunarMonthName")) { this->mLunarMonthName = jsonObject.value("LunarMonthName").toString(); } if (jsonObject.contains("GanZhiDay")) { this->mGanZhiDay = jsonObject.value("GanZhiDay").toString(); } if (jsonObject.contains("GanZhiMonth")) { this->mGanZhiMonth = jsonObject.value("GanZhiMonth").toString(); } if (jsonObject.contains("GanZhiYear")) { this->mGanZhiYear = jsonObject.value("GanZhiYear").toString(); } } QDebug operator<<(QDebug argument, const CaHuangLiDayInfo &what) { argument << what.mSuit << what.mAvoid; argument << what.mWorktime; argument << what.mLunarFestival << what.mSolarFestival; argument << what.mTerm << what.mZodiac; argument << what.mLunarLeapMonth; argument << what.mLunarDayName << what.mLunarMonthName; argument << what.mGanZhiDay << what.mGanZhiMonth << what.mGanZhiYear; return argument; } QDBusArgument &operator<<(QDBusArgument &argument, const CaHuangLiDayInfo &what) { argument.beginStructure(); argument << what.mSuit << what.mAvoid; argument << what.mWorktime; argument << what.mLunarFestival << what.mSolarFestival; argument << what.mTerm << what.mZodiac; argument << what.mLunarLeapMonth; argument << what.mLunarDayName << what.mLunarMonthName; argument << what.mGanZhiDay << what.mGanZhiMonth << what.mGanZhiYear; argument.endStructure(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, CaHuangLiDayInfo &what) { argument.beginStructure(); argument >> what.mSuit >> what.mAvoid; argument >> what.mWorktime; argument >> what.mLunarFestival >> what.mSolarFestival; argument >> what.mTerm >> what.mZodiac; argument >> what.mLunarLeapMonth; argument >> what.mLunarDayName >> what.mLunarMonthName; argument >> what.mGanZhiDay >> what.mGanZhiMonth >> what.mGanZhiYear; argument.endStructure(); return argument; } void CaHuangLiMonthInfo::registerMetaType() { qRegisterMetaType(); qDBusRegisterMetaType(); } QString CaHuangLiMonthInfo::toJson() { QJsonArray daysarr; QJsonDocument doc; QJsonObject obj; obj.insert("Days", mDays); obj.insert("FirstDayWeek", mFirstDayWeek); foreach (CaHuangLiDayInfo dayinfo, mCaLunarDayInfo) { QJsonObject dayobj; dayobj.insert("Suit", dayinfo.mSuit); dayobj.insert("Avoid", dayinfo.mAvoid); dayobj.insert("Worktime", dayinfo.mWorktime); dayobj.insert("LunarFestival", dayinfo.mLunarFestival); dayobj.insert("SolarFestival", dayinfo.mSolarFestival); dayobj.insert("Term", dayinfo.mTerm); dayobj.insert("Zodiac", dayinfo.mZodiac); dayobj.insert("LunarLeapMonth", dayinfo.mLunarLeapMonth); dayobj.insert("LunarDayName", dayinfo.mLunarDayName); dayobj.insert("LunarMonthName", dayinfo.mLunarMonthName); dayobj.insert("GanZhiDay", dayinfo.mGanZhiDay); dayobj.insert("GanZhiMonth", dayinfo.mGanZhiMonth); dayobj.insert("GanZhiYear", dayinfo.mGanZhiYear); daysarr.append(dayobj); } obj.insert("Datas", daysarr); doc.setObject(obj); QString strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return strJson; } void CaHuangLiMonthInfo::strJsonToInfo(const QString &strJson, bool &isVaild) { isVaild = true; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(strJson.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { isVaild = false; return; } QJsonObject rootObj = jsonDoc.object(); //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (rootObj.contains("Days")) { this->mDays = rootObj.value("Days").toInt(); } if (rootObj.contains("FirstDayWeek")) { this->mFirstDayWeek = rootObj.value("FirstDayWeek").toInt(); } if (rootObj.contains("Datas")) { QJsonArray subArray = rootObj.value("Datas").toArray(); for (int i = 0; i < subArray.size(); i++) { QJsonObject subObj = subArray.at(i).toObject(); CaHuangLiDayInfo huangliday; huangliday.jsonObjectToInfo(subObj); this->mCaLunarDayInfo.append(huangliday); } } } void CaHuangLiMonthInfo::clear() { this->mDays = 0; this->mCaLunarDayInfo.clear(); } QDebug operator<<(QDebug argument, const CaHuangLiMonthInfo &what) { argument << what.mDays << what.mFirstDayWeek; argument << what.mCaLunarDayInfo; return argument; } QDBusArgument &operator<<(QDBusArgument &argument, const CaHuangLiMonthInfo &what) { argument.beginStructure(); argument << what.mDays << what.mFirstDayWeek; argument << what.mCaLunarDayInfo; argument.endStructure(); return argument; } const QDBusArgument &operator>>(const QDBusArgument &argument, CaHuangLiMonthInfo &what) { argument.beginStructure(); argument >> what.mDays >> what.mFirstDayWeek; argument >> what.mCaLunarDayInfo; argument.endStructure(); return argument; } dde-calendar-5.9.1/calendar-basicstruct/src/dbusdatastruct.h000066400000000000000000000077501423264401600241350ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 DBUSDATASTRUCT_H #define DBUSDATASTRUCT_H #include #include class CaLunarDayInfo { public: CaLunarDayInfo() {} static void registerMetaType(); friend QDebug operator<<(QDebug argument, const CaLunarDayInfo &what); friend QDBusArgument &operator<<(QDBusArgument &argument, const CaLunarDayInfo &what); friend const QDBusArgument &operator>>(const QDBusArgument &argument, CaLunarDayInfo &what); public: QString mGanZhiYear; // 农历年的干支 QString mGanZhiMonth; // 农历月的干支 QString mGanZhiDay; // 农历日的干支 QString mLunarMonthName; // 农历月名 QString mLunarDayName; // 农历日名 qint32 mLunarLeapMonth; // 未使用 QString mZodiac; // 农历年的生肖 QString mTerm; // 农历节气 QString mSolarFestival; // 公历节日 QString mLunarFestival; // 农历节日 qint32 mWorktime; // 未使用 }; class CaLunarMonthInfo { public: CaLunarMonthInfo() {} static void registerMetaType(); friend QDebug operator<<(QDebug argument, const CaLunarMonthInfo &what); friend QDBusArgument &operator<<(QDBusArgument &argument, const CaLunarMonthInfo &what); friend const QDBusArgument &operator>>(const QDBusArgument &argument, CaLunarMonthInfo &what); public: qint32 mFirstDayWeek; qint32 mDays; QList mCaLunarDayInfo; }; class CaHuangLiDayInfo { public: CaHuangLiDayInfo() : mLunarLeapMonth(0) , mWorktime(0) { } static void registerMetaType(); friend QDebug operator<<(QDebug argument, const CaHuangLiDayInfo &what); friend QDBusArgument &operator<<(QDBusArgument &argument, const CaHuangLiDayInfo &what); friend const QDBusArgument &operator>>(const QDBusArgument &argument, CaHuangLiDayInfo &what); QString toJson(); void strJsonToInfo(const QString &strJson, bool &isVaild); void jsonObjectToInfo(const QJsonObject &jsonObject); public: QString mGanZhiYear; //年干支 QString mGanZhiMonth; //月干支 QString mGanZhiDay; //日干支 QString mLunarMonthName; //农历月名称 QString mLunarDayName; //农历日名称 qint32 mLunarLeapMonth; //闰月 QString mZodiac; //生肖 QString mTerm; //农历节气 QString mSolarFestival; //阳历节日 QString mLunarFestival; //农历节日 qint32 mWorktime; //未使用 QString mSuit; //黄历宜 QString mAvoid; //黄历忌 }; class CaHuangLiMonthInfo { public: CaHuangLiMonthInfo() {} static void registerMetaType(); friend QDebug operator<<(QDebug argument, const CaHuangLiMonthInfo &what); friend QDBusArgument &operator<<(QDBusArgument &argument, const CaHuangLiMonthInfo &what); friend const QDBusArgument &operator>>(const QDBusArgument &argument, CaHuangLiMonthInfo &what); QString toJson(); void strJsonToInfo(const QString &strJson, bool &isVaild); void clear(); public: qint32 mFirstDayWeek; //第一天所在周 qint32 mDays; //每月天数 QVector mCaLunarDayInfo; }; Q_DECLARE_METATYPE(CaLunarDayInfo) Q_DECLARE_METATYPE(CaLunarMonthInfo) Q_DECLARE_METATYPE(CaHuangLiDayInfo) Q_DECLARE_METATYPE(CaHuangLiMonthInfo) #endif // DBUSDATASTRUCT_H dde-calendar-5.9.1/calendar-basicstruct/src/lunardatastruct.cpp000066400000000000000000000015011423264401600246400ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "lunardatastruct.h" dde-calendar-5.9.1/calendar-basicstruct/src/lunardatastruct.h000066400000000000000000000026471423264401600243210ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 LUNARDATASTRUCT_H #define LUNARDATASTRUCT_H #include #include #include typedef struct HuangLi { qint64 ID = 0; // `json:"id"` // format: ("%s%02s%02s", year, month, day) QString Avoid {}; // `json:"avoid"` QString Suit {}; //`json:"suit"` } stHuangLi; typedef struct _tagHolidayInfo { QDate date; char status {}; } HolidayInfo; typedef struct _tagFestivalInfo { QString ID = 0; QString FestivalName {}; QString description {}; QString Rest {}; int month = 0; int year = 0; QVector listHoliday {}; } FestivalInfo; #endif // LUNARDATASTRUCT_H dde-calendar-5.9.1/calendar-basicstruct/src/reminddata.cpp000066400000000000000000000054021423264401600235340ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "reminddata.h" RemindData::RemindData() : m_RemindNum(-1) , m_RemindTime(9, 0, 0) { } RemindData::RemindData(const int remindNum, const QTime &remindTime) : m_RemindNum(remindNum) , m_RemindTime(remindTime) { } /** * @brief setRemindNum 设置提前多久提醒 * @param num */ void RemindData::setRemindNum(const int num) { m_RemindNum = num; } /** * @brief getRemindNum 获取提前多久提醒 * @return */ int RemindData::getRemindNum() const { return m_RemindNum; } /** * @brief setRemindTime 设置提醒时间 * @param remindTime */ void RemindData::setRemindTime(const QTime &remindTime) { m_RemindTime = remindTime; } /** * @brief getRemindTime 获取提醒时间 * @return */ QTime RemindData::getRemindTime() const { return m_RemindTime; } /** * @brief RemindStringToRemindData 将sting转换为提醒数据 * @param remindStr 提醒的string数据 * @return */ RemindData RemindData::RemindStringToRemindData(const QString &remindStr) { RemindData _resultRemindData; if (!remindStr.isEmpty()) { QStringList liststr = remindStr.split(";", QString::SkipEmptyParts); _resultRemindData.setRemindNum(liststr.at(0).toInt()); if (liststr.size() > 1) { _resultRemindData.setRemindTime(QTime::fromString(liststr.at(1), "hh:mm")); } } return _resultRemindData; } /** * @brief RemindDataToRemindString 将提醒数据转换为string * @param remindData 提醒数据 * @param isAllDay 是否为全天 * @return */ QString RemindData::RemindDataToRemindString(const RemindData &remindData, const bool isAllDay) { QString _resultStr {""}; if (remindData.getRemindNum() != -1) { _resultStr += QString::number(remindData.getRemindNum()); if (isAllDay) { _resultStr += QString(";%1").arg(remindData.getRemindTime().toString("hh:mm")); } } return _resultStr; } dde-calendar-5.9.1/calendar-basicstruct/src/reminddata.h000066400000000000000000000036211423264401600232020ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 REMINDDATA_H #define REMINDDATA_H #include /** * @brief The RemindData class * 提醒规则 */ class RemindData { public: explicit RemindData(); RemindData(const int remindNum, const QTime &remindTime); //设置提前多久提醒 void setRemindNum(const int num); //获取提前多久提醒 int getRemindNum() const; //设置提醒时间 void setRemindTime(const QTime &remindTime); //获取提醒时间 QTime getRemindTime() const; //将sting转换为提醒数据 static RemindData RemindStringToRemindData(const QString &remindStr); //将提醒数据转换为string static QString RemindDataToRemindString(const RemindData &remindData, const bool isAllDay); private: /** * @brief m_RemindNum 提前多久提醒 * -1 永不提醒 * 若日程为全天 0~N 表示提前多少天提醒 * 若日程为非全天 0~N 表示提前多少分钟提醒 */ int m_RemindNum; /** * @brief m_RemindTime 提醒时间 * 只有日程为全天 才有效 */ QTime m_RemindTime; }; #endif // REMINDDATA_H dde-calendar-5.9.1/calendar-basicstruct/src/repetitionrule.cpp000066400000000000000000000133501423264401600244770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "repetitionrule.h" #include RepetitionRule::RepetitionRule() : m_ruleID(RRule_NONE) , m_ruleEndType(RRuleType_NEVER) , m_endDateTime() , m_endCount(0) { } /** * @brief getRuleId 获取重复规则id * @return */ RepetitionRule::RRuleID RepetitionRule::getRuleId() const { return m_ruleID; } /** * @brief setRuleId 设置重复规则id * @param ruleId */ void RepetitionRule::setRuleId(const RepetitionRule::RRuleID ruleId) { m_ruleID = ruleId; } /** * @brief setRuleType 设置重复结束类型 * @param endType */ void RepetitionRule::setRuleType(const RepetitionRule::RRuleEndType &endType) { m_ruleEndType = endType; } /** * @brief getRuleType 获取重复结束类型 * @return */ RepetitionRule::RRuleEndType RepetitionRule::getRuleType() const { return m_ruleEndType; } /** * @brief getEndDate 获取结束时间 * @return */ QDateTime RepetitionRule::getEndDate() const { return m_endDateTime; } /** * @brief setEndDate 设置结束时间 * @param endDate 结束时间 */ void RepetitionRule::setEndDate(const QDateTime &endDate) { m_endDateTime = endDate; } /** * @brief getEndCount 获取结束次数 * @return */ int RepetitionRule::getEndCount() const { return m_endCount; } /** * @brief setEndCount 设置结束次数 * @param endCount 结束次数 */ void RepetitionRule::setEndCount(const int endCount) { m_endCount = endCount; } void RepetitionRule::clear() { m_ruleID = RRule_NONE; m_ruleEndType = RRuleType_NEVER; } /** * @brief RuleStringToRuleData 解析重复规则 * @param ruleStr * @return */ RepetitionRule RepetitionRule::RuleStringToRuleData(const QString &ruleStr) { RepetitionRule _resultRule{}; if (ruleStr.isEmpty()) { return _resultRule; } QStringList rruleslist = ruleStr.split(";", QString::SkipEmptyParts); if (rruleslist.count() > 0) { if (rruleslist.contains("FREQ=DAILY") && rruleslist.contains("BYDAY=MO,TU,WE,TH,FR")) { _resultRule.setRuleId(RRule_WORKDAY); } else if (rruleslist.contains("FREQ=DAILY")) { _resultRule.setRuleId(RRule_EVEDAY); } else if (rruleslist.contains("FREQ=WEEKLY")) { _resultRule.setRuleId(RRule_EVEWEEK); } else if (rruleslist.contains("FREQ=MONTHLY")) { _resultRule.setRuleId(RRule_EVEMONTH); } else if (rruleslist.contains("FREQ=YEARLY")) { _resultRule.setRuleId(RRule_EVEYEAR); } for (int i = 0; i < rruleslist.count(); i++) { if (rruleslist.at(i).contains("COUNT=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); _resultRule.setRuleType(RRuleType_FREQ); _resultRule.setEndCount(liststr.at(1).toInt() - 1); } if (rruleslist.at(i).contains("UNTIL=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); if (liststr.size() > 1) { _resultRule.setRuleType(RRuleType_DATE); QDateTime _endDate = resolutionEndDate(liststr.at(1)); _resultRule.setEndDate(_endDate); } else { qWarning() << "Recurrence Rule Err," << ruleStr; } } } } return _resultRule; } /** * @brief RuleDataToRuleString 将重复数据转换为string类型 * @param rule 重复规则 * @return */ QString RepetitionRule::RuleDataToRuleString(const RepetitionRule &rule) { QString _resultStr {""}; switch (rule.getRuleId()) { case RRule_NONE: _resultStr += ""; break; case RRule_EVEDAY: _resultStr += "FREQ=DAILY"; break; case RRule_WORKDAY: _resultStr += "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR"; break; case RRule_EVEWEEK: _resultStr += "FREQ=WEEKLY"; break; case RRule_EVEMONTH: _resultStr += "FREQ=MONTHLY"; break; case RRule_EVEYEAR: _resultStr += "FREQ=YEARLY"; break; case RRule_CUSTOM: break; } switch (rule.getRuleType()) { case RRuleType_NEVER: break; case RRuleType_FREQ: _resultStr += QString(";COUNT=%1").arg(rule.getEndCount() + 1); break; case RRuleType_DATE: _resultStr += ";UNTIL=" + endDateToString(rule.getEndDate()); break; } return _resultStr; } /** * @brief RepetitionRule::resolutionEndDate 解析结束时间 * @param endDateStr * @return */ QDateTime RepetitionRule::resolutionEndDate(const QString &endDateStr) { return QDateTime::fromString(endDateStr.left(endDateStr.count() - 1), "yyyyMMddThhmmss"); } /** * @brief RepetitionRule::endDateToString 结束时间转换为string * @param endDate * @return */ QString RepetitionRule::endDateToString(const QDateTime &endDate) { return endDate.toString("yyyyMMddThhmmss") + "Z"; } dde-calendar-5.9.1/calendar-basicstruct/src/repetitionrule.h000066400000000000000000000054671423264401600241560ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 REPETITIONRULE_H #define REPETITIONRULE_H #include #include /** * @brief The RepetitionRule class * 重复规则 */ class RepetitionRule { public: enum RRuleID { RRule_NONE = 0, //不重复 RRule_EVEDAY, //每天 RRule_WORKDAY, //每个工作日 RRule_EVEWEEK, //每周 RRule_EVEMONTH, //每月 RRule_EVEYEAR, //每年 RRule_CUSTOM //用户自定义 }; enum RRuleEndType { RRuleType_NEVER = 0, //永不 RRuleType_FREQ, //结束于次数 RRuleType_DATE //结束与日期 }; public: explicit RepetitionRule(); //获取重复规则id RRuleID getRuleId() const; //设置重复规则id void setRuleId(const RRuleID ruleId); //设置重复结束类型 void setRuleType(const RRuleEndType &endType); //获取重复结束类型 RRuleEndType getRuleType() const; //获取结束时间 QDateTime getEndDate() const; //设置结束时间 void setEndDate(const QDateTime &endDate); //获取结束次数 int getEndCount() const; //设置结束次数 void setEndCount(const int endCount); void clear(); //解析重复规则 static RepetitionRule RuleStringToRuleData(const QString &ruleStr); //将重复数据转换为string类型 static QString RuleDataToRuleString(const RepetitionRule &rule); private: //解析结束时间 static QDateTime resolutionEndDate(const QString &endDateStr); //结束时间转换为string static QString endDateToString(const QDateTime &endDate); private: /** * @brief m_ruleID * 重复规则编号 */ RRuleID m_ruleID; /** * @brief m_endType * 结束类型 */ RRuleEndType m_ruleEndType; /** * @brief m_endDateTime * 重复结束时间 */ QDateTime m_endDateTime; /** * @brief m_endCount * 重复结束次数 */ int m_endCount; }; #endif // REPETITIONRULE_H dde-calendar-5.9.1/calendar-basicstruct/src/scheduledatainfo.cpp000066400000000000000000000671151423264401600247370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "scheduledatainfo.h" #include "utils.h" #include #include #include #include ScheduleDataInfo::ScheduleDataInfo() : m_ScheduleID(0) , m_ScheduleBeginDateTime() , m_ScheduleEndDateTime() , m_IgnoreVectorTime() , m_ScheduleTitleName("") , m_ScheduleDescription("") , m_ScheduleIsAllDay(true) , m_ScheduleType(1) , m_ScheduleRecurID(0) , m_ScheduleRRule() { } /** * @brief ScheduleID 获取日程ID * @return 日程ID */ int ScheduleDataInfo::getID() const { return m_ScheduleID; } /** * @brief setScheduleID 设置日程ID * @param scheduleID 日程id */ void ScheduleDataInfo::setID(int scheduleID) { m_ScheduleID = scheduleID; } /** * @brief ScheduleBeginDateTime 获取日程开始时间 * @return 日程开始时间 */ QDateTime &ScheduleDataInfo::getBeginDateTime() { return m_ScheduleBeginDateTime; } QDateTime ScheduleDataInfo::getBeginDateTime() const { return m_ScheduleBeginDateTime; } /** * @brief setScheduleBeginDateTime 设置日程开始时间 * @param ScheduleBeginDateTime 日程开始时间 */ void ScheduleDataInfo::setBeginDateTime(const QDateTime &beginDateTime) { m_ScheduleBeginDateTime = beginDateTime; } /** * @brief ScheduleEndDateTime 获取日程结束时间 * @return 日程结束时间 */ QDateTime &ScheduleDataInfo::getEndDateTime() { return m_ScheduleEndDateTime; } QDateTime ScheduleDataInfo::getEndDateTime() const { return m_ScheduleEndDateTime; } /** * @brief setScheduleEndDateTime 设置日程结束时间 * @param ScheduleEndDateTime 日程结束时间 */ void ScheduleDataInfo::setEndDateTime(const QDateTime &endDateTime) { m_ScheduleEndDateTime = endDateTime; } QVector &ScheduleDataInfo::getIgnoreTime() { return m_IgnoreVectorTime; } /** * @brief IgnoreVectorTime 获取日程重复忽略时间集 * @return 日程重复忽略时间集 */ QVector ScheduleDataInfo::getIgnoreTime() const { return m_IgnoreVectorTime; } /** * @brief setIgnoreVectorTime 设置日程重复忽略时间集 * @param IgnoreVectorTime 日程重复忽略时间集 */ void ScheduleDataInfo::setIgnoreTime(const QVector &ignoreVectorTime) { m_IgnoreVectorTime = ignoreVectorTime; } /** * @brief ScheduleTitleName 获取日程标题 * @return 日程标题 */ QString ScheduleDataInfo::getTitleName() const { return m_ScheduleTitleName; } /** * @brief setScheduleTitleName 设置日程标题 * @param ScheduleTitleName 日程标题 */ void ScheduleDataInfo::setTitleName(const QString &titleName) { m_ScheduleTitleName = titleName; } /** * @brief ScheduleDescription 获取日程描述信息 * @return 日程描述信息 */ QString ScheduleDataInfo::getDescription() const { return m_ScheduleDescription; } /** * @brief setScheduleDescription 设置日程描述信息 * @param ScheduleDescription 日程描述信息 */ void ScheduleDataInfo::setDescription(const QString &description) { m_ScheduleDescription = description; } /** * @brief ScheduleIsAllDay 获取日程是否为全天 * @return 是否为全天 */ bool ScheduleDataInfo::getAllDay() const { return m_ScheduleIsAllDay; } /** * @brief setScheduleIsAllDay 设置日程是否为全天 * @param ScheduleIsAllDay 是否为全天 */ void ScheduleDataInfo::setAllDay(const bool isAllDay) { m_ScheduleIsAllDay = isAllDay; } /** * @brief ScheduleType 获取日程类型 * @return 日程类型 */ int ScheduleDataInfo::getType() const { return m_ScheduleType; } /** * @brief setScheduleType 设置日程类型 * @param ScheduleType 日程类型 */ void ScheduleDataInfo::setType(int scheduleType) { m_ScheduleType = scheduleType; } /** * @brief ScheduleRecurID 获取日程重复id类型 * @return 重复id类型 */ int ScheduleDataInfo::getRecurID() const { return m_ScheduleRecurID; } /** * @brief setRecurID 设置日程重复id类型 * @param ScheduleRecurID 重复id类型 */ void ScheduleDataInfo::setRecurID(int recurID) { m_ScheduleRecurID = recurID; } /** * @brief setScheduleRemindData 设置日程提醒规则 * @param remindData 提醒规则 */ void ScheduleDataInfo::setRemindData(const RemindData &remindData) { m_ScheduleRemind = remindData; } /** * @brief getScheduleRemindData 获取提醒规则 * @return */ RemindData ScheduleDataInfo::getRemindData() const { return m_ScheduleRemind; } /** * @brief ScheduleRemind 设置日程提醒规则 * @return 提醒规则 */ QString ScheduleDataInfo::getScheduleRemind() const { return RemindData::RemindDataToRemindString(m_ScheduleRemind, this->getAllDay()); } /** * @brief setScheduleRemind 设置日程提醒规则 * @param ScheduleRemind 提醒规则 */ void ScheduleDataInfo::setScheduleRemind(const QString &scheduleRemind) { m_ScheduleRemind = RemindData::RemindStringToRemindData(scheduleRemind); } /** * @brief ScheduleRRule 获取日程重复规则 * @return 日程重复规则 */ QString ScheduleDataInfo::getScheduleRRule() const { return m_ScheduleRRule.RuleDataToRuleString(m_ScheduleRRule);; } /** * @brief setScheduleRRule 设置日程重复规则 * @param ScheduleRRule 日程重复规则 */ void ScheduleDataInfo::setScheduleRRule(const QString &scheduleRRule) { m_ScheduleRRule = RepetitionRule::RuleStringToRuleData(scheduleRRule); } void ScheduleDataInfo::registerMetaType() { qRegisterMetaType("ScheduleDataInfo"); } bool ScheduleDataInfo::getIsLunar() const { return m_isLunar; } void ScheduleDataInfo::setIsLunar(bool isLunar) { m_isLunar = isLunar; } /** * @brief setRepetitionRule 设置重复规则 * @param rule */ void ScheduleDataInfo::setRepetitionRule(const RepetitionRule &rule) { m_ScheduleRRule = rule; } /** * @brief ScheduleDataInfo::getRepetitionRule 获取重复规则 * @return */ RepetitionRule &ScheduleDataInfo::getRepetitionRule() { return m_ScheduleRRule; } /** * @brief getRepetitionRule 获取重复规则 * @return */ RepetitionRule ScheduleDataInfo::getRepetitionRule() const { return m_ScheduleRRule; } /** * @brief ScheduleDataInfo::isValid 日程是否有效 * @return */ bool ScheduleDataInfo::isValid() const { if (!getBeginDateTime().isValid()) { return false; } if (!getEndDateTime().isValid()) { return false; } if (getType() < 1) { return false; } return true; } /** * @brief ScheduleDataInfo::setIsMoveInfo 设置是否为拖拽移动日程 * @param isMoveInfo */ void ScheduleDataInfo::setIsMoveInfo(const bool &isMoveInfo) { m_moveInfo = isMoveInfo; } /** * @brief ScheduleDataInfo::getIsMoveInfo 获取是否为拖拽移动日程 * @return */ bool ScheduleDataInfo::getIsMoveInfo() const { return m_moveInfo; } /** * @brief ScheduleToJson 日程数据转换为json形式的字符串 * @param scheduleJsonData 日程数据 * @return json形式的字符串 */ QString ScheduleDataInfo::ScheduleToJsonStr(const ScheduleDataInfo &scheduleJsonData) { QJsonObject _scheduleJsonObject; _scheduleJsonObject.insert("ID", scheduleJsonData.getID()); _scheduleJsonObject.insert("AllDay", scheduleJsonData.getAllDay()); _scheduleJsonObject.insert("Remind", scheduleJsonData.getScheduleRemind()); _scheduleJsonObject.insert("RRule", scheduleJsonData.getScheduleRRule()); _scheduleJsonObject.insert("Title", scheduleJsonData.getTitleName()); _scheduleJsonObject.insert("Description", scheduleJsonData.getDescription()); _scheduleJsonObject.insert("Type", scheduleJsonData.getType()); _scheduleJsonObject.insert("Start", DateTimeToStringDate(scheduleJsonData.getBeginDateTime())); _scheduleJsonObject.insert("End", DateTimeToStringDate(scheduleJsonData.getEndDateTime())); _scheduleJsonObject.insert("RecurID", scheduleJsonData.getRecurID()); QJsonArray _ignoreJsonArray; for (int i = 0; i < scheduleJsonData.getIgnoreTime().count(); i++) { _ignoreJsonArray.append(DateTimeToStringDate(scheduleJsonData.getIgnoreTime().at(i))); } _scheduleJsonObject.insert("Ignore", _ignoreJsonArray); _scheduleJsonObject.insert("IsLunar", scheduleJsonData.getIsLunar()); // 构建 JSON 文档 QJsonDocument _scheduleJsonDocument; _scheduleJsonDocument.setObject(_scheduleJsonObject); QByteArray _scheduleByteArray = _scheduleJsonDocument.toJson(QJsonDocument::Compact); QString _resultJsonStr(_scheduleByteArray); return _resultJsonStr; } /** * @brief JsonToSchedule Json对象转换到日程数据 * @param ScheduleJsonObject json对象 * @return 日程数据 */ ScheduleDataInfo ScheduleDataInfo::JsonToSchedule(const QJsonObject &scheduleJsonObject) { ScheduleDataInfo _resultSchedule; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 //日程id if (scheduleJsonObject.contains("ID")) { _resultSchedule.setID(scheduleJsonObject.value("ID").toInt()); } //日程是否为全天 if (scheduleJsonObject.contains("AllDay")) { _resultSchedule.setAllDay(scheduleJsonObject.value("AllDay").toBool()); } //日程提醒规则 if (scheduleJsonObject.contains("Remind")) { _resultSchedule.setScheduleRemind(scheduleJsonObject.value("Remind").toString()); } //日程标题 if (scheduleJsonObject.contains("Title")) { _resultSchedule.setTitleName(scheduleJsonObject.value("Title").toString()); } //日程描述 if (scheduleJsonObject.contains("Description")) { _resultSchedule.setDescription(scheduleJsonObject.value("Description").toString()); } //日程类型 if (scheduleJsonObject.contains("Type")) { _resultSchedule.setType(scheduleJsonObject.value("Type").toInt()); } //日程开始时间 if (scheduleJsonObject.contains("Start")) { _resultSchedule.setBeginDateTime(StringDateToDateTime(scheduleJsonObject.value("Start").toString())); } //日程结束时间 if (scheduleJsonObject.contains("End")) { _resultSchedule.setEndDateTime(StringDateToDateTime(scheduleJsonObject.value("End").toString())); } //日程重复ID if (scheduleJsonObject.contains("RecurID")) { _resultSchedule.setRecurID(scheduleJsonObject.value("RecurID").toInt()); } //日程重复规则 if (scheduleJsonObject.contains("RRule")) { _resultSchedule.setScheduleRRule(scheduleJsonObject.value("RRule").toString()); } //重复日程忽略日期集 if (scheduleJsonObject.contains("Ignore")) { QJsonArray subArray = scheduleJsonObject.value("Ignore").toArray(); QVector _ignoreDateVector; for (int i = 0; i < subArray.size(); i++) { QString subObj = subArray.at(i).toString(); _ignoreDateVector.append(StringDateToDateTime(subObj)); } _resultSchedule.setIgnoreTime(_ignoreDateVector); } //是否为农历日程 if (scheduleJsonObject.contains("IsLunar")) { _resultSchedule.setIsLunar(scheduleJsonObject.value("IsLunar").toBool()); } return _resultSchedule; } /** * @brief ScheduleDataInfo::JsonStrToSchedule 将json转换为日程 * @param jsonStr json数据 * @return */ ScheduleDataInfo ScheduleDataInfo::JsonStrToSchedule(const QString &jsonStr) { QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonStr.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { qWarning() << json_error.errorString(); } QJsonObject ssubObj = jsonDoc.object(); return ScheduleDataInfo::JsonToSchedule(ssubObj); } /** * @brief StringDateToDateTime string类型的datetime数据转换为QDateTime * @param dateStr string类型的datetime数据 * @return QDateTime */ QDateTime ScheduleDataInfo::StringDateToDateTime(const QString &dateStr) { return QDateTime::fromString(dateStr, Qt::ISODate); } /** * @brief DateTimeToStringDate QDateTime转换为string类型的datetime数据 * @param dateTime 需要转换的时间 * @return string类型的datetime数据 */ QString ScheduleDataInfo::DateTimeToStringDate(const QDateTime &dateTime) { QTime _offsetTime = QTime(0, 0).addSecs(dateTime.timeZone().offsetFromUtc(dateTime)); return QString("%1+%2").arg(dateTime.toString("yyyy-MM-ddThh:mm:ss")).arg(_offsetTime.toString("hh:mm")); } /** * @brief JsonArrayDataToScheduleMapData 将JsonArray数据转换为QMap存储Schedule数据 * @param jsonArrData JsonArray数据 * @return QMap存储Schedule数据 */ QMap > ScheduleDataInfo::JsonArrayDataToScheduleMapData(const QJsonArray &jsonArrData) { QMap > _resultMap; QJsonObject _jsonObjScheduleVector; QVector _scheduleVector; QDate _date; for (int i = 0; i < jsonArrData.size(); i++) { _jsonObjScheduleVector = jsonArrData.at(i).toObject(); _scheduleVector.clear(); //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (_jsonObjScheduleVector.contains("Date")) { _date = QDate::fromString(_jsonObjScheduleVector.value("Date").toString(), "yyyy-MM-dd"); } if (_jsonObjScheduleVector.contains("Jobs")) { QJsonArray subArray = _jsonObjScheduleVector.value("Jobs").toArray(); for (int j = 0; j < subArray.size(); j++) { QJsonObject _jsonObjectSchedule = subArray.at(j).toObject(); _scheduleVector.append(JsonToSchedule(_jsonObjectSchedule)); } } _resultMap[_date] = _scheduleVector; } return _resultMap; } QMap > ScheduleDataInfo::StrJsonToRangeInfo(const QString &jsonStr) { QMap >_resultInfo {}; QVector _scheduleVector; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonStr.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { qWarning() << json_error.errorString(); return _resultInfo; } QJsonArray rootarry = jsonDoc.array(); _resultInfo = JsonArrayDataToScheduleMapData(rootarry); return _resultInfo; } /** * @brief ScheduleDataInfo::operator == 判断日程是否相等 * @param info * @return */ bool ScheduleDataInfo::operator ==(const ScheduleDataInfo &info) const { if (info.getType() == 4) { //由于后端每次启动设置的节日日程id不一定相同,所以不比较日程id return this->getTitleName() == info.getTitleName() && this->getBeginDateTime() == info.getBeginDateTime(); } else { return this->getID() == info.getID() && this->getRecurID() == info.getRecurID() && this->getTitleName() == info.getTitleName() /*&& this->getEndDateTime() == info.getEndDateTime() && this->getBeginDateTime() == info.getBeginDateTime()*/; } } /** * @brief ScheduleDataInfo::operator < 对比日程大小 * @param info * @return */ bool ScheduleDataInfo::operator <(const ScheduleDataInfo &info) const { if (getBeginDateTime().date() != getEndDateTime().date() && info.getBeginDateTime().date() == info.getEndDateTime().date()) { return true; } else if (getBeginDateTime().date() == getEndDateTime().date() && info.getBeginDateTime().date() != info.getEndDateTime().date()) { return false; } else if (getBeginDateTime().date() != getEndDateTime().date() && info.getBeginDateTime().date() != info.getEndDateTime().date()) { if (getBeginDateTime().date() == info.getBeginDateTime().date()) { return getBeginDateTime().daysTo(getEndDateTime()) > info.getBeginDateTime().daysTo(info.getEndDateTime()); } return getBeginDateTime().date() < info.getBeginDateTime().date(); } else { if (getType() == 4) return true; if (info.getType() == 4) return false; if (getBeginDateTime() == info.getBeginDateTime()) { if (getTitleName() == info.getTitleName()) { return getID() < info.getID(); } return getTitleName() < info.getTitleName(); } else { return getBeginDateTime() < info.getBeginDateTime(); } } } /** * @brief operator << 日程信息调试打印 * @param debug * @param scheduleJsonData * @return */ QDebug operator<<(QDebug debug, const ScheduleDataInfo &scheduleJsonData) { debug << "(" << QString("ID:") << scheduleJsonData.getID() << QString(",") << QString("IsAllDay:") << scheduleJsonData.getAllDay() << QString(",") << QString("TitleName:") << scheduleJsonData.getTitleName() << QString(",") << QString("BeginDateTime:") << scheduleJsonData.getBeginDateTime() << QString(",") << QString("EndDateTime:") << scheduleJsonData.getEndDateTime() << QString(",") << QString("Description:") << scheduleJsonData.getDescription() << QString(",") << QString("Type:") << scheduleJsonData.getType() << QString(",") << QString("RRule:") << scheduleJsonData.getScheduleRRule() << QString(",") << QString("Remind:") << scheduleJsonData.getScheduleRemind() << QString(",") << QString("RecurID:") << scheduleJsonData.getRecurID() << QString("IsLunar:") << scheduleJsonData.getIsLunar() << ")"; return debug; } /** * @brief JobTypeInfo 构造函数 */ JobTypeInfo::JobTypeInfo(int typeNo, QString typeName, int colorTypeNo, QString colorHex, int authority) : iJobTypeNo(typeNo) , strJobTypeName(typeName) , m_ColorInfo(colorTypeNo, colorHex) , iAuthority(authority) { } JobTypeInfo::JobTypeInfo(int typeNo, QString typeName, const JobTypeColorInfo &colorInfo) : iJobTypeNo(typeNo) , strJobTypeName(typeName) , m_ColorInfo(colorInfo) , iAuthority(colorInfo.getAuthority()) { } /** * @brief JobTypeInfo 构造函数 */ JobTypeInfo::JobTypeInfo(const JobTypeInfo &_other) { iJobTypeNo = _other.getJobTypeNo(); strJobTypeName = _other.getJobTypeName(); m_ColorInfo = _other.getColorInfo(); iAuthority = _other.getAuthority(); } JobTypeColorInfo::JobTypeColorInfo(int typeNo, QString colorHex, int authority) : iTypeNo(typeNo) , strColorHex(colorHex) , iAuthority(authority) { } /** * @brief JsonStrToTypeInfo 从json串解析出日程类型列表 * @param jsonStr json串 * @param QList 日程类型列表 */ bool JobTypeInfo::jsonStrToJobTypeInfoList(const QString &strJson, QList &lstJobType) { QJsonArray ja; Utils::StringToObject(strJson, ja); lstJobType.clear(); QJsonObject _jsonObj; for (int i = 0; i < ja.size(); i++) { _jsonObj = ja.at(i).toObject(); JobTypeInfo _jobtype; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 //日程类型编号 if (_jsonObj.contains("JobTypeNo")) { _jobtype.setJobTypeNo(_jsonObj.value("JobTypeNo").toInt()); } //日程类型名称 if (_jsonObj.contains("JobTypeName")) { _jobtype.setJobTypeName(_jsonObj.value("JobTypeName").toString()); } //日程类型颜色编号 if (_jsonObj.contains("ColorTypeNo")) { _jobtype.setColorTypeNo(_jsonObj.value("ColorTypeNo").toInt()); } //日程类型颜色16进制编码 if (_jsonObj.contains("ColorHex")) { _jobtype.setColorHex(_jsonObj.value("ColorHex").toString()); } //日程类型权限 if (_jsonObj.contains("Authority")) { _jobtype.setAuthority(_jsonObj.value("Authority").toInt()); } lstJobType.push_back(_jobtype); } return true; } /** * @brief JsonStrToJobTypeInfo 从json串解析出一条日程类型记录 * @param jsonStr json串 * @param lstJobType 一条日程类型记录 */ bool JobTypeInfo::jsonStrToJobTypeInfo(const QString &strJson, JobTypeInfo &jobType) { QJsonArray ja; Utils::StringToObject(strJson, ja); if (ja.size() < 1) { return false; } QJsonObject _jsonObj = ja.at(0).toObject(); //因为是预先定义好的JSON数据格式,所以这里可以这样读取 //日程类型编号 if (_jsonObj.contains("JobTypeNo")) { jobType.setJobTypeNo(_jsonObj.value("JobTypeNo").toInt()); } //日程类型名称 if (_jsonObj.contains("JobTypeName")) { jobType.setJobTypeName(_jsonObj.value("JobTypeName").toString()); } //日程类型颜色编号 if (_jsonObj.contains("ColorTypeNo")) { jobType.setColorTypeNo(_jsonObj.value("ColorTypeNo").toInt()); } //日程类型颜色16进制编码 if (_jsonObj.contains("ColorHex")) { jobType.setColorHex(_jsonObj.value("ColorHex").toString()); } //日程类型权限 if (_jsonObj.contains("Authority")) { jobType.setAuthority(_jsonObj.value("Authority").toInt()); } return true; } //将一条日程记录转换为json bool JobTypeInfo::jobTypeInfoToJsonStr(const JobTypeInfo &jobType, QString &strJson) { QJsonArray jsonArray; QJsonDocument doc; QJsonObject obj; obj.insert("JobTypeNo", jobType.getJobTypeNo()); obj.insert("JobTypeName", jobType.getJobTypeName()); obj.insert("ColorTypeNo", jobType.getColorTypeNo()); obj.insert("ColorHex", jobType.getColorHex()); obj.insert("Authority", jobType.getAuthority()); jsonArray.append(obj); doc.setArray(jsonArray); strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return true; } /** * @brief jobTypeInfoListToJosnString 日程列表转Json串 * param lstJobType JobType日程类型信息列表 * param strJson json格式的日程类型信息 * return bool 返回操作结果 */ bool JobTypeInfo::jobTypeInfoListToJosnString(const QList &lstJobType, QString &strJson) { QJsonArray jsonArray; QJsonDocument doc; foreach (JobTypeInfo _jobType, lstJobType) { QJsonObject obj; obj.insert("JobTypeNo", _jobType.getJobTypeNo()); obj.insert("JobTypeName", _jobType.getJobTypeName()); obj.insert("ColorTypeNo", _jobType.getColorTypeNo()); obj.insert("ColorHex", _jobType.getColorHex()); obj.insert("Authority", _jobType.getAuthority()); jsonArray.append(obj); } doc.setArray(jsonArray); strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return true; } /** * @brief JsonStrToTypeInfo 从json串解析出颜色列表 * @param jsonStr json串 * @param QList 颜色列表 */ bool JobTypeInfo::jsonStrToColorTypeInfoList(const QString &strJson, QList &lstColorType) { QJsonArray ja; Utils::StringToObject(strJson, ja); lstColorType.clear(); QJsonObject _jsonObj; for (int i = 0; i < ja.size(); i++) { _jsonObj = ja.at(i).toObject(); JobTypeColorInfo _colortype; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 //颜色类型编号 if (_jsonObj.contains("ColorTypeNo")) { _colortype.setTypeNo(_jsonObj.value("ColorTypeNo").toInt()); } //颜色16进制编码 if (_jsonObj.contains("ColorHex")) { _colortype.setColorHex(_jsonObj.value("ColorHex").toString()); } //颜色类型权限 if (_jsonObj.contains("Authority")) { _colortype.setAuthority(_jsonObj.value("Authority").toInt()); } lstColorType.push_back(_colortype); } return true; } /** * @brief JsonStrToTypeInfo 从json串解析出颜色信息 * @param jsonStr json串 * @param colorTypeInfo 颜色信息 */ bool JobTypeInfo::jsonStrToColorTypeInfo(const QString &strJson, JobTypeColorInfo &colorTypeInfo) { QJsonArray ja; Utils::StringToObject(strJson, ja); if (ja.size() < 1) { return false; } QJsonObject _jsonObj = ja.at(0).toObject(); //因为是预先定义好的JSON数据格式,所以这里可以这样读取 //颜色类型编号 if (_jsonObj.contains("ColorTypeNo")) { colorTypeInfo.setTypeNo(_jsonObj.value("ColorTypeNo").toInt()); } //颜色16进制编码 if (_jsonObj.contains("ColorHex")) { colorTypeInfo.setColorHex(_jsonObj.value("ColorHex").toString()); } //颜色类型权限 if (_jsonObj.contains("Authority")) { colorTypeInfo.setAuthority(_jsonObj.value("Authority").toInt()); } return true; } /** * @brief colorTypeInfoToJsonStr 将一条颜色记录转换为json * @param jsonStr json串 * @param colorTypeInfo 颜色信息 */ bool JobTypeInfo::colorTypeInfoToJsonStr(const JobTypeColorInfo &colorType, QString &strJson) { QJsonArray jsonArray; QJsonDocument doc; QJsonObject obj; obj.insert("ColorTypeNo", colorType.getTypeNo()); obj.insert("ColorHex", colorType.getColorHex()); obj.insert("Authority", colorType.getAuthority()); jsonArray.append(obj); doc.setArray(jsonArray); strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return true; } /** * @brief colorTypeToJosnString 颜色列表转Json串 * param lstColorType JobType日程类型信息列表 * param strJson json格式的日程类型信息 * return bool 返回操作结果 */ bool JobTypeInfo::colorTypeInfoListToJosnString(const QList &lstColorType, QString &strJson) { QJsonArray jsonArray; QJsonDocument doc; foreach (JobTypeColorInfo var, lstColorType) { QJsonObject obj; obj.insert("ColorTypeNo", var.getTypeNo()); obj.insert("ColorHex", var.getColorHex()); obj.insert("Authority", var.getAuthority()); jsonArray.append(obj); } doc.setArray(jsonArray); strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return true; } JobTypeColorInfo JobTypeInfo::getColorInfo() const { return m_ColorInfo; } JobTypeColorInfo &JobTypeInfo::getColorInfo() { return m_ColorInfo; } void JobTypeInfo::setColorInfo(const JobTypeColorInfo &ColorInfo) { m_ColorInfo = ColorInfo; } dde-calendar-5.9.1/calendar-basicstruct/src/scheduledatainfo.h000066400000000000000000000274131423264401600244010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 SCHEDULEJSONDATA_H #define SCHEDULEJSONDATA_H #include "repetitionrule.h" #include "reminddata.h" #include "utils.h" #include #include #include #include #include class QDebug; /** * @brief The ScheduleJsonData class * 日程数据结构与Json对应 */ class ScheduleDataInfo { public: explicit ScheduleDataInfo(); //获取日程ID int getID() const; //设置日程ID void setID(int scheduleID); //获取开始时间 QDateTime &getBeginDateTime(); QDateTime getBeginDateTime() const; //设置开始时间 void setBeginDateTime(const QDateTime &beginDateTime); //获取结束时间 QDateTime &getEndDateTime(); QDateTime getEndDateTime() const; //设置结束时间 void setEndDateTime(const QDateTime &endDateTime); //获取日程忽略时间集 QVector &getIgnoreTime(); QVector getIgnoreTime() const; //获取日程忽略时间集 void setIgnoreTime(const QVector &ignoreVectorTime); //获取日程标题 QString getTitleName() const; //设置日程标题 void setTitleName(const QString &titleName); //获取日程描述信息 QString getDescription() const; //设置日程描述信息 void setDescription(const QString &description); //获取日程是否为全天 bool getAllDay() const; //设置日程是否为全天 void setAllDay(const bool isAllDay); //获取日程类型 int getType() const; //设置日程类型 void setType(int scheduleType); //获取日程重复id类型 int getRecurID() const; //设置日程重复id类型 void setRecurID(int recurID); //设置日程提醒规则 void setRemindData(const RemindData &remindData); //获取提醒规则 RemindData getRemindData() const; //设置重复规则 void setRepetitionRule(const RepetitionRule &rule); //获取重复规则 RepetitionRule &getRepetitionRule(); //获取重复规则 RepetitionRule getRepetitionRule() const; //该日程是否有效 bool isValid() const; //设置是否为拖拽移动日程 void setIsMoveInfo(const bool &isMoveInfo); //获取是否为拖拽移动日程 bool getIsMoveInfo()const; //日程数据转换为json形式的字符串 static QString ScheduleToJsonStr(const ScheduleDataInfo &scheduleJsonData); //Json对象转换到日程数据 static ScheduleDataInfo JsonToSchedule(const QJsonObject &scheduleJsonObject); //将json转换为日程 static ScheduleDataInfo JsonStrToSchedule(const QString &jsonStr); //string类型的datetime数据转换为QDateTime static QDateTime StringDateToDateTime(const QString &dateStr); //QDateTime转换为string类型的datetime数据 static QString DateTimeToStringDate(const QDateTime &dateTime); //将JsonArray数据转换为QMap存储Schedule数据 static QMap > JsonArrayDataToScheduleMapData(const QJsonArray &jsonArrData); static QMap > StrJsonToRangeInfo(const QString &jsonStr); //判断日程是否相等 bool operator ==(const ScheduleDataInfo &info) const; //判断日程大小 bool operator <(const ScheduleDataInfo &info) const; /** * @brief getIsLunar 返回是否为农历日程 * @return */ bool getIsLunar() const; /** * @brief setIsLunar 设置是否为农历日程 * @param isLunar */ void setIsLunar(bool isLunar); private: //获取日程提醒规则 QString getScheduleRemind() const; //设置日程提醒规则 void setScheduleRemind(const QString &scheduleRemind); //获取日程重复规则 QString getScheduleRRule() const; //设置日程重复规则 void setScheduleRRule(const QString &scheduleRRule); public: static void registerMetaType(); //日程信息调试打印 friend QDebug operator<<(QDebug debug, const ScheduleDataInfo &scheduleJsonData); private: /** * @brief m_ScheduleID 日程ID */ int m_ScheduleID; /** * @brief m_ScheduleBeginDateTime 日常开始时间 */ QDateTime m_ScheduleBeginDateTime; /** * @brief m_ScheduleEndDateTime 日程结束时间 */ QDateTime m_ScheduleEndDateTime; /** * @brief m_Ignore_VectorTime 重复日程忽略时间集 */ QVector m_IgnoreVectorTime; /** * @brief m_ScheduleTitleName 日程标题 */ QString m_ScheduleTitleName; /** * @brief m_ScheduleDescription 日程描述 */ QString m_ScheduleDescription; /** *@brief m_ScheduleIsAllDay 是否为全天日程 * true 表示全天 * false 表示非全天 */ bool m_ScheduleIsAllDay; //1全天 /** * @brief m_ScheduleType 日程类型 * 1 工作 * 2 生活 * 3 其他 * 4 节日信息 */ int m_ScheduleType; //1工作 2 生活 3其他 /** * @brief m_ScheduleRecurID 日程重复id类型 * 0 原始数据 * >0 克隆数据 */ int m_ScheduleRecurID; /** * @brief m_ScheduleRemind 提醒规则 */ RemindData m_ScheduleRemind; /** * 日程重复规则 * 具体规则可参考资料 https://www.rfc-editor.org/rfc/rfc5545.html#page-38 * 3.3.10. Recurrence Rule * @brief m_Rule 重复规则 */ RepetitionRule m_ScheduleRRule; bool m_isLunar = false; //是否为农历日程 //客户端使用判断是否为拖拽移动日程 bool m_moveInfo{false}; }; Q_DECLARE_METATYPE(ScheduleDataInfo); class JobTypeColorInfo { /* *功能: * 1.保存日程颜色信息,包括TypeNo、ColorHex、Authority * 2.提供查、增、删、改接口 */ public: explicit JobTypeColorInfo(int typeNo = 0, QString colorHex = "", int authority = 0); void setTypeNo(int typeNo) { iTypeNo = typeNo; return; } int getTypeNo() const { return iTypeNo; } void setColorHex(QString colorHex) { strColorHex = colorHex; return; } QString getColorHex() const { return strColorHex; } void setAuthority(int authority) { iAuthority = authority; return; } int getAuthority() const { return iAuthority;//系统默认颜色设置权限为1,用户自定义为7.1:2:4分别对应——展示:改:删除 } //颜色是否为系统默认颜色 bool isSysColorInfo() const { return (iTypeNo > 0 && iTypeNo < 10); } JobTypeColorInfo &operator=(const JobTypeColorInfo *info) { iTypeNo = info->getTypeNo(); strColorHex = info->getColorHex(); iAuthority = info->getAuthority(); return *this; } bool operator==(const JobTypeColorInfo &info) { return iTypeNo == info.iTypeNo && strColorHex == info.strColorHex && iAuthority == info.iAuthority; } bool operator!=(const JobTypeColorInfo &info) { return !(*this == info); } private: int iTypeNo; QString strColorHex; int iAuthority; }; class JobTypeInfo { /*功能: * 1.保存日程类型信息,包括JobTypeNo、JobTypeName、ColorTypeNo、ColorHex、Authority * 2.提供查、增、删、改接口 */ public: JobTypeInfo(int typeNo = 0, QString typeName = "", int colorTypeNo = 0, QString colorHex = "", int authority = 0); JobTypeInfo(int typeNo, QString typeName, const JobTypeColorInfo &colorInfo = JobTypeColorInfo()); JobTypeInfo(const JobTypeInfo &); JobTypeInfo &operator=(const JobTypeInfo *info) { iJobTypeNo = info->getJobTypeNo(); strJobTypeName = info->getJobTypeName(); m_ColorInfo = info->m_ColorInfo; iAuthority = info->getAuthority(); return *this; } bool operator==(const JobTypeInfo &info) { return this->iJobTypeNo == info.iJobTypeNo && this->strJobTypeName == info.strJobTypeName && this->m_ColorInfo == info.m_ColorInfo && this->iAuthority == info.iAuthority; } bool operator!=(const JobTypeInfo &info) { return !(*this == info); } void setJobTypeNo(int typeNo) { iJobTypeNo = typeNo; return; } int getJobTypeNo() const { return iJobTypeNo; } void setJobTypeName(QString typeName) { strJobTypeName = typeName; return; } QString getJobTypeName() const { return strJobTypeName; } //设置颜色编码,默认为0。新建日程类型时,如果是选择自定义颜色,请不设置,或设置为0。 void setColorTypeNo(int typeNo) { m_ColorInfo.setTypeNo(typeNo); } int getColorTypeNo() const { return m_ColorInfo.getTypeNo(); } void setColorHex(const QString &colorHex) { m_ColorInfo.setColorHex(colorHex); } QString getColorHex() const { return m_ColorInfo.getColorHex(); } void setAuthority(int authority) { iAuthority = authority; return; } int getAuthority() const { return iAuthority;//系统默认日程类型设置权限为1,用户自定义为7.1:2:4分别对应——展示:改:删除 } //将json转换为日程列表 static bool jsonStrToJobTypeInfoList(const QString &strJson, QList &lstJobType); //将json转换为一条日程记录 static bool jsonStrToJobTypeInfo(const QString &strJson, JobTypeInfo &jobType); //将一条日程记录转换为json static bool jobTypeInfoToJsonStr(const JobTypeInfo &jobType, QString &strJson); //日程列表转Json串 static bool jobTypeInfoListToJosnString(const QList &lstJobType, QString &strJson); //将json转换为颜色列表 static bool jsonStrToColorTypeInfoList(const QString &strJson, QList &lstJobType); //将json转换为一条颜色记录 static bool jsonStrToColorTypeInfo(const QString &strJson, JobTypeColorInfo &colorType); //将一条颜色记录转换为json static bool colorTypeInfoToJsonStr(const JobTypeColorInfo &colorType, QString &strJson); /** * @brief colorTypeToJosnString 颜色列表转Json串 * param lstColorType JobType日程类型信息列表 * param strJson json格式的日程类型信息 * return bool 返回操作结果 */ static bool colorTypeInfoListToJosnString(const QList &lstColorType, QString &strJson); JobTypeColorInfo getColorInfo() const; JobTypeColorInfo &getColorInfo(); void setColorInfo(const JobTypeColorInfo &ColorInfo); private: int iJobTypeNo; //日程类型编号 QString strJobTypeName; //日程类型名称 JobTypeColorInfo m_ColorInfo; //日程颜色信息 int iAuthority; //权限 }; #endif // SCHEDULEJSONDATA_H dde-calendar-5.9.1/calendar-basicstruct/src/utils.cpp000066400000000000000000000053351423264401600225710ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 Utils::Utils() { } QString Utils::toconvertData(QDateTime date) { QDateTime datetimeutc = QDateTime::fromTime_t(0); QString str = date.toString("yyyy-MM-ddThh:mm:ss") + "+" + datetimeutc.toString("hh:mm"); return str; } QDateTime Utils::fromconvertData(QString str) { QStringList liststr = str.split("+", QString::SkipEmptyParts); return QDateTime::fromString(liststr.at(0), "yyyy-MM-ddThh:mm:ss"); } QDateTime Utils::fromconvertiIGData(QString str) { QStringList liststr = str.split("Z", QString::SkipEmptyParts); return QDateTime::fromString(liststr.at(0), "yyyy-MM-ddThh:mm:ss"); } /** * @brief JobToObject 将Job转换成QJsonObject * @param job Job结构体 * @return QJsonObject */ QJsonObject Utils::JobToObject(const Job &job) { QJsonObject obj; obj.insert("ID", job.ID); obj.insert("Type", job.Type); obj.insert("Title", job.Title); obj.insert("Description", job.Description); obj.insert("AllDay", job.AllDay); obj.insert("Start", Utils::toconvertData(job.Start)); obj.insert("End", Utils::toconvertData(job.End)); obj.insert("RRule", job.RRule); obj.insert("Remind", job.Remind); //将QString类型转换为QJsonArray类型,方便前端解析 obj.insert("Ignore", QJsonDocument::fromJson(job.Ignore.toUtf8()).array()); obj.insert("RecurID", job.RecurID); obj.insert("IsLunar", job.IsLunar); return obj; } /** * @brief StringToObject 将JSON格式字符串转换成QJsonObject * @param str JSON格式字符 * @param ssubObj 出参,QJsonObject * @return 是否正确 */ bool Utils::StringToObject(const QString &jsonStr, QJsonArray &ja) { QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonStr.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } ja = jsonDoc.array(); return true; } dde-calendar-5.9.1/calendar-basicstruct/src/utils.h000066400000000000000000000023361423264401600222340ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 UTILS_H #define UTILS_H #include "commondatastruct.h" #include #include class Utils { public: Utils(); static QString toconvertData(QDateTime date); static QDateTime fromconvertData(QString str); static QDateTime fromconvertiIGData(QString str); static QJsonObject JobToObject(const Job &job); static bool StringToObject(const QString &jsonStr, QJsonArray &); }; #endif // UTILS_H dde-calendar-5.9.1/calendar-client/000077500000000000000000000000001423264401600170605ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/CMakeLists.txt000066400000000000000000000063431423264401600216260ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) if (NOT DEFINED VERSION) message(WARNING "Not defined version ,about dialog version set 1.2.2") set(VERSION 1.2.2) endif () #common resource names set(APP_RES_DIR "assets") set(APP_BIN_NAME "dde-calendar") set(APP_DESKTOP "${APP_RES_DIR}/dde-calendar.desktop") set(APP_QRC "${APP_RES_DIR}/resources.qrc") set(APP_SERVICE "${APP_RES_DIR}/dbus/com.deepin.Calendar.service") project(${APP_BIN_NAME}) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--as-needed -fPIE") set(CMAKE_EXE_LINKER_FLAGS "-pie") if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "sw_64") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mieee") elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips64") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -ftree-vectorize -march=loongson3a -mhard-float -mno-micromips -mno-mips16 -flax-vector-conversions -mloongson-ext2 -mloongson-mmi -Wl,--as-needed") endif () #compile flags if (CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Wextra") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra") # Enable Qt builtin debug mode add_definitions("-DQT_MESSAGELOGCONTEXT") else() # -Wl, -O2 Enable linker optimizations # -Wl, --gc-sections Remove unused code resulting from -fdsta-sections and # -ffunction-sections set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2 -Wl,-O1 -Wl,--gc-sections") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -Wl,-O1 -Wl,--gc-sections") endif() #安全编译参数 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong -D_FORTITY_SOURCE=1 -z noexecstack -pie -fPIC -z lazy") configure_file(${APP_RES_DIR}/environments.h.in environments.h @ONLY) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) SUBDIRLIST(all_src ${CMAKE_CURRENT_SOURCE_DIR}/src) #Include all app own subdirectorys foreach(subdir ${all_src}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/${subdir}) endforeach() file(GLOB_RECURSE Calendar_SRC ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) find_package(PkgConfig REQUIRED) find_package(DtkCore REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5Svg REQUIRED) find_package(Qt5DBus REQUIRED) find_package(Qt5Svg REQUIRED) find_package(DtkWidget REQUIRED) find_package(DtkGui REQUIRED) find_package(DFrameworkdbus REQUIRED) include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}) include_directories(../calendar-basicstruct/) # Tell CMake to create the executable add_executable(${PROJECT_NAME} ${Calendar_SRC} ${APP_QRC}) target_include_directories(${PROJECT_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${OBJECT_BINARY_DIR}) target_link_libraries(${PROJECT_NAME} ${DtkWidget_LIBRARIES} ${DtkCore_LIBRARIES} ${DtkGui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Svg_LIBRARIES} ${Qt5DBus_LIBRARIES} ${DFrameworkdbus_LIBRARIES} basestruct ) set(CMAKE_INSTALL_PREFIX /usr) # Install files install(TARGETS dde-calendar DESTINATION bin) install(DIRECTORY ${APP_RES_DIR}/dde-calendar DESTINATION /usr/share/deepin-manual/manual-assets/application/) install(FILES ${APP_DESKTOP} DESTINATION share/applications) install(FILES ${APP_SERVICE} DESTINATION share/dbus-1/services) dde-calendar-5.9.1/calendar-client/assets/000077500000000000000000000000001423264401600203625ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dbus/000077500000000000000000000000001423264401600213175ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dbus/com.deepin.Calendar.service000066400000000000000000000001041423264401600264250ustar00rootroot00000000000000[D-BUS Service] Name=com.deepin.Calendar Exec=/usr/bin/dde-calendar dde-calendar-5.9.1/calendar-client/assets/dbus/com.deepin.Calendar.xml000066400000000000000000000003221423264401600255670ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/dde-calendar.desktop000066400000000000000000000173721423264401600242720ustar00rootroot00000000000000[Desktop Entry] Categories=Application;Utility;Calendar; Comment=Calendar is a date tool. Exec=dde-calendar GenericName=Calendar Icon=dde-calendar Keywords=calendar;date;deepin;dde; Name=Deepin Calendar StartupNotify=false Terminal=false Type=Application X-Deepin-TurboType=dtkwidget X-Deepin-Vendor=deepin X-MultipleArgs=false # Translations: # Do not manually modify! Comment[am_ET]=ቀን መቁጠሪያ Comment[ar]=التقويم هو أداة عرض التاريخ . Comment[ast]=Calendariu ye una ferramienta de dates. Comment[az]=Kalendar tarix alətidir Comment[bg]=Календарът е приложение за показване на датата. Comment[bn]=ক্যালেন্ডার একটি তারিখ টুল Comment[bo]=ལོ་ཐོ་ནི་ཚེས་གྲངས་ལྟ་བའི་ཡོ་བྱད་ཆུང་ཆུང་ཞིག་རེད། Comment[ca]=El calendari és una eina de cites. Comment[cs]=Kalendář je nástroj pro práci s datumy. Comment[da]=Kalender er et datoværktøj. Comment[de]=Kalender ist ein Datumswerkzeug. Comment[el]=Εφαρμογή Ημερολογίου Comment[en_AU]=Calendar is a date tool. Comment[en_GB]=Calendar is a date tool Comment[eo]=Kalendaro estas datilo. Comment[es]=Calendario de Deepin es una herramienta de gestión de eventos. Comment[et]=Kalender on kuupäeva tööriist. Comment[fa]=تقویم یک ابزار تاریخ است. Comment[fi]=Kalenteri on ajankäytön apuohjelma. Comment[fr]=Simple calendrier. Comment[gl_ES]=O calendario é unha ferramenta de datas. Comment[hi_IN]=दिनदर्शिका तिथि हेतु एक साधन है। Comment[hr]=Kalendar je alat za rad sa vremenom. Comment[hu]=A Naptár egy dátum megjelenítő eszköz. Comment[id]=Kalender adalah sebuah peralatan penanggalan. Comment[it]=Calendario è un tool calendario. Localizzazione italiana a cura di Carofano Massimo Antonio. Comment[ja]=カレンダーは日付ツールです。 Comment[ka]=კალენდარი არის თარიღებთან სამუშაო ხელსაწყო Comment[kab]=Awitay d afecku n wazemz. Comment[km_KH]=ប្រតិទិនគឺជាឧបករណ៍កាលបរិច្ឆេទ។ Comment[ko]=달력은 날짜 도구입니다. Comment[ku]=Salname navgîneke tarîxê ye. Comment[ku_IQ]=ساڵنامە ئامرازێکی بەروارە Comment[lt]=Kalendorius yra datų įrankis. Comment[lv]=Kalendārs ir datumu rīks. Comment[ml]=കലണ്ടർ ഒരു തീയതി ഉപകരണം ആണ് Comment[mn]=Хуанли нь огноо, цагалбарын хэрэгсэл. Comment[ms]=Kalendar merupakan alat tarikh. Comment[nb]=Kalander er et redskap for å organisere hendelser etter dato og klokkeslett. Comment[ne]=क्यालेन्डर एक मिति उपकरण हो। Comment[nl]=Kalender is een hulpmiddel voor het bijhouden van afspraken. Comment[pa]=ਕੈਲੰਡਰ ਤਾਰੀਖ ਸਾਧਨ ਹੈ। Comment[pl]=Kalendarz to narzędzie do zarządzania czasem. Comment[pt]=O Calendário é uma ferramenta de data. Comment[pt_BR]=O Calendário é uma ferramenta que permite agendar e visualizar eventos. Comment[ro]=Calendarul este un instrument pentru date Comment[ru]=Календарь является приложением для планирования Вашего времени. Comment[si]=දින දසුන දින මෙවලමකි. Comment[sk]=Kalendár je dátumový nástroj. Comment[sl]=Koledar je orodje za urejanje datumov. Comment[sq]=Kalendari është një mjet datash. Comment[sr]=Календар је алат за приказивање датума. Comment[sv]=Kalender är ett datumverktyg. Comment[sw]=Kalenda ni chombo ya tarehe Comment[tr]=Takvim, tarihi görüntüleyen bir araçtır. Comment[ug]=كالېندار ۋاقىتنى تەكشۈرىدىغان كىچىك قورال Comment[uk]=Календар Comment[vi]=Lịch là một công cụ ngày tháng. Comment[zh_CN]=日历是一款查看日期的小工具。 Comment[zh_HK]=日曆是一款查看日期的小工具。 Comment[zh_TW]=簡易日期顯示工具 GenericName[am_ET]=ቀን መቁጠሪያ GenericName[ar]=التقويم GenericName[ast]=Calendariu GenericName[az]=Kalendar GenericName[bg]=Календар GenericName[bn]=ক্যালেন্ডার GenericName[bo]=ལོ་ཐོ། GenericName[ca]=Calendari GenericName[cs]=Kalendář GenericName[da]=Kalender GenericName[de]=Kalender GenericName[el]=Ημερολόγιο GenericName[en_AU]=Calendar GenericName[en_GB]=Calendar GenericName[eo]=Kalendaro GenericName[es]=Calendario GenericName[et]=Kalender GenericName[fa]=تقویم GenericName[fi]=Kalenteri GenericName[fr]=Calendrier GenericName[gl_ES]=Calendario GenericName[hi_IN]=दिनदर्शिका GenericName[hr]=Kalendar GenericName[hu]=Naptár GenericName[id]=Kalender GenericName[it]=Calendario GenericName[ja]=カレンダー GenericName[ka]=კალენდარი GenericName[kab]=Awitay GenericName[km_KH]=ប្រតិទិន GenericName[ko]=달력 GenericName[ku]=Salname GenericName[ku_IQ]=Salname GenericName[lt]=Kalendorius GenericName[lv]=Kalendārs GenericName[ml]=കലണ്ടർ GenericName[mn]=Хуанли GenericName[ms]=Kalendar GenericName[nb]=Kalender GenericName[ne]=क्यालेन्डर GenericName[nl]=Kalender GenericName[pa]=ਕੈਲੰਡਰ GenericName[pl]=Kalendarz GenericName[pt]=Calendário GenericName[pt_BR]=Calendário GenericName[ro]=Calendar GenericName[ru]=Календарь GenericName[si]=දින දසුන GenericName[sk]=Kalendár GenericName[sl]=Koledar GenericName[sq]=Kalendar GenericName[sr]=Календар GenericName[sv]=Kalender GenericName[sw]=Kalenda GenericName[tr]=Takvim GenericName[ug]=كالېندار GenericName[uk]=Календар GenericName[vi]=Lịch GenericName[zh_CN]=日历 GenericName[zh_HK]=日曆 GenericName[zh_TW]=日曆 Name[am_ET]=ዲፕኢን ቀን መቁጠሪያ Name[ar]=تقويم ديبين Name[ast]=Deepin Calendar Name[az]=Deepin Kalendarı Name[bg]=Deepin Календар Name[bn]=ডিপিন ক্যালেন্ডার Name[bo]=གྲ་རྒྱས་པའི་ལོ་ཐོ། Name[ca]=Calendari del Deepin Name[cs]=Deepin kalendář Name[da]=Deepin kalender Name[de]=Deepin Kalender Name[el]=Ημερολόγιο Deepin Name[en_AU]=Deepin Calendar Name[en_GB]=Deepin Calendar Name[eo]=Deepin kalendaro Name[es]=Calendario Name[et]=Deepin Kalender Name[fa]=تقویم Deepin Name[fi]=Deepin kalenteri Name[fr]=Calendrier Deepin Name[gl_ES]=Calendario do Deepin Name[hi_IN]=डीपिन दिनदर्शिका Name[hr]=Deepin kalendar Name[hu]=Deepin® Naptár Name[id]=Kalender Deepin Name[it]=Calendario di Deepin Name[ja]=Deepin カレンダー Name[ka]=კალენდარი Name[kab]=Awitay n Deepin Name[km_KH]=ប្រតិទិន Deepin Name[ko]=Deepin 달력 Name[ku]=Salnameya Deepin Name[ku_IQ]=ساڵنامەی Deepin Name[lt]=Deepin kalendorius Name[lv]=Deepin kalendārs Name[ml]=ഡീപിൻ കലണ്ടർ Name[mn]=Деепин Хуанли Name[ms]=Kalendar Deepin Name[nb]=Deepin Kalender Name[ne]=डिपिन क्यालेन्डर Name[nl]=Deepin Kalender Name[pa]=ਡੀਪਿਨ ਕੈਲੰਡਰ Name[pl]=Kalendarz Deepin Name[pt]=Calendário Deepin Name[pt_BR]=deepin Calendário Name[ro]=Calendarul Deepin Name[ru]=Календарь Deepin Name[si]=Deepin දින දසුන Name[sk]=Deepin Kalendár Name[sl]=Deepin koledar Name[sq]=Kalendar Deepin Name[sr]=Дипин Календар Name[sv]=Deepin kalender Name[sw]=Kalenda ya Deepin Name[tr]=Deepin Takvim Name[ug]=Deepin كالېندارى Name[uk]=Календар Deepin Name[vi]=Lịch Deepin Name[zh_CN]=深度日历 Name[zh_HK]=深度日曆 Name[zh_TW]=Deepin 日曆 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/000077500000000000000000000000001423264401600226655ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/000077500000000000000000000000001423264401600244365ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/000077500000000000000000000000001423264401600257265ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/Ctrl.svg000066400000000000000000000040711423264401600273550ustar00rootroot00000000000000 Ctrl Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/QM.svg000066400000000000000000000040111423264401600267600ustar00rootroot00000000000000 QM Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/Shift.svg000066400000000000000000000067711423264401600275370ustar00rootroot00000000000000 Shift Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/add.svg000066400000000000000000000040031423264401600271740ustar00rootroot00000000000000 button/add dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/add1.svg000066400000000000000000000037321423264401600272650ustar00rootroot00000000000000 新增 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/attention.svg000066400000000000000000000020421423264401600304520ustar00rootroot00000000000000 attention dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/close_icon.svg000066400000000000000000000023671423264401600305740ustar00rootroot00000000000000 Rectangle 9 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/dde-calendar.svg000077500000000000000000000207651423264401600307670ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/dde_calendar.svg000077500000000000000000000170741423264401600310500ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/deepin_launcher.svg000066400000000000000000000076341423264401600316060ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/delete.svg000066400000000000000000000030771423264401600277200ustar00rootroot00000000000000 icon/schedule/delete dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/edit.svg000066400000000000000000000025721423264401600274020ustar00rootroot00000000000000 icon/schedule/edit dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/icon_menu.svg000066400000000000000000000047771423264401600304420ustar00rootroot00000000000000 image/svg+xml img_upload img_upload Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/notes.svg000066400000000000000000000031531423264401600276010ustar00rootroot00000000000000 notes dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/search.svg000066400000000000000000000013361423264401600277170ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/common/tips.svg000066400000000000000000000030731423264401600274310ustar00rootroot00000000000000 tips dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/en_US/000077500000000000000000000000001423264401600254475ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/en_US/calendar.md000066400000000000000000000263241423264401600275510ustar00rootroot00000000000000# Calendar|dde-calendar| ## Overview Calendar is a useful tool to manage your personal life. By relating events with specific time, it allows you to keep records and make plans for your schedule. ![0|main](fig/main.png) ## Guide You can run, close or create a desktop shortcut for Calendar by the following ways. ### Run Calender 1. Click the Launcher icon ![deepin_launcher](../common/deepin_launcher.svg) in the Dock to enter the Launcher interface. 2. Locate Calendar ![draw](../common/dde_calendar.svg) by scrolling the mouse wheel or searching "calendar" in the Launcher interface and click it to run. 3. Right-click ![draw](../common/dde_calendar.svg) and you can: - Click **Send to desktop** to create a desktop shortcut. - Click **Send to dock** to fix it in the Dock. - Click **Add to startup** to add the application to startup and it will automatically run when the system starts up. ### Exit Calendar - On the Calendar interface, click ![close_icon](../common/close_icon.svg) to exit calendar. - Right-click ![draw](../common/dde_calendar.svg) in the Dock and select **Close All** to exit. - Click ![icon_menu](../common/icon_menu.svg) on the Calendar interface and select **Exit** to exit. ### View Shortcuts On the Calendar interface, press **Ctrl + Shift + ?** on the keyboard to view shortcuts. Proficiency in shortcuts will greatly improve your efficiency. ![0|view](fig/hotkey.png) ## Operations Calendar can be divided into yearly view, monthly view, weekly view and daily view. Monthly view is defaulted and you can click to switch between different views. - Lunar calendar dates will only be displayed in the Chinese system in paring with the solar calendar dates. - The date starts from the year **1900** and you cannot view dates earlier than that year during date switching. - In the monthly and weekly view, the display of Saturday and Sunday is different from that of days between Monday to Friday. > ![notes](../common/notes.svg) Notes: Monday is displayed as the first day of a week by default and you can change the display order of a week as needed in **Control Center** > **Date and Time** > **Time Format**.
VIEW DESCRIPTION
Yearly View Display the months and days of the whole year.
Monthly View Display the days and schedule of the month.
Weekly View Display the days and schedule of the week.
Daily View Display the detailed schedule arrangements.
### Create Events 1. You can create events in one of the following ways: - Click the ![add](../common/add.svg) icon in the menu bar on the calendar interface. - Double-click, or right-click to select **New event** in the blank area in the monthly, weekly or daily view. - Click and drag the mouse in the monthly, weekly or daily view. 2. Set the event type, description, time, reminder, etc. in the pop-up **New Event** dialogue. ![0|create](fig/create.png)              
Parameter Description
Type There are three event types, namely "Work", "Life" and "Other" by default. You can also customize your event type.
  1. Select New event type from the Type dropdown list.
  2. The Type field become editable. Input the type name and set the color.
You can add, edit or delete the custome type by the Manage option in the main menu. Please refer to the Manage section in Main Menu for details.
Description Input the description information of the event.
Event time Set the time properties for the event.
  • All day
    • Check All Day: Only dates can be selected as starts and ends.
    • Uncheck All Day: Hours and minutes are available for starts and ends as well except for dates.
  • Time
    • Solar: Starts and ends are displayed in solar time only.
    • Lunar: Starts and ends are displayed both in solar time and lunar time.
Reminder Options for Reminde Me with All Day checked: Never, On start day (9:00 AM), 1 day before, 2 days before and 1 week before.
Options for Reminde Me with All Day unchecked: Never, At time of event, 15 mins before, 30 mins before, 1 hour before, 1 day before, 2 days before, 1 week before.
Repeat Options for Repeat with Solar checked: Never, Daily, Weekdays, Weekly, Monthly, Yealy.
Options for Repeat with Lunar checked: Never, Monthly, Yearly.
End Repeat Only when you enable the Repeat feature, can End Repeat be displayed. The options for End Repeat are Never, after n time(s) or on the date selected.
3. Click **Save** to create the event. ### Edit Events 1. Double-click or right-click a date with schedule in the monthly, weekly or daily view. 2. Select **Edit** and the **Edit Event** dialogue will pop up. 3. Set properties for the event under editing.   4. Click **Save**. 5. If it is set as an all-day event or a repeated event, a prompt box will pop up for you to confirm information and then complete editing. > ![notes](../common/notes.svg)Notes: You can drag the event label created to a specified time or date to change its starts and ends. During event editing, different prompt information will be displayed according to the changes of content. Description of icons contained in the prompt information is listed as below.
ICON Description
All Only effective for the changes of relevant repeating events.
Only This Event Only effective for the current event modification.
All Future Events All the future events on and after the selected date will be changed and the events before the selected date will remain unchanged.
Change All All repeating events will be changed.
### Set All-day or Multiple-day Events Set the **Starts** and **Ends** and you are able to set an all-day or consecutive multiple-day events when creating or editing an event. ### Set Repeating Events 1. Click the drop-down list on the right of **Repeat** and select an option as needed when creating or editing an event. 2. Click the drop-down list on the right of **End Repeat** and select the end time of the schedule. ![pic](fig/repeat.png) ### Search Events 1. In the top search box of the Calendar interface, you can click![search](../common/search.svg)to enter keywords. 2. Press the **Enter** key on the keyboard for searching. 3. Click ![0|close](../common/close_icon.svg) or delete the entered information in the search box to clear the current keywords or cancel the search. ### View Events Double-click an event title in the monthly, weekly or daily view and the **My Event** window will pop up. You can view events, [Edit Events](#Edit Events) or [Delete Events](#Delete Events). ### View Schedule Reminder Details Click the notification prompt box to view the schedule reminder details after the system sends out a notification. Description of icons contained in the prompt information is listed as below.
ICON DESCRIPTION
Remind me later The reminder is set on the current day. After the first reminder is given, click Remind me later and you will be reminded 10 minutes later. The following reminder intervals will be increased by 5 minutes each time on the basis of the last reminder internal when you click Remind me later.
You can also choose 15mins later, 1 hour later, 4 hours later or Tomorrow from the Remind me later dropdown list.
Remind me tomorrow The reminder is set to one day or two days ahead of the schedule.
One day before start The reminder is set to one week ahead of the schedule.
Close Turn off the prompt information.
### Delete Events 1. Double-click or right-click a date with event in the monthly, weekly or daily view. 2. Click **Delete** and a **You are deleting an event** prompt box will pop up. 3. Confirm the prompt information and delete the event. Description of icons contained in the prompt information for repeating and non-repeating events when you are deleting an event is listed as below.
ICON DESCRIPTION
Delete Delete non-repeating events.
Delete All Delete all occurrences of this event.
Delete Only This Event Delete only the selected occurrence of the event. This is only applicable to the repeating events.
Delete All Future Events Delete this occurences and all future occurrences of the event but the occurrences of the event before the selected date will be retained. This is only applicable to the repeating events.
## Main Menu On the main menu, you can manage the event type, switch window themes, view the help manual and get more information about Calendar. ### Manage #### Manage Event Types Click ![icon_menu](../common/icon_menu.svg) > **Manage** on the Calendar interface to enter the Manage Calendar interface. You can add, edite or delete the custom event type. ![pig](fig/manage.png) **Add An Event Type** 1. Click ![icon_menu](../common/add1.svg) on the Manage Calendar interface. 2. Input the name and set the color for the event type in the pop-up **New event type** dialogue. 3. Click **Save**. **Edit An Event Type** 1. Select a custom event type on the on the Manage Calendar interface. 1. Click ![icon_menu](../common/edit.svg). 2. Input the name and set the color for the event type in the pop-up **New event type** dialogue. 3. Click **Save**. **Delete An Event Type** 1. Select a custom event type on the on the Manage Calendar interface. 2. Click ![icon_menu](../common/delete.svg)to delete the event type. ### Theme There are three window themes, namely Light Theme, Dark Theme and System Theme. 1. Click ![icon_menu](../common/icon_menu.svg) on the Calendar interface. 2. Click **Theme** to select one theme. ### Help 1. Click ![icon_menu](../common/icon_menu.svg) on the Calendar interface. 2. Click **Help** to view the manual of Calendar. ### About 1. Click ![icon_menu](../common/icon_menu.svg) on the Calendar interface. 2. Click **About** to view the version and introduction of Calendar. ### Exit 1. Click ![icon_menu](../common/icon_menu.svg) on the Calendar interface. 2. Click **Exit** to exit Calendar. dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/en_US/fig/000077500000000000000000000000001423264401600262145ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/en_US/fig/create.png000066400000000000000000000726251423264401600302010ustar00rootroot00000000000000PNG  IHDR"f pHYs+ IDATxw|Ǚ7gv{%{UVUXlGc;$ĹK.|Kr)8q(nlV/V%{T(6bYR~!.f,`vv@JKK!ĢnB}a"0|B! _/B!xB[DM hlǙT_ڲ.GHOL]fl0ʃ=jg</#SK!_>y@⥉….V|K;.Vuy_O͹/zK4kimq1] ma`|P]/>H"$T541.8ӧ nVsno :kK~{4B{1I^/(V,X}oeG rV;ŀ8m'.n~`rɂŖ4ՙ֞`Cɉu5wsT4C{Swc464.2T2eS+mnAXaOA>' X;t{t9 7.oj?ۻ:Jd')Z$|K :p˰(yb±Np@Qf[*zX cEY±V7eHMV;nlb:cVb:\l&'d4Y%!:+*,@R÷IC,sw9`QBNWsR^$y:6R1cY|抂5[ͻ4̠D%cwxXWϫV|~/'LN1 7:}M!9i7U T|j|hTw_yeJ $ 32/;+:i^8 4l{@q/c]yRp,f/ֵ>X1|hS8JNNBXD(7}g@l¶'G%& 8*UJz cuEIJWgCEGGݼ=v+]'NF#/m$1|8w}BM(pqBWTT[ T]%%JPUmYTq#)O:Sv7i;p_~vog=\< TbYrmfm2Q.|@Ia/g`l{?\^LhOz=@ko֞4irګk]WSnsm Q^`#%{6|DRLS@1d0_y9#3(1AM   ɒ[s$j izNn֞8mŝ5bq Z|_qGJKKnB}'d &TԚ9>TJ0|qybM20i!Ƈ;-N8;Z"ʹ/%+Q/o^1I ջ ik[ :Bbcc !R!iX,߻D? xBS:e2٨ a5Q=_ ¡ ֺ:enB:  q$T^  K'QC/Ԥr3Xkjj0yTbX,Jz{{WhvVy[>nB?XLQ!OnWQߡNjֆ}^&1q^B:oT**X2 m3{9O=Z`tAa݊Eo|jv*6ؾ15+ݔy+:4|kb%*F;Mhos[{$Jo{m/L{g mLwP8e܇_~W'>G*Q;}VN']fϹ{kCv_zo[=_'Wo#WaJmA&M >Ͽ#OܘxˑTû[mA@Op-= =&}Yj cwCӖ6C$.j䙩loG7b}RsW YLzLKgXa^3ۤWcsVkYBhH%}!~[bXO?$a/Y|_](kR)Х'Öq'eN6T:_dvs0// b/:@(SZ Z! HHy+{ R4eIa.4 nDܿ:?䱉 O&_?#/8|0mhEoڬg} 4q, @eQ|鯻:Oyvco\OWoHfԨBG}|ܸ: %?nFs5)[bbfۙCl#'*|Z8RLkR^ [5#2s6!ŮkZ>%k)Ym!)=uJl7=Ji 4}/+?>s`2UR޼sE\S+\A)=(qJFhv՗tŹLkɇ~K1{__Gjwm{%e˒ŮOw}!|ބAlJ[ H<_DjZvj\M-DZ,;?f!ZdbyFuӔZ'~᪂tBmLX 9+ CYf2U̼Y('w\4V-mh2cYvb~V,rf?qbN*LUn͜--b&F}+Kqs%OEn?#wy8NN/,lyx6c&+ iz|O9B ,fW2+?*L/4(8]BpG=zkJ($;IjX-^RSSwB7|*aq_F%t+=Ln[(y|2/6^njK-և _][l )ct1To{PVh"T2$0! VK`NKKIEE){}qBVtʟ(R#jLt6]Yѝg讲Zݴ{{Y9s"ҤUu۝֦kg?mOG9o{Bx3g̜/kB(El6e=NI"BRk2m߱d]Ȉ$o&WϏ dm.f˪iU},96Bd2Dfa}S)yf@gim#Jhz %|AO0zpڗdhiZ.W0R::nBhŒݱp_] efN $Bh%%B8Y!xBfzͶ{ӬjȉLipF (Bδ-[eCV¤}~i33 s˗/s1gΜ/4H$HDd`0qH&-  %yS0e<_†˟TW]UK ,=zoGaOc_-n=Yqq6T^q] y{Io%/'W;&1HmqU9DV Vĉ Ww݁@ !!aMɻӃ.7fg$Epi\ђt{є_ht{Wn= OI UUu.y^XMº.Ot*r;jOYt=?/n s6NE[1>{?ڦzw:$DU}WGIOt#Tr86FCy>W0|+ve bZ~xk.2~J Q.n]-jx48i;wSNIۣ]nv]~U9qsPvlꃎq&Q])p/BQCld 2W ,?Pϙ;3v,>8g=dZ3+vDmGϳEsY8[& eNܸ1d8"! tf"Y[cY~Nx`[ڜA"Q%ƋN$_Ϊ s z,w1iAJnrW)[4ƹ*N8E .O 3 r ؎ ՝?'R2SԴ@-vm%"Ӽ&BhL۴~ VzG.ǭQ7X>?[m浞:&X>wI^QQaw.hM'1furm>UYJX3ZD λsndB$k̻gHzZ]dԻqQ|6r.B*Kr;fNLӉ;k)cfJzˌB(aYNvaͭ6u]J1LK7]h͛WB;djtYuv;E,u,˞8EoNY8n6>N lw[WW4ǨczjyrN|S էN01v,ޚ ]Μ{冦7M2KknV7^d^ҥZ:M'&w}u|Lw͞uW31*5z`I!uNtrzATEO/6K! <2 ܭAcAuyAי+`9BKUWSдc|@/tZ@MKKJ[}gAq;l[wHdJϿ{]ql:u#ͽ!JN*Ъ$5ټoǩc6+%?pa}?;b f%N˦_C"_[@\ΒĘx)2ܟ^;7(\'ҏ`ITu9aȜ$[}N grnD*V!mn6 $2 6&NTwYڬfgMEp:BnD1?rbi뼔iLmﴤlzbYUο/cy{'̴* @k;O(o||<`+ܦb^ ]}+ܼm/lؠ7;Z;/nӏ~ ;+!F(e](md-PH8F}c J_-! FUIKW+Mh7Zm]r[Аd2q'a `&RZt0o8tjVQ*S[i.a(X&ff)P]Q[{gY&K|a.ra׬XkNLޢ̟V+͖DAd&Ѣy>Np7:&DimpJC n3s#Dg[/vc-H֛K[{|>KŔ BtϫqjƱ,G( X=S?#wy8ʒa^[q>-{)J!pnG@cHȔ05DkO}B \9YPN/Ԕ20`u02Kdq@EeӉCUAe*]zQh :I|HѠpU%{q" 4ZMա J5+X~"B2.M9|y1*f/0)8؇/e<- e5Wu6BY{~2zԅoPo;Hhiz22e*oq&c=iG\Spq .&y֢YI~"YVWT<3BcoXCu)ft1To{PVh"T2ΔPmr˕WRtFr_+p%rݍ7(\q{d6vbvb'@I;;]M'N59`m{(4BU|ey=~r.>~:` D@WEz^Ol~-!?  ;.x"Z(Si}]d۽Ц9Pc9B0yd%/p_͎S>Πؐrs2}Ʒven\էDz,pr2$@}Rp+8_˿)qq^{AM-6N v"BV(FM jJ+k U'\-IhN6 g-z[;+<=ʒˬHpGiU %/IE cO+Hh]`o}g2Fr<PĹyXDqwASTԄ _\q|Ǐ>V^Д1aps{̒<wE\;V]8L<3rׅr2馋 ޤ9#@Ib|m_AﹶU_r9x,dշ7T"ˌl@ʟt)hTO^drnX"l\7]x} &-,|Ƒ)5Lͮ~RgL/\o RbRq~*-wzJqzw&Jd-2(!Dk;*,p;>|grӒ?~ \:sZZfK-tY|$/^6|i<.2n֪AM/C5+X\x5 HE e*/|. ˗iAw{BMEB!xBвȟYf'ٯ#li:Ԯ8WW[;gyan,KMҏvyX6} ˒tOk%G>>Q_Z \gGXiwM̙}s[`l7⃿q4۶?4ף9 +[%KVbɆ s>RG c%g6x][3G_ݶ_6,䱳K>-|v{wA7cov'3V͐⡗bg:"9zT\%o߾Ǜja%K8by碘XY7~,XBg5{k7֖cgʽߤ ]~GrvWM3};52un͸5!eXk#l]m:h?spGRUHeNZ??^+-?cg2S(;&iك_0*IAOMƪE j9`flRg5T9)jgs;V`IJ.S-^ gtM}kv@dVYDd0aŲ;l DRm;WVo(xGY#7$fmX;sۯ2QdHkebMbf% s6}͊DZ>inm_$eIJ(?ؚX"VRJe)qC_1Fdz t`ZCM@"!թ+ +ڶ?Gjp!?c8yҌTYuW,ڸjm%5uWCd66; q}jr3N7:C@hPEaC !2S՗% pB=>t` A~iK|" 9CQt%pt̾"&gdzו/u,s簮;x5B7ߣ@W7w/|t6_ Z߳8m{$M)oCZ0v]xTE4%[;n,g A]Ys=c'k1#S+4WIM 0lXԧ+ -IFЦXeAAkg;5,O^ :L1:z8-0t#")6\}Ƀa^sQAADpG&D5}^2s;'Z{J:_*`( +ٯpצsrE}G[5iIB*nfa;]>GKՇjEEy7LZ j:|Nvs$г3hb;ȿN#8=P]`XgU/TU8^!EcL*U/F#{e/2H7]ߘl{TߒN mi/@uCPIʞd=(u?pĚe__ %ן pmgoo goX7Es_yce 2˳-XyW>/V\gNY8჆awAEw-;*sXu9pm[7N;6VyߺEϠ=q}r|< )YRC,sVmO.d6!>[;4=8s jdKXϒ IxIIa|K8P?! 0|B! _/B!xBv|>_0!h|bT*H!nyW~rD"T*%ܴ.n$9vq'4!z^,4MiF;4Dz,0BPP~Ʋ\.=<.J8-χ!$66V(bH$ G_ZbP( |kmD&ձvc^d܍V !r|L޷44`00P%6RE7*NpxߑD"H$bxFdRoTBM@K,S5S4ш܋D"q\CFdRmLtY>=T:NX(J" ۈLc7]~!JE`ʾLcx{w)z0|B!ăN5 vVoyr>}NJXO[5S2qΊ +)< 4T8Q{洬e&HԾ3G^"]4$TAOO(?ꮮ ޓL Q,r{YׯZ&SrܑnGE f,I!.|C[_1nk `HR'pĻՍ eTM]VAΌ/R =G~K X}//<ŕz{J^ّcTZq Qcb9TũWH H2 B]{ڼL1s暙j,Mc7%J}ysQL껕_k ;p"9iUxێX7O vWM3};52}*Sd0!0͏Wde b3KxD)W`NNt*5-l~<5h٘VG"7:c+  IDATZ806{ÝL덧ji1e tE8/ N&Ə~H.~o1,+&U!{O5K}Ckڸ 2>}'>)>/Z[SlM|_yj wzG~Sْ)$Z,aG墠7dsKN~AȽoN P&Eݛ?~Oެ5ܷ 9T"w)WϿz|-e' li-~tQ@Yܲ53 hg{]8c rpgNE 3`}jbCcGW=\r?}k7Kwq%M~Ȗ#z`G8̉-3X`Y}Ծg +R߱xUA"Mbrne&ձçShI2J{ȇ+D>Xgm\ToQdA9.!,>X5gAfA[?V?#%k L|6kV'hh` iwv[A*?pWiU(cE@|7^f?( [ۧN:MN 6cʔP(PI{(Jzg?+hL`~q:ToȢ:s[>>;R:%U])@Rf:f'4q~7Ci&.S!`_e֕"zõ{&f}uZ<_gUڸpu6՜MK?_xp4pLg'fg]Q?&ns9!mG v!cS i:s]:Có5Bc> @*QRbijLC.c;'ٺgrb湙žKyT K<\gVgݷziaERcwN$}Yv|$'w`EҶn.abpDz=qq ێauG` WXVJ(v(RJ|Q.s&_}t+rful6""w8K<\%,з1 S[[+Il>(fYZFɡ+[xT۹|]j%IA銠RXEisOGvZiY=K<\Ytj:+dYh4jZa!w3H~$IVYE^ӹtSsi|JEt:|t_%wvػ)8Nh4xjC,juP0*<B B B B B B B B B +ܺ /Dwaj5^^quoB'ZF!eqJfgQZ֕0bi;W`ul6}!Ϗye !,˺eYBQ93 6M^yVwcu紝pUVqj8ܪamrq\PP(VWauGwVp.|%v]ؚ[,>OLϼ0xj.l7P@]ӕڶ@݁ڶ;no׷ҶB P6J׿>Ϯh%BT3˴‰n3k'z0-vFr߀Ghԁy xm撬"q>7U4q8{c8sW\-}?a5Ez) 5"& |oq}˗iX~}S|cL Vxa˭N]8[Y$cD *gm}e3%%LgvM՝bf_.zzzt3S?:n~qȪ#de*˽ ?|iI|^=%6b HuU'"uPк>Ns D%Y{I]q~]1.hi\Vy_97'N(;_bxtH5-b Z9늶qfƤ"?{C"G]y7e_<;Ty'7j@9tO^>=|2m%[omvnK«{/}v퓑رcDL$W%Ξ)7&g2zǎ;!-&DQN Nft&zQz|hcH#j[Y^~z0|gE?&r7+b:vI}￷>2,9Vï]e7Y߾[m^/J˫ݾMhSI0e75t!ѐTA G%E -XVm8)63$u6lQc/ϾvnHq\h͊EkV,AI [Ԝ$Fф2L)uǮ4+۩֌ѩyMk' XǥuZtKYboΰ넽 -8lȀ|_w;C]տ^X,V]Nqq#27U K觹y>$"!#u\8^< T` ۶VaK-c |֗Pݙ!_ zys6|97}VucG-,F+4XGQK:*R٥a:~8Ce?ZS 7dG&z_:&ݕ1c08|c;zbVïY[|w?yyGzHd/G~|1_p|9q!Jjя'@mh4_D{_XˣڮgGoΚ:˵_"wH|r0=s{,VV|,7(ɩ'PUCIekA)?>.Tg:jT'xԟ?O&5xvzb5!z96_ 5.i^3ogD"ȹKS'&4ɉ:-zv}ps eǩf:wBBоCL_8tEXd9ʮY4KezM?Z+m: Mse]33AibŅ@}{K~\WZx "D612D8\WCoDɼcBR}c\,oi3Ft)aDgԴG#^`3HOFY:6O :>uߑCU礗I@[~8yY;jTGO1Mg2ME.hߢɔc#DQʋzyҿߚEQ|Ms ׮ZtGs>lE$O9gnq؛^.#:bwWqZb|QnN_`ׄ@E͵NSXXB7lo s?NG(ᵯnȄܳ<M^&sp1gV c07B gQGmݲ*F5Y$ Lh| gzgyoÊ >xycB:o'lE䫎bj8Ӑ+j_o-9'8qIi4"0 {혨+k׿WLObG,M?OY(`HHjpI^*i(μ;rB4 PJA0,3󄏈Oo_EIμJW nvOK|8~|`n֩ܚ8׋k5zL<~,.}w LkBBL:O돏#^Ç h=u9/=ߔeF#)ףD]XkW-̋\n RM*' m8܂sn>%hνhmz`nGrRWRwNW>toڰSܟ:DI?ʦSNj R2. J&Ĕ21^~5Td͹ 4ё!xgёyzF:cV\i/>e}oqL9ߐȉsV|C}9zLKSys)*I:*IuDJԍne/co,"bS%؏] ] {;qȗ,pƈ'u[ElFC^W0vP߅!L!L›n!7pB|@ H;u#IDAT1o춠; b{vZnll4 NSEBM$IJicc#JW )o ُ G.V׿l|xsCYEDn\^~q++zbOőݟl,g|G L@=RH(|VGq`u ^ c ?\f'`e٬r+4r#|B΁ҼѼ%/vܹC})w2jCg$`+9;y卍 F Дm5N'N}|ՐuJy8!aYk,]=3xWr!7ys~:J3e8P?gWmPKZQ]S}uBT[9~vs/& 95_`FˍO3eo|+ڐg?1LNSsڄ!tv6 _㙡M߼T\|m`3/,{~\f^e“?彯(I|rW.̋:Ks.HCµD*9?)Ф'Nz\ykRq37xDL5,rf´LiԌQ:ILEy CB4zQM-5 i3//{jR^(hD ,P*>~:7jұ~z]'Nү:'LQ"8x`iҴ8Qo8e(rEM1$:$R^TD˫+l[vՒP+<a[֞/2 N9s+r[@$3kD*͗>)*D}4H*né"êҎT7}d‰?zOm/JK\Zt8fO蘃3Y_1Pjna,&4>ʄ3D=IdxUKz糿a|Mμ1Q!"rCUǏ{15itZ^$4(.>ګ ghO?`'^*Zqhӟ݈4l<9ful0 _C.1)bK%3 řW}GNfJ);hS?Ƶtq,.i"m(əWJ^  ~o;U`^`7Lޭ?:Ukp4T4f_i !7ihʛtZB16%KRcS=!J} Z.$d+y{95|ȀSMIA,~aAPVli/l4r=ZLTU5^~R؞:KSM]5!#~`rkZKO*x '1?ckk%_ogᥢ*҆KO,YwOh5&)亯*jsO/K7gl˸4(9Sx:RXZ\SQv63xDGᵟEGbEryuYqٟ`V!3|C"'i-E&W_'KZX؁f@:gm[mr2؄LX#6~13 :`9`|Lΰl0Dsت’NL@ҊW[NM]@Òb?^w)tAYk#_&#F>@]p5HVVVOs-S/MmSxJfn+] $%9߆B&fg^P|]:eďX/~~Q_?f%! Tx CKYULgmO=JR| ~D3\}S ͰL_H ~ b\KPªy0 _Ae$TJq/L%UW6@pp-D/iH<8ԕHO<<;>9tVF ry   62:g^/4bpҭ;w@`841SLy1l,+–JXo/>HVh#`:G| TV[g ~ rypK)ɛ־>i{ʪٮ cBZW<ApR*TWHm(n2J^kʧQ1|E) ?<G;7@_aF z\-J.Oyapɇv zX/?+ӥqoc2ok |~ns,O !/m {9  P& )mOFm~FҸ93` o`EAS Ν 6BR??&E=}OzJh뎱' mnjm1~lA|w\qoJY4 BY `,w@ 0(ƒW`OPQ MFI+ݡ6džzl.ّ]PURRv)+X^3%z?[ST Uݒ!ɉS_{(&/r~ p#'~çs!_FxiF?}4%p M@}`$XKŰS5c2lEa-l aF ǃ`D;'m4[%/8iNbL7-٧ 1u~mjģ=uߎÆ=|Pyэ*]8ӽ[ugϗae65  DQl 455ۿ1 ␲–̪Pin$& / .cνvn2n0T*s ]$I$Imy+f¾.{@F_\jк qZszHp8N'7p8 -Ej"H1ZhyQ &G7El$_$IIbeB0չ5XԮg"./f;8u#0 P߆!!!!!!!~pդͥIENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/en_US/fig/hotkey.png000066400000000000000000000143131423264401600302270ustar00rootroot00000000000000PNG  IHDR pHYs+}IDATx}TSGy#A"`XTTX]-GDRlW_=+Q4bQQ^]AmX^bE{~9Dn `~J3sy.dΝ!077|۷ tF[.==]&IRKQ^Iqرct*#Gddddo9wxCB:ߊ۷߿Ғbaaaii9jԨ8WX f0^^^9##C(REQC^Əƍ1ct?r?󒒒#GX[[S{.''7|˗;bjjzW&$$={d2]0IHHb8<<7pvvnnn~q/4iP(2eJ[[ۖ-[(bX|>?88x<oɒ%.]zL&7n\vvv?'?f̘VݑG޹s'<<' ---=`G.7~kkkJ^_78?B\\\$IHH@gΙR5}+Wx"##L緵effN4)77ar S(z}SRRRbb@ HJJgXEuuu Tꊊ؞ܲ|Kz7ݸd2YzzT*ݴiKKx|p֬Y/_蟜ujkk{)֦׷ԬZjڵUUUV Wյ/ @WWWP8lذzXk׺)þhV^|G</&&p*/_) ϗvvvŋ ϟod7t"WeeR6l!fs8sx<6=|BF40772d j,Y|ڵO|֭fff&ibbRx[3{ȑZ[[tPjj=!ʊpЪUv1~o߾~z?4 KKQFnA3 ///̝;w1xK?ƍ^:+V8r=} 'O.--U*'Nd]|޴fjjzW&$$={d2]0IHH c޽/NJJmtgMދ8q$66r{1cֶꎴ=ztݺu6mj>>>%%%ZO8v}o>۸ި"66'PF/zzzaȐ!~~~,VފM^e2YzzT*ݴiKKvՐ@ ppp0fmPM,B(--~))))11Q $%%'GGV@{gml\.wǎ=&M2,{[&)ڻwoDDn%ULDGG޽xp477 aÆԳb]ͭݸqD"QO}h4իW}Nj[#>Kc(>:99RMo^SSjժkVUUZ*<<\pM6EEEi4g>>> .'?RuVWWWH, FtW7Ox&Lpuui@ӝ;w:::/˓t C!!!K,/?nccSEBץK~˗/{yyݻW,ӡ?xr\.GGG]x1>>͛˗/y@@KBBBxϟWnnn??ݻwzy X^*JR=l0B611imm311a3f̠o6փ%חoݺ̌d2MLLT*{<o۶m111ӧOYYYfx&&&͓dBkلWW׌3f|駟|Z(Hx%JT*GE"ц D"O?}9a(;;[P8p 22ں}˖-555ӦM٥KRRR\J"dgg{{{M6mգjwܩR.\ HRlhh8yEzV´Z-!eΜ9)))&//.33S$ѷjCݵkW||@ x'JJJt/^;eʔ?K.=M߹s'<<<;;p^N`0,Xpʕ iBXsE1NooTBY^^K( 8bĈ'߿_Ѱ얖NOOϖaÆݼyS,ϙ3'33beeemmT*oݺE&桘(&9~x{{rtez 2Ϛ""""""UVV Kyٮ]FEE^/Zի_zR{iϟM:5""b"赚#ͦ?`̟??44(ggApc_|=ztRRRGGƍnݺh;w<cu|>cƌ~+4 MX,P>0d2^CCիWLѣG^Is_xh(JWW>Lx &)7tuu[n۷oɒ%>Mw}===֬YSUUaÆQFB~ ݄~&9ΡC駙 >}񂂂ehmoo{ݲ2BMrwaHj4z⬗uuu**((?B'O`k7n@ŠJ233ᰥmJKKkjj***!l6[B C]]]j^KExZXXBLMM|ӧO_IiӧBX,4ķhmmmhhr }~ .\0,,lΜ9C eccs{s bϞ=R(ׯ_4ÐF9s̶md2YSSSO嗨e˖UTTO(~KK =$HҜBq#F4gB/\vJ#aX R_ףGbbbZm}}޽{ccc%y]7lؐɓ*[n̙EEE555EEE?>uk5ɟ?߲eBrtt4/))yaZZZJJJcc#=?PjBڴiuuua{޽;k֬x}|>FTRs8κue2T*g0{0cǎ;$g>xgo9>3n8BHPPЍ7^Yٳ#G4~(j立S5jT\\~hz]0!Cd2zKCBHhh~x F{VXX1tgff򢢢 BOnnnAA͛7}}}###̙#HbbbX,VHHH~~\.ONN뷄|P(ܵkׯJyZ>>>bxϞ=2ں{]Nwmmmrח`0rrr*X,Hieed2=%ɐ!CCCC !,b988\z7.==} ;-3g&$$ x===>Lzĉ(t;eʔxt6oWo@'4F/^(++'L׿ :T0sĸ'''+=<|ߵk^x1P [\0*+++882sLTjaaA\vmaaaPPPQ~x)k#GVPow^x`BȖ-[V\߿;u\0 ù>EQSN577'XZZ&&&J$oooVK>BMr7c|֭fff&ibbRx<ኈW dX3B.ٳ>{}SSEQ7o.---((5k֩Sp*܆;%sII ˲ 8oU䒒@CJSaQeiԚњWn MXҺ܂ <ϻq`:ΡbYV9.>-lf^'"CfSXIDmA-[umv.: E,NmS2FGF#Iyl=gY3˒PVTK~e;wIXu_vt<Ʀ9,@]ͩlfq`EʔoebÒPE۶Z#X;s!HYyN8-8`Sɰ, <ޘ+%V$o`uP/-in{<)E7<ܯg^][ד%؝46V0E7IjcLK$ս} !A~1l'^>qv݁x?]l?,HD ruCg&JI*EO1~04n$WIRɵF>F_ r8)f|lOnt{W.ck [}b:!ePDD$O| wű?v2g61_ "x&jP6^xN*/x?UUHlw+s^CV?tHc{7o|p> sB޽';^-Q_9~̄w] nM J}k*'@\f-ЦC:?oW'bz9_B.iMo??xY*"3|ZLNwIiHf .d$Ȍ)چd?~(؇J35m-e,Q֜?olP\[i0}А’;{@Yx=mH0SS a{MxqJD}䯿~霮a`ֻ[gfTv yx?LX,")%ڷ0ή1z3A"2]5vp u^ތP~`z1i.$qqcZ:{b2E?<ӗK{^Jz4&Js|I|JeÞ RF,.hsV)YA J^aQMq𠤳[7Ϧ͒P^f:5u3?D]mU SHl(:ޭW?w/ܼm}l_J"i{my;Ӻegw|tnmޜjl:_3ڃ o:t!;84!d]\7j~=ۯZe8m7tmKo*m9]^y}j3G"Oad:f 'Ml,cM̾8PF,\ORA IYـK2"XKn^S;9uD0LfV^DDi9LдqæۚR- d!^Zux+[m+_ж}ŒRאߚ]Fm{z!!CD9#+"wK-h>s"C 9yijM{yT.kԢ*|ǖa&atpilAi\æSb\}$wnkDڤw5@aՑH  RxȀnZ%Do~a°Wz%I5 Q`^? Z^ (:=๟w6o{qկ_Qeo~7RJ_;ޫr˨O˴jpsk+tn@aYoNA,'&_hTx[Jʢ"J%ҤvvlS/Gs“yA ܄Ku-_KJJX/O)щ\jjǦA<8 8Jl9jlСmjh4);%z}wF]ap#ǹmqCϝjD;<_gTɪ 4 ZV&EDDxzzeɟ7W>7Ww&q)Rdd2=p.S*zzz*O1$'u#u~]X nd2%ܙ;%JPJJr()!hC A uD$HJVuuClT*yaYVRL2\nst:///JN1jczҿcP@d>$~Ư9Đ|KeeEƵ]1Lz>88؝F&T*w:L&sӣrh4 [|h4xT(8U-=nkL'17(^O<,%*)mFUyj^Wpp[P i4B]T*U*;]|BD2L ^_uI0 0D"P*r-cPҐB=iH`&k#.cFlM^lǸU.DzX,H$čϿ0 P(***z}U5F0U5Bpd2D"˫JV̪P$v j3&---**KOO 43`PJC0Fg~F `&&"|%F  !2a0jf53``QC0è!aPN(F  !2aPJC0z eAv`/<|Cc[tc7Bck ?}3U-JSlܸcɋ9jovVT Wxtq,|&4}.Sxw\ }nj`RD 4'3iI{o,pe(HͪsR؁>{{P >~@be@hxPyĖK'vg3R%E&P܃ [jۥ4L/Wtz♧vKslkRΔקߟP!ϝ?VɐP}۟o;ݧ[|9<_=Aѽ&{⡎^b"[y^z_9]׋CA}O>p,kʃG i2'~?ӻ.$"FBũ'?R LfEfctV:7ۿ/.Q]B"b=˛Hq-|e/}4/>{% 9əH}pwj1%onR]Nfw8Aǭ3Q D$pjuY G lP~m7P^ D|gNʂVɣcD$To\|Ѥ.]۷4Tx/zºgf;|Ⱥj?ׯ_~?GLj}kWfd]}ュur{_2M@G %.a,WմIWF?YxQ؛^48ġc~N],H""2%iCiȈ O>kA}3-ב%6mRIDD\A^OoÁ qYywK?r4c<[kKMlPQCǒ'v_K5:&Z{{xD4m{';!Cj>y/G6W=C%~zctҀѫJ}-=1hѲN&8m+ H3} 4g_yV SybHЗiw_TN=.^xZ7ں?{Zf?ݲG_'z"">2 dm%i|v1A/}z?fĝ Ry6f؞®d_2kUCqϣ]Z~K>usƌ| ?u|Os'F"YX"f$UWU^XI飚 2Y>j^7!:ph|^ "t~?1\W*z}q,u߼׿n?}vvMNƆ{wڳcY"㉿W_z^.}DDh2q,G7Ir2jhz }#HQۜ$1L_Y;eɕ~]3O@u0wȷKY9e$cVV;骺CA, a9]!GV_ >Շu}X.Hr }nQCSO|ɘ/=O'CeZ֢T(/12OW򂣥'{}@cӵcs,ZNZvB/-.%ߛ@`|MZ Qq||oːcgw&-_Si4zz,d?g_kң_uw?1 B8;r<9fO~-n( PsM‚oDwy;s=\i s ;e(oCqߡ$5X?*),u|QA2^,.Q߸UV\QlsܣO~b'O蔼Q13USl#sY{]yV?7W0ލsn9eM)e\|-;//<:ӷDz*ݹa+ܽj.AHܾ+Z5hL\(O5+h<ӷu|dXHIStMR$xٕm&#Gv)Mmzp֔F:mv+ ?|=?yTcE"]E|'+n~]n lӹ\H+ 57x!Xq78v_78wg;T0~;˷?cc|~˃}x<執8k\"b$E7+U% IDATOykK7wފV#7q-2Zg֔Nf)  }LGzℇm)lWtʌ|.G|>BŅodE~;Fڱ{Mp-B;ae#%^ޯӖk}mëmDDl6iՌ!x{wԻkj.)ب.zZjx2xN7lzj;)GFME;yLZZZHmHX*cQ옯y;>ɞ<eJs2*xjGi\UU.7me6ϰTT]DI)?|0ַ Kǿ"'l&4]D*^xQT:t)Z6!!ppϖͻͿKIIqBGEY9ИgsAH0u>Z7] | 9F1v qب7 Q3Vd0xVb6E!w`QC222 ,">>ޡ̤³>c`׫`/^>{@0 ,a1$}^:Ft7[R]sD"qt"Ե+IE3pXx'[!@=%zH6M&O9R¡}.tÿz6Q* pwq T*GT*+QSr\Tt:Gt*7;<<0H$bYa5ܛ 1d-wQg(^F Q^ٻO`|<åWaBfy`8׵ #%;(ެU W5wx l[lB8VBh7N\=^SP΅-'ܧnoMc6s\CS;Jy* VDTu"/_wfuF96)`ƥI+ sLRKjo1 ޘ$ӑ}pڈ=2[{\{%@yH'7Ψ_w 1} WmOڮ9{ugO{)Ź?,.tɠNbv+;}3jy6y.MH=Ӝ5WN:;'ɟX`pJC'JkᭆK[6zҦH>:zQ!X%PfoJ[~=$~OM3&M=#lܮ<PW>LCBxɰ.ʲ%*ͯ_A7m܅LMП_֛GOJu| /x I$LXm#|sC6֙%"g=}>t'Q9V6{Å (o߳W$r'bHpdc N.}Ւ!" ԛ $`1c&=|[HwtSʯImX"~cWteI|9uZ9[!VCzFRSuHi*8 ׀-tG%y$O8)R6^7lFlQk%#=;_-SK`*x4:[59m9)8u4.'f چOl64'!xqiN1 >Jڋ<\I_fŨ9A/#Bt=ϐpp) 5[YOl'8(25xP}VP "2f+:؞P85J#CsU/ݞxjr̢+y~_,RYcC"".Ӧ 8Hٮfq:E(ưdEQЖTyP5WYsJ=pQW.mwsd)-eGw)u.V&w̻G{mqj:nC| IMXuJCEs{NiI+W7(LO3`PJC0Cif( ́Q|x7m}bjm[vO*mi2ow%kLE+^<ǖ͛6ou|N """́nڼuRBI~|ݾg-v 3}Z|JkSÜ^'#A?XtD$,'gDa_|7 nk˟w17a: ,ܳ(+UWElD^|K,R Tr}%'gYU/x1Sw.PYJ0ɿq~>н,'|>G$2ϜQ; -X EBesCbAꢪ~9k>X/:']ezbԟ2-+ī/ tA3ޘ]%]ԓW:5ȇ%W_S:h42ZtǞbuI2+q3UiGv9rr=;rYq!i$\%egX#FNI<=E[P WJ(χ63"ex(iN%y*򎌏AA*N3DJ#$(/PİbO!ٟ/}>3s7|v1-.òsOwUs2asrŐ{5t岊JCcqF1*XeHl0]t&B""̧f7b<}}Lyzx]+E#HicW n;uV)ܵ? UV_loswϐ,7wE[j`UtuYBf*|8k @dIWBY gQZMW.9mQ|ʙSum BbX,Xʝ_/Zjh%KIJ6tÊUKRMdmtL\f,I۵ k+=ط~og JzgɨYʋޝܰjR468eZ'_,r'kWnڟՅEB[ͼѭ$"&?ܶJ֒n.7&T0G[VdeY*}4}gWF0=kB!;Je#'帐O>,X3Z{_)ZPߐFEzLg+?]|tL/02""*߹`0^Jk0f>~oۜ9{KҪUOⓝYgz'ؔq1-QCD$kpSv&^. 'iZe&nxm$u~E{;d_F⬫ܳ. =aGi1w]lPjǦ_ gƟ'˩y' ^Sie$.7+3y_M||aݓ^-Ʈr!~Ҹ6 ]='6=۲dk,teAdP+<XB!ZtP*O[澴/xհyRowu1>c}O~6cK^aӬgAg (-VW. 84̙Ũp{,Q{I5{nka8iȯQ %vjtN<"†g4fW|%uS3UmeBՏ6mV#Bl#(Js SYOhO~9|GfHMMX,<z|jG[<= leǗB%>}XHHH+wj.s N :87jS! FԆDݽStMu[Oчe}N`b[ʛQxfVqY?ϟ8?Yʰi\g, TnߟJP扎Q~~q=&rNga?>57- S*iJ[5g*Ոj,ZOv[p2s0RzQ=^*dc~;]\{dɸ{LKRw77k eVyY[?BPƢcFXuYMS~eԥ;f$XԲjBI,j0֨q^Q1nߟյʔ/3.`Y, Tp?!$k䊏Gג5UũzHU~Kw[a~nd^diXzHƃAg}YDDt 45lrnaGYPa\$UU_fWn[r%MkIUJnzF*#z-+ʬ EDD>+#B,B%>2X,E!V/ol %"XՅbX"E&Nh+aY](A]Rآ]&+z+tnӿ3n%V&&ҒXՅ2Rj%`BKk^_%M{1DDq 独 elϽk-}QtQG it`(-[ur^p;{r j~fs_Zr8g<;vYs['?Wunc&^x9s~ӭ])=bª7O}=ߕȢ%9&37Us6HX7oso=čvP[=Dmej0kURVVB!Z4jq{:~Pun@KXLv'[{ '߰D]/ '>~3$ЦX,<=ܖ(Yկtʙ1 64&<*.qqXܽohB顫4 Si]:&[$C>- &Zq<#sorςPuvp { Pp~=1F'=ue(?BflZx.'/]{4J5/,l{gU "% ߕY8gt;^_P&)h:?pGnOT4Ԝ\҉ILV75^y𶃙lö &J(.dVa]9x]BiߏI1V~%t2](Cڪc1aQ3۪9cu47aW=1dG#ֳ erYjEvN|bKEWOHXǏ,cܻPT摝 `.Ψ6[C=Z Ñ{0QBq1O&R!{ؼ0*wØT(  B )I9{d _LB\ig"zP2T/E}9cД'-#~r8} _y2uKgs=%*ӀY:26hM0s̹a7{lBA%մQf-0<hdkԳߥ4&7TBpn[2膳o4;04+8p]>CnELhv(ݡW;Y[BiS>e5&o|1c5tUzyUy֞cG~k΁Cw\o6h^|KaL`h PODiA(+yKCfh7F :d Uk& 6lWo}q[)FuJcC]޺l06)Ole|P-4ՂPk5 dW̻PڴOXyI/ ?[p gW Ef7ƩTw3Nf|>Y̫D(F@aȽC=DZ`KCÕq=O3Fl.c-OT,K5׾}w~{Þg&޺ښ>%Xjfj1>Va1d_ vG*HO@@@@@'yr Kv=[E}?|0|Dی90+p7VQEܜ~ eGK 0QZ6'(8ҐS$+h̋{Mc]b.<(FvYcSSSSSRc1]A^Q&&CT6Zo^(+2ƴۏ4A ohvJ/UZls4-Mi50)>#:l_L.6]fww O^dHߏ3Yn`: m9eGK pޭ ](*68cmޯFv ;sfl}gu 5ݿ Sfa= o.05R-qK1Z elBi[o^(J"gH{s &bG>i:TգxJ|%х2-;ŔbЄ9۳L-jkfHWȔBY2zrC1-0QBqͥ!!Q˄Ba+r:_ r rYeeހXcظ 7׀ kN`2Z#þ)YBioغ\e(پ\./fUXqFp?oo?wh4 Te/7HW2(swuΡL\4$=(46 !~jL=ښ GW[\ZSzCQd ]>sȡCGNK-ndmԖ]9zrނZrXE?^~c<`zR[NӰ OO<7AS'Ȓ2h7!RE:v"=Tj[`YXP=]-Z(ͯ@AAUd磎]6$ 9g9r,byV'O_ΩXZY) Z6L Yr0KkXqn~ 7ve55G;8~w(+f\?5XDX: q>bĨF=M^2-h]xwڌ2FF[QT% u38j-.[Q+W;JE*uÔW.O޹q_s=}\8e9]O%12 EQtˣ/2dB濒Y+Zx;)ڦ]&mc<m̧LxgTgƾ}M[KjMA;1"ցJ֋]%B1W x!Jxr̘#{:]E :yW q|1r,"⪨o2jT*SF<+Ce6l&JW{VEЮ6i۶>$%pqa 7(]]hi.͉^5|ȬCGx1D%:4*?S 2?ԋ63f)Z^xgʖ&01]w)= sg1P  麂ɭmhdlȾS8W` [?oh] o=P-]=Cߛ{o4*;H'fS5LPcu=$w(c15EZz˘Vv8Q2&cCGNO-ʝTeQKnN9|cr*uy:x9ƢnqhRU6{N]P\l&`4 ۺCd‡,t&_ r rYeeKC`KC`KC`KC`d3xd` I4Mc p8<CU4 z^c|'G1EQ Fѐdat:\\\l*Hն.$IўI KCL(`00|`(]؀N(cm)=G[55suHe4o(˕UU$p mcԖ%ɠcGc}Vvdf-Bݏ}a\]Tդ#Xª WF`huu=ڗCx+HԱSbdcqzr6bȀ(q󧱺"+-AϑwdZjECro֫H/2.>ڗiBVW\/i1" kq[(y徏 9̾l&/#NDad]f7Q",`05jaNWD&%_+.*#Ea=uQ W.g|J%4k˳ BȂ!ݚb(9گc#}\1PD:pLԭڒ+j<zNPQwX/"bFPFMyI_[/ܻ'(ɭ-(NcC IDATcj*%.^Ӗ^3"̸9IL2"PӡоnuiڥZ :y@ RWd^J5G@۳T+B5ȮA'YqZf[\&hofW?LJ% ne701a!L\8c],~h8! 'wP?e:(@1ȝA#GӰj.|iI^gȂPTm#O%,q=bxw` n|qDBISZ$(K!aaުZ9eԯO]YW%@i(WB~U({d\lC\= j5n3E+wڶlm[k>2zU_UO}oVhf7s8gEX6G 9n!k4U( al'Ae(%tc`5$ 9geSH 5܃wurDRtlEܹ{@:ZY) k I]ͥ#% 7=B!49O!$jS67$ѵw(5BWIWL]%:=4=مR44x0KVBaJS{; QCъ߸<.tdkmq=cqOsBVȬY\9s5X]U@E >V^:ހ>X/ BW; Ȳ)}p򐶮 juסq>Rk5&2X1]{)9̳_EJ>sn& sADaŬGHRAUUgy0EQޭ6\.H48yTGq]Cb{Y0ъk>q \me[vYiS`+n*ͿƁ4ы}f.sU!.Z+8.v0÷4ĺiߞAֹ܈B|TσEH]UqySC!S=vޫfc=M]ZF!i0wrVVB8nFUջyu+T|StBX]Vnf[P"'!Vc/$R٣_Gwuw( JKM䕓%!L 8dS̀]]o+Xˬk: V[»8nqn =amih~%SڻG&I 8.UMu S""CcYI-T0]s\WBP t*K,@q 8=89C(7LMd˭8bZ!j. .kLis+!;rͿST$ ~q45DܥoGw$IDp, k: CijeJ@Yq BZ}c]EB&. lnluHK=yKu '(j~mcSԫ Mpb{FǓI|lIq=&mI:Daq&`v3ˣS2,0 Mx0K=Z-|Ȳ=8l쥥kVYY_ H}s!qqq -]DHP(tqqqv\{k $in~x|>߲ , hA@/N(#X#X#X#Xc9 |&r C <Áq8֐{=@{$lG#-n&pVr sﶶ]`{]A{$^amЮZI0=Ю @{a`N([1[萞A7֏9=pKc[冋 qSt)kkk$?8*{78 kPа'㪫Dp+[# ~? ?۴*4|7Lᾨ^k{@$]ø *Da?!7լ~[ޗBvla Θ7sz}_|9|Y|^>09QϚK5w3oN![yP(Ykn>+,'\L?ZqQK'DgMճYA{8JUz跃auz-^JK\<օÕ5sE an~]UH`Pf Sź*VGVpčQ/x8a_qiN{twÀCp!mDT]v!`S&Q7&g`s{!ʼnG?ThSNtswcpk ű=`/{^k =O^ro֫H/2.>WBVUfի)#z`ԵEWO*xu:P*i+V23 jT$upef6j,WH܂w wgŴz~IMxwauEVZvY#iE}o̟bvOf(=~-ӫhS?Y"] "ӓCD<K6o:nooXs̲{Ӯ->˧fzdOgq}7}u72kH) ~?# N_6s=*vd2U%JQ]QNN+mQc }Z92~R!KLd(JsY&WO&^%"djcRUzXj%1)|z=MSO&^c}w?ݹה =f֙{Q\xUzoKlK묝{&ꊌ=~@,I<{3KxoL2eսkm,:ȐA>i @H ~r"%1EY5{0°a ̹NQ>ݘO& e{d\lC\= j5V:x8!Jd(DFVW<lV ӅÕKQ4f +P7Ą Cq=¢}\qVK"DU=#%Pʭ,3uB(u|-_i G8h›!ەDݩ_p&9dr&w#w1CJ+˒-pQ?FV x<r,1M m[12BAqk``a+`εKE8tÎMYJCש$4qR/> 7M Fwzx }&}Ff%Un;:"ۘ;f 0l8iE̹ Y" 6Xkc" A. 18g~]nd%ڠ@3O# @U2rź+IV05Eu4p/8~W+Ҙ 10EQr9E)Kn#v,^yގ| B&!Y?J\>ɢn?F.0-e&ƍڊF3Ҭ9=֟+]s쪰w0# N[6s.Vc1K{/ )E4yPϸ4#Bq$!a~\eZq22T䆆{!s.g1rh7qYrr0p_(^@l'OKxE"f{O;A+*Lp\UĘh.gה/}l~IO{7AOnZ`.<. ߛkuKO Ơ@H|?lڳ(oM$!Lt|ǶF6"l\WC0ݘ]sn]Mѷ>B(aNӘCjeZP73FBj"(2Ѕ8.1>}Fy|Cuo&WcG 4*6(Uq;jDbKG[Ѱ쯭;8E7՟n}ޟqHf{>" :qY\G(El۸!g^o }F6hG0ڱ"wa45DܥWGw$I1B|PJ YQ 3 !hEq* < %rqV5!Z[[)H$|!D3rk4!DijeJ7O{+dErUez@O{3+/azRR@ן9Uj !RDRVWi~夥%m;pթe }Fڲk?;1alޔ@ijgQ\;`a+&`εGE8tNM@ˋr+toEz22M!{D1h)a.*C1߈B)3SNH8"q~mc-M."ػClNF)˳R*44勽;tJ $MzpÌ.\ tz.D! yDa;HOaj}h?f`*+:/߃b7_sZCKҮmusHWUq†}xOG2# _s}*L;B.t:!@{쥥kVYY>ubiH%pLOWW/lMSY!fَ?`!pw#E7x E i~^3hZRn %AOvT5Btűxtr}$rʌFZ_HzhH{Ps__id>ZxPXcظ 7׀ kN1Bi 1P;C7icNÜ"PzY"%bvhYGyG-.6lrPW%mK 枥_{ZkۇiZ`0K7`,w#2g^Gꄬ^!/:#09ҥ#lS˲]ov/95yl ,+v_e~3՗,v!'Oׇ?yީ`| )T\~_.0L2"Pswe++N/?{Fc W*V4U'}w{0K#arҊ.LYէJ<0eŸKY0}3Ŏ-Ҝo57q{RUZa‚.mq-j][]$x<˱ Q5_'\m !ǂ^%8\^3tΟ϶aچBګ BzTjƽ`;+G]cmy$wϹ;5:xk{qaΔe&P_dJcƵ{nώ%/tP/;wH \"F?]]Vd=iØVpǯٴdd#4yD`iM9ŎM u|\ * IDATMԋ>cuSe;/tS;|cC*i>sK4wtDd1o/!-jB!exּIK^ܪzs[297e9[? a?-r,!v#B+,U^c&B"PwSr"{pg2XVdsƠ)OwmFƜ"]qjC>,^mG*.vl4nl+qOz'\|ôJEܸQPXY[èwYyF2UQVu:yWyz] MfAA>^9{_Y=姤SKg`+g0xm{ 0a8rG?Z]%X,P 8?\o?<7C5eF:vأX6AX^{-؋LU\hlF/IUi >h£Vtk! ~|gO[(oM$!Lt|e?}6|s,N'/,yb1ˌƼӈ}Dua!G? EDzQR7LyY$譥 ڠOOhUO F|Y͢uLqbǦqHf{>շk{}gV,ӂݚԌ(! |e+|?)6ڢ ug_1wQ?Oǫל*IMs s6z$Y*ϻ|b*-tPh6}_mjx+f)Q)gSxic0´ᑪ[.a_['w~Z6!ZY{s-ςG?G>38e˦J_v`QgMg=-o䫔JJKK/K.na5[~͎/nc FT-3+/azRRX`LY\ld2mcH:z A1|1pj֡/pu bEۢRood'(cSFuށ1Cl\on{;u_[#WO՘P-h^(a ق'y}RoH{ ~#"Z~sn'YpB^KԱ ӷy s2UL&#d2Y```+kGв/mLho{^ {*+++@!0!0!0!0!0!0!0!0!0jߥ!Vf|?5}BKEC"\݃J# T / +w,7aͩ\3c?v;n2nXۢX}(ée{ٌ0}?ev\%>(?Bx}a=KFf*YK>+^Yqz ٫ϴxVC*4SŊꤏyﰊm(#M'ˎ\&aZ e?{`0 ee&CC TJEC%̆?MV75^ypL0wti}]Of-_xk*>k__2%r1a"W~ÝJg/Xlr,ԎW?x~-MX:So,M2"P 6×u}v|/yLŤM~ݹC1겲&Bi?]8QBzϠ !x\aA_\x3{ BlT([xx˾9 &nD#Ҩt,Ә9tD?aɋqnAS 狏V _y2uKgs=%*ӀYgiL|~T(c¼~i+cT(  T\`V.Iaw^O DzޔwN,djF$v16W,UVVq| ړPGԔV?ɾu_.9:wX]~FAYMM7}|sO/BU7\~όj?ܘ.i`3.*)|ԾlcbU~Dk9r͸tу aa>\ٵ=KkۿSO^P\Veۥ!!hc6Qj^*qSn;7I[KjMA;1mu=aE?Ks Džx]%T۫(vx !N{yE\kG?o+yq A4W<\vR~AѵM&M6ۘOVό}x1{KҡG&`a+1o4b.Q]F~p3~pXHp;tBqYmRyލTan{tc}i6}_mjx+f)Q)gS}+۷]2>*000$a­"`.., nPxR<<=),n <*IDy/Z2Y&-. DcV3,gJ3?l)EVzl(I=G"lB;׋'6?[P\g%G>38e˦J_v`Q:BcgE|͞|RTiIKǒtaMi_cųW_T|ZZZZZZ%3_=;]J(ӏLD"!sn>5inxrV(Ց Wd!A|-Hnݒ?vA؜1B. ;F{n1BH_.~&ALcL#P61BVޜn crNڅ%gY |]9UD!~U1\fվ%_ \xչ-1-#]|ܚR M>; W6eVq) 9}_cGLzwOSz?%q5z+oډf5ʍuBYzmf͍4!yߌd}bp@/|zLRI:0fp}^={I1-.32,00woxtr7=`/{^Zʽf}L, , , , , , , , , Q. 2!fŗXB+6'}|-V!T?:0+<ҕ(w,7aͩgz? ru+B(Me\3c?v;n2m-9}ҥ CN-ݪRoJ4Vioغ\&o*a/&P T( eT;. ɒ^^yV75^ypϜ6 n.ɬvW21SIO_SyϦwV \]ʊK^}F]*j./vP&.6P^rXTQ9fW6Z4I,;J2}P375WBtP>=RPsrI'&-3ac0@E؋/Ud2U-*qD^W@=׺ߧXҟY(q61ïZ$PU=;-9cL9Üfnbx?Xk߄]4\pZ2ThV^dJd'T]? ~B>~?`F 0ؼ0*wØ2ʠ7DB!?ȯcꔤ= /&ڍ@!T{]6:мPm"*>AS7/9}J{G|vOb+ E/S|zM|P:TӥўWiNҘ uya/Pӷ+v[uI[/4(h,޿vѼUIӧf3b$җ_)=ky*8?\CX҈.ƖpbZbwP)ṡ)#~6g#{CR\rtWuaQ .?Vpț>{gCV*+oxAʟ~>seFW|h-=l FB9]EؑhLm-X78wȂ +Zx;)ڦ]&mc{IۘOVό}x1MTU)\s8?!B,qѪ5ljU.ELbO Fo-U5xzFޜ? K_Vsaޘ[q g)+tI>2BQ>zAKrRWc"^=6T Me慢J."kiLKOO/%sT(}cMeEW:wiX&)F&gDɅϦ+vߌs. q& lѣ%6`aʩ* 6=vh20}3 BSلbW\mh6/ 醿ft]qŭ^hdlȾS8WkFwJfY_o/^&, gI0|s1UvRoOէj4ٻ︦f!̈{[8jmjZ~کZ[:~vo@Ž"",Ya^nnB~?x<9y}J enLBioY(}YdBP?+g1b^F ؘU64š="Wo7W[Tť&w %AQsv&4{ Ւ*)Z^ 7P$jJ!!˥R)joXO3AM{AGP)..vK}AkL5&h  ZC`!0@kL5Ċ["8a2\ꫫ; e.2]!LS֌Jyp.<}7 CcfyzxQ_g6"C|<=}dJTCoPu7zzDN$>vF?D9꽘{ulX<(C,2eDGxkR/UJFi2o^:}<&IJѰ:ε'?ufn j*kyzC5'XaR B+vLߘ0mT\`v483zvMek u9ܮT[1k٧[nϛe(ӿg`0 oy/CʘE?-3XQ]vzi:#37 i:Q6D.:_YX$͆ǭ{ymkG NW1 *o*A֟UԖ}·TQ.ޗ(\Lͧ:T5O@XE֭mQGwT$0)QmѣjҒ*+!09[Z`qHE y/2e? vgYqمMc~f27Q9&˵6=m̯T]zI8YuX%-`.T֦W CTşS&ҟ_$.ň1co ,0Pď?dZ9avUmE3gžJ c?.R瓬)*ir&Xl RΞIE#PW/Gߘ?}xh3[zU7XٽRy/Z8CqWp>N`b= ex~X>"ʍ]5ᾄ1/C6•@!LVהkrzpVZ q[Vd{\F\F+.Vq涄j c7hפ6dZ}8mkIirى Jw u'Y?zSKք8_0Y|SsV{W[Lbm\\ikxf, o B9Yn Fں$U rP 7wY(c^~1oUy`z`uF2J}qEuF~te!i{|TTə/t =CfX])}ew&hq^3d->${^˞O(MѭsgojުcL5ӧnF&0~ZCXaTCk QBۂPNS\ plkv>Pil%a|+# m{<ԣwyX UwϨ[sxtwrQ9[\hP;v(ѴDj?tk52Ql/I7$/S}/O'Н=C:cF{/J[z|-wdibTˎ^9r؉:ǎ>rR+LlXB){.GzvV ?B!LWO,Ikei7݆u񵢵4ei%5:w hۥc+1hX_w7]^T2 _D!vxLmA$*rX`Zӷ)B > ))9%:6SrTᄓUYϥTQ_ѕRⴤԂjv 9›lamݤ xwW@XX{+>E:o(91Z%ܝd^tNX6]\v>(?nTdV^ vVq\TU 쎁ADG_ƈy/yi`wP}f[`(lPThFu+y uapגd"kj>W`E z~uC!͉YaB6w9$"Yj_.aZPT+[[t%)kpOfn*wӋp+*kħ.ziQxf,Nr3} eE+EZxqك}KᮅdV3?qsc&7;쾭͗?;(XH.FvVbɴ'e]c#d,7_b~. \7?/N8B.2QX5Az'+B9rkk!@ȺX夓@<2?W"eϔ@\b $|$F"+K*\CZX,WDoͽ"eyL8mz כcEI{h`HeAgt, eE+Zzqم}n#zh1-;QjXT7P,2T( ȫ]Óz)+LZ|qU}Nܧ[NVIiN.-|LccseSw)35)I ȰRkRaUKiubZuEəuQ+ ! mEi-X*E {Yu^{E9%ywS( q<]S kab\yOV $fH҈)9 Xa^*~ yj #g,.~sڞPkʯ}ko:x-}=C&j*QxѣG 2#8 *Cb bB,LGU&+H:@F#8PsU)8$|;4#X_#zСQAe4.EúDş=}JV"Xl6"&I yNSڒQ Ws2ϕ {i@¶-qդ#jT`̈́3v!Vdƴ,Gx,o]aFvpB!BNތ>IWP2`-h6(.8|>FiSo):g~ !uutp Ū;;Y'+s<:[! !gDא;C!q % yS+H/ #ڱwHyXݬu+Z|qA\I|m̭h5h;rP\͍Ric!%tf_ r8 prNqqrm4 ZC`!0@kL5&h Iӭ!vRgi$ @N5RHAfr8 k5$IF r4+=({Q$ ʐ$=L @Gi<hS(2h{Q ɽ:tP6 pl$I@7!mAGB?BqF#Il6bhlY1(9 @Ga{uͳp=({!# ZC`!0@kL5&}!A>~AAGyplࡺf$I\! @Ga{t/(s\Q`Cl6M=`[{Q =D5p8,ܕlbq8Mr8 p:g&lC 6=4{@Gx=tk9 U# p=(tNkfHAfr8 uA/s$Yr8m.(gZC`b5AWV_%4rrqun:EWGK^U&5,v`p` A͟.͗mߒv@͟.I! |vH+>ˇlg%V,^bOg!U\KWaYUe]3| eLOڶ;;AznYجҤ"Q)H{@EJ(RXYO]ެ=W#rqSv6 |5fhu毼>m}p׬y7p^ >^#-ѩDwtqsc{bIC:BMh@ȯKf.J|CO/]k#i UcfyI7m(:XBսn,l3+gW/|^%:lgmF 5nijiw3wLF]+QIRzl(]~;TvLDTy)a 'm/[zGjҌ1 C?S@>Ų9W3*˰AA)wZ+ y/f'I=2:r!s|KC ZC~dHJWGzYrߞ+;,`b'~\uqAU}/.?SuI ,O2⴬]Ģ~@pvr! UWkB(bsZy0t !b!DЌs6$tNgd0'.L-sa]AW8%XNϊͧD`ѫ@UmP]!cQp<*!d((.F?"ja ʄ%W/s7y#_ۡLM2^E)hZozu#B%T] /S1"ntt(0ȳ(i0"3H?? ?$/R>.2W_-{[cIOKR/;YB;j5pEvJD +$ʝ j+}.h6lW~\/AS~2(I`{ջ݁=(UMb]vLmx 2}b &+TR?&<dy6tx5ӧo~/SF|7l!DUꇯ5rL $R~1Ix:I\eTBC\x!>ߌ/&9X^;Y0 1>%tgjvkۮ&ZxP( !3NXW&Dkdui|PZ#Gȥ\#; /ғeZ1y9U7θUr gwm.9}%z>™R!<ڳKP[hNS[`Enwy\ۈ{4GndgI*!`JKqH⪋˝0s[v.{!``[NE(  gU\9z,Y" 1iu^>p7v/{M:ԃ %kh_y[Ý*k?))R\lsށ[ Dp I4s!DF>?V}SjcvsA=[9IBō~&I#Yn\xj^gG^P~sag^]OGp}tNf}}'PV|qT'QIJtZm*!Ӄ=RSt Г lM}HZ u{+B `{;$;{O8E!lV>ql]J$%*<fgBCWGTl"|Z q[r۷q}9, ?|uTE.N\2f?]4/;0h47xVX?M%[.:n԰XE^i/#Z =+xF5ӡt<bO>&skB}'3`}Y DAd1kN.Cww>X}ܧE-H.+EţS"bn0C<}KE=}Le! LzdPVNB? !˥Ri#7ҐYӚ?j gNgF{q 4{u> 8Ekq[-YCZC`!0@kL5&Rꒌ˧O9v쵴RmauѝO9{FvњP!cM3.g~מ~!3yaJ2DUht@w#ϫUV .fQ?1BB\0aʺjvkb=w=\JO9\KY*3b&BPpԉOT !Dݺ|.ʭ"cgb>n*l5G9GFdm'ay8] 3Qktȫ]aFЎ_x+DkQxu:j6lJ:;U߾rpPq} C d3 UpۚiKX|z{o)Y}wI+wo߲پ5ANM Au(ϺA53JSQj}#VPeĘ.{{4=)B!\}+Cz&'a EUg$dZP2Fzm٨yFVc7/zT)y*o(>8,ٲKjNVrVFZ~E0|!-8"˅[+!Z#BƊ*p.rʂŅU46P`q<"f0t'6j "Xk,*b_*Ͼ4Xy;yr۳%E3!?}ZuHV8ffƒu XG u3$Bѿ4HF#͆suwa!$I8:4 +KJ)ix+`ۆ ,6,zgb>oќOXXVS|yQ_4Ԕex(5|XdP* B!ށ~"+ހė$0sOnܨܳ_@hۗ3<)B_w6LQ5U!m;orΚuqs=:_^(byo&Ko+#i4~|ԨVŅгP Wc2q="B:~P랏RٺϜ7Xd}(r-"i֐*M:y,BY[!0I,`Y$i唌9l,p$36 }>)~q_WƁpɁ_WlBȺۖ]\^^zƪxbR6LRo{P<b~$NRzUe"2F,3"zcjFUO?O\aȢs]7^un.Sdeࢿ;݇ c]4kk<|Ԙ#G g0f)ZL͡EՌf,<`gVtv3*MmI/:Q, .t6N 6&D~\D._1V{]73R}#ʿ[G@CI=vPEX(2Z!C $,ϡEv ԥ]:}"W aq5'ͧ0$It~mD۳imn\eṭS~>q)b-"CbP"\BRUZDyUzbb+kE!y}VKgʩ=RiȌ?J,f uaV]z˳~չ(5ʺ VZjE0l!TUk BԔ n, Ts Җd}M|('+Ͽ?~Q櫻N+JZ6\sܹ5*i'db>sR㶌K3[$ \ȨRX[p/bC' I16J3>Oؾ{k a4* IDATu..#BҖWD".F!J_ZOyJWpƊx9|: .aG/x+inpG3 a;\.J.Ngs!@sܫS\\Tf#AkL5&h  ZC`!0@kLRWͣ՜}EKQ6^g [13ĵgK1@QE&k?cL+vLߘM(?xPXe5g&T/Z +nZ6دㄵgˬ5{ vMي g;`)Uh +AZ|: D(m3|$bWQܣ=ߋBٲV}ZCc7/zT)y*o(ɒ-6۞o5xX/&ߨ{}~K-*7?i㢽oq77*n̛ε$BƼ? Tᮅe+ʮ}$~'LCQ(]x=+ErwZs2aGԽ}6g!K;7Qk0 }֡ 3!&ٰ"Χs0f`U l4Ss>N0n[FFVvqyQ#?x"px̧5l rO>|ͤ0泦߼B0LT]v93NDޝFD=Ιƥ[]2}SZY1|*/GZVNW_` <^RF!"ZcVbJ&qߎq!K3ݲmϕA+j/P*3`>`7j{B)ֆ%17b`V!;(4(^o򬸁!:ԷFYT¡].bytnn0.A+?KIc*;ݧ_ i'QwՒNϖDDx:Ej?|ci.;ϔS+zHҐYޱ͂V=Y\"IET[|2ez=rx…f.måRi`ԚDž=%ӺT0L<;A=ZCN)SZ%fwݹΞӛ3Wu!a7N䄶 e~c: 'Ҁm[I}MGg`-3v|ЯU)J C_ϭa5gٻQ$n5qw-Ϋ{g9ʰ0+v|#en>=WLڹadگ[D͟ae]<[FN>aӎLgo/1_Oݷo&/'mtWU]7 ~-cC%cvZvDxIM<\X| sY|MgyҠ,xY`)+a0Lp? y Ewn߳$ap]/$~>}?t櫛ag@EJ39[s#9_ABp 5| BH3ѫHisJw>p8laE]_]WyB,̅"XliD5Ƕ Fw.PXQUөGn= 4*i7OXZGW͌L-/ `YJu՛v4{U\4"bXv)W%Ysȵo-OX?8ev+ T4ckHFO+#sBrcoM?y/@(/yU7IPF(mrWpz!=C55 Q9^;PZ\(syqޟL'P'm4Omnn5ɷ$[!uB\jX+!A'UtAI2>m#\ biB1]= V[ڪ?67M>P5˜@w'y ##Wfede_ex3 YRPX}IYij|e-F(|a8/+&/b1g}^Lcq8T O~Y=|+.yd.bͩ ٢"ϧ0KU~1BZEnX%USo y+Ԛk;ۻ #ڰ$fս]l1( qO~Nq} IRQKٴ#Wо,\u6 K_XsgK؞^tڑV^_猃~zz>5{hR4k/vU3aTݵtђ$"ZcjIZ/z cT9 h;z p}Ono.J\>.-6x^$ŅaWiE+V#ʠ7xc̗~ jn\RTi m*Z|:~1[a/ Hض%޴|^4v `PKk. NcɌi7iYӷY´5z_Rczy5׷cfnQ 6ᝃ_c|_5aެ t2eΥ{`ű-ьG2B0oak Ea .EH60ʱ= W`Z96tK ![OȠ",b>_a*I|m̭h5h;8hvXT\.J >ogNga|= @Gi(?B5&h  ZC`!0@kL5&bŭ]twuulYW KL|7 !L15Bc6eͨoy(m3|$bWQܣ5P첁y(A„]>a58*m㺴tsސN=X!>>wjBۿ/#$j@E8"ϧs0BcfyzxQ_g6v+ T4_k˹ϟvRYk w-\/[Qv#3?L̆BƼ[&̆2*A֟UԖ}·T`M' _n>Lҟ`0ODġ•1Z>igb6̿ʼ cҦE++2bb:ˑPu/|H^U/~xV ֱ"ϧs0BFT7Ԟ[ܶݐ!M3;*} a;r\(lZA=}&쩤0xa Tə=2kμ6`Ciͨ|Y(/VdU(cK/Y8SB[YrBem~y5Pf<"Yu)F1V{#hf91ʐq6uVsNX8V35"PO\aUԠo-}n/2 AW]\.˽ꄸ԰]%1/C6•@!LVa׃P[PM ʍ]5VrɡWu PF(mrWpz!=C5 ;3-y?g㬏ӧ?=N ex~݆eV3KcBYWv9W33Lz7C-= ppXajL5/۳R믬hIƺ莾&!GPμ\(/ZJf+r8s[B 3#F*)WPov-9ʘEak/(MI޹bfʽspҞAaRq,49zP^(7Q?я4U{{hq(O\aΰ;#c&GC` t(s5lPaD]clq^3Ldi}4}l( Sʴ MY(m⺁Q_Ua My/dT1 eLY#EVwV72+:u_4+LjDQ?Lp}un%Hn-=LϫTDc5"P CcTdΖh1?Z2Onhs"h>u_xX^S[[[[[(L>9Vu6t̆3l[̻r⺼JKaJwrs^}>OYBkʊ^˕M2^jN(1`cU3sϯ-X~pFHi UFZwY ގWP ΋ Kӌ")i*{-i>sipuq::BBeBEe}nyĚ7dk1Ypa2Oث5giݡP(ij6ҧO)rk bNnU{a͈bliݍШK_M JLsSh 1}Va~u܂B/o}d'TC*)XZ|: `_ @(kV>*֨}r\*F~ t:jp=( ^b~ZC`!0@kL5&h  ZCk٘.b֞-cfyzxQ_gB!q#8WBۿ/#$jޠ6d>obQ!y%]l^izlڲ'boR !JSy11O_N*P2չw?y<&7skfe~+.<~wt&AHyp.<}7ә@(2iIGq|| O\[C+rɑIeNt&8 tL󵆺{nW*-FT7Ԟ[ܶݐ!lF1iMsL^|o10J嵕ɫ*89_/hA X6WQ[9S!DZ(>z_Gg~rVcξ~%UAQuk5|]=w4L"!(QmѣjҒ*ơVF2KeAt|(\hv&+N/mtCEXRfC!c Lُݝjsg} j>׺ zAvИ?Ϙa|7 V,.frQǻUԠoIzK1bA7-u?!nm^c1&3j ߶݇o+p՞>TRcli"k *u+%NNg+mR;ufCcYuX%-Cem~y B=T(Ls(a6d({5 Ci ތc,K:u5&`s1NP6\ahv9 R'ĥ*HS9^;P 0y˼{u8iO,P'׍S[MCT&<ܗ0e}F!Ė)*,kY@.B[<㸐$VPz)1wIDATrW.H""\\+'b^JI#<8Mx$aؑ+b2 ʲ?ZpFPdIAa7$e GuTD.N7V]Qr&n!@@XfI;2tG NOp ӂV=&qߎyEw'zmn4V?B*.3+Ζ=/.},V^_猃~zzyި gN.IE.ZHZ/*X[|z'Lbն&DQ#G5gοwʞ'rBߟ>l EdԒ}9@6m+i1;*"h^gsqFWA5cB,LGU; o0-gUq1Ь6i/w{LTyG;L0ʘs¢!:wR% [u(Jc#7-iw~J;~rJoTV=TD gD+ _[Η{Np0O˔ِ]{`4_qv(?E\_T盕-b3eJo^UJK%U~gũw~uZL[Qev_'Mi֧ 9pG{!ӡ/o^_sa j.ro[T۬%o/|4q[U?{g<ʨ+PRJS\;9O{!V)8rly~poޟ \V,BQJ0:+C|n5o8T*8r5 r u+r!(!(!(!(!( h?٨Z7'}woYzB97Iɸls,<6uvѻEjǗ𰟳i+*DIGSw[Iܘ?8X|~CN곗isvQ_Iתe(.=$fPTJN7S.w;8tXa2ubK%7Mϒ"a)ijBC(i}z;J-CX-/jܪOdA`,B#CX˒6.i(5,jl,Z $hV|۞kb#Ú*.|K8RqT3tk}cXYQ'vMProC(wR ա!(.$fPT׵6W X`Ύi08ťQ05-( OH^miq| 4օ[--n;ܔeRU=_X묛s+|YէʄW34wzjw; *㠸KF):?0Rqխ=(d(lajmqu{3t?YLKD^>ak.J)8ŜN(2* m@ҺoI!u6vԌ߹1&b(ר-\=^^Yul *ZD`w:J3hmR_GrGcBS3i*<7 (Ùu/=~r¨!GLߥ,`ʋS\c|>}w㦼-5l%/wWVbP|D}HD/֧2bq!%1dfqEEbWUS%=x`% ό(>yRRL XOVIHHx* yb۷-P1ݸW`z |{kdpf+7?w?czjzo?`v <,_sfAwӌ/=ӱ}ß3G =`P.X$Ѓ% $ckU= WZZZm{[G{ot9?[ Wm'7ؓ@]ߍU8Aˎ[%`CsZNb}VF*ifF}V! Icf_:#Vw`=;dtaXD XR(K9ڎc@.X̲ꌿq,q`["D,+HjS!E,DPD"X\sg?`^nbYƙX`HK1B@=Ixz!+t}C: ]b (DD'RݷY9Duyc݀ 7E6d$-gCX,yh\T%F^ԡ,XPJOQOt)[63|@'Rh^{^Jޡvџh^7H,CrhZ{^%NRAϴFPJmHe铞4 et)OnQ LUiZ4 =OGS)/Gz3 !'-YN:JD䯢mhP3 v%CWhqZ~|.?ܕ_.GeiѤEӄ( RSzM;eNvTo[H[vňrgLauGB4rF·^UV'H/ҍ\ v1(XFWBoѱZ~4<~B2Zߣt0ӰzGrSиpӁTM]B= 3'K&GQJOh&x|Ij:4<h"}OYwjF3c+yrӸִlik tH!)x;qXu^y/Q)%iE7-Wkɗb33>IG@ݚБDDf9e a U_U&LlCZ֝]ʿ嵝UL/fghxKp2]]/O' se}0ݚNϴ'"ՙ4{2miߘ2-iLo҂λ[>9@W}i%*['Ӂ5ghJ</ \d!`q[BwqQbm)l)}IzM|QDQ)84>nޫe9 Q~Hݍr1=N^8C1!^ ]7|˔)c^^ȤVY'\Lnʻ[iEE{1N)D451Dϑ?r1H$oGjYɇ PQ&tN_s":BۑӶ ;wPߜhE"׻/7#=y/Õ kMcZӼ}DDO V,CDDⲱZνqqbbC"K ':B2%O޽eѨ7Iȑ(Fc28T{Y46 Q̙-1~;lADtl.eUw_!ϚGC$Mc[ӇH E7si lEGRk/rW[+nLot^&EO$#2啖y$N?WRJ6)2lULcс:Rc{}k[{~P~WnI՟ G)Qe6l;˝1G%4}ғR6{_5?I3cPnQT_g:50HӅ[8`5'+ۗ[B.t"R kDD-OSJ-8D3@KUX6jT6*Rݲ|X}>AZSR>:]I1^D~7}HrWҫ;#6w*dSF5w'̰B32J6/]$"[124':vw C$-?ar&^$_""jMۯHN{!3 4>Nc(*s7Fkٻ"9hj{[ˏwݨS@4CR(֏-]j`ުAW*QC] 5WfZNUt6T 46ֱme"4!)@]Ahao~\TKjN\Z4+}҃d,eP'C7s)^ѠfcԾ1M'?gF7rlݑ;^ە.N͗)|iA@gi$myLFu>I}ft-zpK'RiZ{BjZY fu>Mi@@eORGѦT}ۚ;fPz=m -=N'+XR^1T7)v%}ԃb}_pr5W *}ڎnD :99Q۶m?^icǮZ>ܡC<GI 9P(N8q̙ 6l؀\B@ڂ=Ӵ>_q닊 UІx< QΝ;]}]DDD-m?zĉRsk[ZZ0g}vŧzURknڵ,Ys*J*6i7())󜥴czzz򨨨UVݹsarU]6&&յo߾捩TZZڴiӂrwO8aܕ8{숈R)###/_^}mwܙ4iq>$$w-.|ə3g:88 /2,,LP4i矿s׮]ۦMB޹s\Lgl̙m۶nZ&?CSIS\ /B}tcǎٲeg?~|„ ~iӦ^z͛7oĈӧիeܺuklllAAɓGqѣG/YT !!_aƌfrrrZ`/h*jժmN>=88x&L(ט3g=ZTcǎ=w\=6nXqFdd_;vظ+W}Ֆ-[ϟ2{ӧL2e͚5Uv֭ 6 4w ㏻uf~Ҋz>s/ߚ5k̿ϟ?z茌iӦM:5))C|g ׮];p@B1bĈ+{ԇZHDZ= oԷmd-W+'N0aѢE^^^ާMߦ̛7oѢE>?7͛7k,o =}go̅ ZnݼysΙqܹ*** ,((ϗH$D/\p֬Y39qD.]QFQ|||ǎ_{?X&++e˖b8))e+9=zسgի{{5FhcǎEGGs׮]T?u-|9s,Y /̙3?S__3gθˌ9ܸqSO=ED)))M4Qϟ00aŠ+6mj~w@gx,Bf͚CVce,mø!ڎ.X Ç߹sgRRqciiu|IWWWAʽI&@Dz"rێ濤lڵkeLgDбcl#m۶Ç7aժU 9JKKRSSϟ?_޾}{Ϟ=:t4J2}Q흝+v_Dуv(s̤IL FDo'kX35j e,-Ogj^o9H;M3Shq2D_ƍyx7 mڴ)776#ǩj"2,Ty}:++J˘F٫rΝ?|׮]n*7 /Ks.../Y*U|K/͞Uˆ7}$''\6 cmF1bD]`dR(,,>l-՟6_1cǾ{߻wy!~{:u EjjsNTTTaakVY}OcpCn0Voݺնm[oo|Fcʪt֭[ 믷jɉaDT*YVQՇh4R6矟5k'ƌS q-jԨѮ]رc{իWgee}iy˗͇\)uTTɓ'o>nܸxÇ+ݻh"lbEܸIdd$0v2 bq7oޜN8ѯ_?ԂS{" w>}~+V۷qƕӔhݺuu;2o>xaÆUZn &0 3wd岂IHHH<otj˖-ƾJ̪͛UY]lYnni… +-COغqm۶),w˖-Z~rrr6mt%Tz_ӧܹs~mVvٯ*((ԩS2ޖ-[|cǎEDD$%%/M6MKK3СÜ9sΝ۲e!Cxxx;vɩ!XK.C yǃ2229_wv5jԋ/}֯__ՄoSNsٶm[\\\qq[ٳqLgϞ=w֭[? СCW\ 1_36-!!AҪչNǛt:wwFzӧÇ/srrL#J}}}Mc8gO>׳gO"2ܲeKttcllm۶oNDIII2FrwwJaaaK.]z55{vwwgYͭO>?S5֭[Ǐ*j7nO?444T& 2oVӦMhYYYzhh\.͚51cFrrq[oe~ODs1߸bŊH㡟~餤{tڜJM5ꄄ.P5 j,Y/O'/,U1S ?!%%%%%|˅ VZҮ &܇'O<{5JLLKJJ,X`~o@pO?9s&77ѱCӧOfPw`01*`yNV\."KU)ү?{⮽O^~{C,u,'v<ّc^tcΕr_/KM~g.pzDXq˂[)p yt%TNȲR#^YKVlus:wں c :/Zc"qӎZj ڷi9ٻ=pbϾ_Y_&=ADzU㗯ucE%<\GXvWrTΎZ8?py7mr{y~FGD ,zS|uxc_M!`ӝb"R msϓOt_OX)Cj߻9~ˏ_utPܸvqz'>5EY.%^ݢ:e|Rى3 ):f:wo{lu'z}❴*WA.RӳH$"Nع.rv`/G ׮C TՒR- R.E@_ %ZMxngbc"~kQK(TrvN6fW$,+dE%oʩmi%mߦqW74ЦE%EUdc.\v=: ˽gࡩ (L!'[6=pܙHw7o'ǗX~m':չcey78"I%UD.͝9ͤ z~6kliUp@zvwԱSd2iTD3"jb IDAT'UU}% *%qf7u,((|5ݻ{ ;ip؍[w.rgquA;i?wӍ۵n0?o٥C>UHp}wҍ.=x%$^W~32rsrбv0 j*W2_ƿRMKNt̫>y5eq˲7e~Δm-l T+nڪESB < 8gfqA=[ `9_%%?-f-@aNÜBBS FSZZx7L0H$Jr\R!Ah4999,2 #Jy㸂|ZR-%BVVFQ(&"ȸ㸬,^rBui4<"]V$)ʼADjsv{t'%v#",s<ϿguدsVx{_r"_zPS>t̏f@D_,Yyde8}Ul d~;@iW%V8h%`^zs?, ϫe{M!`Ǟ#.*N1DjrSr53; Xa޻SF 2ꍣ'.U9;::*M8'@,{˥j'u޶#{tnGDٹ/#QNm=;s^_GUۆM[xݵI!A~7we|cQ;P?A0}W^nc- !lכӟk}of iuɩ=:,?uSt1_Fj oB@L0RC[ۚoq{`*&yaOKWnܼ̈́|<E7C[w?\:vQ-Βa`UMmV+8Я]-^q1#?ptqIi^qE%gqSa M/]\̫bA}|x]ZFێGڷivoeggjR"¯}xyb"zAz.'-[0L<PR!)jcF>>D$fYBޡ}W(dEճKeoڱHNmn&$?t,WP楦 /99: jۺyݱ/\NĊ)(DR H$hx=Gt嗧ܻqMd7{{H?G"QiNU<O-}2= !sUM ,--uqqq$$$X0HjUdUzļ1%K4m9|ܻ,`zl؎Ҝ\^}qNNNrTͅ:-- O[SN2׊ PrZu:`( AzZbP# 7/__PtƦS-[T*YdEEE:N՚baDP(rCLEoz1Ld/<òQd2D"ˍ)1e%I4Pgu96sv !N!);`BBSv !N!);`BBSv !N!);`씸P9A8y^n 0H$bYak !l`8[PqDzXlݯi Hz!l`y[`x7 ֫!l[`C8(!HYڈ6Yڈ6wT0 ^/..6RȲD"Q* @F%oI4D$PҘ iF*J$BG@uyYٴ<+UW h&  ]J<,t4C C C9e2G=yYvRma3Sq!FC;&䪤 *yCJpLȥߎk4k_,^ozy0la3Nl_p`S!tiMgRM]Bz+oG7;s屓 M[^MАo:J18Rћ%%%I&"Ax{srS3D4#KW^}w4g[9@o-R^MKJ?^ޡmذA=i !M1 `2 )qg.\#'/n䨌 1pux(0vt{ލ[O|~KwㅳË{=;ddi[Ff΅7[eJx5o~Ϋ'АH$iF|]i%uA&jrpTDVk´%]Vhf|V}:snLɇ >kqCZ<"lP̀IVK&YB3{r $J ¤n<!xJ^Wp}F$ gj Z $$Ƞ z!TOG"5<[!XwJߣf|4% P+ D"Zwt,i GD,ʤRB'B4`uR;6Tdk#BLzF\sԸ?޵!l0Xp XA#H$[>>\mH$,kN"X̲,q<;`WDV0A0U;v !N!);`BBSv +²` q z`8ez:z$zU`0<_߭ < Տ6 V߭!YojB$wmDwmD*pX Ln)dYV"(JDRMhAy^ܺ;zPt(/WBD.j!.:40HRD"ttT!^g:r@βH2,ru .j @|Vf޲1o8ʤDfYуiS5r[OLN|őDTPX֞pQ˙Jb^!@h6Lo8J$*0 s3c4j .^qܛ/6"I#OWϿ'+G˙GG B4$zMݑrԹ]J#ulbPOn.mCA:TaYct!%uْ߭kcxn =/M6wl`N"JzwY3ABD_$bEfE+E:·cY͘7}x7M|JL&1[ֆ ˲.j!?c XV%n/?aj`!H$-tbm֒Jk5s4 xp!ÜhHJet,qED5>SKยX^PXmqqiBbO5%[6m/W_|+-#O`C D" v=_bADDz}~8]@im?q!UUR$}oV6oZ}#Oק|>` iڪvdu鄯BӲK$Ε- M ',y`R*U{]MKKH2e[e"A0 D  \V[0yP @#Hy=3FӡKC+Ey f-xwm5lx$Xڈ6as,b8X,ƠH$x`s$ X]X'lX,fY8<:DV0A0U;v !N!);`BBSv +²` q z`8ez:z$zU`0<_߭ < Տ6 V߭!YojB$wmDwmD*pX Ln)dYV"(JDRMhAy^*L/pUu (}T*H. @ã3s7{X{UHXɈHkh/=ױ8l ]J<,kspY+ +"!aXX)*˲6gf[|JmI߰7-[-@@O40fs t #q'o;R[VXgFf;N/tqvnjqۆk‚'^0QV}I”Wʝ9/O^<"95s[ 5Dd/[@CR\\_rUH'l2 ė\.~f?58wTDɯ|_0t´3sf&ؿw,HH^Fc}St+n/_ƭdwg٥=şq?u9V,L D_&ZWV&MtՔ3eEz?0̪%eyN޾aS{ zvNQ2ޞg7~EK:馱|rJnjӐv @Cq\.Wj ""Frկ_PTR,gT[黆*U5rhx'v>,8`@XʩcQ-?n,)Ni9ÁkL E:eeErS/\9bܻ]P8ye[!aYV:ix- ubY2NJB~'%uxLI.VJ С]I6mJK%АH$P5Ԧ05ʿȍiW8~ێq#1<_;oNqsU8;9Ԧ!RJT3+wP) &O9ujRrɳWx^o5@#Cg OE~JHLЩ+$i)6'A A8P0-^pvC&-C#H=GJzw,l_rQ1j5W+(,9xz+r [\ԑI?֡ne9qG\.4 kp_ ^])QJ`d+%IX7kxnG/}Ѳ Muida V^zcÑlցW'hLzthr`N'^j3s8.uu'7ÙuU!¡AOw}δE_t-TԹk拏qu  6o)f͟}GGeoy,͚~mqZ߸%>D] @CRRR/M*0#cd\C/{;)>-Eljo$$۸vRyPؘ{AxnG2Eo>wm٪-NDoc.tSuz.ƪRҲVzv'{ݰcavu[yݭ]TDHJZۇ ~iԤNwPʉ(/Q_0TZcɤVhHt:]yUx0zL*iӖGti0pƗ9~>6:y/=d^TnG ѴI5Kvћ翣CϞ[`oq㉈Yu"V-E" 7C:.qqF70Vz=L?+R-e丹:;9*M0 \jzvPS CDDN:CD$I]e|&2lyjy 0ѭ><ɋsgWMDȡL[7Vz2i%eA $? X\IZR3O T"H̊e1k+!JNTjL&e;D{lj*'}~Um1 /< akNn~qIR!'z;XbġD檲mN$c8;9X9А( .^ZA+P  ZAK.ײro/_ݵcrvj)\n띔o&TMfZ F-5qU;Ԭ6TnNF.ΎDkt;3;&M6!43"TzDi!(VB)KJEy EQQY[+ %<$ @B}L?rP02aޙ;\L PZOqdĈ[v;tpo* ǟ\?gکT[LxwC:ʯn KF&p]-v=c5sm)Rwߥ? ݻw<4{' jޣ7 1"^^lHtƍ }mPt|-70=ŨivGl}1o`=*ySOm mkkk @QU5 ׊6ݭ7 Q+ZxnI`b:!D(RzGj;c{~\ז&[<ߐ3NCG \"4OhdW/%\P^=J , T>YD;O$V*i@VRU5-E_999YaKX,{%{z~8E))fz5h\隀,/EǦ8p ΍D$KV8HcHA~c߹\.:Y,z `aDEQP(|P(dmS\ Q777GD"aY)(.Ku[W#P. ӣ$E )"IH@RD"$Ŏp(˲ 0M=HEQUU5MID(HQ@$2 C4r'S`F<#8K"0M3ӣG0M3HD$9 QaߥQDwn$ ,;7pN0 @p-nv3=4Dij5m!,,h+2m!}uaNNtEBS0EcZZ&)2%mG%d4S'Yˋ \piBQ&rʳ+k%zVؑ0,(Mc("'ġM ~{X~û{.߻[iIaE}bg}DI<5]_|6,omO(p֙}VM~M}6tp:8l\"r}V,:2|ޜ.K|呥}Ӕiϭo=wbڤ~U7Ͽ[cgmIqp1[Xd_ ~:n#!>ݼأ{=zdo+o{9_}iM݈dxx_S>GP!kֽsw]^۽z_4jbؐCyT5?/7?/795-˛'_L: c_|9)pUQ?oےXY!uCՂW9w95Mޭ+FϜ}ߠ^=_|W li6`Ziru-K9-:~CY;׿%?oν}{&=~;-î>&nGD[Ƅxwi~zGy;BE_usѨ̪Uѿ&_, &Os->! dgƷԲ,VLO^q~hiq[PKSW>stMzpUΚ{n|͟B}fî/Z­VcN{hn wKu Տs, n22ym,b9U9x՗>kRuJ 0痏,[[ҭKuS !>t۪^FJC7̸KҚ}x~}qZ;;8GTWWgzJNbz{~m 3Ms=J$)/0DSh6ϱ:!@Njmm-GdUU VC%",aY"aoPeR r. ujtom V7*_=JG8;7r΅?ƾs#Q#irdrX$UU].l qiv>p"˥iaiZ)(ں pRI0H@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IH@RD"$E )"IeY.婘-L@v)ODlaFKy*&` ˲ 0X@$  #LL$)#`x<|datt=H.Hidz8aYef:eYJN2$E )"IH@RDr !vؑa=?IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/en_US/fig/repeat.png000066400000000000000000000674111423264401600302130ustar00rootroot00000000000000PNG  IHDR;5} pHYs+ IDATxw|ս6ߙپvU[5WKrw@l@HH o r! `q7Y%KWj̼dI-K#Hg]>{̙b455.Nܥ@ /<@ /<@ /<@ /<Pey=[/M00a\M 賐7nZݨ~9#47{XKkaK[{NSDx`1NyS/ 27=_Kje_w۽;KB.y3_C``U{8c\ipƵ]Οjxyz&ϼ&jq>mp%W+v5:so CuG\$T=MąO[㩦vV'o}"gG9""[oyïLSsjyVib&L5>Rî83#sm8V\,jM#fPϭ]}HZ]Mw?| pƬ>{܍%y+??f騬plGVAxqhz0HnCjȻT"CMU7cfㄖv}6rݿ58wSeǗ7 DbёK8\#KBc߼|/ɿ\+mJA0ߙ{6y;Q?gc;Nu*.5yMӂ L圫$Craöf_H>YR{ O]ĺg=34d[M?]3;2$~/Vy?xhzpD6H֊ 5" 6LsdTy1=1c(z3łĸ`K]"N?d|J:h¨p#wqYF LcDڂ^/ovt:V `N YOHjnJDą{ Ѳ =ROzFؚKE9kzf咇:4͏`uIDR- H{7EH`"In՞#3rx:ݡ_J|Ƣ e.3(S}gI zMmD0n }UTU PO$kZ$#}TL1ݐ]n|CgڍG0 I\** 1qDbr**Jl8Y1ZIDT^uYiiNk:""I͈2Qh)KL>,ʘd-#zhU(lOo?(_E[JcDb㹬ҊwNBcBgy߽:'DXe˷-zg06XHS{FeyUGDKLH^Ƙz X,MMMr7ஃ/<@ /<@ /<@ /<@ /<@ /<P݀KP:3 9-Ig5 H$"19#:QS/i=GHC[m$Nvp:tlmh=i?9\Py'7-R%t!+Q"*a\qaIW$I"υ+s.?AXW>[ޗ/<o s;OjX}2eD3UC8"$ٛfH$>h꒙c8d=k + \ˈG]ğ c$;SJ%KG5g[?D A!`o/]DoݨLC rJUe\ɺ*.gX]U g, khP >F~:65fTnbDLqgv[J"<ܿ?gqY)gM}h3Oxz'ǭ\/fե5jK]BCo:[{@Bg.Ե4mpƜ4,c{7mߞWS\]ZtHQD$n}St LM柱R¼Δ9mQ'DrDE='/7j ,[uN5jNW#}ٯ6Ee/'—y1g|dU׮f> 6eCg_=eMMn?v""DQAR>joWN(rI]B pQi[.P |/VlF6 y̏ձ%Zm6tGώ%`d]=X,MMMpѲ?V SiSn?_?IslAVv 6۱g=6ε d`ٜ<8GPs&Tij*j]))jS{=nz\zδ mՋa-j{FXՋmz |򏚺pLv w^F~ p8[XxV!hE, w7t:9kw:x<@!$I ܼ( \߶<O@p8<OOׂm8` WCOc-JvAஐ]ЃDQE; IRccZSkP61T*U*w ].$—QT(\.qe18NP.CǩT*[5@_y @_y FQ*w@@_ I(npvzF#w+W1xf1Ж`@4`Zz@ Bhkr FӣƋ mBkJMGG^/y6z48`/ѣ@z$=[>ۚwGO}nA__ړWmUsC_h}ya/=Z-|aBb?!k~F(/L~y|ڃ&豖\Ups]+슏?8ᔈTz 7{f\:ߺX#f)L3GS$A$5Z^O%"rHR)=^ztvZF>wğ.8yLʐT͖ED0Ә fm}H6w.k0Nw2_p+e;Xl_`x'EHhצo)́|t@b{h],.ih ٘=qd?G$4emWW*CMjF#[}FbS>[]gPm]ݜPտ7~*pts;a~l۱lGdW{bRى?\l8]Ĵ?(b\t`7]_bc"u6غ.d`D6"c3ioG` :w4?49!52-H ;%XA"A$jV="/_6C#2WI61aip ܸFG SƌeGs=w/*;MklZ?ӅuvRGF=zpS;]@EquuNO>>MIpzMXS&K$ZS4Gܸ*41.$xLkDo%oۦ4%)2aγSU[y+= Sȹ`_\ϓ$I|%3]qj=GL4*?qe_ɜADDN6)NNIWu?˄ |mnLy4:Pm 4s, khP >F~s~dt2 5%4-*SSSXI@?WeKq pۺZSSs!'{տW~3a<1m=Cٛoϫkj.-:tN"`vYEh.-kKc(ٴTneS]MUٲXGR}5Rٳu֖w;ĊS?+/Ē]+~zz@W9~CW?szjhlYfS2:qqߞ6)AS$9O6:$e̷SnR10n5+rf,4&̙Rl_l4N]puDQ%""IE#I >zp X,MMMr7}=?ΣszcBdZ-R`@BȣO2_ /<@ /<@ /<@ /<@ /<@ /<@ /<@ /<@ /<@ /<@ /<@ /<@ 5$[z4׈(woX@^vn-.6p[DD0\p8<Omۊfї mz o[GSSSOע #p8jJ81&wI$r: B "wC`<@ /<@ /<@ /<@ /<@vWCdOr7|[g$"Y]<#Υťu%6+r+o,BAjy&WJe^=X[=7"yr]ͽA"zkK@GKDّjT7+7-]~iQE (r[+JD8:mrJP#lnnu'?H xtI*9s_b|։yq1[tqԕw-δѥfH0@iFyUШ~3;_/L/3/sٶ[C 2 JL`ʭqh9JWm/olt)c\02ÆE-vO_wT5wSNnI"JRZE =L苺8+f^0 KO+=|z=Ua܋v.zX;L[SLj83ՓV%O?:U֢$"0@Gb5aq Ӱ c7:]Tk3El"FkN͌ DDBɥ:Θז<1"}}3U  =Q{(Cp4)=V[w=~4lL-L=!S$eǏJ(ؼ[P%dN}y|YMDąY8n?+}S+⃆))(帕DAi[H~v<Ҡ DDv}۩<|.8bijjpn vK^9{ $JKDš^Y0$Ϯ??W''$z#R0&$"$vcr$M17}/R:^$}o3cw5cR I>ΗW,-<_GaZYպ83k IDATs+ >}syӦ=gD*^ԻZWh21bD*NTpġ  l}v`C /<@ /<@ /<@ /<@ /<@ /<@ /<r7oҬhQQ=.yAt]CG(+.&Q X,MMMr7rYL w11dv:v2O" "jQÒ&IidC[03|`bD#Nʌ ;`af#iR9z(&KמgbUDtƵhdKGb; vdGNG0J`VH5a꺽'ܛ nz$xoHwA'ß}t^8Y6~!]M=ѡ4ytAfN]i䉈']`i|1S玟f$l__c C=e ^5٬8aoKD+-?(hS̴FDWeޔ]f F-,Xqrߚ%5v'zȘo͉3q}Aߟ.l\s2)|Oftz<±y?z~a772otpvſѴ_?4HAD$EwI#?_JVxSYv/d ;d=es ʘ:y%_~!mǾLz= NäO܋bofxȎJH5\K9{q#?ʏxf cwЁ*?~jz)x[R>P\)Ka2_S)'jbp')f 6~ꋏM[Wm{Ώ愩[?Zk1+PVg{6F=$"gæϾר3~m(6cLs`w)^A9Pű;o/ѳE+~yc}H?+c1]XgM 1S3Fx(nܴ?CXN$zE'ueX/3_"N5;qn2r#Cu'mZ{ :ęK 'ENii`fMkשQIC=56`dLf 7@e7\\RbǏ6ISXmqHDԃ2S| 41ct}iwl3zLRr~J=PV)-[?{!H=/ϽRwpxEeUk *sPUV'Ru\%'m>ZX䖈6?J?Ui#L|e7*{rj"#OK1ʙ`><"A+Oc;wrqTH]XJBs_^>XJ6}.ָz:ͷE 5xmkY}<凣-հ1{"WE->^yŝ{ƒ9ەťUF݁opݤqtb=b8ڳ'>}Yg jcGGC゛h#EkTvy QCC +)*ͦ"b2%WňkO]mHЀ[)xNWP[gɓ.d8"fkj; e~|yVW]q".l-KuW?NV)F} 喷ۓ[23FPt}'+8ReYu}5 <\؈̤+WY%y6_P j3}XmU]"Qx᚞z ~įu{G MJRkEe]fBL%d@$6]:#ue?I$Ywd¾t_CK}ϑ.(uش2Ho]śXSՕ)'Wg;y|!^9{b϶fSF?7#5_"ݰon1~M2k30x粿|D*9}ԂӼ1|aߡ3:x3Vm}tekܽʽ"2lC;7}9v=+,ni̜P߯R'e݇+a  % zC&%IZnj2 `Av%?e`Gbj_(W{(\A##J&$7iVZT^uAt^Rz<`sh-Ay @_y @_y @_y @_y BQ \.-m~8RRx- ے$n\.=KVkZFcItۛ>\$aۭVJj;`xHd< 3Ljy݁8QAP*>>>VE^N`ݎc!!!JRVT*R+#jZT*ʐAv{ ܭe2czxv{M&'j{ wSaߞHh4Z :knMV9ٶ֢hVk/=S^fVaqhSA'pafbt w/)_A@]_IKCM =6.D%m~Y#4Vt垇41ЅNNkO95)RCD$9kl?/’N UuRx9[â./"gpsu:(*9vhgG\)j8ľz'ӛB>9^bՅudGNG0JU u \Ԝ_ho}RE'g)mbs"4߹w{m7Û|[w/g^N.iJĕtW:l7VLrۼOΧV,>wCiTe_SF@+YGOL aDNDbىu)]ͻri=v_̖UV;'(cD5'sOn_~KS#Nؘ}ţԅD.X8"^Uz_ۢ 8)C,YkjňpOũqgU'k:(v8""VUOJ C&g;;k'VuEz16.%H ut]D5.zOi}-v營[ SAse0]SNvݕ7,6l?~O\T~Y"{?\X⼱DDbM}Qg KWw2MH(qs^{@EbHbLݑl62$ tFL-v6Y0Y'2ڳՊ)CRK$>񮈊=6*#@,?y56C4uM맯-]_tp2A5j̓ oBeGN۴pQ)5L=(#9%W+/_#Ą9g # 1JFFęW;I}g\)C|IW~jewX%kvN}xjPqnJ{ht تXG1}C[>^>ŒH\yFKy[lWxv-DM(tG:AϽ{SBٻo d]W}u݅Heg̋n[wn8Y֊ջN3;A͈H^@ۖvL}pf O:g{o!{}N8+/ɲ Ϙ4,*`ƻrf5Ky#/.4]܈.Cm;pBL=b8~u02Neڱ2̨~%U;W?8ɡiwBp\j_-|Ƿe I:",?{D+<5b#q׊uL۷!5tC}8!i,ME~3+/.zxs-#qG F1F.d8"fkɷM0HEvڐ*Zyd[gh%1__#=[xmW_Z$ #3cQTe%10%x!&8Oa/q}?\w(lڏE]^Wlz_6TJDFuT?{Nܛh#.yG':,oۿ]Wj9G .u4O3ѥ`2puHrp~V(5My#m _^9{b϶fSF?7#5&̙Rl_l4N]p +J!uY}MlO4|&}K]ʹOH"I( N}vm! <4a̝G7U҄ ~tZAbK:WJf*J1"7v89`I3ڞɃv!y0QT]n^klJk5BcPy H//סs_Hk_&"!."bo/|:U8oET|o\wxZZZz?qR"0PvIA$ot]!Q:pV q(l `DQh4N`V+㑻!S EYYYPP pWts޳maY]]Z Avr)*y___Vqc;sżEn[VA|||tWrn̈U(D'z/P*F mZǏspr@_y @_y @}nqJRRc o[$aZj1vGߑ$pxQTZ߿ C"Ifcd2jc<ߑ'AP*>>>ûʰ^GC'0ۊnGlRVU*R#K{GjRT*!!! o051_[=d2yWyoy5L.k/5OV{}{"*j;t׸n=KVw.[FZXE:5j6ymw8N`N ."_Spa_y~ ^_ѲqO;{&~+τ+>%թw#b%oס +ȸXOU==eȩi|/-s?on;UnBO ԒsU.uXڐ1j]rٷjߥF73Dg]<+Z5S{ߤًC/l2ĒuVT:OI |O]~bhm#"l%Y ;QuCaL~s/殯(V>zǮ+"ۍq)AhИ%Bq[}bNnsW?<`m0t+you~Cى5ZH=<UxwXŖkO}#Fzd9ޗXW_%G^*BR]IQNo,A{gccVVhUL`%>񮈊垩H*;y|tH5lVϱ;oAV6`u+I5DD,vqZFdoq8Fo=uw3<^\} qjNGD.u/SMxWʴ(_Fiպ/*֫\ŭwvdΩOkdD$T9ҞZ?ba;-xNr%>pp$RjYG;],;WhHdAe/$Z器KkVcbݾ Y Ifo.J׾i5W^\[[^{GB_t^LHrԵ\ P̣g&gG<;*^}ON J!3'"OUM9M\G;SN!"R$L+/XwIةbzOk:ijԄJ Db Z'tZKψե_󺚿]CaȐ;l<՟?HDDbmreLDSV\ע1*?m켉~[ޗM?Ucc:Q:<Ϟ1&ȮKIoוZQ䂨A{nѥ`2puHrp~V(5My#mF埽_tXm꯾VSΝ{=kmR̓>::IIvI~6P&\Z-<@ /<@ /<R(<+ ./wƘA!ۧc<{*9j>yBkiiE V+IZVTJ 7qRTJR$___[-Nxz=bnz`_)DL+ 1e'z~- Q"".,i3GW>[ޗ/<o s's]_U҄gGp . 0hy.}ڤg^dJH ޝGQ}Uwϑ̑krp! ʍr-*ʲ*.S$\!$$s&$stwL$Iz&};&Q{g5SCMTNܿ˿lfK.Myv\sKt : ̄L>j]V͚ y [N_0<}XWV^?}쥟C&",E3_~Leށaf8Ї޴IJ~`uASGVVTE+Vic2{ \|g;/xoYFMy8 x NjŠ9n}钦޴6y&4&n+(ruȵ* Z0VP__!$ _o3`r"N}-K pC+oKAN ughj2 b+8ۿ@)mkW: + ߖxX,R7]YY I0 c6 MUGߖrd 0H].DQE@)5L BB!W Ba6 !2L.;Fq\-M5fvJ)/ rQm6biwRv\0 qx: M rK!BhPgI[_V6oҕ=!:<_?(? 4(@ݠHB=3a^Y 8BI CcBI!Bq˲9&) P[BxgE:JEaYgTAsL>0 TzKJ+4c A\.0|Qd B&QJ5%Bn%JZEweYZJ,a4q!C T*sK]Ұ~4Bgp"y9ڂfp,E¬i 9V$!"-9V$!"`/r"N}!$ n&Vx)=;׶g㵩!3/WR<|cSlۘ3W~7PB+,&~ԑ!U䐁LG1N akEv{1Ue4 C`ys9'h q{y(?z˲?UG2&ܛ|ѝl2 0|]Q?B&P-{Y% ?qܘyK:{dX\g}|p /@xvy@\?rKL&0kvJNZ#0S]>z_|Lolj2h(H&-JUfMzm*#Okbަ_@{xK/<ѿ9Pyq}ځ "AdK|*!rkwp\O!_g񉓖S Evnͷ;63=WV;xw^J}|%{h#S'Yt@s溃N_mUCRuFφg__pdߟc|}ڲJcC~ܬoc_r5͸/rID⿯h`Ap!`ǣ". rc[v~sSg<8TM^zd?޻6`Bo?TTSTZk/*Xuu0rYZ/Pϵ(ml٨NQ)aP*\I%u6JDK.M;sܓlzRu uUa!o>tO^GF[o_/}&_ ]ꄱN l:r&2@GN_G J)w߂I#Mw`jVziv r PZzMciOu?<❟wn;##v;]~Ϙ\}ܜpWK5rA+uq/in*{|˩<pZfj<klڌˮ5/B (^Uy QZDSMӁ;!.ۈkOɼ׊ Bt2Fs&qY]".T(.ዜ{.|Tz~ÁR0!Ƀn˹ZQgL/n:GQqtwv^U}MEў wܮs*jʋ~" 9GOȃ&OބB.\[|3yѸƌ_Xs0 2cDZ=[vOࡿSGY&8)q29qHnw3بO J/Ē}I&NK^h? &}Og\~]i]9G6X,4f@Ϛ]d\ ZmAO3?ӽlZRGt%8/>~COF$b"7S RylÉ c 3!ԣ0 u~IO?h }ݒ\܄^Qy&f _G@.@T1r~lS`EBfV+0N6P<Pی RAhc2:+ ߖxX,R7o3 Øfol; BS%Q%\n2<==v -R 4QEQtt;PJM&BPaBPfBL&Q8+jKS lvR:ur\EfXڝ!B!ah uoR!k5BI!BE!i`"40BH!$ _/BICHz,*JL0[G)En[,)a8e9sLS@8 ]WV+)Zw!,ڰX,fY%֩T*G sUPO2 hw:cT*93LR`B8CBK\02LPd2JF̽jqjZRLT*jcej5*-ݮۡJ*f8#xxxH]ޔJc. uzñ9&6t7 23ry;`\9KWz3nzu9E-vI{F %_XP4ݾȉ:a"4z łkɵv#Id_z?K1rMf 3τ\u UܳKpwCʳ|@BN2?7cw^zaa\ӫ'^ٻkg]="RJc UGGwM|#9Jjm:8fȜG&zŃ_h`(C㣙 zKDӑ2bgf4?{_(Ny}OLMه}.+wƞ=Ctybo]d/+d~Z1Ab"?tza^%#M\O},L+3X__k(Eخ\a nQDՇw\9wP93GӃtoe?۷ Vjf40Zg8ĵ2"(aFUaz 9sK0^rW L30iF(;g=2oJl@϶iCcEZLmh h'i;{ف;yM;]A`<u/o{Ǎ`z{?lS3ݹJ=;E ʍr '3zu_܅c{e>.yp߫3xᕃ V??FjK:xiy7d~CzY7M4M 3-;??աӦQtD6'ߟuK/_~m]ǰ)Kގ_ɷXzzz~Gmm_7^y|ѧ^yn5f Vmx`ǻ5|%s$ ytK/ #?A4~pVM#n] >EPz=1_gy<0iiv7vn͛^TXx'} Ji*)5j<`;sc.zpRg',;+o~ʛ.rCQFFuZ}AZbٌMI1zF2jlx/h>{5~gkSGԪUCAz;]q:oĠ9L6ˎ/ MS}Ͼ!v|'{n蹳tP$:aY tׄyWb ².,]xTDPOB,Osޑ1yPg7ubB;8OGԴa:πR3Y4CFf@0(B hG`?Ͳ̄ы&Ux6Ո*h F&<@kʫH(oh 4}Xcg(ة.&"8x/;6vlRw_諷Wh@)mg&y"hr($&8R:/5Cڛ@7k%+mlv$ (QbX?O׾_mqodx`YgIjn۵?.ط 9K؋M8 A 4qf.D7h]U xyi:>,:p5:LA͙ji @'H(L)=q#MF8P }gϰ|͛~>^83" }aQj譲F>@xk/=OAto>>Ra3#baR2C c_BdJ%iL5%?~v??aZ@d296{<ψ׋*1@Um4ϿLq~эgžIF 9fՈF@*!Z[\fT|;diʡ_,8D̬֞-ϛBX^N4C59HBK_jK̎mN]pp-`X/v'nb87j?1|0ہϬ=-ue7˫oWUyuСS^1՚k?A/)Fϼ߯`ϑS& D)>R4+Ms/8Xt {áR!QP>zuV=Zuz0Кz{C^sj+5fdf)Ld2 4|F맷fIDAT^YWo2 śdauUuuѥ=7F.'",]9UUԖ\ܸTip|R6~9^Qs5?d5ۺ0'<(ʘuꪼb:yS~Nz^EfZRij1qMU.o ۥC6%_h>y=vE`i.h;i [>4y#> TQ 3o& IiXqC?} 1(^*rN>~/D=!*j17~=֤-zalӡNTZ/8irA݀e{ەZdrwdB3Gn/5jd#+?VƏ]2ϿplsT6nQzTW4P5b8j Sbz5Zq?}ڿf@ϚHm v~?Ϗ Bb66/nڳ=?<ɉm ֥G.\ʋZ$J?E&^Gִա_Ѩ1|90&B}R"z;FrF7ݖY\\Y4Aݸs2~dl]gj$O -@~v Ib/1pl#3aV= Ѱz8pR?q.o! )QK28LU{F O!UbMsdž{k|MkvD_5eI'F3`MW=wvBC<`ָS;cw12~ ?RR z\/77.? g=Ma~me }aQj#7ܸ |5vN+R4l_`X XPCQ};FZ8녣2:iG3a@ScGhl՗jCߓ`hmImb|٫tHtr,qo}BVԤ@ $4Ű, 5@\f ܗ"J+Fv;w쪂=7<2F7oʾZvYGsk)QيR~dsz^GQLHNnu "7r^b'o򇓅UEdT`/r"0C/:CI P/H {tslᵑPwNB0f@E 9ilv4ɥݵ "<#t$ 9oW5d{;հy,LۻW&x/D d]vB~Izq}W 2 ~r7é\u E g Xk;\KNoic>Jv*zwPa[~N^SPCfzWWԚol!:qBԧ.>VBj f/ۿ(ȕKP`E XcQGtPW;\!"!3mNۿVa<H-Syh1AHu. PJAFh'wU͎XCEm@Ύteί<[,&]X/.rm|ìHSܽ:0ljfYTb+ baF.w|n0̫oE)[%Q{C?J 9wNjzzzrƹ܋((:xS(R' tUG }Anu;^M(p~s[l6!D&r0OWIl6N)uo 6-(\?Q)o\wIƃ?~_pcM5DQy^^;84B!aQiXԤgjl7^0 6sj X\%B/BI!BE!i`"40BH!$ _ZVb P[,Ԍ_IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/000077500000000000000000000000001423264401600254375ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/calendar.md000077500000000000000000000243211423264401600275370ustar00rootroot00000000000000# 日历|dde-calendar| ## 概述 日历是一款查看日期、管理日程的小工具,支持查看农历、黄历、节气和常见的节日信息等,内置日程提醒功能帮您更好地规划时间。 ![0|main](fig/main.png) ## 使用入门 通过以下方式运行或关闭日历,或者创建日历的快捷方式。 ### 运行日历 1. 单击任务栏上的启动器图标 ![deepin_launcher](../common/deepin_launcher.svg) ,进入启动器界面。 2. 上下滚动鼠标滚轮浏览或通过搜索,找到日历图标 ![draw](../common/dde_calendar.svg),单击运行。 3. 右键单击 ![draw](../common/dde_calendar.svg) ,您可以: - 单击 **发送到桌面**,在桌面创建快捷方式。 - 单击 **发送到任务栏**,将应用程序固定到任务栏。 - 单击 **开机自动启动**,将应用程序添加到开机启动项,在电脑开机时自动运行该应用。 ### 关闭日历 - 在日历界面单击 ![close_icon](../common/close_icon.svg) ,退出日历。 - 在任务栏右键单击 ![draw](../common/dde_calendar.svg) ,选择 **关闭所有**,退出日历。 - 在日历界面单击 ![icon_menu](../common/icon_menu.svg) ,选择 **退出** ,退出日历。 ### 查看快捷键 在日历界面,使用快捷键 **Ctrl + Shift + ?** 打开快捷键预览界面。熟练地使用快捷键,将大大提升您的操作效率。 ![0|view](fig/hotkey.png) ## 操作介绍 日历分为年、月、周、日视图,通过不同的视图方式展示日期属性。 系统默认显示月视图,可以通过鼠标点击切换年、月、周、日视图。 - 仅在中文系统中,日历会显示日期所对应的农历日期、黄历和节日信息。 - 日期以 **1900** 年为起点,在日期切换时,不能查看早于 **1900** 年的日期。 - 在月视图、周视图中,周六、周日的日期显示会区别于周一至周五。 > ![notes](../common/notes.svg) 说明:系统默认一周首日为星期一,您可以在 **控制中心 > 时间日期 > 格式设置** 中调整一周首日的设置,更改周日期的展现效果。
视图 说明
显示全年的月份、天数。
显示节日信息、日程安排。
显示这一周每天的日程安排。
显示节日信息、详细的日程安排和黄历。
### 新建日程 1. 通过以下方法之一新建日程。 - 在日历界面,单击菜单栏上的添加按钮 ![plus](../common/add.svg)。 - 在月、周或日视图中,双击日期空白处或单击鼠标右键选择 **新建日程**。 - 在月、周或日视图中,单击鼠标拖拽新建日程。 2. 弹出“新建日程”窗口,设置日程类型、内容、时间、提醒等信息。 ![pic](fig/create.png)
参数 说明
类型 系统默认提供“工作”、“生活”、“其他”三种日程类型,您也可以自定义日程类型。
  1. 在类型下拉列表中,选择 新增日程类型
  2. 类型框呈可编辑状态,输入类型名称,设置颜色。
您也可以通过主菜单中的管理功能新增、编辑或删除日程类型,具体操作步骤请参考“管理”章节。
内容 日程的描述信息。
日程时间 设置全天或非全天、公历或农历日程的日期和时间。
  • 全天
    • 勾选全天:开始时间和结束时间只能设置日期。
    • 取消勾选全天:开始时间和结束时间既能设置日期、也能设置小时和分钟。
  • 时间
    • 公历:开始时间和结束时间仅显示公历日期。
    • 农历:开始时间和结束时间显示公历和农历日期。
提醒 勾选全天,则提醒设置的选项包含:从不、日程发生当天(上午9点)、1天前、 2天前或1周前。
取消勾选全天,则提醒设置的选项包含:从不、日程开始时、15分钟前、30分钟前、1小时前、1天前、 2天前或1周前。
重复 选择公历日程,则重复设置的选项包含:从不、每天、工作日、每周、每月或每年。
选择农历日程,则重复设置的选项包含:从不、每月或每年。
结束重复 只有设置了重复功能,结束重复 才会出现。结束重复的选项包含:从不、于n次后或于日期。
3. 单击 **保存**,创建日程。日程创建完成后,会以标签形式呈现在日历视图中。 ### 编辑日程 1. 在月、周或日视图中,双击或右键单击日程标签。 2. 选择 **编辑**。 3. 弹出“编辑日程”窗口,设置编辑日程的相关属性,单击 **保存**。 4. 如果设置了全天或重复,则弹出提示框,确认提示信息后,完成日程编辑。 > ![notes](../common/notes.svg) 说明:已创建的日程可以通过拖拽日程标签来修改日程的开始时间和结束时间。 编辑日程时,系统会根据所更改内容的不同显示不同的提示信息。提示信息中按钮说明如下表。
按钮 说明
全部日程 修改所有与此相关的重复日程。
仅此日程 只修改当前日程。
所有将来日程 修改选中日期及以后日期的日程,选中的日期之前的日程仍然保留。
全部更改 修改所有重复日程。
### 设置全天或多天日程 在创建或编辑日程时,设置 **开始时间**、**结束时间**,可以设置全天或多天持续的日程。 ### 设置重复日程 1. 在创建或编辑日程时,在 **重复** 的下拉列表中选择重复提醒日程的周期,例如,每月。 2. 在 **结束重复** 的下拉列表中设置结束重复的次数或停止日期。 ![pic](fig/repeat.png) ### 搜索日程 1. 在日历界面顶部搜索框中,单击 ![search](../common/search.svg),输入关键字。 2. 按下键盘上的 **Enter** 键进行搜索。 3. 在搜索框中单击 ![0|close](../common/close_icon.svg) 或删除输入的信息,清除当前输入的关键字或取消搜索。 ### 查看日程 在月、周或日视图中,双击日程标签,弹出“我的日程”窗口,此时既可以查看日程,也可以 [编辑日程](#编辑日程) 或 [删除日程](#删除日程)。 ### 查看日程提醒详情 当系统发出通知后,单击通知提示框,查看日程详情。 日程提醒时,提示信息按钮说明如下表。
按钮 说明
稍后提醒 提醒设置为当天,首次提醒后,单击 稍后提醒,10分钟后再次提醒,此后每次单击“稍后提醒”增加5分钟的时间间隔。
您也可以在"稍后提醒"下拉列表中,选择15分钟后、1小时后、4小时后或明天。
明天提醒 当提醒设置为1天前或2天前时,出现该按钮。
提前1天提醒 当提醒设置为1周前时,出现该按钮。
关闭 关闭提示信息。
### 删除日程 1. 在月、周或日视图中,双击或右键单击日程标签。 2. 选择 **删除**。 3. 弹出“您正在删除日程”提示框,单击 **删除**,删除该日程。 删除日程时,重复与非重复日程提示信息中的按钮说明如下表。
按钮 说明
删除日程 删除非重复日程。
全部删除 删除所有重复日程。
仅删除此日程 针对重复日程,仅删除当前所选的日程。
删除所有将来日程 针对重复日程,删除当前选中日期及以后日期的日程,选中的日期之前的日程仍然保留。
## 主菜单 在主菜单中,您可以管理日程类型、切换窗口主题、查看帮助手册、了解日历的更多信息。 ### 管理 #### 管理日程类型 单击 ![icon_menu](../common/icon_menu.svg) > **管理**,进入日历管理界面,您可以新增、编辑或删除日程类型。 ![type](fig/type.png) **新增日程类型** 1. 在日历管理界面,单击添加按钮 ![icon](../common/add1.svg)。 2. 弹出“新增日程类型”窗口,输入类型名称,设置颜色。 3. 单击 **保存**。 **编辑日程类型** 1. 在日历管理界面,选择某一个自定义类型。 2. 单击编辑按钮 ![icon](../common/edit.svg)。 3. 弹出“编辑日程类型”窗口,输入类型名称,设置颜色。 4. 单击 **保存**。 **删除日程类型** 1. 在日历管理界面,选择某一个自定义类型。 2. 单击删除按钮 ![icon](../common/delete.svg),删除该日程类型。 ### 主题 窗口主题包含浅色主题、深色主题和系统主题。 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. 选择 **退出**。 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/fig/000077500000000000000000000000001423264401600262045ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/fig/create.png000066400000000000000000001120151423264401600301550ustar00rootroot00000000000000PNG  IHDRS: pHYs+ IDATxw|Tם7wzʨ EwSmlvpql6vvd$Y7n6N6{bcfcӱiB"z1F$] 0wιeGg=\RSS! n =GRQ|Bݻ0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0m`گ]K\'YwGՍuv'w{4D.:B㏀@%rw\fUf籙ZjjKW}uxo-uUs#mm68khfg> :/|_4z M"|NCK[}Cͫ7/9XuŴ?}?z{}E=h8㵿Wڝ7O뿜q΂;d"NONSPǺlN˭*D.*rK:-[Rm옻vߜ&BEjcZh)aq}`^o{vHh8hqxLd abs4:X"V%$D0m""5z )w׉f妦eNm"$Y= 0cg$i3[\BZ3lc-Б""0K(ebVcMuF`|[sw"{P`4\DOS%-J2h-+.lSueYS  #+NMu 6:*1J{;🏵|n\޿z$lU"W@ HF0GQ /%Eܴp}⽷Nm"J9Y#_9~,EYN@ i 5 o/8a-KERόMwzN_FBĊW @"8]_Trt LӽN_ D;ke=_5sD凫NQ^Xod0ѰH'/zi2^?sLWy"Y퉵I1G/O ( `[ןϷi{b*{:Nwyk,leT}EeX$F[OL}gmqijq@P4@DB!8nD/Y G|WzZN3{j[wO=ftNp ;iWwVKsTz1 Ҏ^aus ЫwS# - *MC4j@$Db!@9,?u5;Q1a:*s5ey|rN( "X 7"(}pK6SJl֨0q ܑJa`4 t¼ʾ(tE{ _O]љ*"hZNo*,{#txM{u8s#aJx^  cL*^W4o}@cs WдShX\/TsbJ husDTK' ˚8OISYn555Tw2p.C%+;]MV7'[0VD(eSPE!T;~нd[(t4%0yѼD_5PKn?GQA{Hrm)sk+! iDf,@rth$b- Ecv.^ Ƥp WfSQȫ| .>1JN6`ŅGY/T^N_R/McY8cY(Z$3*,ce0]9kG~Rg]Sǂ rV; UE Cƪ=UȻlᓏ?sqsD 4Aa"aĮ0]KDѫv7UGeq L@S=yϬόNϙ\VVWj1fd{3HI/']eܤE4o\ $}!ٳ&J 9u+ h\ 555@w5K P_* [h Bw !o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7xx<^eY!4F( ""Fp N{GBRT"B!7qr:VU$IRBF}pg}>;!DӉb !4MSԝ,0P(T(.`0,+G;/ӉxF bX$ ;_BP(FEE1 t:|Clw70 `t:!D.HGӴ<0n=0b x7$H$X,X^]@ F,Su'BߊD"Z R(?GQD"XFM100B7< lE]c/?SxleKpmWfġݛpD5W] 5՝9v_P_Цi"T\ɚF8w[M}]d:%Dބ|8gŕj۽;@tM~HhhW=2?ܯSwv;ÿw?8yaҌ-Hq Qx/?fTN|(7LPG9H;dn3ɎutJ"?;E$Y0WY@,E,Z!٫-Oe+:;t @9̝"֭-RۀHJįMQIw ;]' G}a_?oH$z|m:g: Tb{Q2ipB3 w$Xpp&&CE߼o|OR47>eX՟n$qbf&ۨ힚[) Vsn{jyo|+Җ)'SU2ަo] EK \5~[A@TT\.7>~KOʤ;b[[[5ͰjNRa+N b^ؖ|!&k\=[wXөgζj'F(P2 /DzM<+Ti如M}xFL*~')|;6 X)iڧZʣ+<9g䝺+n2K֐_5ssVbBzkOaޗB=: 7S}|[y pk7;L> Ix΢ߞi nYNJ[,u#=-SUV|a*-.<{URRJ wؓI6!Vȧ7ڼ5KE^r߾.~.e~/zw`>_ꧽYZVeJY<҇0.0 8nnmsK}e,,|7s.Wyp9}|= @dqYW?P;7.E a %񳷮8Y\}g OI޷4{ %ʅWkhqt~19.xn*1Ȟ:O}8sGU;Kg*#.5\vtv"JmͯB[V6WNZMtk.ss R/$|ڢ3&E OJr:*ig%((XZy)\.*Y~-,w3K(MʣϥJ$F^ 4fuqb;\lYzW@F>-zz#EO J` h^z^&GKK ߃hix#æL(9 S2GXx$M]Kv)\OVmZ"l Z"'G靲DDo ;q˲cs eҌPNqΦ+)zqL77Ή&Z;3OS}xH%Qj-FEiBk"(sxB.QKlFBw+e2CG߹ʦ,[pL p,iẟ%+Kv"'?D6se`( oxp8B!MŌ>pv˜7ȹɩa coatvII21Uԅǵd O f^ " ! өRf8!j!"CTWgGTpDWsS[wVPy/%oT26<چ$0-SXLrna,0x/o~߽yi_i淚+wgB'>OS%HF-0bYE& J5̙˥{wcg j˵K~)-,[zqϱ=1^D tpל>Xѕ9e\vχW #4~y<LFr|hoodr|T1 k47ǚ6m[6_T'mWgOWwR$w5sYAHazms6575* ޜq1.!rtb[qK$utt4T*R)EQ;@βZ (`\VwMZ Zjw9ڂV"|E5IDcͺD66 G.2>rp < نki9i9yA653 sܹL !iiish%Nzi6}y%^zDR ?ͯ"! /x<ǹ\! AFpaܐ v {̠)LXoRΛUdTO{)h $I~, V >`wK>xĹ0h {8ǦB`\Mmzr`L_V4qR]`Gn"qDDjK(%uWZ$F]󩐪7RB넻B.)SP_VSMrc-;coKuTIll뵷J\ VIghMu~T/--5L).rϯx V;zf\^2 7jv gј#jknĠ8 밖`k[NVFuzošz={}-aW?xjڥ8v)zŰ8A:Gmr{j_!Uư&>uBHҊDg3v1 ]&Xa>ꦒT0ӁЫЁ |97%*5)TW zuE`upUolf!ˣ- Wt_lXŎ>AcCOӡ ? ǟZ_aP+BԿY? Q¾T_xX =!V¶*u^eK6?8 tIВhBë .j (ՋΧ ,Qq2 r?(xWB=v=xZZ7`R5vZ] .Py=!W.PaZ)vQtl%T&W xa@Q.Ks㢻 aK ެlکèX]0L`$6*Ld!Ft), ,f z6OER0'VW _ؐ.Y Zʼnf8'n✸-* e&@8 000fEAW0eCr}St`<!;%,,7^}~ti鳌!ޣ 1igVOKK az/Yg#S ÌSVc4}>_c= ` kPl}"\XCҐG/s[^.v%G]ljV5A&,b@EA=*JHF] T_c?YDD+{vHճg#\Ъkkڀ`Hzzzd"mtvעxASX&}4Eqnf|C^r0>xu\ [Fd> Ӏ ni3Jkl9mc"2) '1QMyС L9TF<8Ј\?4)t6cVm]ݖjdFCWmrs`lon:4Vbs˽˒l7"&&fC#::zɒ%#s Lc*lS-\V鄬.H5+) ZO.!v aI'uq\ 8GO,cCΌp哵607OpBwF̡6ӆ 04=E%%%n!Hktiaa3SIUe|QbԺ1%)_zńX%d86S'M(翛c?MkCMbáڢ재Қ1e^ިm94tOViN1闄>Yޫ{&2 L0&"ۺ'Ld"}IØޞ5YHY>*6kKM*ӵѦLVP:})*M edT64'x<P( ?z9w) 䟲hbGϔ9ձNβcY{`x]] #!xwPF!>a#o0B7!` F0B#!xBF!K4-HB!EQ!$8cYb!% {ST_.kX7umHVc"tH$j0nu08%6BAZGFp!4^H$ }B@7BݣFf%= :=1T\*)79ah 8sJ;Nckyx?7)Ba/ zn1U3544t6 tIK -d$aʊL5g7ךI\# hnt4=&#gy0궶N)K}*Q,J$MYcMD(4qɩ(&ƤcX[ӹ˝gK,];}PKfNVt%Q&L-ZEX/+ U3Ék23f^Qhs6=|31:+^Sp: J$f$Bݴi|"tq>u{tgkG`M٪?Gk~%e⎿nVEYd4ZdJ9ry9uMiJKj)imqSB} l w١/g-9UOS1aNz"F`B-v˾ rh^OsM$RZ$$Jʃ{Wu;zly ߝhTex1QZ1TWIa՞[?y@)}WY;}qN{ϟ44XtF|akL 8G(`?BD_Uem: [}qI3"h^k2X e~I۽|ޗonxdI>yG~3ϫEѽd7&g(9|4_$QQz7X%fJ"f:g;ۙxzrֺ3uI4:ڛ<箿R>wT#0%WO!F0i#iLFZ!i 8賋3M=P4WHt u 듣NYf5X|0-bcdps l9JC-m cM{'(bm?/KY7q臍/Wʣ5@6)7p1 *%TZmYꀃ_ک`ZTX]WQ{e9=xQL]<+];@yZwt'TIiaEFZ"?ta\0Dv}[fvk~6pu}Iqa:}4Q IYkNY,]ʜ 6J5lH@e BY#Rfk"vrzd|0]I[+HNC8h g)5Q>)g-H& 5vDP՛hG[t" B(P/圍eMMJ7'|Œ =Ɋ[']˕@$AnGED j}ωzR\Pk' p"o[, (.LJh?hIAݣ iwZJf}S29-{ʌ63g^hU\AI 5<!b ^cP.atCBc ЅnJ Lhzb_PBBw` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` Fp2ڱ܃eYw!4v,`z|Bh|x<~.]@/caLaP7Fu}~B@f\.b `nw\bX$QE{B8e=ffl60p#vD o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!w`?_Q4Hu+ 2 fyPu'7{3Ǝ3g /"&a}{U }esrO;̓# qyϟ{~Jl #mxZkVВ6gߩY앧l=_y,}bSķc)Z dt#!4lÈ`Vcg3n:Iپn{r4mW[ZgKenD;8B>}i.Nu Y^U_iq JO?ݟw+wޮ#DB+k)-m Mt-oݤ;tx';^51qy8"`"'G靲D 6B#{'ܙ)W~s5TdJ,wUsE lE/h$-;w`?6`D Tj^]Ur^|vJ8[Yg:7jD=D X#jXd@UT%KPHv(] r2zFCge3t?tZo6lx$Ӛw~_ǁB!AiL˕7)j ۼ\if+t ]%#F)a2J?6f{kT"sZ-!V%TGh$ғՊ99*:h^s3}Qjx8A %ǭ^>{!t7 -BJ5A!t7F!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!;0[${k-!e͉*߻6Z|>X 0{ rŧLR`m el)]䑇%Z{lI2,?9:{BQ)u!ϛ~{+e_|ݚa4@hdTPZ^do +Uoi>~I5;K|Sb{*XW&DÒ'˃>$o.9YCeY$.=V!f7~AWgΏ޿l'9eQ廿{wZt5 "į"m?޾c[)#֦-iOLފo~{;~{5zV.h iO5,x8#V@1O4jOf,~vn?⦕*IDDZ(oԔs сpK;x X/ot_fDP/B /Xg7@7iq5y[jpqKCmװū_F+ Xĺ͝H|@SEZ0'pTuxzvVM_|9.y, @E,ZmG&mJQzah3~hv7=ujT6h-7ݘWPx޴VF"xjp^"_vdk'7x:iYgn'Wn䩷m۠gVWJ$UJ3ϫEHחs[ֽ3#}-?̈0FY̓rmΌ t?S4ODj>18g1J?xſkς94=xgitqJO% 8Y46fNj81O0Y͈|ik_91z <%}[DO;eq6E?}ӝ~!G滂J"e◳U]3L/Fg?v>k[p[[&DͭP !,6.$Jxۮ:댍ST41$jVNx'B`:9pY =fO/p]ݹXe_]6=g~.c3\ fh4^{桴 z_ؿWLpwUt^y+]{em1ߑv!E7  O9*K\̮?hˉ3}gՋHEh196?"I@S?[7pi-8{ -Q'ed%Θ v^30[zBXs՚%K VncKp(Rsۥ[n;Q$}dM a8N@ aa;K w2藮ynYXeV%RyzEh19j0غРԳ֯{~$U6>;"6'Emwn6;rMCg**.wh'V)|y+YH:oܼJz8Fʁ_;!sf:ob˝6hXSa+_Ǟ^ٻKirVL]>MNj8bG.xέE}$#]sbGW意QU-I]C^G C v]F&/_,qy.vڽ"W&?3S/ljjgK8ښji|v+Gmxy~LE\|*j_!VDD 9m.>Q3kĈx>^ƃa]1PPo`Җ?l,knjU9n\0\c ~\nퟆ X|#RK2\DDL]9zˋ/8%kn/?y? f<1t٩S@K^*qγZ=.,Z[.nRqݨdm{k>^xBS1˸w8Sp˹F eh?hI "{sAF`G d5 C ȓ~yۣ28H0&+'+mLYm?0=JޕVHNЎrŧ+(0  mΝ>t7gùKfs%|fLKNU͛%'xFvSNNjn{4䤅bDym6$F2g/ _&u,Hh۔&nN4dBX{K-<9Xm$Fo͛h8:4 in37@|ld>u}pCEi3St: VvE*N'c|,4="!d#4NB!wCBށBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xB=x<^eYME BHDû~xwqx<|]bX*J$B!^:q.tZVH$J Fy }pg}>;F!DӉb !4MS-\ IDATȱ,0P(T(.`0,+&m{7R/Ӊ߇!$**J(bH$ ; ]?cbP( QQQ 8kmX{7R0{ 4t:!D.ȷ? (Nx$~ކkw##~zbߍ8H$D,۰na_p.%)8oE"XցR?o2޻ho`@w=T:Ja(J" ۰n$5@h x6 #C֯n}0=dn}F:9K-:zk}wJήnPzΉe')w 3Md]$y^ssߖXe/]4]LD Fǀ5U^=)[1Ehk(M~Db_Bh$2kަ/ҫ_G?izz hi$9&V=Uݍ™o\STp.K$'-k`:{˓ߟ!E-iOV|s9;9O)-n"g- 7c,:}LE-X:sNೖ^λ32VO`lͅy.T=̙Y˦Gz,ag-߰6)|{w%% jO?(Y|jI핒E.^t[G.q^KE0*zR* w=a4ZYAMԤLcļMBC{r6?;[s+IϾ.[b{w\_(5[8Q]K#wG#fQJ(mݬ)˅w YwýkeΚ9=jA k'U*<0Sj7̑YH/W)v KZO?i>6]@MGr}{i?Qi@7|@CQUQvx{bA>_-zz##whѩ7&$,~[pc(h̫-:gy%鹚s#q2łcg(s[l^M@厢ڎi"o<\gm)13)rb>wgRy0=;'w?Mo]hd ~N{ۿ~U0ko)߻`Kg|})%]+L_mTeLrV 93r+~<5;V+fW/|fnP9Luu͵u͵F u6554tZ9fg5UWzS(bz.]lebfL]pVڛ/bwqrN]:freɽ۸BI(S _ !$tp H˖-˒lz']y8ubIw>7쭟}KZyQY>߬|0w3S:<ZhWF.VV^KE۠J-EVϳ VH~T1xbt ƌt[(TMlաTWeV1׈}O4 :,~{BʒOԟȋ1%"z::-N/@-O]/<{dTg-8aw7w-juߤj/Inؒ]+(OK4U2&Xsb๏+8yo!pqC!5tf~$K`$@m&wiIE\}t HCU}\8nд?m<4 >I[oRjL;7gC:V.799w)/_ʵo\ ˼r(I+_R)ZcRyx;+QG8 a/YcVDZX-S }jV' e-`YIxsHk}R0_G}}hf8vnksHxL”u[Lش^!W`=Px1{ύdQ$ޯVYU/J(h}p< vAJ&PC5蹳4V{CI`ٲoE'jPퟓs!e6pʲs@PC!{7uB^: K0v P*hQPgpvJp`+c@0>q/q\_B2Ѫd:H -qm<ȝ]ڐ ωM;Yȧl#y0@Ly3"[\ޱ\% JwW ojsֳNd6w j,LJ:kD%&Yr&x$sTn>'%M[dC%15Mkl]X5 r.VHS_VZ~GΘ3 QTJK^V,w1 <|`fΑc_JH% ?KR*tE`ܺ?8_^aqMԴ%J.X(A-=t\X8#ֿ[$A޶b1RςP- K_$pl:߂dNONzM>f熶ܜt1zz -;ie~ZO{ZQKG('r m/*jMn%E+o>cAX:!d@%<#1ɾkQkC=➋t0]Gd,Wh7Msq;Wkr-&"l)?mpRof$s~|y\R)V@8@߀q=K y0 _:[t3`Q4}ϛW%;(} `I 9Oܩ`!Xp\V9N&27?׏ jCdCQG;Ơߟ5$go<[   N+/yk}Z y%jXϑKq#> ċ2ɓ'y 6h|VIKc7گx^h߶k>#k3ģC}盚:2heͩ̀>tBGEq^,Tt5C&>=L8CU}} /sz2IIa"[quC0 9| 3rP_]u^;h~TH2\#"ϟ2>SeMgLTy\I,e5MQױWk 3FӷF\׆c!~:`hBaʅ Y}d}Ô\Z GS*a=п'A0{aRF;{XELb4,v|)/ocII:9'zYezW0 gpruվk/:oI؞q H7˱#.t7RI: $;lBDNifgn'[ay<'Xچo ;?a_wmX*>`و{+j#WˁAl[9owz3_oR 'NeɼoK ]:e ;+%EIt[:x滽 cF >=}O2kǺc1&Qo%@mӁ$}>9pg҈پz2 g̎:Sѭ7Lbęy?&_wR ) /$(һh"CuCUbY 89^ظjO#K("']1UJ@[0TRuPEFKٕoTknDlc>>潅 9t,&ܥ']rg1 d\uڅ<A]Yr6 ^SsgW`[P)oMlpNb r[+׬x~12\+JҊTྥY'e}7yA {stn^V+r?nPG3v]^&KuM&zR>ȼ| Cwc/ܨMD2j\&^sZ@8 T%!ԉԚqY|_|F׍!GEAщ|\.jgeavEE \>P Ԑ}8wHkT_y~+WZ3xaFjKUV[TehG$v8;=%7ڟ[e-BP)`0Q]e¾rHKtrMR0v)yzL⦾ I|y{7wW_^ZT/0T7&j%h,nC:.E,_-o[vvgA(̖iWW86irTdNONzM>fNܜt1zyDVDDg`Z.Mly$;puYY=-Eѿ>TZp&[c XV{u;:;p|7Q{Z-`6p@-e2s*YsSQSn["}Y+ 'N;m[8!vPظrH IDATME8Zwˉ[fO/)'-ہ_Hm) Rp;p>ӿ{Z;\O3.B`@(ttOYf i7Kv]KPyBNFWw ZndCtuTUؤ*J38^ +ktuu7>?몷$/WxWzq]ڹ~4(7Yt@fh<]_q7wZƌNf]Y[!:">1@4yCe9玝y@3Y@x}'oKW'N2f$c@3p77|~NZrn8|;ۧeW(:|lf$!}9/d}5c{oInuչ8oK~ ċ2ɓ'y 6h|VIKc5Vt-Sgdmfx~跽|S[G]4 H"9YyR7~E/%cـy3Q]~u>w\V*t-x@| ~pώY[oڛ HZQKb>A4cKzD.9lp(63{q>fT 3`W(̓q ɕ*O]+.͊L =: sm"daڨڐxReꞟ9Iڜ|Cώ5vT|,jkc<T jb;;7w~OQ+K94&e9sE%`_K>:V0orpvs梁/}q` [b^/5_~M٘ewgb6VYrJ yj<U>kP]MQIo\Lx (|A}\UBյh㱯6ZkZD32 <:!k??Y]hm+Qz*³K5 qZyu%c#/^s`ZlX.q{8_?W^qUQX?rZK1\{u| <`j #f|@MwiVwzd/*"']1UheqhzpR@,+ۂmb#/<X1٫6#y㠩.#<4/<ߪ(,⇟nIM\|iTD VvJDX{2O?8 cP "ث.7"ZrZKnP,o7GŸܼa Řz1X4odێ<;(M9}fVoݷ>5zͿ T#,o\O#-/}l6[3K_JY`J`eq 8uh?)#ẘF ?*6[.ObG"]:pl Οzb鄵p/w qL&kf!#0)'w,y ^bK(M;v%{=̬* ?!;Ĉޱ2]:7Taq3.!b'uQrTa b{M4oTd߳QP2ay\Vs@䱣%x=1e^ehόo~ʽk%Qѳ+q=Plّ׫9^I2ot@ԯܲ%O 鮓l"u%+/Q+/iME5ZND0㱯2D `?'DjId!#!0,DzpN/߸JC½k7%^1-P~J݈x-Gy`# fYw=C]P[ 3smSv vC(ь=Of4Oe }vlV2S~xI9i.Q=E&r(7O*]b͎R}&kvMOLd3}-SsbʳdJJ%Q6h~{9 үgSןCky%./X2\ݺ*$gӻ>Y{|/?zQ8!*-`b((//ClYGNRv0v'RWN9bBTCTCvR R_r,U(~F-{>ϑKq.n4V(b#QY;WA⧴u~] 4,!迧K}CM]f̉KLTZLCi<++z2[eZ`U'Z4 *juSpl.r_Ɉ9 ca2nz8NrRڭ+ -j/fjm~&ԣt6^[IyPaEBw# H5pzl60LP`"l#" AK(.YVAZ^xad29& DQBx{"7$ FqNsTsu[$I$gRj0rZ!rd2BxdΞx8+jJM Rd2IvjmywB! pL07aoG?!2Be0#`F!B.!!\C0B `r !2Bepr8cY88MjsB (L07NRBXu9gdR*IlvuP׀Z9ߠL&y/j0]~;U,ˁre!޽mG^{uSRi']-Ugh{{9 >xU#0D3qG i,96h8v=^|q[z/>v(I~ʵ˗bEwu`hG۳.~t@\p}c[mWy[nDUS_ʷymɠol33uΰ@.}_l^ɕ?C~lvn`gEOeX4*"7b"5Uj-^ @)Wi(o뷂iiʧ[/m;ɾO~10^k3.}er #I!D5w/׬Ӏ_=ߧ;! _|+Wg5sw!`Ԣև`vEVnzjᢒo踻++”o~;Tn__=WyrX҂Jc5)<4^H%guuPwDD\pչ~{d5W$ rryS~kG>So;5fOi߅wo}gWmP~7 P2>tsȌkU5L6KV'"Lj^cv'ִXIL9֭#МU_YQF,{n8wƚo)!a~yY| + x͇nFyd`ϰ]/8mW zkSnZcRe֏~c|ɔq$y^z|FXќ}]E揍l)?mpRBW+ zYl[ (2RV1ZS Yfqa#7㯫x̎u. /j_WWӣ5ȉb+ҿe6gazßoؔ)}ܥ_p3Gv"[󇨤mڿ;_oG(;i8̾g@%&"PZ5:ΞߤTEKMcEIA͌Wa.ͳ+#{ĄxjtZRvieN !bz).C׽ [dETyݙU^|Pһ;ת Ԝ8%ú/^ޡ! O9#ro̽__Xk ZDR?w&lϔSYٿ{0֋52ܳK-^L¹ֺ9 y F%2];UP(|[*I0 2845CkIN4hM _t6W$#uA+j Tfcљ jA0ZzDQꂠ +j% P]Zܭr\0&/6a/ bMأa.!Lf04Er!&I$I`023 &L&s ~EM!vpPJ1V8L&InZB! pL07a}@uCsB.!!\C0B `r !2Be0#`F!B.!!\(78e9sND8! "ZCpT*!eY8 jsJa($fWu Yj d211 \.yRj]]"5`piHR V1_eYZ-JruYPQ!JA]Bp wUۄ9/! l׃<@[504! H54GjXPk`-SauB-jm6F \^1wM\sJNl?a8%zKp8vp8vs`,+(+363mGNď SPLK/uZ蘁ωJ̻ {θiIt+0vAf"ꅅv_WON*:9O+o9u=|c5)WA,(0ua^.,BȽ.gO[E+/zcCw?Dȑ7>`h{6|uvC텎|}^s˱<)w?:cQlc7|{CH߰h#/31|fggieNZʕIs NT=hmv-l脿al(ZMϧS|ySOƱR ?v02qMfT|pgm^H)SIώ}G>8;}ӘFL{)Y y圿^ͷ"V*UVT jmb;;7w~O@R/tҘxe|UN/֊,L!K9@ca}'q@IB"k6ЗU`e 0,\[ 8QRO6M?;*r°,TJmMJ4͏p'&zώjMR7ܔYwZf*kBTi!:OMջg)*)큋?AEO\5JCp{nS{ϊK1%5֩wLEʏU}nXB^ԺU)?E2G. m;rB܋/{.&|>*@oQExvX#Z+ Wo@2; J8xiAcc;}ڛ_\xO/个(,J҇nr-sh9 VMoڣff{cWr|#/Mw^, .}x5f<`g.xËbeR5.ZhC` ^= 1у>TDNbB[EI8$n tۻضO` Ƽ[g|ndIDATӏL䍃Ѐ?[(~%5-sQA. Zhms:o''=>oTknD zE>߷@(}.>`Z֋mjs(-崖.ZYo?76/y.21!bhHɶ1yvPrͬ^~o-|j(f%˗r{oxW?;g l``ԢV4-;peݔšghL_DQ$ʬ?|rkuzD}f8?bw2RBo踖?A; K! ~3-Rb^})_i!AߦPv|횔gf޻=z3?X v*C^yn;y鵏DQr_W u-O,w) Cmן?W7TlH `ۻr 5ia»n֚?!_ )}Bы7JV~e\'6'k%B-ٯ=n*@I^9IݟaneKUk>tWk ojT r?+/ӭ=1?" /j|z1%2 CG45vzi& @C-w:/378q4dA^u;J^K_;=<0?fKU-kj9n:J2bsӇtZ N/߸JC½k7%^1-P~J݈x-Gaj"Y^Pi9h)/kUɤf>EpBw#ߞz]79]7C3LG-ʗM?it٧Ukظz̖KI '%qB )71FyPLhv3qXk}b"ۻtS`El8d#JCA+r;HgfDž+ĩiO߾N4dd O ۨ#>²D3b 1 VxH⛗i؜SI-9rse7J /X2\ݺ*$gӻ>Y{|/?zQ8!*-`bUąi#u!6YAB[/ɓ/Ke֫ȧ>{kg_~retq\gᬲc73JR>ti> % C8}P˰%uTV8xoh<)e_ AuC$33h4-B' 㝗h#-3e$̀T|di3bjZdWd_Qh،~~   y^{f\[Т'5=>rZnUQmf_+1gA5f{dZ^T:NE%2~S(x[^f|MGt~mtbu6"JXPk{|xv NVPfcљ jA0ZzDQbsAEXP+anHjFnPad29& DQBx{"7$ Fq8(2\].$I$ə 頖an\.7Le2`8+jJM Rd2IvjmywB! pL07aiB5B `r !2Be0#`F!B.!!\C0B `r !2Be0#`F!B.ӁsDz,qqyS B (}-oV*vҞ.Q+lOE (YSI >/4^JEaY/GsWM$J$If%!g0,=@J@Y_MtRϴZY2yar9RV.5V~%lw7+cE@`yʾpD:b;퟈PT v_3XU&IRI[?i350 ,4g+?N?7W!8BBhբnFP8\Y d 9LvV7%7 g%q^s4l>[|v;xVrե*.0T?0pzRhf)bf׊!EI#Uls0j=w-nPetDmNeJ=kuGdRp\i%pT;\Z!@h }.lڝ믇tMk}`pxxoSz5,S)%Oxú-{䉇j/dOe֠OF0KB 2 QWӏ#`k}roEנtYQ[02\{--]wq~٭yxZ_+D37Ssu߾' c{:)fXիBё}'>o'i1H|q, ӂ紡pr!*GOHa6F `vD&2`HO|Z{# eظWiw"sV*CT*>{͊ @ R/=Q8x>U$.B@-!<,^7?iw! Pn AoQҧo=B1$..sKx}7@0:<VPQ,-߽j5- &7i59U!񰂁͇_EȀV([\!n /ϷB_LsG+SIF͌㌧o<Q5DŽ_ ׇ?=2q9~8nj|Q1&"ʝ ͝*r3R4Ͽ/6ݾy=bwul|we#^ 9Z  ^cA xtH/;$~?n":FwCvZ5K26gAo G[@j2JÇj_cŋ_ $mV~l((fwLGMy̱C:Γdxy*Qak&o(@2B@: ߹HS\Uic2OS2p& =о_?C(h',8YEd7rˉNA01>pϚVp_|)`'Zgn -q(Hͅ՝єXJ'T )`wꜰ6޽QEa#kOiJ*R.JMڪ XXH R@P@BTHPip#H=Hc4&!g VeGg:v7}ˋ١W&>[p7?xn쑕Ű)D4U8'nA!dK1i|r`e\̯AmSȾg-?!%O߽/ZТ"qWjh>Tx7b,))8BH$FhapVcZ]qS;_ WZMBwGpML֮j4;M!R.7{8kcRDlSnͨR`C#_#DDALD`""0)7LDDa &" S0o|`Y " РVIENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/fig/hotkey.png000077500000000000000000000305041423264401600302220ustar00rootroot00000000000000PNG  IHDRs pHYs+iTXtXML:com.adobe.xmp +IDATxi\W73 D% @Y_ŵZRXik)bݪhbՊK Xw]P(. (B Ȫ Zk5}E+:93s3s ~ILϞ=CBB&Mt!_u5))f ;1k,kkk( 3fn f777===Oxgggu'+W4ͼ˗ޅ %K|癙Qq+Wynǟذa՝țԱFPϜ9ciiillm۶SN33SN)N:{;wfwWW׶ٳgjmߒ*ɺwﮧ8'i^qާ؞Bsuuu ì]ݻjIMӹr"''bllLQT|||rr2!ޞؿ?[ %K/W$>}{G شiϏR{n QF%%%͙3';;>X={yyy=\nttP( jmm]v͛7m4vئ&jժUVBjkkϞ=M&4445*==];jkkٓ>Ç߿_])=Zz EQl}:}t}}?8,,,<<\}2BH׮] ^0 L"xxxBBBB\\\O0 EQ D\.C"oo 77e˖]|~233ʊ7o@ 7o^[[yѥK!7o3gNPPᓎcUcϟٳj̘1>>>ZZZG ݻw'0 n:{{֭[Bݻ>>>5x~J+WTL]g ---wmhh 444.,,,..P jkk[XXyީ70r!F?z&&&zzzBPOOȈ[YYikkˊ677'$$ܼyS"EDDlٲ%..Nݺ#Gt֭k׮H~ٳv:::O cO! ϟ677Wq^E׭[ץK5k֔۷sfffWYYYZZZ}}}qq1!aj:MMMg :-gee~hjjΞ={n(̙3ٛ7oV.<Ál/J2l͚5[l0aΝ;-ZDtEEE>}|||D"Qw2 ӵkWEPSS8{lZZڊ+M6bĈ ٳwުkfΜ9dȐ><88qƍgUi:66VWWwܹ477=͟??//O-`Seff֥Kƅ EEE뗟Ozvڴ 677GEEkKt211qԩVʲپ}Mvv~TUUBj Mӛ6mbOBL&g=''gݹsG-4Ms%Kxzz۷NrJKKK@@ 577- nhh qƂ d2덍.][fee*:DFF*"#""bcc͛gmm҆0-JII={vrrurrrƌ`珦$=== ޾GZZZ=zcOԋa@BHlllQQkkk|ǏNzʕcǎ%&&Z[[+FP:Ugohh[n=ws~f͚imme#j?oooӳg444X[[S|G=_gG>s挵E 驭moo?lDrV]GGg 11QGGwݺux H͛nk/wL6cƌ&MIIIIIIo0FQaw%CQK _ H$իWO4IizŊK,Qʊ3obbUΝ#_rb@ ߿??X:V˗>|Xy|r|ʔ)v"[144NKKkiiԤiE-MWGQܹs̙{L2%??_$}aaa/۷/!$((rܸq;FFFVxb~~Opx<+uԉa?ڭAff& ~zddddddLLLJJGxx;555ǎ[TTTRR6a3?Z 455'r:33sɒ%l_ձzvBHKK {s΀_UFQT߾}cbbneef}}a:u$sv(ruux:u222իWeeeEE[YlҥK۝noݺu֭Ͽ%11111Q񲶶OVy{x}XXXDoF.'%% 2dҥ EQΝ;Z[[͵^ Jᓂ~ÇBRRRGc_HCCĄKQw}7tбc~GW\1cF[[ە+WnܸAO>}'?mܸq۶mfffqqqN&HOOO__bjjDillSap===/SuÝ?'&&]~ر/4?b __ߚO;Dĉmlmm?Z%Rhkk7 Bqrwwq㆟F||wW_}T3Ar#ݻWXXXXXXPP0q޽{uiԩ"ڛ/r۷oOJJr/YmprrڳgEBB'Op'OX]]4zhKKKBĉ={o߾78+tH,D" 333Ǐ<O,o޴iرc_p87n78x>m[[[HKhlll>Ch>󛛛T\.7<<4$$d~i||<144d/2^Ŕ)S6nܨ<ؿ}}. vɓֈxONOOonnYx;F=k,]a8Xӧeee>LMM?~|uu'|>;oܹ*^ݻ7;;ի??BQP(TYo\mmɓ'?.َ\./N8֩S'a؞Me [YYB$Ɩ 9r$$$$##m6Ŋ<O$b>/b6!ɓ%%%۷oW6Ԏᄅ3fǏ U> ]~/;vܹsGٳB,J(wrr}y5z7[Q'O>{GgddlڴGEEk2 SZZo)Wy׳eyvvݻ-,,F4gΜ({7R[[{)]]]ټysll"^[WWW(BiiiQY/|Itnn\.`S666(*>>>99booFZXX߿_q>˞,^ɓE1+Wܰa۷![lQm͚5ɓ's-**6lgϞ=q֪*UaÆ qƵ 0ٳg _:Nwwgpss[l˗'33y yL2%&&=~z߾}sν6G]ty9s _-XSSS^^-[EquuMJJ.**Rrnnnw---UyYY!k׮l/0 L"xxxBBBB\\\O#&OɓSN:uѣGo!@KKk޼y۲e͛rݻpB6Ca:DQ˭wrrjkkcUb$44IMMJ1 2sLŷ|@KtjP(322VVVڦnJp8 >>>7oޔH$EEE[l{Çegg80 [n]677#G)BD"ϟ?gww+B<<<Ο?|jzE9sfƌE-Ydw׿~>}F6RKKKWWw׮]ǎ;v~3 ʞ8 @4!a׾J$%$$ڵ(/䔚ܹsVVV666b8555::zgΜ۷ƍ\0Lrr#-Z(!dlV&=?ܡt3g2dÇvttܸqٳտh՝;w@ 055ew屑gOo߮=z${=m۶H׈#Tߡ(33.]466.\0---**]|@ hWݻڵk.\ƕE"ѝ;wǏgϞF5JWWѣzJNN9rdrr2;jdd$JUydk֬ݲe vܹh"+**#ڽa]*jjj؟) }!{Ղ;V \vmƌw-ŋd &|7o޼u `gg'..n̙nnnݺu۴i2K g.]jll4hPG# ,Z(%%e֭3fLvv K${{=zjiiP/A% ~xԩW\9vXQQQbbz%%%"߿qq/ڵkjLBBǴi455 |//ꦦ&Ufxƍ d/](+-- TJ8) 8p$>z(,,L]݇\._|G~8EQ}),,(Ḻzyy͛7/66rի555<(++SWc#Ν;,,,SRR\]]:ҿXܽ{={ 5Xuv/f^RYfF"^zҤIфWXd #BpĈUUU555QKKKyy;wt+2+++a>|obb<tLkkp\X,niZ;;;=z„ 6mߌ JJJذrPg.;m4Lvԩ~IpW$c9׮]WTe2ٌ3rss===/>}&`0 g``@QP(xfffbaflC__ҥKyݤ$FA>3>zoбzvN:dƒ@ raaaׯ_III9((\t͜9>ڰa[_۹sΝ; _QQhjj;t„ sk)/ Tryuuuff&{SOgΜ9r[8… g͚%J߯*++CBBدcҤITM->}e0޽{?SEBQڵkO8q}v\.(J5I ϟg۴;GR/ɾ3d:P5񴴴ѡi=kllܱcѵ~;w:ujCC?x **O*TUUmٲ隚DOO۷oGDD:m%A>}wn:\ԹsKzzzzyyZZZ/ d⯥e\\ܐ!CBCC܆ rÇB3nݺEiox;wJׯ+999%%%sgXb}ܭB>|ƍe˖ddd;z "{K322za 2ggoW155mjjbqqqiajjjӯ_?ccc__[n9999;;:::jhhl۶m֭w裏\nttE(z B(Zn޽{Ǎ'JE4z<6VWWpa8888p`͚5 ƍӧO.]zw;*:V߿zw}gooO?UUU^5kVZZZYY\.gF&͚5EDD߼yS.ϝ; ih޽qqqЇ~\fgϞussk7>>ܽ{%~%%%nݺ5iҤM6u҅(Tٳcǎ"ߋAerjg TY@y)vQB鯿:lذK[[;&&fĉo?AwLz/ݺu]tDٳg544D"jPCY'Odץ166VcX,wvvVw"χԩn}.~e?0==]SSwK啓Rc=mv%  y!v;3g0 SWWG]60k֬az\nxxxiiihhT*%JRchhꏴ2e̙3~EE !k׮ (n9;ŋwխ[ŋ_|ݝBӴD"ͽyfyyar6E;;}:!>}2,,,;;{̘1ܵk9bLѷo_vYvK.QO)&&-%%rĈ}w !DycKK˂ ZZZ9AЈܶmb=h'bbX[[ŋݻw'Ν;n#TUUթS'CCCOOφB̓'OƌSXXHr2L.^|d2xh6,--M5iCtnn\.`W$766(*>>>99booFZXX߿_ ŋ;wã}޽_>D4MW ӦMcnݺ^ (J[[M&Bk׮]v-// !E>}0 [okkSeڅz;;U .ۏ1B"t=; Ù6mL&;v0{6mڣG,//2d?ۿL&[f-['LsE4]QQѧOH] tU744(\vM& =; MUUU֭$|׮]{>Lݭ(0 onn...nkk{ٍ76lͿ릦&;;cǎZ)""B ̝;wto##oY͍UIENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/fig/main.png000066400000000000000000002177361423264401600276560ustar00rootroot00000000000000PNG  IHDR"|܂: pHYs+ IDATxu|Ggw-@BIpw" uy+T)Hk qB^B%К\sB5#.jiR#mVЃׇɜ aUd9bF;F_c2Y8kٷGT.ҥa9rG͕2٧m6wG.ƣ6ᄕ!!f)eT.aoZ7NH7Pz^ց\wmZ/,{gro!+l=24mG<3Bkwssnm3l\qӿ/~}Xr{2dܸEh%o~arD 'Ҙť߽|+9YQBI/E60}{GjK4:ˣk\/ڨlyܖ C~z28~Q{who<":i€F4xxJmw<|v}eHciM\‘kq4E۟_>Uˇ8E"aTЈA?-\=U.zնgdDzƝ}hΟ}' ?,ѐ6xsW–C~| y_8D<Ĭ4ԸpE kj Dsaɤf=/hzy*DT>%V;I .|Zd K5fQjN+)V,J bĔc4$P^lG_c NB6u^fB"i#};z{VV'ƜT&'/߹a2Z=(w0M[ط'~w_눝z5yFR5XPyޱ]Ģy{oز|<u~Ep}Q1蝎,uI@M$R' }jZW_? @2Imb}ΗsfJ)pΐ*ގOŘ fG;mNvkl:'[g]%gLZ˔_Q *8UyEBv2V3![|j^-W71KEgŇbZ<=tAE0-B Lk08ul?~ iz3IwW^|lƉXqbDe h4U&k~yg-XUf% oKnW0 qD<¤WƂǬ6aZe _?|z/ l>;q/|2:dG5i`7|Oןom狆; <\LE 4'O|w^.n[eA6$ }=ܸ:޸?|PlLa^4W굏gҗ ɇW/&"+oXA$JgŁq8| D} dxЮ!kU%Vc 5Tq ^RCXx_/HHLI%ώ~[[7 +7444i9ZL )*TT0bѾÁ%GϛVb|̖_zoMGę:Cۈ'n$EpiOwk.KNqJhXBJ(i7zsׯ3*Si݂fő&Ae)S :8frQPzǓYw޾t##yµGNlD4 KKCyur.(Uje2gїop ύpR=lę9rpW=KInN%EFEۅ;߉Juɡ2a}f1_g4rLB)CTO`tc!fBOOׄH F)//_$,ct!b|kGή{n#K??x5ԗ\:P1~ \+܎ctYFii6~h6fKT 4' #[x{M #ww?= l@ɤI@zaRwvV_/-L'XhAU[v~D ~->/!XJ*?=^I7uvT{qYٹ+j᝔<לw:^j,J*UzP[!.=.փ٨(`!/V 铆 1̬K01;Lj-E`%T lJeMz0ƭw2B`MHsI&vA"Z{lf^ɔ# MYy)1J>bmrU MNm7}Ԭa9IlP2u_?~Z7/i߄ UyXW!zTt{|BH$2M%&! ƓSB'?/ZjѬ-|@ ፶`2^s&#ɋNOfcyFvLG1i!n/'&7{N_rǨc+r$eBNׅ%ܸq+/N2G(keδ͜!noTF}{1@ɂI[B'Tlll@@/ۊKO}P ݣCxJZ|^#ߥ՜gՕ,u$HˁjRT*uj\||ji1112̦_6mjӯ@@\\ĸv8޶Ul97/N3fT[A͵X,>>>r. q@<(JX֬"6F[L3PP(u̪jx}l6fX'T rbj-99BuQD"^oZ(PQ. L&8c\ EB DwEj1T*B3bYRlq#\\\]T727rWT*UTFcրhTTR)Nفj#,lɩGE qBwr2UpW*:>-eu:RTTxM8zBqNáĨڔJJZ&.ߎP͉b{J$ggg@hXƦ88ZZV(=  YRbq^^^h4F"8F(FUM.T*;re20bXәfDY7EQ7KR\.Hp$}@,Y,ӦfN'x(i@ Bݯ P$zd*8oEQF&9bX(J$}zOAb asxB!T ..=B!M`B! Y!B61 !B&0f!B,B!Fw1B!B! Y!B6!|V B!7 !B&0f!B^4D! B! B! B! Y!B6 B!l{B!l{B!l{B!lcB!MECB!,B!B!dx!B&.B5BQ04MBB8cYb Ø0@0KB1 òjwq(㸂444M4]R2,TW ‚!0EY,{R1(H0ݐ ,|P$Q!T4-Oa(q7eY Hjt:Oޥ@'+Ӳw)*R EXE1 P(FckNQ݃ !T8!(,]G$J-K S2,T)BqCr8<lhcH~ҽ\ZnrxT,T"$CdࣄN~0<ztdW}"]<;iկ?([Rb5bLrtg$靛hޢ]"܄ece| Ǟ,T-ndTvw288<,BGzyyp+\Yx(J=(X`Otθ0eLU>#.' V©*zx:A{S-BR!CnU4@o!)ⳀgZ_~ =;V yT>z߿7k&Ϳw`7?:7>QJ16ӿ3&U.Y|{\(J'~J)Yy~w=ԗ{zr4ӗO7fqȒG\Ι.h^E?u)sR]\`jVoeΜ'i"@YF-ƞ9= 9K:z/eӢwGszIsGNS0ԟ!`qph?1ÆR6@NSB3wh !ȷ˚6&ѷ xf׻` @׶0йG! D!F1Ygi㚪O00ʠ~^saΖ]{/Nlӭ %ܳ߶Z|yl/\:C4!H,lċXMa<Ğ_y\AO3s'-}&x)uy ^]sdg.]cb&s"}sw0_^,Fd&ť^{@`fzPbSǎOM6.^3i>?{B'ߒ;͚uy󢅫_wKlK5wu=CpOxil5 'qzP݅IK.ؤz0"f&vl*9g |f;`x(i%*Zt ݺp~ ͉vd>GqTzvݹckۉϷ-=ƧMP+I1 y$؅wg,8(_17c]ocJص`,ƷTv[^M՚ق+% uN~~>ja+n8Wk?~}vXX#˘A ,YZP t ._LV?//m*V6Nr/-{.>_zhWm=.yלצ,))~WXE='q{u]ja! 2_5Ozꇝ˧Z{bPM,=V+9f׾~;3a2% o$xԔΓޘ@Ӎ yKxBjo>>og=v D/|n 9_̝sﯞm{cALzl]qq諉0;Sq2kWZ M**3)2m\vʃҚ:u0oX6z&0Ö:R!h>L ָz4q/vÁ+1+8v$2-VRX*p뙓p|E o/+%WUR'JR.n8`۳̛MM[#̿v[WY5><:d4 ?G8X0Ƹsխvi,HGv~TB]3;}||lkn_WmRxvyySz`t/m3c{{xzMdZG\یi1-T k-{C//h5mC iSZt|+K`Vx34 xѭ!T8@yYfEqc{x?|p|wGWAMqOwi?jlGHαL0qB IDATgɌ${f/}yM͙ۭ_\ubz!5<mח~Q>4lmvXu+}rcw& h'O/{F//2Z1fa"Y?7e]^J@݄tʍY\Nz((Kvz* Q)KiL?.YxD!RX=8ڥݘqj|-|Z 3Rrb՞scXxpZ@m{E7&0Ɲ:r4>_ @$)"J!_]M/|Ej& %~폒>5i8ykE xθl^]*UdЗ+|? -w =D'CW(5VNNR/\ʱuF>SJoDwa63nBX h'7o9oa+< u6̣Nh#ǹ.x0{; ncxͽG~г-,n0T=|܋wSq}xv*ݩԨ[]u`b2)o ce 3CwW0x|.G[W^[>1k"69>ְL\MxאR5ė1U/sk/wX%>'wQ P@ pi)92Bk+&_mgb1ʼn0BD,N$( G5sO:zyF(Fj[o\`kpӆO}߼mܐl%ګ}kguw7ܴ뀦FlR?ɍ+(^>7RеtW0й=|A\26Rq슛`Fl6ת}T,od@iq?L^4Pb$#By<'9~yG7%H CFN}v{=Ya<Dʹ3n|^W|eVDU"5Mb@VWEyq_3<8 Aχ+YYFO[᧭Q > AqEAH~pK, ӇCi>dZqpowHoϧqRast`M瀒JYg}Q'?ŒoaSAvJsPj`УW-_/ƿJV+ <렠o0bAw5mAE* _{~܉!vB^M??|[o(%oޡgޯw&5h @1ewEC?`(hYh~@1%1űMy&~FXS~C;WOzjk*PF-k2gd<08ojS 0 '4$S`H4  4ĕ|o?.[iUX`8T( 9W> h!U߻xǭ6zW.8 ]:ë^k^iSK|.U>`@k [7KɰYh,o%6Rx-wퟯݑ^viA`vrjwO{ M:Sҡ_,I&}joJ?v/|4] W}s7l(KW_^S|~".?#zx*қErRLj1 fCo"Oޔp-{EV̸Ys=?GNh9.Z~NQDUɣz$;sܣџw^ݵ"Gi?K@:]-I_Le&:7ܑ$ת? Dsu[__Ҏlz tSyΉ9?o2_TSݽIUTU2"Jfq 6N}w@iƩ?/I8oP~Udm߫{QNi|ym?v/PtG-u &,@[5Dw:s@ 6^<#9_l{/ƫ.YZO.x_wClA MAI <Ȃj\] 99PSsb[Сsan&~|&sg6L]1(^/fV|ɚf~v?2FYQ]9uy~MWN4"^C>` tO(oɿUՇ˸E)z_+|!0^yr9FyԩY= si7lJjӪE9KYM8S:{i\yjfqM}v7{IoUxsڝߙw9:?}e\G/^z% /Y'԰srkW-y6|gGDzVuwRD^*}ɆÝYf۲/A]vYvڝ!mz]Gק9)Nd{d&W6nr^٭}D-մ_o:oi!w?;*&W+)ʭǜ-YQn9M]q!d܀3`Н`Vإ+uG×jG`y*ʙ1Θ 0 O`'P"o1klQKG`)X4&W_TllדW%OcVwzF+ކ_ZtC99Ü1Ģ=ihl?NeO}nٜ˫+:Y3_}>)OP]YCfb/]zN\UضKA." 3f޿}bL6:**3Úg:x]7GÃC\ϵpPBcGG~X܀̈ ?g舏Fv`2]Y,c\ "Z7 D  \R % ^iZvoVmx =J g¢+0~d̀U`h$t5jBa5"x+M||M^̒GGLO>4'ퟎdruPK?C̵$HBW[!ٲS¤h ;J^Zчkn %kթThtFkzwZYDXlꬒ(2'G5mW]zzlbΉ~)ܥԘfvgK^]YYoER\۵/5hpкyʆ13k%J; vq^1a㢡5x+R+W\En=.<zE =t԰.WgHW4vxŹp׎1 KGKr j%so@ٯMJl+K ^MKLjd-kY l}UT;l b(8q,Z8+oBJaV YO؛@cI[`ǝJ<4V?*l8N7e9PPޚzbX,Vf4HMMPBxRU*1l@2'z֍0c!qCqW;JeY; {ho7,NC`#J|ԃ |@@(s"BeYaưg MD"<Ʋlf9"TrxP(J$BVf8V+/M2jECT'BXF!T;Xu،4MPjZeYV+fK3VOCPuXV#8a/EzQ"fifa]9cY 3`Ik:c, B9,GUL*6̄MSv䫜6EQEQV8BQPPfZY-8&! BHAHJ*j5-8ݑCQEa"a ˜6BH]9_D!GFӔX$Ρŧx!B`B! Y!B61 !B&0f!B,B!B!dB!lcB!M`B! Y!B61 !B&0f!B,B!B!dB!lcB!M`B! Y!B6!J!&B!rX4E@b[ VbB!PJXĕLVĆB!BjzjX!BT& U!^+D!*2 4D! Y!B61 !B&0f!B,B!B!dB!lcB!M`B! Y!B61 !B&0f!B,B!B!dB!lcB!+u]#&.; P.?s#lO5V.LaejiʊaxVe eM=F Ӟ`~]c F؛QʤE1rWlVg!mġc 8+ D8u!V-^R$9ogr.! R븦ZaķG36,te#vųO 4䍉jp ]Z&{֜5U2)Ͻϯy ל4jmD}lydDX\^$ !RʤnF/wcJ'@YnCB|h ygv(BB vyџ0fUAU*˺uhsE`auYLJb/K1V{4ԪnNO{cww|^;m{}3m(Z]Pʤ[0\t޿%pUׅ2!M=\fa޻ZsEV'&ʄ+.'r Q fRZ~{-+>fDH/q:xŮ媓*]LwRS*[¯yK/_RݜX %'JL_p))U lhB֬uy (EH\ʅR2]](-zѶrYԅuBGHx~' -Uw]+GXDWQU+mc}ZsbÃ7)qU6. /-L|lnfiFJT %w@͍ٙQ"FrIF*$#NC.Er2o*S$uK懽׭Zɷg͋N E*Stn^@i IDATV֝icA%bWqIÛ̳&>è8LaeIB :k#Q2YYov3@1xxs-`Ł.G]&Jɥ &!&&5kr/+fb9#5֏yq7#i4Kըzác&3+iPbUAg7л4j+GXZerٷJ[hn V$llɥ߲Ե䕽[~a,%aE_B)׫羦>SZ+h:<ݧtN=zvQة!tX| 4%NՉ{Ed7ȓ=opX}z߃lYSMQL$I$t _{<ʿ]mAg\Oȝ9IuєX%(TE$XUGg:vn= cE=Ma=_uIY3&o/xル̌p֞ #G#G +WҖ{#Ct,*ݸ_ۣc.7jy?_ڴI 2l j{/7{,] ?LdA@‘H)0˪xKLמM!k,3ؿqie1h?Ce#>>~ܹ& ZZZ6oUTTdVu߾}|r%"͛kkkwڵtґx#뻺DQ Pn4Mϙ3';;(Av]UU{XR UUUfJ.eÆ f9;;;;紶vvvFFFDGGSr6mֶ}X|A.\1ܽ{ۣF辑 q @ᨫh4))) È{C&&&VT)))v[ZZQ95 "J3'_7SDNXtid4}.?H7f䮲JÞ};{dq6_FZq r䶒tsgǟc)|'OQ {궽}/|Ң}Xzz' [ eoXݝ)r%iWboNKV5 }{Z%7i :=I+Sdkٖ|,4TɳN p}J~yxj|G{7~S~t[vR" P cN[k|BP[,/iadw]xWR&.]u@ ;R(DQ@EL(X8veP#fΜyȑ?cƌ͛7׻numm$I-af͚kkkSn;;;;;;Oy^áhbccA3 0 EQ#r%''7.---!!Ayeٳg[Ç+a,eee)Skϟ_XXö+{Tcc#Ĝml  X,v`FRT0 s/9kiiIOOqII,999iiiinnnhh(//={Hi8G,(̲X,+V0 303gljjr8}ìx f+qB(99߀NC J]v߯tâG!F3ܞ,8+'n!uTfF tVlчu 2 t<LB3Yx$Rz(]{zh?|C .K Xh­]+Fam7zx֎7o u] I&Dʀ%5li8 #Πת|( e̜6+i@e|2|忿=*w\ON=?~_}}be.G޿9+Bm)W8Uw UTZF vWfAfV3hњ$_ccc{d%IZ0v@XXX#u:^w:9RTqqqf6cͲdB 2KЁ)?EQs9dݭgvEӴ%%%%L&4G,"""0.DEEfYX˲8Y@R,pj=L&Jz=~FQTVV0PVVVCCC}}̙35?XEeGXw7ap8#"..!MӴd2KuA) zzzBfc:iݽcLZgց8R2%gE H*= eI:,U»:{qyH Xm֧ 4u0Ke2Zbǘ "X˒L3 65e܀Ĭ0X]),se&5b+R!]s_o6Vp[OY@Q:k\lDYczwZ#i!1;Ay ʃcGQT{!T*RIEQ*}K)293 RRgڂf) _23 )^Wy!R f JltttH -W=nX,fT<￙Q6M1V@A7e@eh,fSj=EX셋 iђNSdW䅙>*(kźm5!eS .3&<1@N;bCEMB{hb|?W2ᱍ+yS ^ը(,IR5/ mh{lKUyXzT)<q._3 J$Y {8FhNG88N$3fLIIIsssee4]0x<˥$i\.qA%t:@3!Y%IeQlEFFRrVBEј2n՗vmU,O p)Um{ぉN{r{6}L@}W=M1:i{5N4<:fF>qqAbF8jnneY8ym޼mڴi*j׮]jz4P1l*J ꞞѲ,+[^$0L4M7&˲=!ޔ9_ꛓ$vlʦ&F`BhN1Fz 5ni^!N^PP2XNSYfΜa|,yChAqK.=4ܒmGvʶ{J&σb˱L*3JFYFgWoc+MXȸINǑ/oǎʸAq^'>>~ăw}Q2{A`PcdYv8paaaeJhٳLl6ϟ?tWY.KV8q)cB<LYKeN6>TXLfnlt<"o xb{ӜDaѸĶ=*'=,WhcܪL6I?v7ΟTIcraެwQFСt,hSygoa h*+G;DOS{];l.C6JsOKb&ĆS;"&d;띦 Ob@HY555*:O1޷o_YYYFFFddCN'B&22rW(Ik |OOh[Bt{EGG4i$1cƌ{՜1cFWWj/inmme&;;zt`qf)#xWHђ$y< n^pƩx# FժRf9::( ¢3gS!oe8؀cekF4 j*1hPg K"T-)kgwnvFfiH>BK?}Crt'._m [eQs~ip|s}pV˖4qlcL,eN<4j@8܃-pb F]PNHRp㝆ƆkVgvy)]hpq_#cK[æi- 7hbݥ;]Z'U ^qd4zM#'innUiiiiiiFF… B'NP㍟۲Dɉ U3sciqO2$|d)Ű~;e?paJ`Yʕjko;V9wii+OYKc5SGicd&^I/T̂{_Mw=;L T lOD@6JԅNM|< .2$h]j>t%y#_#s|ׯ8.)))77Sneٙ3g*}rrr"""֮][___[[;`y`Ojoo_dYizЍnT*Հy#\Y3nv"BY@׷>h@w 0C; r---EEEw!(ABa4f1jYDJ!M,|Ns@xA(J`T:DT}wSpJ, .L&';5ůR-/EQO`3:q8eĦQ8gCУUl?o~<%gCC@,>Ҕ`>fTtb$Pu֒YQUg+X~S iN]_kHic(BQ@Œ !P,,;wlhhPK,954YʙN%?qڸq(cƌ8qKY|aOd䢣z~,t o821#d IDATyay=U4WG>}O'͊*C,5Q4 ?R(4S,[nRT˗/uW(kP(9BN~8׬Yq\ffyNW-ɲ~Y3221\tᦦbkkkh4*m7Y`` 0tttTTTz/T__.AQ#cW?؁3P:lbeJf<9I Q7nXSSR-[vvpdzyrTWWR5njhnn^oZZک}~=xoبL"(ñsεkݻxߵkWCCkRɓ'Su!eT>ƸQR ?xSn CeY...,J$Y_UsӟtKX?Xw%<]Iw UqRpU3̤z՝.BRKKBʤz!|ref+,,l,FEE)|l6af̘1a„PqܩTXX("B(**J|w}JJJ-w4NbŊA1e%AgUWW޽y^(r)I&8p@Y;`0HqEQ .eʦ.޾eeFQZ`Gbb%K9Tպe$ P6VRj;==}{KttaOQ=;^ݻ%ʂc[~QY6K|O7ݒ ==Eض_-mԼ.ѹ=VMQ/qju"Ǟcޮ1wѫ%|\/viCtPtO;_b[^;y/ˋ"TGft,G"E!Yďp,b(g"lY 'E*  " $ B^;^ k 4&АYA"hs:yew/*" ~*qS\nnitqbh0E.Ii `qc]Ҽ[~c:'= >: Ax ff\/Al:u5]U=ݭ`0UMSi}@xMNNo^j.CndfA>)v9F6@*xkg{T ik׬z{7$|YyYAA!ztlksG͞/((# D}S^aâ+/Zɲ:}5nb^mV9nNY}C, 8B_u{K`OXpW쨵&$T?U~|ϸ>[C5)y?7Uot͛vӧUy7Huw3.: {yYAJ`;= %3̀!֍[,"\cfesTtm/`gO#>^3 ~HEB[;|83ii:rQbݖ퟊n6Ӯ_[3,O&TSA?9l9X+ rʿo)3]5.ŢJ[WP4}kmHoA fA:RUoUv6.ڲjqZ/b'=tgZT;.1!bV_g"8ǐ0 "(cg6e&E1 |3f/]Yg,Z$v՞}f@Ƭ/<1/#6n;eKB89S9" n*mc߮m1 KVL͈O %{hn;dM̘[̐(RXa#F4% bcc8a8>Zh<aRU#T4Y=Q.y,a1$l$ɲL*s X%aֈ`YVj]󄑢LpeYV3̙0qF9|G ˲jY#B$i#ERjf;,  aAAD@0  " HEA$" fAA   "a]"Y6gݿ}گŞ"9{[Tv T(tyYNo̭iíO_f|融>`YN% N^5?}W-<&=wᕿkA|3\S3zݭZ?柗F! ^+w;Y3 κ{t*]g9s]s^t_oJ38l[q]%_̝0nƊ[{w?y|Fop*^溎_΍ף6-T~w?_?v%7c=]~W%!F%*j6o~]:']w#:p)86x%ds.hSdٶ$g1<&^N~IPpus/"V׋n|ۯu3z!RKLMm,gV&4WV'f {65,,Hk=LsG|CLe{}^}7?y a!*Y4Nx|Aot3:<)9PlY_ 3OV}߾Ńedpg/Ys;ٓ, %&Ge.~f{ˋ a{So%rN Ӳ,=GE߮gi ~>O֗?8k~'RGej Bg}x^ 0N3(.8A@iZ` J}{_?K2/ewsh;k [a5N_îuIktc. H.}`XBv0 |Y/?uDm_u[}#Ӄ^Ϫq[,l3V//_+m2\for]s1*F"U:&ocfуh=TG"`QeY% ,Il"~0󠍎098|OmEI&e|XeIƝu5]G[Y䎊 T }vZSҧ=ak,Rn|SDj&?L!2bwy9AEAI(>gc8@SQk剟 f&Ͼy|/LRbki:ƙd @R1J#h >t9]*۰IFcaT|@l65!72'*s "rZz䃕YY<%P|r{lKUyXzT) N4ǵΎHf$I@}^G׏Jg38hS"‚|:D꘼Y*]SVq}zi}DQ ^Psǹ+vV`1sޢ1Ơub _Ό ЄZ1<}^aּ8q-PX˲FH _yy`HRQĄ'>(͛Y(Q*ɝdmɨ1 K̙h2t&_:*2aNW|ށO =m>>l$ђNSdW䅙>ժ'ΓAnskMj@#LnnIM<;MM l' Fgs"# z=r߇P֣=)wI8'FvkYo ~qXI6Ȑ5Ʉ$"T~ a u5{rn3LvݻOۓc7Rr-%cWz,ntL!::q&^`$2%9Gpd-PY]f#RS'OL F}Ss'-+>"&Ƅ*?^YN1*Ȓ A@4y'gC5(~tc ;guXe6NA7nJƞmQӦ&Jv*)ZM}enF ]{GOKT4_ :$3 9gy*V,_ 7ޑOx=<G/"anؿPɞ>{j4mksnSvv3Qi͑6:Xƥu"D8\8FǤ#^a4N?v>=4[RS ) 8TUc<̍^~:J'_<-ÞG{xmÝ6#I̲W/EY*M=qTl 3%?/EGS'MJ{[Kބ{y dɛ5-M2e[r\t /zKdmis}vO/<݁kgUЂf=JIIHMHMˈ5 vUo[y حC./pvRFa#c<|>lqUs׿s޳j)y0cLMSƌɓR#V!2:,''墳D* mҤ Zغ z!uDҸYyZ:4.THGĤY e206%N~Tʘ>1">qr6oo§d%БA z>aʴDzӖj' y>vi>߉N%D46_tܳg>8W17Hfj$sŝ+nFh R`W˱.Yfh[ED*K֌H1]e6>ob/i}߇uv0,Ȍe:m㔬,yq'sO߻S̈P%F6@kz9hF9G0ru4sq;xsǩOI{SЈXCAiRhM2f^1sG6<4+0Pz^v̜?8D#P%-K`&*{BP&~#]̋OCa9M~Vox7 bl2$O+XBljLowiƩ?#4XXN\@`G}Ue7h祝 (|h(qK.`Z*]e>Xo<+ҍ{f BDN^0$ʶq~ϸ{ |@sfeK[hƎ6tѼѬύ)֖9 e7M;%D%e贅 N͓wHi;4B)uƉX!Nʝi(7I[+1e̟2J'F{V~vرo.^2-||çiZ]ٷN`Y*wwe& Sbf [v 2RbCds_E+:"qɤQYY誉]+?cOygM9W-BӡJ8z+|aݡٱi뿻BD/O"PO{[VjH s_6E1:llAߪι䞋-ݳ4{ǿ qxy]6?˻k2]/<6o?.!L"~Ba16㊿\'>ʣ׮K| jݜv黦۳">KM?v\o; S_N9{]<rӷ!l5/}&ܻgwl׫wY!Æ֪w?#Sd =޽|͇&7>UqOUּpO 1+i:Pu/fY۳VLA?U y~I9Ha+?q-muRJ+Qι'❍/'pq»_7\0>DW>a!t!﹋?W_]Z9f⯿e9~6n olʻ/n*1qM뮘AgwW~}*[JY;Ҵp'{%O}u' { [~~aN89bcc8ZMF,]]]ѣ]0Va/Ж6)g/ G[#Vtݍk/]@ϸs D^;=$ 9$ ^khLl%vd/ɸˡ$|K>/xU F ׭nJ(Nu  s F}C}u87ȞOeNbO<~w rĶWUO19eIH ،+̬tP] C¬pyQSYz~ƝԷ6EbFTO0+zEd&ᑿ,_hwH_BqaxzIAHuN@neʻՍ TK\&Dku@}@(x88i@7vf]L+9GAY OW̙3ڝJ=}Wb񺽒 ;\m~ާz; fWO_JwAһ'U9v?ʉn4g 8i8 ZK8AY!3=vU}0/ KOl&O&'̛k>S" 4$ fAA   YAAA,  aAAD@0  " HEA$" h{EQT,XјcDb,D%'Fc=b bERDp\/;T;{|axwݙA`B!df!BY!BiB!A`B!df!BY!BiB!A`B!df!BY!BiB!A`B!df!BY!BiB!A`B!df!B-dRFy4M d#2X0ZVTE uT*e0L& r9t:cdwvPBm?E\6WOEOiDls RG|6i^Bhf.Hpl6Yzf)6]T.H]@vOQ\.4Khp8XRTfE1S_,tEapKQpbEUi,B!4 !B 0B!2LB! ,B!4 !B 0B!2OGv-V(l4F[vD%N}lBy YO41/<ʫ~PZ"kg'0|w+K]EG~2v9$8v-e).Wٻ ɗG]N:ͼZ3^h@}¾ "ٶp]eu1Jyj6 uk* D"Kt3"Ϯ]|\P6toE]uӎ$V12kܡi(rZ(m7_<W 8]qݣ&ٹ:L-:˜-sG- NȌx7ҕ$UZ_;P=ĬxkL) (0r |mM(ߊ쀗{%?Sf:t񳢴/n(9$PLm鿩Fι`=VQ5 VM{7=]+W\_'r7&پ5ADc&28 EfB>iؘ/YO>%5i7O>vmjS:PKvrhϢΥ8t kTf%4/3s(P@1G$<59/~QV5hȦ6_}Z!}umNos7?"yz喴~@g+lю Ըkr~@/}W5 Wi4 p3g7kh!YHytZTfRJz&ڼ6_Ljcfem2ԔrK?.qCeq˴س;V-tL8WSM}GT]-S>=m FS`krcҳm[P@ mׯ}E@T* R&yArOMtԳϦ`g~>LBWT,m,B h)Ѳx\d$H=rfNȲoݢuC?njm'BT-yx} 'I$ͷ4|TJPJ&g  TD|u;/{.q kGF=mo1sG&Gw ƴVR-Ú(`5I>3x6!xHMrAKR2C26`ѳY9"-( "CV\MBARM<<СX.IGrӘLBtէE!-Hw?]i&y7KϺv24ٱ=3LZģjٽK6=hYQ$2u,F FJ~hԄ{_h)c>nl:eY#k&¹G '2.DF-n2þM!7 d9gBLvuDɳ0J\q:J#@⇥~?rgDg+yOmZW98]0oťظL 'cwCLCZ  t:iJӬly~µ{y~Yٌqƻ6iy'׎hAg~;sBIfZ;c*NJа}&}aM;=y7e:vlV)ͪ1ꍛ(wa)!&Eҕ3ws;./y-;o]8sO65TeF?;4o.(Se M?}fogP,M.};ROY6nco42d^wN=2{c7.mˡ,6d:Y mP\[/2k;lvv:mkhӫÍ/-&Y8ߒ ܕί9/5FbYNGP+L((?Ѕ92tl`ur22~-ž#%4ex+{DY4 ` w6pib2M9tEȘ}Meṯڋ9Ti/:n9~Dh Bs|w_clީȣtYw c)`7b. ⨕6-ZSPD~a_61VZ"+Gu$M.wc<:y2 ]|yFYח>8&ɪ{DE[bL߻~/>W.6}1Aʻ[&qhye :}xNZa_c IT?Xt>N4^n~uA\ьgʒ1FWl:N߲4m%vxd}aݸe5 RyK5]v$''+S~!hbQOh;:8Jk?tyyyXZجooɆމZ&;233?!B %!j2*` Z!4P #J< kU# ,- A#SI |@(C\DPhtp甙:\{l{ 1"qOl>^K)h,sg`) 5!T[ kc§חNa^?WIF-SA֔,OUUٜsܞaEuU,UWrl [9Q%[Wm܆sKusgǷYR#_} w?S`5_9U!Qߏ~t<][|*u;Uݙr'9WM徘,ࣽΗ.~z=TWE}p0B!Р{ =(t @ߺWfDj ;F)ycU>vӷ pfm%ijl|X$/;IgVq2ŭݪngMK:S[֒ tʹógP\!A$!d(h44j-!U4LS|,SF %>XzU_=6GbXLL`i5oy-۳CC~WmyǑ%oa-Ygoβa&4$7ЄkmI LBtcvmvd4OnV2b A 3y\R- D|ߞ)^aWKEc4e+L`ts٪') Ҽɉ {5>PXE1lAwrl?]5 4 !jE`WctG4y*A=lj\ˊ@Yh8{32k0g'O#9pZ4|R_C\>|A˞}<&b9wnaZq#љ1}}W>DsS6W>O {Ԫ7s3 .LBVxQTUuřB0MQ,RT9pbX^sB_}jgҡyK[߯͵26ZMl4`_fYUq5[l*:Bսg *\l,4KjfUN(B!}3w=?ɯ9 ս!LJ( X!8gbmn_6i@GCz|5kӹB㇃VY!<3!!KHZ!JkO"vݠ1g +N/X27Rs#qq94r㕋Ӣ9wG!c߭,u"k)xzttZ.Ng;}J64859A!>=uɞiF 0TGi;mw',CdNSD;;ujրYN*_R4JKܻ ψ C ҎUZk#="^U@ )  /tkb0w|C7E*܊lqq,B[O}զv'2DViʪN%k $}44~ݣؼre[V 0/U4L?ߨuw5.~9#slhyڝwE@ky `#eAxm2Gm-3M-wPۋٺ~Qk,HP6eWA졯BBkRWDQ } #OwѤˎg=C=:י]k&Oh1\hZ)uD4*1։II'oGF!-,_ػnuKێۼs'[V5IO/E<WXo DԢӗf5 iV._?Zm+JfU'e _e]^x^qLkrT_ +i`:h;~侸R(u^>'s&0#r[6}Aw y, 8{7;cTV|fl;[*?3eWE{^+7mBZ+\g{p~|{IW+ 1ӥy=K/vpivǏ~y1(^G(Ӣ)t jEHr\zڃʌQ/C;5aҥx5/X|uȥ(z˓F"Iȯm^_̒w2oMo+.?Z~n؅Й1ǯTщt +bssQ]OkG׵|oa{oߕoõī*,WmM"[3r(>'v{pRH䷗w}]xf[b; [{Q*8U|6,s߷.WK:k;y3[r*r~Zǎl ޲W"\z׬Y`>zgO Ҥ F n\Jnݺ ΅ǼmHN_qCYjWAffT2s7=u%)Ypf/t G@0.L̇<ɀN%W*5@3Rݟ8 (3!\&QkYnȞK_UP^:/Nubɏ9} U@eeOz/q@d>d"s`ta$b)ʏyfղJ @g?s-:ҩş jܡio>iע[W땫<͠[zfK0l}º4m ֍,vjYr͗!WEvOv8sa+jõwrIAmRY;FQ YV\̓a"*L}), Ύc'׻UW1Wι] ȟ!RE㵷x^fK,JɎ&Ҕ =857й?e* ΂W$:-_wQ?)0!0!KE[3-&zB3):~\i)|vゲW["RK~fX7\C|9YY j<]bD r pzbolԃ{rڬo(E+yhQ_Ք ,n- xBUIMb̙,EV~egaqY#}\jPGqB}y {+W/_U6v J2oRhlxq3/s3[g+vV̉ 0t #_$)+4d23*阪`4Kh#2X@Nʆ5@1\DeR,\TK26P,H$2dIK^P;X5N ZLY>@)6_X;P˯88Iޥ?nIl\wVkSS><"fԹP6}צD 4 ,U%gf"3@x7 YQo@f*(C)oۧaUliqo,=Gb< ,R?ӡ^\BI }FxۥeJUiXB'+TR/3WT9|(NBmiEbÄ\{`k?6  [Po]?ݤq=;3Ѩ ?Z Z%IL[]],AW hhSeSyFYp{_46 W63|7,Jа]&2W /2;ɿy֦GgRh?Nӷ*-l% lqq?\x =kseVnVLl4Z.i֋·Z{@6'puR zZ _mVX{"yۢ8.ˉRg 7áA3{n<:T D*(sk*t\njac)|u&,6{=@ ^,k2D\!W柚?rstAR/QlfvlϦASw\ۆ~.nS9^ []UcpEFͬrKj(èU'ѩq^vX+Ƽ;t ][r5GGd(.K')ۚ;Ng  bkzCXgO5rs{%ŒǷA\bng#;}*h^]Ҭ̊v\f6015Dc8{̐C) OEs IDATkY.Ȱe(5Wu)7W/q+&yJĪF/ s0.uvjΡY<9ʜm3؞*2,ܧxJ*ւ \@-Sj:VuoĒ=9% d,Q$]9lת'fs)R͍Lec=zv|^@Z(m2_ "{ޑXXUSt1ʫ*8V @lIJ3sqzu ɿw}y_'7YmS!CM|"++'I{vga~C~oZӪ= Эu'7 2} 2 :вGgŽwG9qwg{wk8-rF%tUNewޅ?M59Jcیq kimmdťKEo֭҉IvAa4̹s]e\ȶBm0!.;l[wRfE>(Y'Z.QХ7xC5 J7l垥X){UBxt3M.p lhe8Gg9)6L(z<싋=Ew*XƭfԮ@ 2%`UDCS9 [BRl;^z2j˨%kc l=*@*1y}%pn.kؾgcX(;kL|f,ӽTp|S.n[G9z* f z,vZ:8;~bW]wؘxuChUNM:z1ۢ0c7fUFU+hq̆#EBQV,׶ wHbeiW&܉~&\C5`*mV䲱lguqѠ&;]1/#~>&qr*]>6 ӫwN :x+r^mY~>%qx݄e;X~~>y_5ḿKqo|3c^uSʭX@EAPR + r:/k)?xJU@il#z5{fJhs1mعӊֆ/>/Ic{miW3&Bvv\O̎X1HoϗjOe5aT$û.)Nz&JwFf*Hí?~5D Y4)], N~`p8O'0u#n8 翆9~ʄ?`HuC|s IcWƱL5ïh/,ffi9^Z@Rٚ X\f0.p", ||8jw斔&(k~8eM@bnG^)r -LC̈y_ \q!W.tT__5T?_N5#CѾ$pdiFߣJ:〯ܒEӿ}O^nn.iNkV' ~qr=IZ"~ '~6c ~ZGb?hD|s刾nG[~4/7_)N~ȊaE 48X6eS>:2իePcUҭq)Yk iW$ CgOOT/WC*(+o, `Wh&+vż5vW 'm+s|ĞWSz6C(A!k9ైi]A}:40ŌM|m\9ȓl[S~{]}cǞi_ I+Y|[Ƀ*X/ѵð:mKzԮ`1d ~XKt鷏]L<;k#m`6j &3OG\^%7#Z٧6U.@sn4?xTrrc5rq |hL;CpkB!{^B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! ,B!4 !B 0B!2LB! URTBQm|6tgz?iCEKm ز<;Y{MKi#3lB=͌r<9)96AAAAӦMZnI.5O 0]ln :Ɠu:]vvmmNDKb/JٞMC=+Zeq@TRLϖm}ʆׁo4Qt:J+ Eҕ3wsI:X3UiVM?wO85 i٥m\~ g6:Ζ&m kPwleĞM+OOr&:Z֩U kI)shȕ[';9cB*mߢN̳5@"&*Ţe% "s|#(ӯmFuGCMڞS> t5gJvL_^MנAJ[d qtxkR}%IǷk.AR%{ڰh^3o5+?m7 rl@/!@L82gWKM 9m^Ud\D]gf325mA$⯃.|9jYCZ @˒ϯ6%浂eN>nmCB~q]nۣΝP֫KM:h4v$ۊDŴq~˕CG'DO7Nd뿽0Rg&^W6pߨvn>͞t9,@en<{JB5VM>}vf;B7>=o@Z`W͸g{w `g?M~e/Vϋqz_i s)Uwsδ|ht>RR2fxB:R_5knRuk_ryh ?eE"vLߖ}WJp éb5)Oڅ]vw% B J7_; UAƦ}UȴY)\X 竫SRSAz}i@1ܚLX/ 6-'7DQZNJJ6-3+S+zCNN}}zD7ʇ4)MJ [GPm^Rg91*Keۡ{G(=4X{SqA&UmZN>K򋇧2g r;Tr5!NO6Se9_kK]saȦcy렩d͖vXӺqYEl7O rǤhyQIynmmKD4d4͑l5"1<2)̾0WkK[INP Jn{v!rU4)ĶߐI> 6pL3nr6'okN4!WG8Mk$<~Qfj*_'5æn^kÁl-TRnǵ=e$a[ǿrʏW-}plV-&S-;]yc3:ܴAvyÓFcS/̧[u5xB<[*=gc/+7:%m߮\}n:mi^zk.7$T{gJISɇUGrMj]o,) 1?($x Vp 6 W{C9*1K2Yb?!O:|iSPj Fc #p%]9&#֙9K]v6AfnWҨ??KÎ NmeTz f 1-C<d^euz>I` * oHE=v5㇞r"A xRW5Aڴ@#.2X*G$V=. IDAT_h+kuj@vY"xaSΙqD PgX<&;J !݌^vi`xn$"I0%bf] tz}JJr~ljv0<=!\Рk-p9K4r¨l}|4ouh.H#;clZ{N% ;M/J|~oZ"o9$N:ygM__vK w+nfԫ?X}7ک]T}Ė$2 iZ8Kh=$/I4n[:`8^+CìޠAG' {ş;yWz'WTn:$9PFL[{_s.E;. ڂ9uXhD[p$LҨysFX: | (HM28-ΜJEQƭPJ !xr$ҋ,`0ZSz !LFN ]l$iDG7h6 >S~iNKze~4QO^穷> 2 z=&SZ'v%tЖA\}%d%IM{|/V{M7^88Ne@K 58SJB`Ҕ#cq힡*%/-rYxXJfO(Prl֐IF#kwŨAmڡ;gwzC'],x{sU~Iyy-u[O4pT4˛\ҽ$s#c_p>;a̹t1ϭ eo: SI4ZdF3{dICxOJj jQYQvT ~l1vC0k2A0 2*k=D,}\4Mnu7?cuNYwtvЕ^ޑ=N7c2j PP:6MԻ򯿼8I' im洫8G{ʩ,)\*`-)$)=#]|vNv^~^jZj$I KM;9_&$s<7&,b(j,J#"Q7j=󇴹e4[Mp/l|׼{MN_5А2tvS% J `bԚx_!oᯯ-F],`.`|&OyQׇT xݞ2/ZG%kKc/2oPUYv`K~n;5iKʒ_$2{^}C{2ZdZ/jg+ )?Qiu1kIlN3S3tI[|(m 1kvۮGnnڢtPbr$Iۑ?EĊcqߟxysh]VJ ~(:Ǽ.ؐvn1j7lFJ?~/ ON#j]/CZ~˟wG׿m_EutGO ,Q.Mnr.yȬ{eO֧ɜJ6yqҖel6%;)Uȩo{?=h)?ڇ6O~e٫Yz>؟_joB߷|$<% 2?i\ҰM%%)^:w3?SfhNnbn<'_*m ?x4xhZG$>_@QMef B-Kܼj_ h:y:i^Z&"#8_cy꿎gjD54~5B_m!{q0txi awõ 1 TĦqY`r%%'c evc¼^IMKE PbwW*qL8N&gX\~Is^T#J2֧nyϿtƗ 5@LZ8Qcu nzAgs tϔM- )6R;mv6v8㢁llO?hi*X+2 lf2iV;.,3 tz^rD W\#nl1k4F^HYR~q˞{љ=[zAUQk; &eK4&s&=Lɨ>&K}>x_}᧶0)Fdޯ=R(O>Jk}BlAtS/p2@ g ʙ'L㣖fN@t#bVݱF9|BOʯNm%7m_m9dY\x<bEZԺ8v}0j:6y0輹¯2:S^*8>Z)=33Ob%;ГyI7܉f0cXː aٌ3}֊ Lzpv*CُX@?|@${t2]!܉ss#}u\a(#:}IR@bbBU]-L1MJftW%wy;_q=h*TipNhk4P~AmOK;=U&yo>`?:%l`QܝdPЙ-fcֿx/>[]7C,uY% ,ѤԂ=w'G=3֗_V g+ƬnO'wg{,D<3x,u-8MȘ^4/`QD*Wʊen)b؆s'o {ZnZ{.w5 ko]Kћtj1s à++NzU;(+CǯdΓm~rgիeJE/~;2;,Q,av[QW~H+gu} zX[wq[U-{͡KnhJ`٪wGjںf)3ԉ.̂/?xʍ Ξ+ۮzAwct:pvo{^_}ڲ:칻}}/]B>͂E/Sy?Ph5bw7e:xW/S"-^ʟz7~ԓٖhz1]\RӺ.v5e˟j/~KsLXw[vw%|='~x>݀ .96g@ wrϿ]H<~sް46+w?绋;S]oM}Pә'^|9f{rO?eԼwfV2xb^~a]ny-bΙ^4:::XC,|m#_3#C۬VWdT;OL"4PϿe \>kBWsV=5{W[GS/ɯ}i-wlV7>$sp:v.pl||퇦5'ʗ~_R;<۳}_3Ͽ6ePK!hƴ+vÐk_y 넾Nv͛6+N(Fl0Esfw5plГ4 n)Owl&eKY)YrŊ5[Nkmb!zsc3 :tG0iRMf!B{$?z?u V!68zʜ:Q1PR89*jc?aB#7/?K4pJ_ݡ/w|7!iġK0;ݙH@ 8}N)/ǣ˿k~(9í3,BF9 =Dr76۹烕̓we>qz%#uau/*Wf9Z|m&N"]7VfQNsfo0 !:iLmܽWX3Gf>Q 7ghg]ڃEW>CT=꒹COYz#OXIә8q"==.:TQoȲt::!n7U! ?nL&eO(: ٍfC_'pITұ Qf;(3ܩC)eJX&()$<}Ey]Ȳ,wc}}8!B0eP^c, : Ae8cKB!tc8Ѐ."x5i@c:=v0B!h,V$a!B!PT`B!f!BEY!BQaB!PT`B!f!BEY!BQaB!PT`B!f!BEY!BQaB!PT`B!f!BEY!BQaB!PT`B!f!BEY!BQaB!PT`B!f!BEY!BQaB!PT`B!f!BEw#4IdY@OA9y @@R, @@j##DQ$uBYQϸBr0BI:1<Ɍ A*K}2Jc):a<VYgl<*ӇY:d:  `kVDȲ,ZRJ08*#XT*U_'cuȲ ?KB0 !B(*0B! B!,B0 !B(*0B!ȯ9$¡].IIC0 ?_ԑLf&e7hc0h`k$짨/=TZWWz}bb1SSSc=?`pct_~U0LIINy˜%%%۷oEP^T T:fedfJ)+[,a(ǣGQJY5nt8Q1fs&oTՒ$y^Jjk˲YYP[S+bߕ`2S:A)ݲyK0#9M&S]]}HԴhy^9%x+ ~ISRNV^f Vjlǎ%%%RaZܻw#GΝ1:,˪T*n6ڞBHzzzn !~ƘaiBdj@pTr8$RS/NWW_.mVMkߋUm,Y JiCCCmmmYYP԰0IDAT^?M !xh#M';v6-Jim]r&,fsljtiҲ2p%(a۽|C9+˲[HY"IGFNUڱTY8e_<~w[lU2gIh]42'aB˶8q\,wwQ¬8x<6)ͫb$Iv}s>]Sb;vi 'ZCP\;ZVɄ8EQT6Rr)!D嶍.** 6Im|>q,UV.'ܲe-w.V§ԋ @P@) BSV+|+$I9!QE15%C5(eee0f̘ph,**ZzuYYو#'3|$IMeCPT;#vZX8yG~M)PAJcs `d%OH.VLɲl FCrTy@i{8.11ru3TZb].˲CJi<\ܱ 2hd0IjnPJ}>?D5[|B!éh323DQTU 2^J<6fBфʊ|c2>'aJfyU'$I0ṫ$AYSTTT@AAA<ܱA)Z*f%%%)|Br>qQqF)ݱs,Ǝ $%MJA`;p2-CYmAXy^e,c9a`ۭVknnn@ Z6~ri3r j:m0*%Y\tPK& rQS(s@Xb1|>5CTSS̲aCU==(664ʲD7衵PCIj:m"Dqӏ)& nJ ,+'96?J !@`n[&$$wFcZj74t:zcJ^%dfd(nXaaauuݻ333Ҕ'dYɆ=̜`Ft:E1zW, ĚjHKK^sԡ)V D_v{ju@trq̾l6[ffư'E)s6MJ[UU1Q tm4LSN8X7%6mwX,&pC;tF҉0d۳gQFɴ`Py^$vT§+ 9Τ$ZIF1S<8b0PGrb ǤԋNHk/$IM&Zj;p!,bѓ7r}-YdѣFr8LKK:4viz9^oF8T*NHHRڢ<Oy BȠ-I\WP27gdP$\*gadk>XR%$&Hzl1@m붽{)-˴煫QI1l1nr4bVݾ{ϝzn,Qʜ$%&%*}va| !Ǐyi˖-6mժUbrR,ϧjqA(ʲ\SS1Vfff 'ͱw}LYUUU]]=f̘' e&ᘲ,B!%` *׻PT :N555effƸ@UU ϏqYYd aMFN Xm!r,k6T*UCccRb$I>?|ɘK-rrL.I&l}BL&Ӆ^?M=̜ |bZ C`Dڹ+ %''E[؜f'Dg谓L梴.:ƔfYh4*mFQ=QJf%55y^ñyӖI'fdDk!|'B*÷uz]PCI颴E{̦78iĘQ*"9#~i2mڴ_ϟ_:Β .!D+]|>_j,eYYfs zɱL͓$СC3fZ#=rٓq6L)70 jj4 <MOOo{E'&&:_}5 LU0UUXN$qx/n欙ы\|:N*A hnYs9Q>|>55uX ϜʫʺYB)ٺYС{]R :t۶mWjjjjjjBH^^^RR(Pe@ D)$m !3g;yQ<رcfz=OZZ(`0tm `fs,Z,ݮc9iRSRbӀMF]Tܱ\T8&40&:K$IVM iǡBZvWTòlR4((k֬>s `„ ;wHԑh4yJڱcM2W`E*yW*'&&$&Ƣ6)AvlߡP~^Dz!ӦODDd3'$&&tuOKOÖD aeq®^%HT__4Nꌌ CRR+sc3Z!GRVvήlq2m>v[,FQ֩eYtde0`,Wէ646@,FS\,VU55ʼBhd33Nc,h]-3=-MJNkWk4PQQQUU2|xjMj`0lݺu׮]6i6M&S2qQ̣w|߯Z-B~~ޘ1v 0)\^x fe,!l6::P0`׮ծ^Ϭ,BH8LΉq 8t:VBPmm0Q"edqGq2'68wŲoKt:r_vY锲7'hʜJ) 0\^w]Rdg3 锹,y]Vd'NPJsrrE#G<|nt(g60ZNJJ6}Z\U” O+`I nn2 شisloT]4MD{? ä;vݠ{eEF?9!v\.2.Uҕ:^ivw#D;4|˾kllLLL3،?бRqfOYkglذaf~0[Ga H~dn}|g͝h/l@o~x-L5cL<xlBKOx3=D@|76~K@ڽ?o%\e<`-!\8H !t@^;6rV\3G{?2,͹qo?ju7;r~H5e-%[LRY˗-ug7yf%'Y_!b$Z.\rH mmtӌE7ޛv\6o 8R0; NeԲ$;eMYjp:҇\mQ>Ne8뇶"Nu7`na_֌;p:M>bhY9(RN!::Fݼ@( <#܁, F_RrRHr9Z>nKӞ`aLaauiH୲ Fe6B{!ݵቯ[g|`TΣ_-u{x<6{+hJ[000:4l*]-_t'3.*CG-*{?T-xR{; po^埛͇GZիovl&|b%3KHE}pM6i!{uxmSn|b԰oݱM!5 /[2xpgݺ0qIzrc#_sh`ʿ^-["(OL}꜖80*5$k ^Թ⥏Nɖç%'Y,E2L8̒ٓs[]Y N/+ {>U1kʅB&5ێkn1Ro'o5sxo ى 8s>|/QkgV`uk[x-!W]꼔]+BBgjk2_&qkBnNO!Qsqelf݇g?ûx8?_f-^L^Ԇ6 leY&ouisl?_G֐Pr$ӆ/9Z@m?\;TIJn% @ԉ _=.¢Œ"/{%_y5<KN PB9 OE]^׊DodyF㷰sGiJNnuX}]do⏲%i,H}bgA6:Es_Xª?MXmO/)KN8Ӓ,ԿhL+,ړ>̶rvQ 7WNuy^o k{>1u BqFc]yCְG`uOeC3G%ZkbȽ鮋S'~&%އ :.An7%I&,wbvpA"ttG6i2CΊ\:l' :]L?M,˰gkeT )NWr0gOeB,B,B^Lk$A!?dY>1ؚB!k%Kj!B$'(̢=(BBD,JA !B$II!|AYTH !Bg5YEQX7KgB!P?D)y (RHH !Bg!Ji(awSC{B,˽PJ00,.[BO^:R"-B[$|^aGgf  %rOG=I<!˲,a#Hn 'dJdvO(,qtvaVH+OhxDQ<°, ٌ ep_' *fHT*cCB!P`B!f!BEY!BQaB!PT`B!f!BEY!BQaB!PTpP__@!o?;uzwIENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/fig/repeat.png000066400000000000000000001043541423264401600302010ustar00rootroot00000000000000PNG  IHDR<Ot pHYs+ IDATxu|Wgo\4XB)--lwۮtݷoJݺkqww !\97N I&'wf̙=̙TVV  FQf Gb!\!$` F0B#!DBF!`#h0BH4!$` F0B#!DBF!`#h0BH4 @ݐ3gLlLBlv"_}XKeAgN f<S׮IF'EKsʳ&K~oH'ACݭNn ʹ U~uSiƒzI*ojV3b"9|!Whb6!h`mwCІog+/*+~?3-McǢwkvq2*:dp`}\ LNm{qZ|^W;zR hZDj_OfӛT:hMXo LYyz/C5漹Jh l }F0-9k|_ur{&1S u_x-)UVBM3ӛg4WnؠC*w~v$7^ 84o6"X' vN+'r+< @4Ҵ :o(s-3{iVaj'(㎚FO(FRH0VPR^/`AFz5gƏ UZyl蠧ov_/huLk^s}F>]D?y \}xK4K}ns!T!sП\毿\oM z@n߽_Fa#?01ć&iN;+ПxҒ'x_Ņ9"l8 Pr^}J ߹Xe"W~Xˆ+i8֡jX4urKSz┣!V*S몰H= ;/0ZuLQRA^X]ƃ1tl\v&EpÛNUjrO9qDxJ S6,wZ3*h7n!)ק?oFh1b<~n Q(.+䖫sM2םwZ F3 3(*?Р:xXߞ}s\sgnO[qvJVeYEUiaa){WZ SK~WΉ答#) Zշ7xm0F>= c`~.0go#biI@{'-j_(B)fܔYN/ǹ\aXL*んj2.@F (a gkCdQщ1 duZcʺG`Ƚxf%2V"σ@˴jN)ccr4A>ꦃ\䁍P*z/Z҈ ( KZ0BCb_!DBF!`#h0BH4!$` F0B#!DBF!`#h0BH4!$` F0B#!DBF!`#hJ,0,B?BCQx86q0$5ShyLp}֒9=\eO+i¶v,I=4kWn3Rss1ݿZ]~3f$Fu;;:ڎ`b?%,`V0u{c{uakPI^V|nWP=s9x~ }\ud<)Cb#L? c/doݢ $}ύ9a[<hrҨNے#R<ܜXrw9}BVLdQNGY '@}@1 7^R}jϿdJG>`N=ڝnT^<}3?@e^R~㯏 pS?Sz;B?tZ h5\NxMR|zZv>bFWeƮiI!)'h>mecg Q#|ٵzOy4r 3D* Y-%3Dl0}k֬-D+ I܌Ag>w)C|gN 9g9TMktBmOѲ}lM 뮥f"/LUO_{20]{N<׉+vy rR}@?"C1zO_O;$r 31~Rz F X25>{e_^~fW?nvoxoNxS>3HD(O);mN]T CIU\Z }bjuԈ˾G_*<}Y p^ @zUwH7Tntd7< q޵Y߈t\ֶ2o`=jEhߛZVO_ЮBOi}|wE3:^XPRסիt=E6zkiO;#1c!Tp3!G?XsL!?/&OCa.}hP ?z  TVVhle Rqh6Z?i􇟝-_Jw<ֳ+bd*U L~m*m,a~!cFƖ8u=#*;xUqf57PGaԏq ރFp8:1ZU']8R[l4J/3w-0mҐx_{^bئ0r#nC'"ڎ`eؘ* S4.<Ҽ7rozMIEʬmXncD0puɶ▮?ftrE?uJWKrj%j8\8r }'XJ >uJ!F?Hry|mm8a%\XVnjڮU b1ADFpS].Bb(kq84M7{_;-a/ !<ϋ:- 08C ns\g|%Fp#4M[,F|]tc-)TZ]]V].t-ۅ@ ?Beθj#2bP%HR{vݯNrB:'#%RTi}B]EQE4Ͳlgbi^I/`!DBF!`#h0BH4!$` F0B#!DW5a\.Hhv_?BAp\vn J%#`(awn[,N("t=rN a7RX BJ`s PW!;|1a"{cדH$b7!ԵtM1!XЩwIŹnHJ?'sFk{N.f"}Kݕ,&h{߮u-WJPq沛!:-[lzB+O_w;d:S+9=;ǞO@1;HZP[{]Mj0p{_N0WxdEĨ0 @G5w͊3;W^\%W7m{?" T=# I1&,; ?r燂+?0kVXif:a12gK}s#*e7u /M%lʧX0B]̽|S 7VDF$0os#[۾>& +ٲB @; *.Z[}xK3<@Prڭ N+Y -3&`B]L/n~z͙2^bY7_៶~Yh}Ê7wLbG!u'Wo 3OE ~KlxdpC$}_6`.b}  ϸW^cMOcÇIr.]/qK#`涪CM 3}Up'h?'4u>{)kƅSJLuPϚkM(!`SS'3勿3{Cܩ $ (qi/ώ\VmMG/Vߑ/v%GO^!8 ~#'!2'%a)CbO8{: sU ӭ\E~ھ&%g6;lSg΢4?gu yo4qO<9']σ\`)_lu+=]mgͮ|c*'|㵷Ʃf~63@JRQ/e7ZZ]/ C0v!t8[d;_Z UãZaG=4΢CRX4uŒ/YYy3*~诣{/)5Гu^{Pך ЄaCrxt r|[~V>4RJ2U' ۲112sVc#h kvx/Bf :ON|-6e;RMzWRƔzMə>Kǀ>eՙUkֿy֋NWM[|77T@{.%+2F.hLF k%N3[sƽ_  U[~W-LGu;uVݼggea>'>ٰk5]8aq>Hnlzk"ϟ3Ww=%DޓSQy>WG 8y:*h ")|~%٫gLЙ1MNEBپ+)ûkdz,}#q/ٸU.C19ȏV#vF0qgl|'Q1 v3}DMS IlnthdI?G?7WwJwֳC"} X3Ǫ=oM WoCuthCy?'%s=!ԽwD#Jό$IPJsjR=Oz}Erm6H(`=͈:kEҼ8nSɔP@۳eFW]IO괶!)k'z`YuLhM<ή۲7f{@W1r.@bZAfF ܝ+ |i&\o?ף/LM~uO׼K^oEWV.v#L\,2~A*jٿMdV>xBy [_m?Lz?5p@5|ԩܲz'@cʟ?t4ǝ56>E1zEq:6"׎^x#^ 0]0ke+V_Q)+獠V(,1 ~'wpU;E*W+ rBvpY+NU^0M+v* 3-ʦ-'q|@/˼J'VGlקBB7P.~UriuG޿F*?lnޞ>1)}xG%@ӡ厦/#Bw߆o %βk4]:ĉQYwH!j DJuҬ8o_]T4YHˍCu 6s^ʆ7NybrliòÙ%ڎ4䥗iTor?t&ޚu1&Thq3BAi[k& yIK[?YDz͘1"_(K=Vf,ydL 25hwOF٧jZL2b(C.Vێ&bUIt>zyō@m~45>vdg+<4Ex*5<+.v: cdYFF!tF?ߖ{PfP9/-U]E."̢憗ٯPJ:{;t 8rKiJ+qh읭TnRsȾ{Cն2mBMP2VZN" Eu{S<ܿ`u6]1SE)P/?]jv.Xe6<),ɃzY*үGVEu˲ƋsL_˶/]4i:#Bo61֤,~3$-0$+v 亹wlo'K[tKPЮ5s=7|vtҷ(нcn5gZѓWisO_2#X0uk@_3(K9w Yo+l}WEOS9z {hP%xI{ a;)goZhbÉb z1꽂|hrn( 2D'Z/B]KgqL/w^{)>jkJ02i)!`S`'~^9Yn,ìn5[&쭿.Z- S+b$R-[fylG JN@턳ܹMQ*O_8YX\ўz6EQ/T{4d蘇j Uru [`fA@@]奮犰u`ס8xby?9ϏnRJ맽<? `zٞfnqp?ssh8·Y[>Jz-}]O90XC„M[>߰ubּ !@˕mܬ^?C=Xt=滒[PЦ ܼ"XĚ{ɜ'k>MV`jss+@Ehgq3gL J3\aקfT) -#(\/l@|ܞAM^,I+)b`%ßzn$ڟ֪zgr\0n1eW<*.dGS^^4Eδ3)j2 }|ɓq3 e{k!!ɠtej*eh/TF3(]KoP kgh5 r> Zg » nK0B`& uQyHϱW۳dn~ȄN g̷iJghԶCF<:cz]uwxY\H9W.y 5` x~&iMBuڦQKQrc%b4!REaB!dd!,<[^DqzrIO[2jЄ0Zs"\Y^T\^nB :噤PEOq"ՖXVQO.a& Ntq _AiʶU|W‚!Є47?YZҩݑD]mL4-we=n9bkIسհ='ƣO m؁qbNͰןo"YmXsd5P -=B#WI⼻(ZյCKغM^yQm v'ܳ618s.ٝvfqIE6]xr1"e -*ZCc^#[&e#X%U@h03IpcnFD_ۺ4Kйu#bO-,(⼻ܸ`x_aYr >߶5"WqR%G))VB JasaKyr:pm_s,=p+ur:a ׫#:KMmENV !k1,O/ .Nxja 5a~en>nR''"$vD0[4F|<τ~z^]Xa.}cSa W g3?俺 /_7T_[džO;FDGemVkg(u+o&F0|յciy VʔT+> KAby]{J=b_5nLkM$*ؽ3 =w+ 40 _X-Fg&v]*w'Pq̪`ǟjl$=zԘ#^yٸ;캹w;Di޸RT> !DYH>|j7h聱^,gJ=}R 7,WFo.<}jڳ~cb} KNRkgrm( rnzn8RJŔ,kmA)%& dxblB]@{:AN$~!4դCC%TV`T:|3$Gٔ7k`}MTI—=ȷkSmչUbHxGYf61eրĉK%~4M06n^]XTxQd9lelJ[ֵ}' a/m?8ilquӚ#z+7Q;rh±lC쭫Nfy>˜{hjz򣱚׭c #gMZWdz?A(˸R谺}NMMV]uyŢ!Q _2#X0ZS 3BtPZ6dɐ\?@GRz%{H T|fjDŽt *6J.׷!Uak:\sy^%ō×܀G|h6~Ъ+vorrI„`f^>R88*i^yE{Y4Mh'd9Ye ^:Qچ?}3X(ۚOӕW6Fn^?pm7l9{zXd†=}ʤ+e+Skʻu9kJ02i)!`S; Eյ^VQ6Kb*(z3Wx}* R6QRФ(Rq: ;%1rvLJ򝑃 -&)R.LtuG,#z_YlnB.{h{KaV$KmG+{mņ7m:&,\0{YTV5ilxFI\()`g<=tv`=-%xAVl6R@rʵ+H/- Aʲ5KI$,8aa֖k@|ht8#0#P][OSPx#yoׄEZ+ YU`-,=5JCy?G7Vos1L֫ x{x4CJ^~eR)oh_vK{%}ne?}xE՜Ͳ<'LO[~kI/2i=(Zm3:О&^h=[l`òu =='|P+aq5rq 3N\H&s6:NL3 VW|t䤗DVS@yʜ_+HuN^YhϠޤґ.f<1&+x-& }Pc}rٛ,d{^{0Bw6jβBJ?Nti&f 'S[]ݺB- < ii  oJt4fܗVPזK'^f n k{g]y^NTQ\qeL9CJܪs?xPښu:_z#BeʹR4  ܪ]G.nOx9*/`{l>" IDATrxp+p6|~[{ ࣡gT>'o\\ @z&O'{9F!s s غ^~y!C{.W?ŵ0S9p| f y7o߸i-!$#VyFƄ6Ȼ´;[[_P͊@* ϰY&v'#)_簗RLk[o_Cjc =jS(' ,8 4ACo!ԍPYYYFQf t|TU5u+R}nIऱ:'`/WY`P*-~uZTT7BnZGp:_}} 6#Db =@Am oUi|߬VD"aθ28i_U)' 9Fv֝yN0Ixgj;zCvj~}* :w캞 <":ғJ8w1;C#"F KN]jgN?Ö4Ud=Q*s}{@K/vි :I~:-]i8}z a<=uO4mǺc^]48=s*YWL~|˿#[IjF,v>ō)?zBdm[.}?/rn3tV",e-N( P`Ϝ>"yT/Ӽ4сG_C)IOOAq+⑄ΝlSUʚUd~yz:liw{:nMbm5ˣ>Xpmqs Q'kDa [BxB&i+* q$LT*EA៟z}|6kDIRȱ5#XP.8)iZ߮lwv+?/X5@s#:Ro;~CU̎㪬מ_O/eyzqc˅Բ"l#Λ8|jY%R/?(5r)kNTW(ܽ9/xMKs{RɅ?.좼xSCuka^ls!=Ɔ۹98ON|_|1Tȗ>?|6[~F]j85ލ4oݔF21\=no ؐSx AzĐ̥F['Rޥ˗n. H]+v!2vAY36xR]2L)0޸y# hPCٽ sak|Q֕a~9u@wdMU Q8&Vop1mɼ>_k>7a>_+JTƏqA$|O.ӓ\}y`_"ר+~ՖeoW>VeD룫=|rn]l]Yɰw媽nM(hOݵp2lP֙@vJ"PKsgiV[? |'jP?fr榗Y/JT(էX_7-y#CGctnBs>|G:y#tC+ڰ~Kן6959Ul` #)Xn;YL̉qs.P" wD(jڿlOc jX>܄UJb39R˂ڧ#FbjE75f&S :}kn QGVlںq!f|lTKyسZwC6^R3&ƫ8I[̖G'97s ~|iRЬ u1ÔvDG'z}?/ ] vlmzשfFoĊ̬TZ`RIaj'S<#c=O=OÃ3e^KW̨ጪEͪ6$w2ZJNfDT3R~ j+8woGrN"X{b{}1}wS3T$fB_yo>ijθ'cC.(>縏qpP&r(c2wEwrQ$ܸC_.y`}t0uZ,^׆!<.(L66 פ˺ |N>}?wĚ"Q3ctPPkp٤tOTF֟e(rI>jޜP ֽ۠'=t}_x=O6TgvԢ*,-0W1 ?'o֖ :=ǎ[.`Բh𒗣oWHLdfz! ۚw5UmPe2q]k+ܯg̜u!4 G6bw_ذ13Gh#5ȂO}k\]3)s ԁqfT>1gtiSk}Q:EQrͥMsUnX=mڔrR3hx߆,ز2ias6 gT$`Y['?3ĎTQ8;/1&*U_d2egg՜!-UD0jN:.'IlFuqqq&@$Ijik ˪0 f7$X% d2إPL'+sfR*]IH)u$~sj0+T]{꩙lQQ4LB|pop%7%SRFRwzwS䎻ܸ__ /B̝eT#R gd=f.|zOϸ 顜>ۣ21ZCk26e[P| Gǟ3G޸Ύ-XpdM9rʆ?> >(Qp; Qj2x1`hծ6`^q~7IOHoKEZKZD3h=R6E| W/Z &rN:_*ԭ}Enzrļw;=C՗WkסW*>^oV}qe),JҲ/_M]d/6o~a8YyOۙq2q-RQV-җ'_"l#୆̦%/[j?wV)'{@|(bo)҈C-VdtBt?Eqي K,$Qy '^λvHeuS [p@sGW.10\( t<\ iKGW<$~{.{zV4g&=jQ)ʑk,]Wg ¯5οthsE֭D9xؼ,#]dj뀗@gQ+YfL׺-]2ي-F5` VkaQUN(w;fk}%?=>~{xXCaXe +k l=pJЇ#u^=Vazۖ`4Rdnpp35Ӫ7IASޯ<Ս͐ioM d@dZaoQ|ڵr̜11^mN[s3 RF@)W&OYZsnUn9ANIY"U:7oNEM"\E*O䕔J@l?g-m*7'Sןc}SsլL>KE'ׯ_q,2/AO%JoilHeA}*W_̜v̡~ʲ.#Wh5jDOz{bvJ 4YS\\lXӎ<]o^ؽHzʱ4n#71~,H/~0 q@͟TwoLy=}6ߠQOqvlB9̴f]5Σ5^.Z5 5Z`xtni-d IDAT,1xPۭ%>i1.}8hK]|a} ӯ@6PGRSS Cc}7 ^5dOھ1:>YG,~gAj3 vbBsfHaQXʵ=}ܝUB5#ShJ}y{vծͽUO9:eA =Z]z!U:ƒ7Z"5BF#ؘ??7_e C4}9S՟~=} t!tܭF/,U|p\+JҲ/_M]d/?{G 8'}O \ڲ%6(J + [zS6rґwS4E?%NV{OEKk?oV$j?;]~.W;y@]GP+{?lէߔ(VlNHL]dAPgm`U/opL z7D[E^ Vlxmv^ksE~1q03}~5:f$1/%(~j̚a-WW V&8g~7j-?lTM~~_\T2\[ :=kn8}JG7;Zolُuh ^hC+t6($Hy}巿Eɑ.jn6U?# ղ];{J'PDsm1;.[<ٞz6`ăxrp:Mr;qgKK+m|cnkZg6yo݅K/[e3C1Qh\Sׁ>4=qUc_Wќc%\gj8n fPue4Kͪꂽ nrAh?VIMx{|sӸh> ۠s8_6 o>XbPEƸ$RgN{"6}n^0Rm1p AsJ&׭]bu:w?!#gVy#+L'Fytnix}ٙbA%/s\N<tZP~*S˳fg^?j0:-].SIL*S(}[*I0L/D)L&R2MrMť)sؑՕPPp]6 Z1 }Cgv d2\.(Z1Rm=8S.ERJAVc;ZAR5dBLj8#(Jgm 1wp˴XyZNTNPr̺Mon8jQcd2Ye}߮s$(bQj,j8k#=7'$]cRJˎI9L>pwx]]!]'uy{{*:ĉ`2U7ǐK״Lxb_Æo;E)wѵ%g ir9@4k~(6>⥸oeΈiH}ke.Ԥ\poWYDeݓlMWWgfЈ NLc'RdNo0j!%|] -7lvYvK'mի]*H̬4}LXvSn8sOIUͻ&uy4ֻ7N}sվ?_Y' %Ty?ߞ0УH܅^ZPxpU_};|ͪPvr /7^Xg>z OḲ%iي͗.].R~rJ2 v^Y<ǣ54(YM=F=smbϧb}o d(P*ZøMcYiF GJ`]=hqRӴ]u47On"D ?}<ĄzS6rґ!4 5'el\hnU4$*kishBt?Eqي K,rQ}A!u)(pxX/G+Ar}M9717dϐ廭TB8)Fpk"'iߺ)׍ec117{h11o蘗(k.˸D>bV0-x?rS6/?ٮw:@K|O3ݑa!~mqnr \{muNaJ6v<:%\K@LDܽGDVtXlE?eԈ`B2n^==%ܗkԕGi㗽_XXM@?' [e. .~έy˄G5m7_MZ=߾s1v/$Hy}巿EɑN-񲪙kZA)s;` O %!5jxؘUZ̬Bi?[Ϭų{n8KؚRlۿSjbY/\\>js:GRdwa.VQ5ļ-*6=A1OzS:߉Dwm(j)a!~K_b'f;7yy}Qt*̬͵5h}ox L@IW2@S3WRxEO::L|KC=jD_gADž|<]'l99bƛX)m/˗kt: 5>u^!x{WDK ^ /;=?K"D&)ܺ2CUVB OہGwf֐sgXrb́=+<"c&~Y3ncn} 9#]`dŹR~vxuw!@\u$RF0~3@4HLʹxũ13"^9_scGO:bY ;>)STmhOk*{U'̀dL>rpξF Q)T:U-vm3gLWkkM,K7j/NlgՁ]tڠ>F~n ab|.^1mkLIC9[v035'|scH[h?o)n`ZlH>dڵաѱ1B>'w| sNv$9iQ!4 2'ߗwPO7?r'#_ڈFvQ^8ǵ;{90XU/5g\ 1^~L `A-A*>nݺϕ>>Koj/mvnF55Ύ_2/gC $g+&n>}!GqѪ=|<= Aq͘K_撁oo}C;7'w<2Tp躭Ӕ(y {`B骝+4wrd ^su H ޶tu>-_pk#Ϗz 33qh]A1CFw3(+3)%FVVOpa׎yIl6bgw!a8VFbri拁6 JbZn`׉aK"tDQ4L&A- Bi0Bi0Bijk.8!ԬZgՌ`5{:<! `GB9MٔѢHpvaBYDu8ť#BT+Z4!q`GB9 F0B9 F0B9 F0B9 F0B9 F0B9 F0B9M3q˲9;Y;,ADQlI)UvC{@gb"%d[%x&ieg5zU*!eYǿ{H$$I-:T5cH"P 45tldfgZq,e2/bF&rLF)jMZCI\.7ΆlOQL, a'ߞxl]j J5}GJAV7Q;Z6*J=M\C;P ^s&Dg589#P(v;qNN)UlOQE)SM/츈,!z8*IkT4 e8ۿ>`~I<ף# ިcr\٥*o P@Sy&_k0Qczkb)b5&׊֎0ĕQ㵆 ڌ-oQ(M k}u0[{I^ݩp(pM FvHak4(]~*#VϔYqz|_?[FsQ]=*wg=0[PG;# 0'~)ɠsߧ sʮrD(X}lFpA>j»zZ_nIDATLgQvΊ藦AJ?qL1މ(ܻ4PRushZtWpW ł=V(|X^EU_ܜ yc=J%($g@- zsw 0^gϮO F!@SzkC*Ů=gO! kwvVp;ğU;7iMѰM§yȀV({} =>˻@dg[_&2ν>-M8䀱NĊA.} f/tj&~?r(\/jZjWH}ܫQ?cwbhu8Ӛ)wD-ו;+3Af)Mlwܧ(ou,k2Bb+3z H0cT!8i~>|2Gg}+degbIFxo# *xft(\8 UPp [!p ? ?@)[[}VpCm&}NY0}\nJr-(HUk3Cp7 b(QaK*!f(@2@D$Wp\ ܲi#B7dS"hsMwƖzx?u18qmKh ]z6@mz|:mrk"t0 8t#7̅ bm_N=Uݧ=rsݷ_%/=<9CJ$D >ʦ*M Z ðlGnޡFjurYVǠb?#XEJ(¨}V3 S=$5M ЙaMvجBAc,ݳX, 8C`H͠; g黺50htqq1 ¨Q- 0ygyWfji3)-jDct =3F򷩉9XVFqSEӾj[$I$ Bii\~h)1>ؒJ 1@/(, 6"x'@9EElvRڿ5lb4y<3gn$ix+%Cٚ6c$I HԑqG#Bq98*LmS3*0 ;k,jy=BF0B9 F0B9 F0B9 F0B9 F0B9 F0B9 F0B9 F0B9 ....BuD'm:&IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_CN/fig/type.png000066400000000000000000000503421423264401600276770ustar00rootroot00000000000000PNG  IHDRj pHYs+ IDATxw`e岚4]tR{l (.+(* l)2h--?BKw 4mBL.`sͳIJJ"p? " kj@JNNf4BBpSn !M!)7BBpSn!!@*;+l(D[~XT$KRYk1@Tc!tp] ˒(BZP٣A ֋)lX؁&M2\ 1&@}j:rDӡ*2F?|(g3 `®[^۫* 99Z&ܼ$Iِ:5@HHp&.XlO_nkok;ko aOz?7志~^HeY>6\ h&"R龃2}ʘCϩ3箳|$o>=iق`#"Vgb  C@!$gA%4~evQ QI*P iHDS҈hЁ̺'B3L u\猀 ,{R:1 =V4G^:]@Pem  "_@"$i˶oq\oeY?4; P9an%"bpęaմfCK@}T;Ar@Ä!`nٹAl rhX-#?4hs I3>;lt///FrrA ϛ?ebIa} e9//l6{{{7ȡ4L>zRe8~*.EV#B`6srr<==<4\`׾m$sRZTdKe{VY10//eY^T*pV!Wվ*r~~ AAA 4j5pJU{jZU*Upp0:A#]J%JC BBpSn !M!)7B Y,\1ڜHT,8J[?:ԩPC{-W铛IGr qhI_7| _TLASz龋D ҅Šh6Z+S`+U`cjאNMT}e!"Z^MU$F#8N&""@1btpY V6[`oB6x49"̵\+?4AzܶyeQ\ !",jCnHצ>],!@G ;ip1 LDTM̥wr[.bFHwCC YٽCWPqw<}Q1PtK%`Կ%3Τw0K/qy$z}5P⊭Aqɑ(J VITҪ=0Gߍʯf6~]܀\xϟ3}GO_q Jk¦_:+o8VN6NeȳbqBJjԇvx6:_!"9kF1f́CJ0 0vˇ-E0)Odi iѱsVD7t~}U^vb+%o|jk{K%s_K)]yw̢=1m˿U{lJa* J {៕5+uO7.(FJy{/᧷\xlɫVR[b>uu? ?cғoߔ뽓t~k*^8b΅ӧ=9BhN`X DB@bkXnT!A&<5ʚ{X}Qj<z{j-iK귤\)>Wj8ZB3US:1%\/]dǷUfsA=F .>Ek^Yp'Kpv 3ӗ Khf5%c)c3QQgwB|6$^!?=ړvteYI͏W#9'.j>ђ{6 cIwv#)6'9.M] )(<ϕoЗr.3+I6EMlG6 mvƼܳFɞpm1mE' `L8Gsh ܰY=ӑtela@sb*Ădʥ].:uurC_K?̷ډ5wԇ5 ӅnušwuZ(ia@aHg.>\-?x0L07hU߿-/-99 Un;{~Y;c]K!/ׂGzA!^:m4jTWmK;?[_+eĚ)npl䇵{wmǯp`:G^aJi; |;4|SAg%ʓ58z\qx!fo2~fT3Ȗ'g-?16߹uH,E ZlF^P捿sG}rĠ][z.!g-uؒnck|V ْ/<0O~}BҚ+M_QßmHDޓߚ?RAzt{w]~Jaw(7 ?@$%%U^x >,KM/T(X.xE)crΟM5ۄy-XXآUԋ%B}+O$QEIJE1+ZgGET>-߮ umԸӫDa!F!BBpSn !M:x@ͽJ ,R[://=M-G1e+<>4vkғ%"ƬbB!KM7MZ85yO^SKOtȑI>#ysWXwl)}|J͝u{5/)%$l:rtGRVɒ 0>؛>{!Hf;^""UQoMmSq4LX[' nUi/wuW_J[꼣Wޫ ~ϳq|!DD$~ex1t{q.Wޡ~WO{+wiZLpCq!JW!a.=}plٻM}=vF"":ӟq}/."ԩ$7R5%W2Z$snfvB.+Zⳛd""ٔHDxF{m=9"">}?L{LDUDD45#_)DҶ/$FDb[ʖ=]n&""b<""H=ߎ*G5zWM=miRI L?t 3:,g4R^jl,[c6|қGW[1U~E&5#۴~Y-Μ{CҹO?}>}C'|H=jsؼSCZ7YENNHNqұ U\y\r,I֎,~[ŝ_};Vg‹w h!%)5<+ˌ.t/oV ~~6'fgSҕ)oaSeg 0Oܰ"h?Kl:pD _JY"9[J >E㈈dhڗ`ԡ7QM .{ ~n e\=o~<ʐ1 "prP'1CLrK&IVlLnczz$I2R!d^J$"Ν+Rg%&fcMڣ9o1==Gߚr"bzχ4WrN?? y3wqӓϬHO~nH5O^_Η)t FNŗ_40a .?T{zCnP۾׶?e.oVZmw kgKƓ ^]p(wg^xEgY+9ۿXt/g/x{ )BycWt` 8x|sV{Ba׈=0n+~!@[J Dc/0esU ܁S: &e)mO~X(3ˉX>8{ǝ-?&n%19?}GkۮO~#oVFK媔 "Þ쥉!HpjdV:T/(xѢ-[Yp@^bŀazko4W0țؘNh|>nx}$%%5u5%Y,URJTƬ Tuzz:~)7Tp6h4XVIdY&"aXU*j`0(wiFp8YFcnn.q (J/I(qncH}'2~%'#P{/-iMR-V=`{Op,ggggggT*R|@D,Pɫ|ϗV:p[.>_huOo3#$"*:{{1Kg?"WT&5we{j{tc3_/ ""јAD_Yj<{yyղgY lg?SR\#;ClM\w |1xoOiߌ?Gl =5MM6\o`[{*$"6w9`|k\[y 3ޭ;u8wXT 21 rzܰwvY עKp֊5Hŷ۔o9O̓KyɧTwn`:(I|W9ꁧ]5ڿރ{kk/rg(Q~Jk"X71eۍ7%CG::lI5e&\d:SJ.=n;|kZ>v/}}k1?6aaX$I!gY9rwH[~eJ|P6r`Ӭ xV'N=? UKUڤ Ի{*m){;l "yBW "!HB͠ѣ"1J}>XE&/X呈Ǟ1O(KDl9Jr潾֞M'?A}M~(fܵ',ۇ]92Je2ހ(jZU Bb`^hڵ""<ϪuЦ+Tu'Z~*yQ|Cf;[K6rЪSǞ Ţ(r\}EQeY;bv7}UËf0^-]ՊDD՘ruPxno3tO_,y=zm"SSJvEv Wd0_ =Fn T^MCKJJ@Bgƅ7g՟B1>~„1D&~c֘|ڶCF^!K65W,3|#z}7fϿ[Yi߇?@e===m6[aaZ=@Œ^y K ]-pR =:ڣjxR00ꀎJO_~t@M}tQ=ƌRٺ}Th'_WAgv>16.13[-ҦS;@mjB(((E-U$I${u:Zn1IIIaaap$X,^RpC] ,KIIIqqjl!ay^TzxxYG7z+ scrGݵDkR@kRmٟX7Rj`C;x9%1?ʲ=Fd2=8%Cua!ƃSZ&[ϐ.!Bڹs;u]Oo^(vw善N9y2ׇa=.!\ tW~*gҭVkZ9xE+Y0Ɯ!rd99uxIDEh0dk5eU+*#{$ ݻ.[r.ykwtFoz`4N|a/ZN|eJ HɷG-z +8N6hBY1&DY Zk DDĪWF p!ykTBUQڄ:.bQZE;(h(JZmI}ZEdE;Bqz~֓_vcEȣ=;.]w]EʅcڿZP͓q[_|1|/ŠMG.5hٗo -p% O߭V)=kߓ=DYS@ݿ%@xC~뚛:l3OX-?+8_oIpWb2a9Σ|/@ 8\{0޾ύm`hV겂 EiWAҲYIILD$egecڅczks4 p% =r>;s*4kZkG6'eqFy1D$a-j׮B̰%nYZ:e̴[;brt9>]U0D<>N 1X bc.qϤN^u,("=6߰j߷>'\~?K.!RW.䈒)\ LMzr.~-fJ8 DOWE/oh6`Xӱ|W2y/L c=#+6YӲ6")+"e%_( b<i".!\ Qv[\di^R*@o:SysWs9;sk.}KMDG;;.',p%Z; ( i4;lݸϠ{=K핷Q:@L;@cfJxPh-Õ x3![ځ{c?.`0L^@[x0DRޥrMY e]t@û*z^MOOGkׄ!NlZEQ$"JFiqA!xavB'0Xn2ǝg(qܹ\p"uwnD'0 r@yǡ;܅B@˲ l NypYX'B8NEId70aXuh/@pR 8 BBpSn !M!)7র"8)Yl0!, fԵh@(rNG$QAp!l6INA$NDE B'P΍DP΍D0*t@:A0LeS 9y^bW2ˍRw-{z3[xylY;31\BIr^u@UhZ%ñ00 *J]z /%Z_UZC.<x\E&8||;\h\#`^N*X.~wmʼnIK hǣVzy)Hw΢ix"S:coԕ* :OFׁDE,T>u}'utdFL/ ` ҥ|v3:X\pZO75}]<~/d204|7 +j}4( ˢYAԲ;Sd_맦uH99v*5L cZaѠ5\BuALָX E~-uALѼL$ݺq!Zƒ})>; } #o_4{~mx .`0LRj.Pؖe|-oP%uo}ͨDkK?Yq4Y xPܪBƥK |e%\ ˲ͼ} v=ixN`XdI-6,Suwo74%ڂ{!C,Qw?㶄֭+z ~gjX"/\dG&Y5ﵕ!۟;tMdh6- Gp1~ƙ|(8ť񅅅ug>xތ'(^&lۓ qĒb79'9fg/VhO ӷG#>qj۾G=S/]qnh Wbٌ yy;3=9}{j8ML=s̸5$ȾunX]1y.y^:8^JFba_v…?9w9mW[lRZqVeClmЅhZ +19U6bT*gWONcg}pI'Ok,EW6ӞlsM@7.X~Ġ:NMYlnjr崉 hj3:gCrkdܰ`f_ߑ2~y_ԝ}1q/=~눖<9Gz@h :e `AלHdxCQlDD(DDIE;ZHQ#M%j>y:Cms<u[M#bWStˣk"ͭg:d8"0Zɕ&'??♹kArbԪYéQ="xcwZxi_l61-#{:"xݦD4fd]CW²G%eISdI>Md[L^Ӄv",%i_~JtDuWB񐋋DgXp\Lz@[ę,udfhh +17+JJ,wN:"JfYVDqs>p%JRP->!@m^*>%3l?]9I(}APv{KAsPiX2\yl5w~364;;z_$p=:M&"_5/ TS/?}=vO}? BF{s@ )k l-azͨZwkch;WJftAmCKE-Pnڑ?vG, UlvI9˩pMࠒ=gp2fѬl ױP1WuG԰Wo+~g:6η}ٱ-oh˞D K+YfW90ޥ?.<~y>qz 4};1,bmxmZ J4yz$fvh~m6&))),,i+.bR={+IIIn]\#SŨxFa4(ɒ ,gݑ޾.r?\sR6sҶu_W8-Q.5#CS\b:>ZmgPS+TCiK6W@if(l.g#C$sxmmmMq36ֺ:l6n|CTi-ˊFCHYU]]]Q"@(""@("⍁(RAx>  0 4C=5`/"u] = (ygf89 P\\}У}}"Ed"XGEn"PD(_xs#"F/@i@ {Pd2)4MӶX,fv%@I}?JL]g+>m7' ` @qgwkEYXM(PJ)vݟX묨NcI@}wYUZ2Ubeή1 (1TJZ7:UR)d2y/d^suaexٵWռ@O,d+ *D8Ko,>XUʪZ3^[n XN\i'?uq2Vnk>|_n[t9UTC RdLGE,{֪"23FN4L1aA`?/0p"PJ1뢉](#.toVǢ[_ܵ?̓w /apgn]}ş&\w>z{onZ ]i5_|ǚo]j%WRޮGV找q}DcwݒSJo=LӼ+^?l ^I^uyۙomIԽv/M`Jޏfw5~Juj2J+RƤs.iacVC?nf}g7FRMwq&x?S6qSRAχ}nI34jIGbf`{~eU`ԛfK)mw0w=΁/VJ)eԌMDRJٱxߟ 7]g8e-0{9sJFt̅ eWmF/8' ȾT62:WvJNqCTA՞VPzlSېoJ/e::Q~կ(a"%0d2[gr9RiF#r`$0۶yE輇<͍D›sQDF&@Z0il@ ˲ ðcEѱm0M3짠yOeYiz~@8h u`"EJk""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@(""@("CNDB~坊B;Etyl`\eS }u^F D ![notes](../common/notes.svg)說明:系統默認一週首日為星期一,您可以在 **控制中心 > 日期與時刻 > 格式設置** 中調整一週首日的設置,更改週日期的展現效果。
視圖 說明
顯示全年的月份、天數。
顯示節日訊息、日程安排。
顯示這一週每天的日程安排。
顯示節日訊息、詳細的日程安排和黃曆。
### 新建日程 1. 通過以下方法之一新建日程。 - 在日曆界面,單擊菜單欄上的添加按鈕 ![plus](../common/add.svg)。 - 在月、周或日視圖中,雙擊日期空白處或單擊鼠標右鍵選擇 **新建日程**。 - 在月、周或日視圖中,單擊鼠標拖拽新建日程。 2. 彈出「新建日程」窗口,設置日程類型、內容、時間、提醒等訊息。 ![pic](fig/create.png)
參數 說明
類型 系統默認提供「工作」、「生活」、「其他」三種日程類型,您也可以自定義日程類型。
  1. 在類型下拉列表中,選擇 新增日程類型
  2. 類型框呈可編輯狀態,輸入類型名稱,設置顏色。
您也可以通過主菜單中的管理功能新增、編輯或刪除日程類型,具體操作步驟請參考「管理」章節。
內容 日程的描述訊息。
日程時間 設置全天或非全天、公曆或農曆日程的日期和時間。
  • 全天
    • 勾選全天:開始時間和結束時間只能設置日期。
    • 取消勾選全天:開始時間和結束時間既能設置日期、也能設置小時和分鐘。
  • 時間
    • 公曆:開始時間和結束時間僅顯示公曆日期。
    • 農曆:開始時間和結束時間顯示公曆和農曆日期。
提醒 勾選全天,則提醒設置的選項包含:永不、日程發生當天(上午9點)、1天前、 2天前或1週前。
取消勾選全天,則提醒設置的選項包含:永不、日程開始時、15分鐘前、30分鐘前、1小時前、1天前、 2天前或1週前。
重複 選擇公曆日程,則重複設置的選項包含:永不、每天、工作日、每週、每月或每年。
選擇農曆日程,則重複設置的選項包含:永不、每月或每年。
結束重複 只有設置了重複功能,結束重複 才會出現。結束重複的選項包含:永不、於n次後或於日期。
3. 單擊 **保存**,創建日程。日程創建完成後,會以標籤形式呈現在日曆視圖中。 ### 編輯日程 1. 在月、周或日視圖中,雙擊或右鍵單擊日程標籤。 2. 選擇 **編輯**。 3. 彈出「編輯日程」窗口,設置編輯日程的相關屬性,單擊 **保存**。 4. 如果設置了全天或重複,則彈出提示框,確認提示訊息後,完成日程編輯。 > ![notes](../common/notes.svg) 說明:已創建的日程可以通過拖拽日程標籤來修改日程的開始時間和結束時間。 編輯日程時,系統會根據所更改內容的不同顯示不同的提示訊息。提示訊息中按鈕說明如下表。
按鈕 說明
全部日程 修改所有與此相關的重複日程。
僅此日程 只修改當前日程。
所有將來日程 修改選中日期及以後日期的日程,選中的日期之前的日程仍然保留。
全部更改 修改所有重複日程。
### 設置全天或多天日程 在創建或編輯日程時,設置 **開始時間**、**結束時間**,可以設置全天或多天持續的日程。 ### 設置重複日程 1. 在創建或編輯日程時,在 **重複** 的下拉列表中選擇重複提醒日程的週期,例如,每月。 2. 在 **結束重複** 的下拉列表中設置結束重複的次數或停止日期。 ![pic](fig/repeat.png) ### 搜索日程 1. 在日曆界面頂部搜索框中,單擊 ![search](../common/search.svg),輸入關鍵字。 2. 按下鍵盤上的 **Enter** 鍵進行搜索。 3. 在搜索框中單擊 ![0|close](../common/close_icon.svg) 或刪除輸入的訊息,清除當前輸入的關鍵字或取消搜索。 ### 查看日程 在月、周或日視圖中,雙擊日程標籤,彈出「我的日程」窗口,此時既可以查看日程,也可以 [編輯日程](#編輯日程) 或 [刪除日程](#刪除日程)。 ### 查看日程提醒詳情 當系統發出通知後,單擊通知提示框,查看日程詳情。 日程提醒時,提示訊息按鈕說明如下表。
按鈕 說明
稍後提醒 提醒設置為當天,首次提醒後,單擊 稍後提醒,10分鐘後再次提醒,此後每次單擊「稍後提醒」增加5分鐘的時間間隔。
您也可以在「稍後提醒」下拉列表中,選擇15分鐘後、1小時後、4小時後或明天。
明天提醒 當提醒設置為1天前或2天前時,出現該按鈕。
提前1天提醒 當提醒設置為1週前時,出現該按鈕。
關閉 關閉提示訊息。
### 刪除日程 1. 在月、周或日視圖中,雙擊或右鍵單擊日程標籤。 2. 選擇 **刪除**。 3. 彈出「您正在刪除日程」提示框,單擊 **刪除**,刪除該日程。 刪除日程時,重複與非重複日程提示訊息中的按鈕說明如下表。
按鈕 說明
刪除日程 刪除非重複日程。
全部刪除 刪除所有重複日程。
僅刪除此日程 針對重複日程,僅刪除當前所選的日程。
刪除所有將來日程 針對重複日程,刪除當前選中日期及以後日期的日程,選中的日期之前的日程仍然保留。
## 主菜單 在主菜單中,您可以管理日程類型、切換窗口主題、查看幫助手冊、了解日曆的更多訊息。 ### 管理 #### 管理日程類型 單擊 ![icon_menu](../common/icon_menu.svg) > **管理**,進入日曆管理界面,您可以新增、編輯或刪除日程類型。 ![pic](fig/type.png) **新增日程類型** 1. 在日曆管理界面,單擊添加按鈕 ![icon](../common/add1.svg)。 2. 彈出「新增日程類型」窗口,輸入類型名稱,設置顏色。 3. 單擊 **保存**。 **編輯日程類型** 1. 在日曆管理界面,選擇某一個自定義類型。 2. 單擊編輯按鈕 ![icon](../common/edit.svg)。 3. 彈出「編輯日程類型」窗口,輸入類型名稱,設置顏色。 4. 單擊 **保存**。 **刪除日程類型** 1. 在日曆管理界面,選擇某一個自定義類型。 2. 單擊刪除按鈕 ![icon](../common/delete.svg),刪除該日程類型。 ### 主題 窗口主題包含淺色主題、深色主題和系統主題。 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. 選擇 **退出**。dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_HK/fig/000077500000000000000000000000001423264401600262065ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_HK/fig/create.png000066400000000000000000001207451423264401600301700ustar00rootroot00000000000000PNG  IHDRS: pHYs+ IDATxw\?@ { x`lގ8qvq&i4m&&I=l7{m f8GBs9/>"!u3B讣P(HۀBw/` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B31 uaq1oovS TT;tw>ɋ}0ՖW><&Bumb])Z4mRX$\UPVQwj]c+44,3h4NR[ʚ&mȩzGx{'\f̜1eHhni-*ZQ_Xi2 2<;ε{tzB\-w>jW0zXE'RQZRdRBM tPBcOM^n=Ԥyv[)qB󮵿`;k沥-g{z#Ã}j[ 4PekBSޢmc6D$![ba>窺1Fg]v0wz1߭v~^.y?fڬȐ<8y1Qף稼=O-h諟K,}oqW9{ W)6BSs( #W !~JVUյz^~sYǧm?n v/Q]?X( |@P@OM{}FL[_FT(u~FXk 0~t<-1Y]ijѩ|J+@p3_JvԅSJ&e}1ܢ#RO0Qj7w_-LNV(25UC>'\.$>Ipў y߶Y#*#H( TNC$Inprx.a2۴mfM[WuVV4p#O5M~_ϗ# 6(j[* KGtt6#J|lx|l8zX|+V<8Y.|&Xc NZ8wRuMÇ֪S&dgu8& W4MmGO\:1s}EWk5ԷDFG F\*-M="fC @(MfvGG:NLKx@'ֹ%߮Qqυb}#Rq䣔LV=5!,-%ӣ:]‘}x<)Zf$ DҪHd;V!Iܪ洤i㒲߰`?RtF@ݹ%" Cye춏Rެ_/wϸ7U'pw甹}x2POvNbs9iVu| y!Y֬i3-`0Z؇͚=\v9 S 2, {D¤{ߕZX(ق; kL[6o Fs•m{>xߵZ^{6jxhnSbNopR4jCUb0㳍FM;l e|LRsX ~lc]fLrS7[ c^0Ldž{F&8vqPyI\ !TյF;ǹ9#bXjhrܒ#Ipxx޸CܿXX'-E@’ :u0GdEs M `.W70+yE͚V?I)jMEv4PuJbM^B^0xT;Sb= I.Br32\TVWTV( U>ɱn!K |ɪOkoc8z'>& x<2!: x<>?"W$%=#[d \X^נim7[ZV"_PfN̐˥.׈f0zWDyyy{{;@w2HE1:Q(8VDh0S( FαJNHx`΅PB3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!"(Z6iۂ $I P зma;cd2YVH$H$b  C1&I BD29|a n!.RD"#䭎4MQ@ fY4-;q,&  @ B@ _ D"@ EL[?rF_[J"B&IvίJZEY0EhDpH,bH߱cl6H$"I?|s{X5|?ChH$4Ibc#!t b #x&a#n!ęa#g0Ҳm;׭@#l:WX $Ax{˥rLa~XspڸQ?;*))!0Kvϔ4M .W5>4od$!|@DߐaꨈI3& ihmִN"tӴ}|dddMK+ر{B>,VP\ࣔd&EGl9[TrQ?e07rN/XmibLf??];gIѥe5?='g:W\V9y;a6[w]of+%7cT*ִ_?C2LfKWP4- 9l%au/$B?o|#Vm8\S/$%͜Q۠ݶ[ͻ Jw1!a`O; c˫߰hYe}3$ bШQs K?0-uf2[M;27o/[$?rc֔LvwcsۅҠ@ߑ ';F˖l6ɟ8&iLf2 /U]{FG@]rI-X%uNy˭VRaVﱘX$|E/]+E$|JERپ0/#o5>7oVVh?TT56!Ic"iZ.]-ndilv*",-M9 - È啒\Q<);_.ہD,z?7zcRVu7؏BT?r1 Q|z G1>yn{nc5-mk`l6;D:@5]Kav붸b;H (N4-mN'"כn>0<->48VZ:"hdFOD1BRQʳEw4)OK y0b乢ޞf KeR1x*d!4`mz`tSOR\sXb/r*6fVvw]o[0:۳] J~rυaC}t#9##ޛm;NFba#eC'.ei1( %!tтKŵC֨ذ:P"{X`Szquێ I/ܚ9,T*3r[89.& 嵏//MJ/P\im)^ﶽ oOXm+ID iL6`3 ^^^t|Bs/j%euz)'sT"vji}J7ݎX^䜛>]b4S]DS4L]CKCs#nB;=GoVf[K!;wyyG>_(h>,nS6qLjPz)cܛyxn3W?/ BUuKNM[W7xKKv7mQPRZՊ%|㶬 }1! ˻?CKbcnBa3h,fwR$m8x lqrÎ׎#@"i[5i)^~:/lɳ>i! sm V~6hni]öQ^婩oh(B$~2Bh<oeۍFc}<4)&&2D.E.>f5[]; %3+9ylڲﶲI+5>!Aw1H X,.C &IPP)LQ0FQ(ezvbw?uڙ;&3JV}rG>4ͰX|uFj Y(t\!%JH$ibhZ//5)-!.Wl'Oequ{}cXYNK |ьΧ ؒ=>; BaB IR X}af3MF*r?! "an~1lvfݧ7>}(~C/-pCbCųE]t[핵HmD"ins PW|~mm/ǣ(-X,MMMRT"ݚQQUj獫nMK;cJʆ?,P(`% ~ug4{;ˊ v.tGWXI !hgUApU_[! Tj*jm l1>sKt6O?4^"@AN}NzOGU .`e+V]]:,]^&֗թ\VRkD.pRvbuUY4]VgDvuk&`zuuNnzON4;>[l766s_ vk3թܩ~VUgp55sϸU=A^uiSuvםꅅZi~@Nj[Uׁ-007΢| .\b@)u]_Yȹ:]/u|ijTWWMb`W }u&/#DՏ9wͻ9Wo= =\ogg:u!W]CH$rP(A_˝;8(w~)suX/n(Nn/E~v8|ð1Kg?fu.|EKZ=e%^V\]ߛNkjߑtsac~/V7 u|L8/.?sz3wX"n.DnuTq`矹sav:f矹sa{ow.ܫ:f矹ea6Xm>uiYc1<qa .,nk7yD-& ;yjr*켇eV:>*P%u7DŽ]~ST(]/L 7W<̀R;ӓ[d8WhqSsKwz69gn97j; F >RM`uIy,HVu8Թ3ec4.;Wo;ӧ ;Y.S8eֹ`1dsKHե|5TYjƎt^,ߜ:̭4>~Ef/+kD+R\\\"b8f%{k{l6cy8gp/Y^߃>ԳzF,.z>zeTh:W|u@t[OgxDwsԈjnN[͞{yB#av~h[BbkOFj+ԧ*" 6}MS#F3)e:Y/ծ~rvW=4B?sn˩(JfvW]WrF Zrfthknj$At(sx , gGٝ1a1a2f( 64D"NH5އgK\5P=#ez^p(W|Z_TZxDt5|}a.Ri*ZUx}ʇR LL%ޣ%ը? -׋Q ^.>y4.\L"J2=$龭F;JbA5`Lꮖ!IHHj5x u+ IDAT0tfꮖ!HP$R&rn(GhWwLIEqћ&">>~.‹6Prٳ{N&"x,ViZ `70P]ݎp;dϳחl1L %;v;Mӎ;F0BqA!BF!`#g0B3!` F0Bq#!8.b@ I͕dB5ahltsR`d2X*; ll6K]oD8E.'=={U^7 #2 FU}#: ׭@ bE Fu!'M% ]}B._V|~1BIu8!䤿c#KM-Ko v;D'GRT>9Bw'`.s*`cf3Z.]uOvl}r(NFEc/3]#,*,X]gXv`̿Tjw&H!8nlVT7F-mbe5]Xj8Wl4Z[˻}3w/,CY~(N7 73yqCw5-b D"f|GoRz)$'}љ lur攑eoz1!&x}}б +=FgOakZZWoؓw<24@~v8G5!)>|z;R{+=s 73;6:d۞SEÓRTVVY?crV]};s !OGD=/\,Z}d_ߨ @_>߭vgNX4onmU}d\~-:Vz)cBN-yB._=gzɣ yH̩yGKo/]Ŵ_* wj dR )b#</!6ZV?sʘ ;O0 6%J\?iҸLHKƿ;`9,%g@Fڐ6O|O+@?%CbأONK5-oz쬡YCw;Yߨ}iFYf35Y ёё͚Vcƍc>:CqieXrS;W_zϯ'GjkYYm Μ/8[X|l:1._?|d+x+7 H'^tnBN]׉cG UV7L櫕 FuI&# xelԷ+6Uj]8 mAz7LQԱyw{+u kx9l}G.]Fm1[[$ޜ@rh?+UފIdKg+S78zaDCCn ŦVza$A-*3VkOlj04ս8{S}f^YEͿodF:olʤkB(GU9?z|QYݷ$alvv?)2Dܹyu]_Z02cD"-R6܂+e~8etǍXxQ/~|݈9>;z"7r.-~io{ْ+VMg/ ~=x#yV :a[SggEIRqxvw?eױ? 64[m]0i⸑\7 ;F#+D,2P鯏KXe{nCgxpX,b?ӳ'F!:ޢmՈEBn#xMz[o0\*cDbmִ VYf6o?bSVS?bh4등n~u<1l7쫭z&'DƓ>*%Bݤ",VV~Tl}h'r|s->r<ЉCc;+KnXflL2"B?rC:{(˥S1%QQYhߓs!hmv#@ >/iHd?]B^8Mn_{}u"D!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0c& h c#:uBjc_g6nBhp8Ea #fnS``0O!t[lς쬭 fs{{? ,B!IAp"PcijX(bFQh4\7!t'Á F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8םN\@td =; Q^^w57jk** }T^0tQoRxwSA!kB莡P(z ^zOeyX.R9};#Qrs'$) y竫j\Va̓+1!nG;CLguTXuRsώ w=a6[*lvy=B!{& }B6@łͻO-;ܹSG=aU7[,}oM7!$=GpjRLx#HټH$2P~#E"a[rT\THGBvs)hRX*u& S!T;O!ij)0̮}'?/_~@oWP([3B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8vrcz,?khm ?o>u7Qa#}f^ǝfCP`S4M;$) nJ\T.S1"Dh^KR!7hkG3_b}\zsz ][ O>Bl]Qxڏ2= MM*K;'M_SZ};g_o"yP9ie>n AS>e\7/ò_Q_̤֘'39>f7.pW׋`|<=;'(ЗSkv}F ٩Tz)cBnźroG?-~)ϻj_f֕+_O[whzi$IH Qs:JeMn~=N }~,:s /6oV_N,}l/^u\/B c?1Ozvܰ$iv;x}qVG<{ _-]:v+O,ľ޸dY42Id~rWDhTłҕ/,!:rɵ}Gr_x򺺆wƳ )Qf7J=qr Fv*%Ţ܂O<8M ) GK(*-eȌə|Gfr -gAUm;G!~UՍGfn 7yx,O3Z[u~/>5o}sT/e԰}ϝ-}1Q!u"486OY9#v;M3")~u/RU5|oDZ;_kxr%o6YmTR\+o~lPԤpq&".&iT"nִmqS.46Q2"Wѻu,bQIyB.3X!$7ٲ\yѣbZyoB]xovdzy'I:qdbUWnzܓM IDAT5|=D";'bX$uKo2^>cl6H$"I?q{XJ }AtǓH$3$bq7T+s 9$?t7S_;`tSwk"=lwkqV:4#n( ν'bCՎNΗJD)I1=䙂YFwi6[NdSiHt!n#nEVj̲٩;O:$¿)v SV}'xʺp{ ֱd~otsw=_Tؓ\B *NJ[4gaO[=i/WXi0fC~LA(T|UHh$¼沎:WW_GQ}j̬쬡~A&B"荚S箔7x{[])QyMζnNtZg0'Ņ* @7=_XZ+Gd:@M& `U}s;۹T"RВ{B~E\L_.;|N M =2$q6sK/鍖?o67jt fJJpxD^:H6fd@p30;31.:d@9s7W?rAv;62;R&@Lf_T*#$>Y)ӇU|-+ۅcsf ;EqjϚl=ng⨨qOqW^Y#F3exIYxi~>JXhkqƄ5o% @[q԰x>}(h7c^orRڍ[xCginikә}ه6}ӝC3LޕEs@QiuM]~]=%U뷟91],97O?ԯZ֚-S &kFr#@}5RT޸hb>q:weY2tӪ `ԑʭ!a=0.]jX@AQ5`ˮ mhj{YA̞/{"%UC֮3:DK٩5i#njJ[9%Kۃ}Q! +|͚Kŵ=:U)KÆd&<10 niҙD}&Mً%#jymR\0mg. pjL}~dd =uiШX}rwGdkv?=R'Տ?Y9 {RNa&KxW}X 3V!e4_(>qEGN]M'<8_?o;Ovڄ ,*0&G͘ ͚Vm^}s O]1kÎv\v Vx^}7|>@T,4P^U/#c"E5ÆufFX,#tsdz\*nkZ+X8{#SZVJv=59!  U5]JŚ7^~H&~sly "!j3 EBmgâ?l/,*E ػݘf̽1nbL&[ ("{_`Y\֕s̙w8g{=98{>ʃ'͝co+Zi P%+nLf3{Eug{>g4 e6}"nќ#:=Wj;T3$ԅ>]9Cp{r6RHc] AKL4FD<~{Vh N_! joTC_\&3+_^Ya,LdclP Jdf:MGO%:{y@2 Ǐ444.x\v\|lkV/rεwdF冝$E=ۖE(G9 2EBeo+ZS^Q_X~3hTi@ h| y4 jF$Xf:^TwF+l8s!dq< j䲺7Wʪ.5"":*L(oZDRi'/l|z'篦;;r9ݖ+:c@"8wx\۫۸kƝkV.duwfBѮ-yEz;ZYrJwUdx@XU~8@O&@d cugč8 oZ-?~k /a TUbVQ)/ϓQd!A^fg6`8v6zOwvCVS"!VפnzA"}Az$w{_/cfFVQڣgC]JyR3ɕE%Ǹ%*s ;lPP^jeGqrw]Ջ0ZgEhtU{x;. xYVS\ݧ- 0?=%ugit&CA^FGߖ|{ΔLܩѾnLz ͞K˪q%k8 zBXZ}yW'iFXȗ+M3%f^dNmC')_\:䔍 J6%0%[W){o\H, mNgZnϑ kV-rX>Fn]\.nȁwėU <P4R+ kKzQu@~29|Jc'F Ssl%] YLVVo60*"nDsD8i1?اk GJF9lPOOg.\b`bb_L9ue Z;RwӱG1;8$У%'MGN^S~uS3ZV0 7c$fs5uV Xnclo4tL[\^ O7OD3}Rtç;K?F4XVwktń%@BJNBJc$´sGiFfNqp@SXJY&]#WV:/5*$ЫZ~uD8kҐnתj4Si wsJ+?a#D,pE{;%f&E1CØA $yR^0#]D =q.y Ɯ:yCm]}YQ+" LMdZF_4=I;Y/ji> ]2GLFѴ]h4*$I.uUw&pGOE߆bd2JeHT*Ed2,joG]'|)2ӵ(--q$I=j괨uUwE+hV:]E z=bX, %9(ZP(H bE{t$ !IRz4fWa:>+2l6xGC{;51q>m/#[p@X $a1#@@ I0@X $a1#@@ I0@X 4;yЄQCbl6A{]w`sв) \.x< :e5 m~P{{(p7Z`0h]$>hV*h a\.yqId"H0+ ֟d: a(:qJf4 t:]{ꮳ@Py`f\.aٝ27rl6vtt$IRV~jo_TAUwA0ǜ=uY nY DbkkaP(o"8tlmmu:]+w@0+X,@ `T̋v5z yp\bVr4*:Exǣi nB[Dr; 큹 S(-)>jo;LӴ^_k nyOtϵX,kQ!kX $f {՝8Z,M =$$D۞+\i5kruMWP([9jY9Eۇ_2h(9:@ FD$&W%b1"Z@ ߸󗘄AU]#7-Rkli+f8Yl`v@%:3& y;${w}7&1R+ц̎m6nzؾ<Y7_]\RsU}ozȍ{oeg+^@nbv͙<'W D *vƤO;N8[ ׫J&p|@*5rBblC… 3FooVǮMqN]HmPj& K)-h}niw:jxp;)7G56=w jgk%}&, &Id٦_fѺz=i';127?vx=bZRB`%+~~RqWe=-*?ڟZ4gU7[vBrbj1So0<2q ida؂qqD$Oq1@eUݵ}@knO ]JͿ=dElk%81)^uuxɭ.,.-Ms>~ט70ijY]mR2~}xv~7&Ol/X"6`baG@~Q9C8:3sJ 4m܌cDxӷ?PjL~hHd \=oZnWj9._GŞ&J*@wV- &G5uwt>z%Ur:4ȋJ*6wzTjCiZ,@NP{90>_ER8޻C~ϾŢ+J $Ir-(-C\]]J5ȴ $&8d<-IQŤ[$\EsV/\X`q㗺g5РF5e2啵6!dnNM JuAlL'i _ 3HpZFQ2Vetzˮq׬^冝k74ZrNtٲ6QP\q9NB= +fh 2EBeo+ZS^Q_X~3hTi@ h\oA(4Ʃ{ڿߟ7Jߐ$i=%X"W3Y5y%kxݿRl|Moy\H`cflb?aaQal'f,VZ.O ul5ݕf%s9yeގLvF~Agy)]Z0"tg'[.ϵrZLHl J IDAT<.U mܵv5+pֺHZr@koW+T:azD6A$E~..Nvhd`qj,;>;?YQa1ߏ{]$3ҶW}+.r9*}7H44"ަ_cgY9ϬztgG;غXw3n  p&u } ;'zpDi^o8v:ŘUjWyR^ ureQI%#e.1f\B(T)Z@Ok/7X];?,|&Fd5IrG xYVS\ݧ-;ROrq<"5>Yӵ{Apm V*5VvR.'_IL;z:ɴb͉ ohP87hqn{痖U[ 9"X[Kp8*FN!LXȗ+M3%f^dNMC')_\:䔍 J6%0%[W){o\H, mNgZnϑ kV-rX/`|urMNr9.vFܼ#J(JaZ`X_  0| u-u/-y'oi鹦!h q9N=JMX,G{+i+d29XYٴo¨ p3 z>cO+f+Ϳ7*&bFcyfOa|ad$4M8{=-鹣LdV z]o=+UܢSGn**g\Ow+uf<\^T\5 '+F*PiXLoq{;T/,ds ݻmQa&ai[Zm V4NKqKLSz? ˖L]Qw79$)j2i.=6v`}~I'{׃QS[_X*q9]!*f瞳SDdhkczdBА~X" yΎvGO]KL͍|;TSѦye>{,*V_Pg'ˉ nNٺaJ jH+(oOg>;$#zÕ@ڝ݇,}r$ف>E]zb s ;-v>=\|~+*eNV6UuFx#U2РR[[Hif݋I:}%1 ' 6z@Rj?WSFKn1ϻo4tL[\^ O'3_~f"˙>):\Sם#si,J+;]` %@BJNBJc$´sGiFfNqp@SXJWI\SX`֨@jSץICBZ!z&O\igj7`3?Ma0yLSV, /uE c^ 4Ki<.{Gt]G{}=DB>rr?strݛ73 eFG@ʭ'3wy“g'xY/ji6AٝzLκ )TPTl6n`PTP{陒$i0;`ٖ6ѵjaQ$if2uy`m/#[p@X $a1#@@ I0@X $a1#@@ I0@X $a1a!h f ڋ-B7@ 0 qY9{aaX̒i*!zHYA,4r9Fhf\.ͦiZ,["D9`0BqPh0sYD}aZ30O"z55G"fh  )^0= 1I0S@ P+1=9N5$D{@> щhFQ4If{qbTNo 9#ki:78t!jz9MH]f7VӁ#gC$ iӞ+dOױ@ ]I{%vFvΓf{OvSoDp4gttIbekɃ'5kU/.$߼W+Wv`-82fAgR9-{j>v:1˸K1g+h6M0 y}CEUmn@t53bh y?:a #ݼ7ϭJ&_ń;y{e} K˫>t3!4<}>xkAXK||Ł%+>cr]0~t\B8յAՠJ/'G Դ:a R x[ Y,ߎ,~Sk];z{v_@<,mKBT(UNQZ^%޴LD? jRkE[Xrtt胗((*[iKf>tR+iW!5-BƤ<\<\=W^Yc,`g+Lþ'?m'~IղbP?vפAO]0j@h񣣢d0I_`2^^Z^ Io@ IF q$IƘHxhږԻ]Rٱ-z^pii@a n 3wrp<*ES^Z*qs wpWoF* UAQ`:7suq(W29K;v}JToINqJe_aYcy}.LBj%77JV[+6Sa$ݼ7#,Dvږq#"A R/|=] Lbd`X֫&z9wm&}/GG7vc6;ïgƜO<9e/c8F8߸tV%ryR[qqO\1t$ƇEv>agk5y{q<YdljTa$io5xX@D尿LR[wroe5[ୗEQ_Zy`vR2Cyzu]Mmrp;~{pp?㱙*.;ZͨAaUjk3%%i꫏V<\Xhk#E!aͪ_nܱ?_yn_2mҶ;,sxp$ew _|$ jތ8wg5\Mv' |@y ðYy<_l.dQa!f,L{җ.wuF~Wv$)F-m/ж7(ծN6!B Jw= x:gs،V2*6Ҽ?tձ1cW|۠zeW2&T*,$&p5QCS$74ME1qhiKX)#ذK>5 &Oc3vuYcŢr'G[6 Ojg"":Ui߫@ږCÛ*dVb>盐 D>1z |ͧ|nx, qc) ro#[99m0FT=5=;gtKdd&A2ȭ~;c≸<.xIqZk$baokm MK*+jZ*䫭3&E3Xh5pͶap\qI\.@LT9Gqy Irg[Y4ۘ]ws>~-2YS[_X*q9}C=cEğ y+JY/?7LU"m,z7nf|q>o,f0nZ[ ~­2|I󸜩y|DxM_D1 Vk7b8`%EQ4tz0=5 6~~âš=[/Ͷzě.%f\Jl:812oڤ8Q2.` mL?HJZvTD8-m{>}51 jj+*jMZpqsܨNO?{|o@tmKJ:=^Hx+>~&!;qqBMwuNv)f१'{]ձsn wkvq Ǵq|56:dog,_:XRTWîs VL&I*V;9$|ii>M|anRUT\ޠԠ~sh[JM{]J]:<5ZZCQ4D!^,넕Hr^eNPp̄`#.bea v:(Jr,X!;ls@pAa>̵ 8s3># C]yRрW@ ___FC_uozAh>Jh4sH${'`=>I77$D/AOS@ ^C2˖61 Zr $i6}@ ԐI9 Fch1)Hb)JԅA<$I=M/#E"^'IuKۅPEQiZ.sC$\R0fs8&h h c tziv$y8EQ:NѴ;0 X,A ~p8mC \#@@ I0@X $a1#@@ I0@X $a1#@@ MPn p'Y -h f Ih`DA<0Ǚ+aVdX4MSR,mwb1 aHmbl6e4MbK[ q1G  P8. @ -^R 0>oiCǬliC=DYu04xV !z>y,P/ܘ$)hD=VrDPsBI{}UEN:R75 OwǨRNJɈlJϝ<>; IiٹE hiCD]\S[`6AQPt8;ي?OpsurWojR+Q)(j.eUpr0,;$Vhg%u׀׷YNA8a S'h8lCjj|w?+2K˫>pYx/-Nӻ%X߭Ns4dgze^Ѐΰ}4}BҨqp/Ig1&6:$֑H$m;"]>y)48P7ȘC@ȳ3v8[XZg[4_o7KXK%nN6A}'Þ*j+*exbQ3dz/UJ]| $YC|-e!Ӷn%ݰJn]czg+0 ʕM+(=5Kb!4D,|ն;˖?=_l "ϛ`N6E>}^K*LRw?fbGԓ#/nVێ;vjkR}yK}7Vm!z 7;rvlF<"^vo650I7nU}\,m w ޱ}h8w9 J­lo7}G.͝ Dyi}RY%4ݒ߀ 𰀻Y,&"Cm~ਘcGtb(qwB7ogOpzvdku : 75q|Y=请s땈&퍈Xa縸f{?zqD\ML LqS3oYMAR*mi8̅l ?fiΏ[޾[X+W'1v'Hz{"oO6Q*ZlCR5gd5n^\O?#&FfHgܴ܄!pk}OVu՚%'}/C}Naba˾ FJ˫._X|Ĵ?ˣmE C$$WewP?f1G7p8L72VN=rrRtx<&pw7ϯP(7v8ߨG.B,EBVb`o96 ˟&tvB IDATsuv0=Do0XKxh[ d[@<"^_}Ѵ~D. /,f1gM7"B$j&WRVu+ck)g)W%52ӓ%FRQ)J?5'+mEކ-gp`\"CF":Mi}vܷFGD?pR}bTyq %6VA{V|@QԳ+l}r JyL |Ig/Z0sd܈"hv͎s7oo<׳ ƅ= faXbݻ9b!jd}gNuKh4ZʏμsY_OeK:i{\s񔻛S 'F#Z]q~>TŌ;x9Eh;I0?_w6AA!YE%UvG琑F?LH3\v\t䃳Z1 >yAn͸c8"0<eB܈QThD+H$$0+.2{hCB< 0=9N5$D{@k܇VeXͮL@tmzA$M$I]hԐI9 Fc0,m$>X,RdG]C@ qZD _9G.D"^O$ ѣ((@Ӵ\.r-!DDIp3p\Rap8̚hWDK[N4M#E$p(tu Øq ; np,mˠkHb F $@ ,`Hb F $@ ,`hvaypxl6b1+Nph(Jk4ࣀ$Eq fL%0`0$ѕB!Ӻ pg~94RE$#F^AR%b*ZYYD~ y<Ar҆J4X,fp8̻-BtX,rl6iXܞBao_ B q1G  P8. @ hd?C߽}A|Kx.^)QL HDq?;h`?;[k&G.Wğ WG z:>Bi :x;0v@[wgg. 'ߘ1a$Imsָu1獑Z6l>`v?Ooq@Xߗx pxՅB~ܰb/ךZyҭ/-ٞ{l7a$;4Fa^Z}G.8z~ެ':ZMӧ/$1y_$IƘȮ~+,.OTkuLtϿˏWmLjZ3iWG먈@{M8[JfNРT8OOOwn7-Z٤ WGaL>W+XVj"qn ŲЈžfLpuq.3a̐Q1`󹅕U}ozMv33Z*qs woIĀ~ݥ/K@Ѯ[HPkk&sN+",NnsW.m$I~yoFVA_;.5h@ЀN4(RV^u-9y z1Ԓ6y?I$]CyfDEXWojz67-P,@hX֫mw;NQT5nVgXd:;Bqѝ{]p~nؾ^{q.$E};kV-jmY pr+lJjZfEuTT$dϟ5v=3eJ?nVJv֔g-;e͝1-C\]]J5ȴ^.2N`c-2F[K2Ah>y.9jy *UA^L#'._l>t+Bێ+\F ]tmKD,,gjK=9`0_'F0#y IaAM+ R4wZ,LqaKqݖiXNVob靕AGBAl~c'<+ψIz;7-=7!%Am)Zl/ƧVkm".%`l-6 ,Ui߫D,QP;Ww9,Rs3]Tr:Qfz9Rpv֯G _n ,E7+`0TT 䝻/nmLr+ h:r`pfD,4C[Q);pPwW1$8PZ^ӎr 8A#2'{+G{IcN_RikTjk+TUr#-?"{Ʃb_\:i_$ݝ4fа{cG6ИFDDo,& dxHKi0::To~B[/Ͷ4Y]M+(/rw#xnq/~zyٌ~}2e&7;`clouן 3r ~v!0dp=hhoB*ueU-jrPվN"!b99͟9:9͌›2C VV~aQ5S<}m3 :g5/@.Ea)J ܔTP% ]"8,} 2~_~Mab"x(y^&(JG{{EQ)WtGIE B`Pe"RU5 cn[~$)>b+ IR_p\l6$IYVQh/MG NLL#B~?QLEUU{wBpq$I6MER=$Pݭ.IȭS|> Bb !D7`B E0!"BtCL!&PBn( !D7`B E0!"BtCL!&Dq`"b wNVxrdYVŰKTy^L:hm 8f8$HwS}Ƕf;W]]x4?8N73*jxMR,^G5ܘ USYƜV^.+*,)))|(VAM)޻ޥk@dcϪg" AIO`@M`?Nh " į!JBgոQ08# Ѩ-wƙ+5s:v|Б`_|,{Z).0fў9u-_(i6Wɡ9}ő]:%s߼׍-9)h7/~dQ,:d, {Ϡ'=O|ܑe{:ƵS7>V\`+fM]5C>:sd Zݛ`-[8Ã~Kl}pRƒxl&,}C>a[Rp]3AM3z$EQ֬\Wjc&pI?p$*T}N|~FSEvn[p ħM]O Ɋ#'+:~;P]ʋui,{ݏ׮^\0'_q{Eï E7<*W`v_$ k~~ [7dgyd;K~9qQ :" #1&NގO53Gtyƴ-/v+߬7)1wkq{c} ,\FK6-زoJwr1V~Wٓq3ƌpg̴JKC2cw[f] 1"q͝2yzm*9S3f3wyp&1|R7Nh<Ӿ@n ATt{,MUXCxR8FsO6cjGOW^]p(Z9jDSs{ccz+.k۾%i1*7n?$b׻Gvѵsv.2?Zr'ByPG-a6?Rx˒A0$={m-.PEp3K/L] z{u6-šӻaSh:&Q IXOQuF`a]k.rsƫN="}xG)=nL?XU{J]΄8:e'fsQ8(a X7 >ӧSxq>l/Ckfat s:QҶy%|'CȲRVYw2oĈc;vXv̴dҺ9ٷر31G(Hš;~/q9޾mo]4x\ l 6@ 8}o,1*#}d_>;EQv}th]ᩳ/c Lg+*k7n(lqzm+gL8ꚱ,?ekhi%Wu@˥}+XUU,`p&_U5WYKT{><|HPi2h2"Aq+8ܘfi3D7 M rAz몬`jl#,jyIwq|X!656*ftyހBzC5ĞA#b`B E0!"BtCL!&PBn( !D7.KbB?(0۲IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_HK/fig/hotkey.png000077500000000000000000000273771423264401600302420ustar00rootroot00000000000000PNG  IHDR /H pHYs+ IDATx}\L?LӤn4ՔBbע(ݕ*vYimK,JY[VE)ъ(7Rv+-RiJM0q~^?<̙9]̜sss.B9(Yiii=ze˖ H$a'OnnnH$l6Դj֬Yfff?H$U- <ݻs! 8͛g'Olmm mmmOp@KK eلzf?URR N>-{Ēup8#GTSS(JEEEUUܜWUUUIIBK.ˏ9R]]]5CQԂ (:ydLL+VXaaap8777mm햖/^o_~.]2<ѣL#AiiiOOO˛9sYvv_n?X,sİ/_.a#AQTT-OwVSSSSSr .TSS333zjIIIqqǙv/4iR_l6{׮]gϖuAާ^w=!r ļ"M:4Mĸ?BQ!9/XÇH<~xfffͳpB`` K~,YrŊyyy7nܘ>}'O(ڻw!D"9sѱO>***AAA=Vf}}}BP(Y&$$$###55\KKf'%%H;utt(RSSSTT400i|>_,XED" N:ekk[\\l``fMM}kNNN7o~ͺu80cƌꐐ^U"%IUUUAAADDDee_S5t,dwDUUO:v3g|3glmm%4][[[XXXSSӧOÇۗFC&]$ 2_~Lshdd4hР;vܹsť^$1$BP(&8qBAA!11… ғoA"ܺuK, |BEQǏ'1 LG :nذry<MOO>tPJJovv={?1//СCNNN+W{MX&%`;.\;rrrͫ[[[Y,֭[nJihhߘ.;wBd\BCCCvvv%'OLNNNHHU;[P(lllBu/_̄I$ŋGDDtIOO_"ݻgJΜN>x4M|--- !K.X|9MEM<}gO>ټy+Wbbbttt]zjuuիW5cfYrr޽{W\9w6M?Ӕ)SJKK===SRR.^X[[lٲ'644̛7/%%xi:$$짟~sz}C qO_#''7p8>?z۷8q?|0]paaaaAAAlllAAرcMvYIIIYYܹs%JJJۤi… FFFL?*c266~{llln߾KKKã>FӧO4А.^/3.]XKK˸/ܹlH/ ɵ߾}5>>ɓ'gΜٺukkkkJJ It}}B9EQ? !4M_Dׯp8 > aXGYj… ===#"":::F5o޼ӧ9r tĉhmmcǎmܸ'K}s8ggFooo@0vwYiCC\&T__/ ߦLtر2 3f\vǪ&EQۧM@Etlll`DjժUV 0 ###(((11ͪ(yIDDD^^^@@aÂϟ _wIb=zǎwcppGo;|vB(c,YYY1ٹ߉2p@HS洮}oKi޽{.NwimmeΗinjj:x˗ ھrG?w?SOO&..nŊO~i>^UUںu˗/?pfX}ѣG(b66_\\lbb{czyy4}͕+W:88UVVn޼Y|>]^~EC0D" D={ŋږǏ466jjjv io۶m҅LP"mذ0Otuuˀ4BH߾};G>@NN@]]}ҤID冕ޠ111IIIaaa˗/www߹sgbbәsSǏomm}%Pp$ sM Ϟ=1cUzzÇɓ'3Cc !mmm999)))ofӧOz*N]]=''GNNƍ6mڴiSDDĉ',--}}} d]̚5b޼yJ)+B+84%rrr6lГx[ utt455utt(++khhTVV3С(jܸq۷oWUUiO>bC肢#GGSS?.{  뗗?|~駟Knݺr߿ߍEN$I`` M#G.| nܸ8tuuz2ީ;VWWٙb8>>>۸q3g(5jTlllGGG{{;UPPxe@[[[$VTT?\]].zP KKK[ZZG%lvkk?Yf͙3իW^y&!D]]ŋ`޽{:::QQQH ŋ.O_GGGX3mޛXxݻHHHx~2!/4iRʥK^٣}}BG}tԩG9rd>>>]555}(fڵkٲ.Ȼ0aBAANhhh$&&vk^i&&&Gmkkc˧yyy͜9,;;/,ȮϟGGG'''\^E,+))-Y8//7o|3 a!cƌ!w^( ׬Y# O>tlBٿD"a"y<!$--_UEEȨ#99̙3bs:t蕳 Ϛ5+//oʔ)̿wܹr}||Ahh9s-Z355VH_,XkjjwrlْrJ5^vڌ3_Ix\.7==СC))){QTT ffri?.3G#*22ȈY^]]SBHSSL&;t萮S||ʕ+mS,;ͻҧ~pFI޽{###LpEGGGLLLbbbddc֭[c+%Dr-X, !ZZZEEGG?~bffD&$$H;֒!֭KKKSQQ߿?EQ=SPWWoii7o>ÇEEE塡uuu6lX~=JNN~A9NZZBZZZz7o޷o_mm-[☿RVVk˖-+Vؾ}{GGGFFϟ9s۷zsx(ŚIQQI%۷nEB&O\]],{>]OP}iӦ988Blmmo49X"DFFZjժU  JLLb9kMM x;wСC-,,G}٦n󛩪(JGGɓ'yyyÆ ?~}}4RCCK_f͚ѣGرstt x6;x,e{TK$m߾=444<<ٹ[ ;]jooi0779ljj~}EyzzVWW?K,9yd,HObXyyy>4i !ׯ_g޽~{Y%999Swĉwvvv.++iZ$͝;W[[{޽˗/r/BBBnbbbiiR|uFFFff&sUTTx5λJJJ*))霋ѡ(Ji677%??w=vm۶M0_7nrs4>5wܒﯠrMMMinlllll$ǎ뼮sfM(jڴiEZJ^^>,,C]]=777 ++(4MB"##;::ʦN駟vbr]BBӜb_zٳÇIDATGGGݹsG&*//x'Nxo9aLMM}} 绻Bʕ+"(,,lڵ7n}vU***]斔N9v] [[u1o%&&zyyN:x`iӦ>|Ãi<<<_ѡm۶ Hܹ"H6l@ mbb2{;w<}T \zUKKKSS3--!}}}]\\ yd' >@NN@]]}ҤID7U~F1c 77={&&&jjj/|>;g HW[u떕/d> O? njjbZ.*֭[w۷OYYɓXr+sH$=l6[GG" iOHHVVV.\"?>cƌ!Cܼyg>nE-ZH^^^{i:%%W}]ěSWWɑqƦM6mq KKK__߂7Ç___f!$66666ѣG666:`q8YfTTT̛7Ny+8\,09;;VWW_pawaX+VhkkKHH(,,|yƒwÛkkkkiiWWW `#H|}}lqԩb{{cǎq8'J8rm[[bD準re''BM111;vizZHc4uE{VIII]]i-blmmϜ9i&edd]z$00ǧqӧ3fr̐j@@)++{Qppߎ\nիT$ܹsРA}ѝ;wV^mhhheeiBwSWW;vstt!CBBBbq|||߾}7nhee5~x///EEEay\.WAA"4Ӌ<==?>l2L''' :ۛH$?|߾}-Z|/]=zՕWn/_\UUϯɩljjj!!!tBHrr͞2eʽ{LLLl6cP@驨ﯢpD"QJJ+$IXXƍ---/_geed%vB"rX,)((,ZHUUuܸqiii..._~ɓ'Ϟ=:uԳg2#}aFtѱ~cn?֖>}}}[nz&v5k0(nei.JzرM61mɓ:pzBIIܹs˫cbb/^pРA#FuְalgllleeUPP0g99;w]7yn!m۶%%%777wH$!!!x ={6OKKkll 7;0A*+++)))**BD"r||ʵɓ'߸qC:$t鰰9oEEg[[!$99b;/^laaCtqq@ ?~ŋ !jjjCeƚ\OUSmmmAAAaaauuk988B鄃vk=zi$!---zzz^^^yyy3g433ζ=x`bbŒ^EDq1S>|',+77*Wp=2֯_? Z"ZW\ٰa3#!MUUU=yޭO 5kքdddkiil,yyyf3{ff9s RXX8a„_A;22mڴC 0֭[̈)SlݺƦZ?jmmE+]$ɭ[b@ 'hiiQ}qB 4))nݺӧ%%%cƌ9rBovd/^0s)De˖?2yUVɺPYYI144|#if;KZXX,_\z1t++ׯeggwC cLS{{3!隚Қޙ-)))++;wth%%%]]]BMMfff|>࿃vdjgϞ8ydXXXlD۷o766wqq7o^llڵk%@ ;v V{{;Mӆ҆sE"KVV:@Ͷohh_f+ttt ^)аb؄_Nct|wwS(^r%<<\$]vƍoJEEŵkܒ;vf={7q @#;;;uН<|PWWG,M,ɺ6^Q5gf䏊ӧ-Zdjjjjj_$&&0@%xkʊ IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_HK/fig/main.png000066400000000000000000001746361423264401600276610ustar00rootroot00000000000000PNG  IHDR^|a, pHYs+ IDATxw\UϹ{ *CQTp-ĕal_˲eiSӬL2W Iͭ8 " wnWp..>{<B!l B!:!B!BahB!04D!Bf"B!3 B!$IiUXq^S]*\ƅ BP8I:h44ͲPbX&5'BMZc FsoiH 'H] GaY\պ:# ˲EQjrJ"ՙr dbmAx>Y`o ܹ͏{ K^y{m8{xgw8] 囫> 6ԫ~pʥ/==Y(OѓU\^"aJԚ=lySL$YV~׹~^~(\x@e *"BkK`WR}=Qm#[{Hu 8vP%qZ/TgKV;ǘ{ޕGaYvGĴ;ӯ~;wtVܟb99ց u-OtQVd2җ ,)) s|bpʛmdJ/]N+p],qH(?kGS{"T]7z[\27i[}/&' +!lR IuM_Bhxh??ZgNz~Ͻx,_?^zo)ȱsg.f|ƜA n`+z`L욜$9 uܧOʤ}h|V;RxX25R,˦dN{UJyNQ/]{:We߷;۴ iϼ=6NЫK[8wl7z˟3 뮦0%Ymt۰5mܟ'\ݽs┱pĹ+2~+ܸq,wqi)(,顲<;צpd52 ޵CV6խEܮ{ZCH՛LdWM/*}h:=u٭㻟|;bhw Eo0ji󸃃^y! f{s#IB񺑑}!竽֙9V):K\  ||IRB@&XB1ѤT:)zj{kͿ'[^Ϛ:bɏ5!`A҃?FsB2;n0ֽB][k.ddfWXTˣE Ò$% =`0kU;2OYu9+K?_3T'?>.|(P0x@Ru9,@?xvO>%69yDwm.v5S)S)y+g_]trؕ;WXu;אCWoum[iWo%#.޸yh-]:źorQmZX9ziydM,JzCۈV_~>jX}jVhC T{]677! .PB[yaC?p80, uoxM`b$-$;^)--ZfĠ.^JOvfL^~QI\kP ΄jvwr^0-Wo VnMtcŚg69~tL}_Pt/H.$>:-|seך p/^}"`LSW u_GmraX\W?LFȯ,C;B (2+=,˒$)m3V{m=۬{z}u.LmѡHޒ8qs@An=5];G+Z",$6t'@.V}4M pq!!~q-|>6C0 sdY缧"øi5FK:|B(N3zXK7DBA¨~];GUn~ćF<=/?~+(.(, /̛b;}#4M^۝Cz_.3Zcs͚6ekD!RQ]C!-/^y\j\:tsL s'WNrMqqYpSW ~`\~AQHHH(6?Zֲ3-oi٪gi܉~5&+0zq 5ժ%kxthpP-->;gsj\OO'B "alq.f Ȅ@1f^{|{zH-17 K/_.SL\ܡ]js7 ,XT1l`'}Yk7츗_N)™}W6'q8,4( UYjtЧeYx7/,[ZZ뽼޶ۺeD"}!=^>^aX P-]ua9``)s"uifXH  %bH( w=HtMT*Jws=jm662ctH!Nvv=i.d2yz(UUVC)--xJR$>;bnOWq\\*.dYY}^a߁0 CG4(sdRIQݻTeYZMdpp\.B @vDPh˪hA3w B0P`M&d!!!Am'/;|>q[p|H(rt5B֜H$R(2r #Zt1T*e;#M,˪T*G$PRu8Wgn \,؍T*UT B7 *J*:"qCCOH.<<BȽ,0 M,˺:/5:! ܓ0ϧi(WgQ`^47<q/!jB!AfA3b|>d2  D"QsuܿB醧!ry2Bx<@ pC>o0d2Y3[j ia.Pp*BWw\ *fZ `04'9 BfHddHc$JIlc3%B inB5fi} +**JKKCBBjܩ DNNY *#!! Zz:Ս Y7,@;۽{_~`W9X,vuPSuaF3:ûҹ9C&FYR)VԄa^/XJe? ]7 z |ƸVNB˲֢ڭAeٳg&%%]vd2{{MMMݵkץKBan&MԪUJ%%%?~<''uڵ7n\PPP Ñ#G7ozzzFGG>SN5355֭[>>>j:/:\5& /plB Ӡ\QQ_>| ڵ+H޳gʕ+ $$`0 >K.cN8'h4OOϠ bo٧Oa|AffX,h48k֬dfѢEtvR(z j0yF 7??!˲oӧ:o<___|srrfΜ9m47o| 裏uƲ}VX!GOOOrʋ/(J,YҫW/n[nܸQPlذgΜVΝ;n8T0ɓ'{=$/_nkr?tRX홙QQQU+/LCfرc}QTSXXصkZ9s Ѽj604Dr׀d{";D ]փ3 r&ܾ0? РLO?OZ=?/޸q)SD"_ٳgwޝ{1cRSS@tt3zK$M6󩩩8q"T $9tP0׷oč7n߾RhXTTb x7;t`~=zرc^ *--5 'H,++li֭[Jm"C[+..qFv ùszOҜ$yԩoذaѢE-.;|;0F?}n-wMNN޺u޽{߿od+9vO:յkӧ1 Oo߶l0`@mܸ,v$WXVMV).tg^~f̘ROSRRRRR,lrUS(**,v4k(矪֭[^cYܹ}fϞ- _lYө͛dɒ?ٳF߹:;ڵk,Yo-\ի˗/-2xފ",`6ӧOG,[*uȱqu^(((7oAxٳg?裖?/]o۷og~ s 4rȏ>ի۽{]jpK,پ}"߃Y[|6DMcc^O-wvV BnF\ǚCӴ˖-l߾=ܹsGV{yyՔ W`]V-Nh(*TIO>O4c(>>f͚Κ5a_p(Kh7n`e)qz}JJJ\\\֭СC#FؙZ,V{Yֲ^g?~SO=T* 66svMZtҥKWZ /4..&L ,Yꫯr=[kwzmۉxWC`͵x sm89ƼL<ٖ ˲|!CV^5,L2%,,̾gQuٳg'$$dgg_ѣ??_ݺ6nb D2zhR4Fn݊z*PUQQq̙O>>-wl baE\Dn՜HovZ0f̘s6Z鲳~ k4MX_ {⡡SNÇo'k߳X+.....#""._hyޙ<@vP\Wgs::xUyt4j`A/Jn Sꫯ7?~F߿ߒ󠠠aÆ9rľ7Ϟ={__߽{>\P;tPHHHΝh\reǎ?5kdgg9s&""¾ǏO?t.y%@O.kaNs >0@mY⃗tFS{3%%%| ̝;z ꮼ['5vܙ2lذZΛ{n>_u]xѣѣG|k@C:t1:vMQ͛7G-J 4c4Sf $9rÎϟ:uŋ~tqCR]f[hUMh/$Bx VFp&4lco5ibZu8!" /~UNXvo߾ɓ's?<oԩ~rrg@.|2;,A||||||ǜݼySN<Wn G [L_2psh0̪U.^sU₤,a+j57jw}/^^|b˖-S #F'Bh7oܳgOAyVtφh7ox֡-S*Zߣ7l`Omv|TS^s>>oLVyP>_TTc]wU T[oJJ?833K.Վ_n]^z ._|QS_~ja=7u lnHVxUWػwoϞ=viQu^C..GgϞ-((z={{jeTTT,X`Æ /R~~o?lذqWѵ<} ))GٳTiR Ir?Y:vXXXgM4`MH#`l-o4۶m{Wxۧ/]tٲeS؅3hVZO!!!&MY8\-sK.ݻWTTԪU+Ν;=7[y<^05;v|G*Bjenpҥ4I?կCCPf͚Ço۶m˖-۷Wm¶ZWXB?öm۶m۶iӦnݺm۶A?y5k֌5O>qZ|oh۷oW_ >r݇j=>ڻwoVVV||U,kZn#[޳gϚ5ky!Cl߾\+-= kUneN~/!$O" `nXq~ckd ^OQ_sNRrZ:aܾ}{ܹ|8e8|rR?X޼yW^)//0akjW|rLLoskGM{%ɼy +++555;;[T ݻw{zz?~\.?2a[FFƢE_ ʸXӻwYf/^8##bccRiYY`&ɾ˺|':yx<`wը-ZT M&ӕ+WFc^4@ 0[^3iRiQZ޷o_BBBsԌ!]7`Vo21HhDf!TDCC;4(,kY֭[U-G٢E;w^xQ =zҤI-ׯ_a7KAAŋմ962.ݖjiDGC"Tk<==NL#,k _#:$q!B@D0 dАU;J-:vX˰c֥.22ExujYV` rY/*i T8Xqcp9y̎a\ 0sx4M3Ï}4uniݺu] B XwDrt3nGn6^0&F8!iں~ER4GD"WEӴdV(p3 ƌ nA0jL&{T2 Qh4|XQ|lPFneYQP! 4q!xD "Fw 5P(2HBC=#PbP 6B!P04D!Bf"B!3 B!!B CCB!d!B!2!BahB!04D!Bf"B!3 B!!B CCB!d!B!2!BahB!04D!Bf"B!3A]bXH`qtB!@##Qz1.D!jrXZG} CB!BbYHzXj BB&.A]]!BɫKP#B!!B CCB!d!B!2!BahB!04D!Bf"B!3 B!!B CCB!d!B!2!BahB!04D!BfM&4(*m\7X΁XADj~D夌a)7rvWgtZO6MI|<]ԹgWatys'X΁-{g`Pڔe:&hz qXZa?я꬯$atpN6ʹBK֒fxI?dBCUVi/EB1up2G[\˦φrjIS"v\7=-gVs vX Ϥ<4}zbhhVW}C]_WI?B*n8vB|{\%e'u3;5cK`OfY kI: bĘQR{h]eWK.ʔo9=u&Nn- `hXUY,{tCӔk75OZzrt8}\\Z79%MLY&M2 GW:L(yZ8D3 :feקR\<3[0OD:0Mm|:ne:^:OGdqFhxƽ~lT̟ ) o׬wa&݀m"ʤal+gTehjaQWСcLA~0,K4M7?,grvʹhud!?9usOϙ?bU 6 :=jP*"v+%  T #1`?;PWDrmNL!\I$J LVr7X΁-g_?ߞ}z= BK'۫s~^^DTOWkckpd?2i~#W+xAF>0a'f '%ã18ae-g7dBC^ԙА+_o6~Gmj~ l(g(%] 1x+*GFH,Jm,^)E7!B5CCC|zC!Bf"B!3 B!!B CCB!d!B!2!BahB!04D!Bf"B!3 B!!B CCB!d!B!2!B \dYh : !Pㅵ!Bᵆ*;!+EQPꌸ9XVhE,hiXꌸ9FÖ+rWgit:U(d"R |>Ʋ,˲XΎXF$+a9;I `r 6(#B!3 B!!B CCB!d!B!2!BahB!P˲ߪ IDAT%%% x{{uؑǫ&,**pBqq^ J}$I[&fs环T*t$M%%%>>>~d{{9,U\\, ⼼c9sy233oܸQ\\LJ U(U,..>|^^EQ^^^:trtlSi ~7^$I榦L4qj:3˲~~~a;v|:+2 EUn~L&ӱc#H IIMx1߿G׮y[\aIRQ*;aaҁ#FUf7ӧt.iܳ $up_?wH$}:--aG~VqJ*KII1c˗]rڝ={ݻ ի:--aA?{]W/_:tP# ۷{-ʕÇ?|zZ%%CeexTJ$ϥK`EBR|zT6Ԡ>}<<eg۶n|6|nCa~ݨTVtwSYX` Ȍ{d%}ϥJ,*kGD9rr9ًU{ :S߿(88wСӧOrdYYى'`!!!@QTrrrVVɓ'O2Ad Džu/3g9HKK;ydrrrܹۧO ZmRRRAAARRԩS-hF199ݛ|Z>wi>t萣ee S^~/Lp MӇp׫=]L۶{߶?sg??i_.} Gg*%P@Ʃ^v>$nUrKa휌8x2us HC>DǴl^_}^v.99ڵkzdΝ;4MjՊ @ /++ۃ r]*ZmsT*֕b(dbߥXի0p@KPǎʮ^z̙x{eRƲ4M$i2L&QQQ ,,Rr|^/,,Th]|h4Ӈkoٲe\\\JJUhXr*A@ а :tС:u1u)gDs$00Y9htRc Ri)t?F嵟uUOOOBQQQ!r9wvthM&ؑ#-<oؠAK/~W',*+KةvV~@Ied )5ƌڑ{T BDrDo{P sJѫ[UoW>~o,{/pZSY]pWK]erKpjJWThD"L.3+gTRg7% e˖܋R5wӬԑH&d2NjcJZ~rssR)tŕx=k///UױXڱcǫW v_r)p}\(D"7U<==|>Mӥ֭[n3"""%%DV7 :3$I7Q(L&]0u,&.ZhEpUTTX?U:ɱb_P( H,K${8!Cnݣ9~eY׆yz&N 8KhryQIV gY(PD,vmODorZܻ+t:Q|#}D)-͐|YrB^\TbYHJ$y[O\}˲֏q* IA4\sB뛈P(J㚏j9W\.j߷.Wr.+++--%+U*H$>si0(w EQj}R~ R_PDzj97-u,gEQAb :|)h4U LfaȘei:55ٳqqqz{R.]jڭ[7|" DwsshNCKQǎT@>ZsS,hNzŋq11ke؈Pyo\՝Zh)BˬePժ* EzqQS,E̲G@)Mwr~cGBs$sr-<^DEuRIcQ]S8  8(Nqy< 5j_SCTJ]lcbb233kkkoܸa>WTT$٣G\ƨ<L[8S}FnVR礆DbLJ???O,UeٚPZh4$iT=4=Yx8wbFrybX,TM*ʶEX,W\&Hf*)g2111T nk\1x8Ɛm~]{옩/x5WVJK.۳X,W^+յkXHRzo& o|D|OԑGU[9U\ ݢTIq8_:h%P8bt>BuuuoرcOuB536666i8tUڭ:˦fZd7oެp8Ǐh~ݡ+T*.kĢ44P(tǹb4eʔ6QTw-,,hKo޼)J\.ɬ۷L&Fz Bםحɽy5 +2XP`nqXP@DԘe]3۷2a2U55}cbdry0[,8Nk6|͆=;/<-%"8zo.Yc*sۍRa2U5e^}blK'LKb@߾}<գGT]\\\\\r-Kjj2lF6mBJ@CpܹqQ?2JZG5~[QFٟTbk IT3z0 @ ] 8ΝdͻzUmRT:nʔ) !!!yyybbh4J &]5uu_~ N𓓍cтY+>ݯ!bqD.y@ŢjUjupP51 ?v7nGy ɶ0|DM4;*.Yc*gqKD qbh*:(#ܑ͛7 ñVrʕ={⼼<*Y~ȑ#=<1Sjl100JPY81zC ꨨ(WUUuęB!_NZ!!!/V8ȑ#mYK? b_UUFi8r|>744p{yӓ5tս$ 9iGd333é+ w [qcݻ_z). ]z` fDʎN?ܷ龎׺Qs_+Jdjޔl/໢QTfgg@BBB:*/0a1f6333??_<Oc?ӄ=P__*fKJ !!!?xFFF]]D"MJJ駟5g:Dkqa0"6%$$E)m꺺첲G}ZاRݿe2Y```lD"j6WW8rp>KRNgߟ`$i2L&\[[{; >zh4KJJ*++5 ŒJ#@VNV.z%N!l+d~h,)l)vtDWVW'jY,T&  jmRCJl>iɋf`Xr}W/_uuW?̋EW}xFD!Pvt fQ(e%UգGh5Z&( }%O. #G]62j,K`0bˋ=j*8nݺ٪FoY,(T___ę" ǎd#_ck-bq``-a.2y~ŋ&M?2?$ Cl4AF#麂gZ!JMlP($ e$frύ7vj8N?" OJ,+1U[SQY9`_:f``gi՞>m]({w1ɓ[ 2!.ŋRd& 11 cAkY]\T_o>#efr5fshО#$'r`BeR8#rH I^>3]py3/Nꢢz5JENfx2 ;O=P hJM*7ST_q*eB60aJJ?qbox2#MWSSsPH Q5& bLf47h o՜34iҝ;wnݺ%JfsPPP޽ccc3_^^T*z}@@@PPP|||єYYY&88866or|u:]C_ZL&mK!njF-[lܶmѻRUM ~jCfKB{`00w~"0I#zTs%jͽ䠖u 3=0ho!75D]9SkI!BF!1t2oX< zajB*0:Zm1[вZy͖"!wc-΃|SF6TSgHIQ F- YD: Pl#/FcgS\+w…tVkIMVghNV'UQ|=]NPTˁajBN6B;v^`+TIU¦6ϼ?3xG hwȨ [SC\tr'w-?F9͌Q^(SlQ\g2[l0"nˆ8'%CkL>:9!Bu.&fˎÂ|`26+&2eWGe5ΚFzQ]LcL&IqFna~FZ$^V{Bȁ#Mcny`0c׆PݮG+ ʾQ: /*W<Kg8=05D  ̖z,$VI{~gѴӆ!?'޷e:*vC?g=]!05D`ۨaaO,nWf~l6+BL Bcj/lPF!BV"B!+L B!!B SCB!d!B!!BYajB!05D!BV"B!+L B!!B SCB!d!B!!BYajB!05D!BVR, IDAT"B!+L B!!B SCB!d!B!!BYajB!05D!BV"B!+L B!=t:ɤ(2DlvwA:93=0tfh4 J"jTAh3<}N zAEB-Sk4$I|.H'hy^{\L׳lf6f]Nf\ ɱU*ec]@ܧԐ/s+b$A  bᲹx>hdgW8L3= I>!BYajB!05D!BV"B!+L B!!B SCB!db<ZΥrD34mnxڴk679`"[XE`09yN_vy6gXU*\tǏ;Ig4Ijuڜ544_~ƌݻw?~~Z]]M`8yNԷO]rd2T޽K"222 guB>3{ꩧ֬Y#JUj &ITT*EW^]|# o_v23L^__OCf۶mAdgg[EEſQF_<{,=k׮]s;PS^ߏqK Y:S) ,;UƂki+|;s8l֍=N8F! ~?pΘL҂Ri#$&  p|-Q^XP$[W$IZ̖Gө%4b ga'?؉E>">WNNOO6msV|-FF]*>cNjsׯ۷{}w}߾⋮.d{ &H]J˖08>'۝wK&H+,ҟaC>X[Xu;^ӏ4F.Sdg挟l6O8bY% g/ hՕCWr\w_}:xH=Gt]qf0C*)*BLFcYIE ]##*5|z)cd:1z>D"IMMH$_~y|||zɓ'/_FOYII۷8u&Md&M2'N`r`2%%%tAAAh]>+W5gwX,K,qƎ;|IjcZZڬYx㍟~CٚvY2cǎiZږX`ARRۣ ??駟~磣)=o(LIIIII1˖-km7F3o޼ϛ7f_vm/RBB]]NyuÅ^ ϻ(m=Rg*atMZc5!k88?_HT8@(0`BbEBd2"!=*ϷEiӮ8k5Zd2:0l~1 LLc'|"H֬Yxbj ˝:uqx<mŸ7T!E"Rp8BjdX9# @Td2ۄq8nXE}gΜYvm~?z8_ RT(z\[ ^UUo߾Ç6>#O<Į]***2dȮ]$NƙRuAD"\BC!5;} 11~a~#G\vm49g'Zxѣ\nqqBpo fͲ?nj۷o=Ǚ87u7f>?F.I 5﾿M0u[y:jƢ2fܼ쌜Zb&aV,&_#hZ\>>+νU#6Pm6<>/4,DPTTIhnPx"4fsnnn```FFƠAZ-uXgf=l>vի{=jzSq.,,~:>X,իH$ʍN:\m{aa!Jf,R {.=)j!!!~~~ Ƅ 9ruO 83LG0 Ҽ`Oܹ b=44455~+((sqq7ʾWbϞ=sIjeösg.{ J**]q:fh> fiHp#骭@ ӶX,YW*J54,JR& `2԰FDu="IQZºU_Ε56vӫgX779gDdyiZ K.'4zql6P԰e_Y,+Wr H$/d<߿?BwKzvō1-h/g*T*{}Wٽ{oذ/x7jL/L8O>4? Iԟ!!!ž&EZmz ovuS B(zHo` z]il)44T&]vܸqC YxÇ:ݼyS*r\@PUUhd2{i6gJu[%X,uRtK> }͖'s&|>ȑ#-[`[nL˗3իW{h,Hl[BBBf3՞jAAAT[췓$?UqZzZAAAXJwﺡXhWidzݏ'?gb6K>z|TmoCMv' յ{(FBd2*鴺QIg ''O5udr=?/{auʪƲ_Gnװ]q\P/ 3{DM|x/*:~GN̽RYPpYSϚp$Yf}CMLLܷoߴiӖ.]aHHHRRoTTT=4JǛyyy]vڵX,Φ3ih>=s>nM?jԨw0`6'LdEEETTl6k׮T;~*ɨfժU~!qJK'9>T.]4yF%RØ`TKOntpZyЈĶE5Zc TmYsHPvtmPk2$}5Z0 Jz@WJVߵHQ#3o7=F'H3)zݺҲrjbѸ )3&$SNӇ5b`[ly'4oSO=ziӦM0"Khh($gffS vc]QQQUU5j(i||'V0fggO09g uj[hd0dff>sy7]} sQQdm^N?nܸuʶo9ZR͛7>6~~~QQQYYYB'o>s̓'O/ݻw?1{۷Wޢ8$yƍcvfX -TlIlIU(ڲ1Oufo7Ȩn>ԶQ-kzft/ |.8`V8BWL=wL*cC4$0(ɥx|ޘ#x_ҧ_Ȼy=]8ё"'0(HL?~l6APʊ86I^X,1 cé3zPKY\t@ OJ,\h4SOd΋TVVaoZ 2d7b ~i]]ݻk0`͛fc\.5YTFDDt޽K9;]͞={ٳ7VTTW:cZKKK%ɘ1c| -))9NWRC\|s5uL&=|Rc w3O<}9rtWh`d0qX뺐T*6/|iɜyϬ߰C FjptBJ;?aժU˖-}YuuuݧN`|>{bӧOaaafff'zڴiGs8Ǝq2zjlj2 `^^ZZڤG35GoK'Q?YYY? #77ȑ#qqq^13=Upx63%9$6nk66^TX-0v-bbb;wo?<96-{۷z0}t u+Xl޴i,ZBwn3g_~k9s5R=6lHMM]`u뢣%;!:rJ$#cASsOvPʏ>~&ܭ~~I&N0vlrPlΝ;cǎ1c<3͇-#{cǎٳgO81:vׯOׯ_8p`ZZw =Ĺh۶mǏ/--%?ڿxZ*k:I&@MTE=\Mp¨E #BУ:9ah5/&Qz EFk뵿M/`xBt} ~?/+c7X`4=Ys cJGLկ?F-زB Mp\%^IFcqP @ Cite0X[]Ǎ3nDX8@شӡzsvm05D!SCFwrdÞ҆*UTfowgP %uS@ʂ0ud ':cS]2F(mti B킩gkk<뵩wJjJU W/gI~?{h|exyrd锁F! SC7x@TLt(I %5~kU~=D<> FLfFk5(εRQM;h,!r/L ;w^1;IK j\KJQtZxf !B2L ^u5O-:pƤxjcJ%ݨ k -.;nx/MH\!z`jsOޘ5ϑ)t3sv;ncI?6o5I;<>>2:!BУ,.a9ءQPjܨZ|FtL&+egEY,d\m2[R 7}f1<7O˴#B탩gh4="-4Gu $|O5{l(0BZ?^q|$_MG WhF rG%@! QZZ`-ȹ\}q-JEB*F$ʳg4۬3-Lp67_(ORx>JbgW8L3= 鰣ZMM%x57dәf(/utÃBacHNA8#AťB{w y~ì!B.@4/"B!g`jB!05D!BV"B!+L B!!B SCB!d!B!!BYajB!05D!BV"B!+L B!!B SCB!d!B!!BYajB!05D!BV"B!+L B!!B SCB!d!B!!BYajB!05D!BV6P4F<b| IDAT* $AZaUx>JbgW8L3= P(tO۩;vPPl8g6tr? ƙgz`Adr\.S2l6jgz`qƙgzfv} B!!B SCB!d!B!!BYajB!05D!BVl۶->> vYYY-"瞻ڵk>͜s]]w}裏+--mժUrsccƍz5iҤ_ҥK#^^g{^q8b%/uq|ݻwG7mڤji+=h3:ʕ+&8szzzg+BC!8t @OaڞTc:u=nݺtҺ9L&lvw)S^|ƞ}\S8FQ"SJ LfJJJJJh\l=CCC|MصkL^:~Ǐ;d~…/҅ i.+,,~zOիcLFu$޽{'N)))qbbbjjjǖqqq]1]h ?pSKtoD"Qzzz||F>|\.rJ8k4}A~񱱱PWW7vXS=O8Om߾}ر\.WTnܸ… ^00̈jhs] ;R][ȶt:ݲyf;wn 233/_LÁJ}l6[.//~bIKK-[tdq;Zkqjh4p3IM6\ChE=F3n8??;vxգ8 {r$WTZRRNdCC޽{M&S{!q.//.]X,<ܹs?PYR 8Ξ=)V{tvJJJN>hۢ{nؘss[$:9> ޽{>V[[[[XXT*{ ^8+--Z`0N;0fYPضp8玢`M61eʔݻw߾}-jq5طo_rGZ糽͛7:uj]tqwYZLmfl6s8K Z ZVJ{?ٳgsssg̘1r&OywЙ8WUU]v [{ccc{:رc[lYlYȻ`P(peZm0LH$%]Sÿ(++qF'N=ٳ'Iޤ[nCuIO(՗s8g[Ռ9JX,MdXnoasҥKsϹյC8~QU*'ֆJ =='gټ~}Q CC9[tQ?N٥EѼ;^swYr& b^zD"HE^{eeeÇV#"" uUڏ?`w/{swY8?F,=ڵEtd2{f͓WLF#288 $IFHRKn߾j ɢ38q";w.::\={֍Wf$={ k߿?~?Ξ=믇,M9gV*T*{i(& 8Gdzz:xH~gBJJYYYyNNΧ~jݻL2Eh/k׮%Kx{I$1c@PPЭ[~J ׬YfF???/+mA>>>&IScL&SCB AAAEEE7n~Ӄ?䓁޽]Oyyy ]R١:WQQ=ZNK|rHⴛNzAF  |}}-Z$H >裥KRXd25oJ'X,/$IZl!!!4u˩#&&;,,lBp̙ԩS4rQ}z=UXt={FAW^=zEFݛQF߹ǟ8qΩFo_:u&jۯhd0; f۶mN3f̌3]{!HZԐpk׮V{̙7|sҤI[l3gtojkk>|εf͚65lE:yiӢKJJ +5l2m >|OǶtǎ FZlʕ+=ؓW^ۅBa~ގFFF={~cbb(05tdzHx{/X $$ouc՚ZsLL:O2%44tРA/?~ߧ爈Yf< K.m/--b 7ёbǏl6{Ĉ%%%%%%#FpwqZb###8pKݡ~[nM]&gL>i"&&F& w7 2`ۂ,u]15t΋Ϟ=6n7L^g{ 999ׯ_[333`޽͟ˣE: Z3A;d2\\vƃV{pB7o^}}}eԩS=j3q;wniiիwׯ_l1cg} fIp5'>9 TTT|W[lIHHٳgfffYY|WT(rޫwީSIII=iuZt[ii--!IAxZZm~A.^?8J}yǎ{=>8SrrrVZ#Č7nɒ%6ޡDClX233?> //O:|{IKKNKKꫯr5:pB\Yd|Diiiklgً?3B•?%GϘ0XO_!}lZ}~aA*o~ xn(d[Mgz8oBs fpFffev>|ɔr} Wo:bO gUs_[2oU=u32t2lYF8L BsBgm?':]&y?Z-$)W62%ek6WQ{_&̞?*>fSnpqέم=A$@nvK'=05D(ڵ[ީYڌ@?F@/|݁ۥ%C11Q'7NfM 52YYFyovUZ4#gs=f.I 1-<~ P$ !ajBK[gѪ]  J4֠(Wz~_ښ ~؏4OxJKRՓViVx\8q8l֍7se;;ajB IN{k-[]P) RGӽ &|eQɧ.z& @ѭ{}XǞ9!a/dOHiEv *gCz&Q+ٮ2#!ԹDaKld]Y~Q3SʼQd2&}gN%u _GsTmjY7- Fv :P8"6O*V<65іYf޸_x(wo~<%!oZKӝ]ţVjA05D΅ lLfѤ[e3 Z76|إ.?/|zJ$GXW4yMU*}>{(պկ<% /=f=o>7˹EwJk2$w/>P؄;e5q[26dYfŢTu#(5ztzR'IS>Ϲp5L3=ZNy\TgYEqE}%Z鵺jYV5,3+ҼeViz2-h"Ⱦ303vfy840 03 |?193p8v@^iᅥ'uώg3 H ݽ zw~鶟/'2/&4{T~ǩO>/q `rJ_z* V\n.>?ڻ{Ko.xelyĚ-`-u xv ̳cXs7, I810ώa)b7PFJlV;ߧ3u̳cXS2 B!Ǽ%\]]( jy7w8!;L6xZ zЩqgK `C!B=X Z ;B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!dnqBAB;S(log<;10ώyv VbyKCplj硎1yv ̳c`GSSus@sA@KCljAlog<;10ώAյyiZ}p!B!2!Bܡ pw.C*nCChHFGBK΄؟C< I"Xu`H"B!Z;;: su< g B!Xv VZ֊QIAzbB!cKNt:u_(QAB!d-w۷/jn+W>3{5k޽{Zm?ݮ-D4N' bȯA2DБ0gx=˖LQԉ'jkkEQϟ0o޼C&w.))YrСCg͚uy{r(rssOiZE6;mU5Mff9s /lHlѣ:zhuuuGc}n:a„nݺM4iڵJ7uuu۷o4iRnݞ| \rzr3gKoД-Yrߚ;oIdxx(P>,^jҤIċ)KLv4-MkѴjY֮i(?sL{O0 Yf%%%9sf֭?c7l@:‘wL`x⁶pyJg$JO2lٲe_~P(1bA7nܸq)S6o, MwuVjjjQQQ=÷nݺu-[̚5ˮAF|ghh(I2,??PPPc=zٳiUwڵp6j$hVKdc}Ϝ93k֬^z߿ƍw9rdoY'K̙% SSS7lذaÆ{?wG猌.!h`d2ٲ+[@0bP 6nٲq˖)'oAs/or޵a$-K$u~+,`2Kdgg=^KJJ_m /z}BB;w.\0h //h7nܠ(_~Uyŋ@FFO?dK#G KKK1bh4}[ok]t׷C˻uVOvVd} شiSiiFgϞ?~U j&66aʶ7(jn߽{o3/ܻoڻwPghYY}I|߾Y6RQPd}i3Ⱥ:\"#uOΠW.KRUT$W/]q?0 N IDAT- H|̌7{cǎ]b|`X__LL^ܗիW\n\\EQ8p }jhfyok>0}_6.  B 7vp rr҆&,ϝ;xg}Py9r7d^tҐ!CBD"1j&M:ud2M7Kwn[l@DZZ{RR<{,IO<uVqqO>rjQΝ;ЫW/"oMljΝ/iv`޽{[^cble<$7ߌ9Ҵaɓ'۷oΝSNymfej SBgX,H ӵk.]t6lhmTӁ3U_ ?櫯>W-$;*zĉYٛf̘;1Q>,;p{-M,^r}E͚%?^~~Nnwq$-퉡CEnnNH8^&+*->hD*6jZJ$Cee#5,**Ӎ :}D"v@jj_ݷAzLfr" E.]`׷4lRf# Vx4ꄟ'AF} ;&ò1< dU@B l;k1j(hhh|rrr2{n69o}|||]+d2|M FJJʾ}ݻhde|,moލzxh*UyeeDXٳ;9sUxBV4g0=<&kjߍaXHH!ƍ8eg^'IMc-pDiׯ_7ݨVoܸ-X:XQQ۷6>}822O>@\.{zzذ~}|\ 43dlC]o`L_pPzYJC+Lw(J&`0Ra\X,6N3h4{=SSS>/UV޺bs{`Q"c>Hi"D@<hh`XFUږ#JÇwJMMMII7޼yS,Zʶک[n坅eLFQ_??,$M[Bq+v7$&!Fq]Ꮫ[ve}@&tȨRۑnzݻw'6($I4J8plL͛7Yͥ/q?QQQvp@KyᨵsMM͛wPdvERi=c~Z\,@G$uzV)U Vyzx8~6+K{)]Qo_30x<}YZ!UVz{3 (P$ڵ+55u̘1W~W8ܹsG; {(--4{fQ&o*-ge[Σʶ=֣̆ boo=V^^^PhAǺ{\.MYYY23D_Jrȑj5ˬUc@.Bwx<c6N39￟;w.66vРA b97oތw… vډLo[=s˖EED,}m'V0|81!|9NLl:I >˛RB`@OCUfT޽^[vmLL̖-[= xn':ά{[n3l<U;0$^]/y󦷷w4H}ɓ':s7Z8Г|m8X,kC겳E"g2,̙3]vu@MN5H-[\Q'\-LOm,Y$͙34+++77?^p!=95gN׸+ٔP(ӧ[\=EݰЏ?uĺKUZ&#C}U&? >_`&_(W(8ͧ!8F~)S]vɒ%0~'O.YdΜ9~afH$w۷{XXXffD=2CٲrX?xw<, )WaB(4yM(۵-l6^[Tڵ^kiŊCwRev bMM.)) Φ(O>ߗJ'"c52;<\0l`h ]58Cɓoŋ;{geo+L:Ν;q'}Ƙ1cFG,t:u~wGviv.횆o_b z®]._X,ֺu$ɧ~zȑ1cxyyegg߿?,,l׮]an}&` 0#Ox&9p@JvB.Wsa]8 לEQ˖-O <999O=TAATUUM>xo.;voYXiӦnذa߾}={ϧW׭[qs\@x.<ϛ6mBPՋnlҤI?z>==UUUIII&Mj|' Ü ;^Ș ]=[\IlIii;;& 6mڴC>&y>rHjjjs]|ySk /Xߧ9;y#;;/_sN.]훒2j( iMC!I1 o kfoN8qڋ/kY3 63Q;Y^){@צ@p%`LC~g<;1)f('^֯2%!Ba02΄J1 2fb]BVҰӈ3`-h3p|!B!ZGv& 1| db(C  9N B!K·AB!;ءB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B[CPP <10ώyv ̳c( Za\j<>-8ñQHi::10ώyv Squt 9az~GHn\x<gxPp8g{<;10ώA+͵yq8l6 c$IpkB! 4D!BX"B!, B!!BKCB!d!B!2hWiHQ~C&$$̛7СCz>>>̝;=I}}ѣGZqѣG;*L]j'L߫T*Gl%V^5y>{lGoa <ꌌ UsQQʕ+y޽{Ϛ5k޽mZutr\P/LQѣG͛׫W#G_~y(ĉꕌY1*ylI3uu&,-)]rCSF'5k"2wjk#:wy}';Vߧ H<~滭۶~$EV j.]W:qWsFWDRdP'dyyo|{hid2ٲe˾KP8b 6nܸq)Sl޼tJZ-`f 9!Ij$ʕ+M6444!!XgO?4ydNHH8x͛70k1Fk׮v <7W\vͬ3Av Uszz 5kVRRҙ3gnݚ?562߯ dX x/2,,lԨQׯ__h_|q<2$I*J\&M?}v]?Nt۷<:$G.۷ܾu-O]4TaL H0*Dn*mr7Y7K?;N;v=sa0R|5%)cKZfI$/>.$IXx0DRlh0{`ҏL&ÑHE濔@.廛VKCϟ};~~~p޽ٳgڵkРAg6T*|<:۷o^:''gĈƧl{ӪVN>=ydoo={1۷_t˫X,VpppAAJC} 0`Ъ㹪N+Wz /^z+6o޼`)IR1P//SNT*[]v}3gܰaEQĉ'LWֳGm۫?d+/-^ "2dJ+}ޚ5_<׶R|}[E%_nS8O~'wb-Q]gD _݃7m&('h:6/=EG6VNucF. &") fO;˟RQ|͵h`&㑞X_?_.[Q^~~l7_Z]]ehz]v`F#$YQ^a#QXX7b?rțo6K " %U%%%eeeCm{X!:::&&߼'xK߾ynhh0Y__<'Vի\.7..Ç8.ڠyH$]v%޽{ 7o={~|fܹsINNn* %U܍edʊʮA= ck/M}a_Ob4[2OɾAkEy!tiH" l?72o~ RVFy%'i/OG+T K9ώPQ aiH6ҭt^QaQ`PFQ(4MeEհ`xx?.VCNGK|>SRv BDpH߸5ZQ^eee;###͛g_~T*#"" <愅򌌌dQzzz>}|||¦WE>ϟyO?ݸ:qsiiivv Ϝ9c|ܫWݻ*$ةSvܹtR Yd2zTРjY,H$my.**Q :}D"a`ѪBҥ 0 WW6X炂fy0aٳ꫷~cM9ΨQ<2NQ%7VXPTVRf, w0>7Xa=׮_o#p{7O KE[U4j ɥ;Az^.p\>DW[7Dʍ`T_ %]XWf, /aZflZ#'ze|g;Um/ rbj4tbl IDATnM|>"L/>\\\ u^?tz8ɓ'`ƌ_[]od̳R Κ<ݺud9>>>ݺuD;sPP\~tOZ} oooHجayH垞#OOϚnݺC4sII 45jTZZZ^^^\\ckyvssRd2 P4j $o\cͷkiX+~1Tjhw PtJR5"4(dJJ}O_0> '#jJ>.]T_!WQNܣ;!dZhأ(B2DRjkjz=Ӥ4d2I╏קU?KRz }YLOCW\wJ ݻw(d2 .DDD-9VsV +r1C4_kp5_6PJ9heΗ^A&6Ra!EQf7I tJck\܄BaMM-]i`0D"7Inel0d_|_|azW_}3 NSվENsXi82͛흟}cǎ$$$K(HPܿ?>e㓕@ޚ<ڵ yc/k2"h׮]cƌYz+pΝ;jԨ_mROOOc^///wur<ӟ{Y\n7%ܹC?p@`PUUeNZWWQQO׭wkhi]=xy{5cy 6-'r^{KhJ]v 3\(ÚDJU$!S$e| nx^Z\Tl^ղ4%TZhL&T64.)Mٶ?-/Uu:ݦMllttq֮]R***f|~8}!h zcJ&lSO~'}ٷoHd C{IϦ3`D{󸲐礤79n8\sN:ݞF#q8<|zy6mZAAW_}el={ѣGa˂ؖBŁf<760.yݚ K[xԯ]#ꦯȨ[1=<=Q ?.~|R;oI`cOV` 'ӝgM_l6;8$8,<, 𯉿v?ӡ|>ߏ㹸ы ғF;4O{w7w<:{,E͵xy栘|<߼yl{YYI}yo1nܸ<, \78~7ߺX㏦ct5k֜G( fPω䱜eauUM->).(ؼEd0#yk<4,[#d"ykm4kV2_+-4װ-UJe@`Nc0Z-ax) jܹs]dɒ~ښp8 <&a㍿ÇCCC-O8_ۡ</OHJJ|;EN ___U$RVSihLcSsy6лwo㉉fu(Օue|d͋bV2 ??׸=bRbRiFf2nMP(<<\nEE%=ϼ]f -,K.q) ;z￷%C#?N.?Æ l0c k;1FӳҠU}tycϟV,\۱g ϶d}Kbwww<-KryTIIw>KW1ErٞcǧsZ?R Q6{P͖Rh;t?XVrO+Ͳo(ꫯZfM\\7|c}+Ns g뫲&cǎF@UU8kgg̳QAA 4 kd%yYYl-y~Am>?;v ^}U<-Vc0. r_2g>Q[UYp wc>t9]!I}ܹscbb~&d2ٶmOs;rHiiiDDDB}&0~xشiqJ PEݍ2FƙYg>--8ވ^266vjVE1믿I&9"3rx eܓg3]K=Vi{iV\hѢݻw^zq8znlD>ְEX3gfee}ᇦ8;s|?ެ?wK/S%%%SNzŋs4%S'9$?RZc?]Lzqqc? qz=͹p;0{k>Bj4-['@xx.R>۶m 9sfIIɗ_~sθk׮wG/>PL?~KJJ>;6??ĉ |Υy7kub֭['H>#G3+;;{aaav2]>z_~_y<ŋW_g4# v9gLyM.? _D,m7fݼikxDءG૭TWWw&, V5"&wj<$W;+,,OEeee8qʕ+oߎMLL8qbϞ=DPp8v晦j:'''O:թn8ہlg3gΦM֭[pB*z>==UUUIII&MtNVyx޽{/\P( 2iҤ{gى( %U2,'̹WYY@b\']JvıSdȰࡃ~V$bafjkkgcbz:F=VH$-d_YYVsxd[g<;1,VZ[4t=B!P B!:2N ێ|VCB91RA,ԅ|ӆ}~ [Pgo =q֏5@Q BŐWȦ"l5D!W0%Nehs`٫#'t@+%S|PmܨJJ+Tjm]}TTHcvVbJJVε!rVj)Cl]Fww ~P\K#@(q8_70$$k$2 /\f_eK^δ>PRjiz4D!R,?( I||.t  \.7DҼh~{bpc=>%cWjsv52, B!`Ԗw^Zɧ<7|V'nԏ\ʿ~tɫcV}sfT(*:"@Н!^.u B>dm!B!u;bx) gnz$|>:* W!O\qe?7h|ȝZfsciBJNz2VP1@Ks^,svEeuԑn.*iT_6Τ 9bmZc~!B!:+ c;[__,"x~ٰp-0VagaYݘ^Р !_|^Ҿ50kd];If*#8vaXSܿ{Q<<Jm !rV  JkEUB* 7}=C?(|7wNOOLhKe!B!3}ʫ2pƼ%GK ]XZ*\6{Ҁ.^ _LUߞ~{jr]}Caiõ ݟf 8=(v%o4D!biGv>90jӲ=`/_qX3'g s'N0Dޠ5 24{;8lSpfȑ6QXX`y'צ <10ώyv BܚhUB6V$_(6(ROXLӍ$Ilw*s, (Ѧ^WGqoG$IXzUee%!BKHq*`VɰP5q Em{-v(#Bȉ1хRKA-cm[|p<#, B!C!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BX"B!, B!!BKCB!d!B!2!B`iB! 4D!BPE9 3Z1yv ̳c`CVk(5%jZgu:]G#IRN1QHi,.CGjdG<;`1Y y 0&Jvt 9 vF@(X,[Hrc_gtLp::Ţ( lo, {tvG$A!BKCB!d!B!2!B`iB! 4D!BX"B!ۯ-js>1$IVVV[s3^yC)Inn`V.F!I߯^yyzvFTfeeUVVd2777__DWW Zu@ 萨l皚ZeCC% |4t]رlg6]R\bl34h? RRJCnoyy(..NKKoGR xZ,qww///7{6((d2U*UCC##lT*ND,U(Zs)0 K/RfI /1oQW.7 {$Ɇ/OOjkk>LWXXD"}q:$Vxd*ť`lPTv8Az$$&x8$XшkAA$IVWЭ2NRyzyD"{P)J"o'N)sKbG===ݛNϭ ڵL.jѦgr^^:AhjkT ӥaLNƯl6[՚m$ :N&) 9%ɓ'INJJ:ݻ׮]sry}}x h4$I.3 P(Y6ޮjڿ_ KNv|+8Ekט.. J՗A}u5ƶC\^/hj $+*4 7nܸzٳg'M!%Zu<WWW>_ZZph˷ IIz}>- #&{nҰV_$e {L/e p@@J\.fA7ޒ$ ťCǴy MҥK׮-~~~ /\,--#IsvpNKH0g`FC$}r c>Ѷ(2RZZj|lw pww7=$)r… t]8|fvC,39zx:rbuHLJ#::(0/.&e2R&zy0R&d2` KJa-7?E'Bj ':LrssRX,utRXs<wt>l6L!iKhݻnf7L nt6'JAJ$rUJAjA<@ӿҥ+W(JLHR(bBJQWjjk繾N*e0v'rsvCRYiA7 BDŽ-0<\.WR_Zp%ڜ`N4juzJ # '5V nnB6h!Ñ$}#"#>Ny6EޝGUy'i,ydq6F , (p”Jδ mgN{ vJ9S)mZZJI 4@6R !(;-Y{UNjsI~./WwߝT߷?͘1ec=gBh4E:Zd2566<+udBC :PQmmM>k83G;6=g zRl[JHL`2yh$R]mI@Daa2D"^Cm%)IirS.<&J[@D#$$"J*pTѾh(ƍ?xWa'hz},c=hd2 +VU7iҤLC_% lD"ef+ތ@ 8s=G"d2:ԡ,`0 CIֿu:h%if5iooWO< v믿ND+W,!r^TτT*ͿeKdD9J4g' ]/e4v{*ZxqCCC*:}޽{{zznz-%(l0KeI i*1ցGDlOccc#֭K$v]$v;::V^],h c^~_f~8M&S8+~BY?>~pUUԩ͖:t4/VhnF!,7|7WZ\ꢍ-YUH$2x3F1 Vph~EQvuj}|[#K{>.鸑 gAST F#7J&l[҂|sqH$L~T*uef.(A(}3gK3 #N6*&x7~f֬Y6W^x<}ѬYJU"b"PU&X&)®[ժ@4mhh(-k{e .^5S>o===NsΜ9E(Ƹ jټ^qi"H$B"+f]A47]])WvTWfd""NQayvCUmV,˙狙"O>پ}{mmyN't::9 )2>AFRYq]~iA?( g藜HpU5ED!%}n-3KQv Ev]eI FD"ђ2V8+4V(}<MkV/=Ų'ի+=i]QO9_yg5b5C`088CLv`ZV^7͊~RXUU""j,/XAd,XGyh8@4u8g$ɤ竮ͯjVg3V^"-'y%PH$":XK(?zi7$iȠ<>gx@\.֭[-˚5kt:ٳvv7lp뭷VвѮD"jjjt:zlQ!}}}; %KOTE8q'wl4 ͣqpVct.Mتo'"Rnx6mj}}ڗ::G"ThgToL{UEܱ3$;25/X0eJG.[5Lj<%C46r*f/ara6De~_UUAzjekVx$efzV% d &쳙"t:&l544((b$"'x!y z뭎 _fyqK^0Hlk, ^uB|DAʦd} 9)zܝw oWY9 _XnVĉ÷jeL 1w`x y=GQ"y~4 /FK^>wY/S,۸aZ7R~>+V2tDT{={O/Ҍ3Azsg9euD%BO0͘19rtכvd2ɲz׵ZUWM8\tEtn۶mΝf9 |&MZre 8,Z8q⥗^by_t))Pr=񴵵 tvv[l6afΜ9+u+X>CC?>ә*b"Ky~efG=,SF}}a_غL23HѬ\rܹN'4} ʥR)8kooonn>zhN:ujkk+[ BCt]w]WWב#G~l6m|:::W"')4YYRdC=,˼*VdYVU\h,+Iɲ h7 NQvr\%QݾQ<@'IUK]2q h!qP\_7>`rJ%g_͟Gְw?ȐwUI)Ki?Os\?̎^W1Sm8)\d-Vpa衬3mᓿ6}ssf4}0ɩ~xR k{<ϙ`Љ>PYXR<8Fx@( vs b j齌'{wx9۳|_=ʋZ5iǨPps~[h/ݴm,2覯<_vT?)v$;/y?fo|kW딋*9e(5 Zf|v=zwOh1~w6&/KDa[|獗џ7 |!L:Bs9 li޾Ѓih\]bUms_[57с'u:ڗ]Ҿ"ިUuD}][oWh8g'y&BDOw4>o>dov>tJ.8;dQ UUu4AԲAv[MV[y=ǜp(gIIoӬ*Cw]ټбOܵ*"JJ)I5MR蚶_شk_^%ٿu QT5tZ@(4{ X|}k2U{#€rYrqVϜX./?CkiDyD8V\s'ts7a~5 g^Hɩ?Ārq`@80\({_}?z/Yo>whO~9-KR3 g"SߺlUkj}w_7;WHDoh+jKoq)ηHl{œzׯKo6-]tqnoo~0[۷3/yq>Iey^KD2{?zls>e!y9NßMq,'h,KɡXXk ": z0wfS{c=vHLհ0)7>̐WPxMf6 !@IyŎg;;'}՝hC/~)[w2J r>&K몿-?#ǻ bQ ۞G" {f{Ӿ߱_3BC"%?;MoGz/%q@yXԦ[X"!u3B讣P(HۀBw/` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B31 uaq1oovS TT;tw>ɋ}0ՖW><&Bumb])Z4mRX$\UPVQwj]c+44,3h4NR[ʚ&mȩzGx{'\f̜1eHhni-*ZQ_Xi2 2<;ε{tzB\-w>jW0zXE'RQZRdRBM tPBcOM^n=Ԥyv[)qB󮵿`;k沥-g{z#Ã}j[ 4PekBSޢmc6D$![ba>窺1Fg]v0wz1߭v~^.y?fڬȐ<8y1Qף稼=O-h諟K,}oqW9{ W)6BSs( #W !~JVUյz^~sYǧm?n v/Q]?X( |@P@OM{}FL[_FT(u~FXk 0~t<-1Y]ijѩ|J+@p3_JvԅSJ&e}1ܢ#RO0Qj7w_-LNV(25UC>'\.$>Ipў y߶Y#*#H( TNC$Inprx.a2۴mfM[WuVV4p#O5M~_ϗ# 6(j[* KGtt6#J|lx|l8zX|+V<8Y.|&Xc NZ8wRuMÇ֪S&dgu8& W4MmGO\:1s}EWk5ԷDFG F\*-M="fC @(MfvGG:NLKx@'ֹ%߮Qqυb}#Rq䣔LV=5!,-%ӣ:]‘}x<)Zf$ DҪHd;V!Iܪ洤i㒲߰`?RtF@ݹ%" Cye춏Rެ_/wϸ7U'pw甹}x2POvNbs9iVu| y!Y֬i3-`0Z؇͚=\v9 S 2, {D¤{ߕZX(ق; kL[6o Fs•m{>xߵZ^{6jxhnSbNopR4jCUb0㳍FM;l e|LRsX ~lc]fLrS7[ c^0Ldž{F&8vqPyI\ !TյF;ǹ9#bXjhrܒ#Ipxx޸CܿXX'-E@’ :u0GdEs M `.W70+yE͚V?I)jMEv4PuJbM^B^0xT;Sb= I.Br32\TVWTV( U>ɱn!K |ɪOkoc8z'>& x<2!: x<>?"W$%=#[d \X^נim7[ZV"_PfN̐˥.׈f0zWDyyy{{;@w2HE1:Q(8VDh0S( FαJNHx`΅PB3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!"(Z6iۂ $I P зma;cd2YVH$H$b  C1&I BD29|a n!.RD"#䭎4MQ@ fY4-;q,&  @ B@ _ D"@ EL[?rF_[J"B&IvίJZEY0EhDpH,bH߱cl6H$"I?|s{X5|?ChH$4Ibc#!t b #x&a#n!ęa#g0Ҳm;׭@#l:WX $Ax{˥rLa~XspڸQ?;*))!0Kvϔ4M .W5>4od$!|@DߐaꨈI3& ihmִN"tӴ}|dddMK+ر{B>,VP\ࣔd&EGl9[TrQ?e07rN/XmibLf??];gIѥe5?='g:W\V9y;a6[w]of+%7cT*ִ_?C2LfKWP4- 9l%au/$B?o|#Vm8\S/$%͜Q۠ݶ[ͻ Jw1!a`O; c˫߰hYe}3$ bШQs K?0-uf2[M;27o/[$?rc֔LvwcsۅҠ@ߑ ';F˖l6ɟ8&iLf2 /U]{FG@]rI-X%uNy˭VRaVﱘX$|E/]+E$|JERپ0/#o5>7oVVh?TT56!Ic"iZ.]-ndilv*",-M9 - È啒\Q<);_.ہD,z?7zcRVu7؏BT?r1 Q|z G1>yn{nc5-mk`l6;D:@5]Kav붸b;H (N4-mN'"כn>0<->48VZ:"hdFOD1BRQʳEw4)OK y0b乢ޞf KeR1x*d!4`mz`tSOR\sXb/r*6fVvw]o[0:۳] J~rυaC}t#9##ޛm;NFba#eC'.ei1( %!tтKŵC֨ذ:P"{X`Szquێ I/ܚ9,T*3r[89.& 嵏//MJ/P\im)^ﶽ oOXm+ID iL6`3 ^^^t|Bs/j%euz)'sT"vji}J7ݎX^䜛>]b4S]DS4L]CKCs#nB;=GoVf[K!;wyyG>_(h>,nS6qLjPz)cܛyxn3W?/ BUuKNM[W7xKKv7mQPRZՊ%|㶬 }1! ˻?CKbcnBa3h,fwR$m8x lqrÎ׎#@"i[5i)^~:/lɳ>i! sm V~6hni]öQ^婩oh(B$~2Bh<oeۍFc}<4)&&2D.E.>f5[]; %3+9ylڲﶲI+5>!Aw1H X,.C &IPP)LQ0FQ(ezvbw?uڙ;&3JV}rG>4ͰX|uFj Y(t\!%JH$ibhZ//5)-!.Wl'Oequ{}cXYNK |ьΧ ؒ=>; BaB IR X}af3MF*r?! "an~1lvfݧ7>}(~C/-pCbCųE]t[핵HmD"ins PW|~mm/ǣ(-X,MMMRT"ݚQQUj獫nMK;cJʆ?,P(`% ~ug4{;ˊ v.tGWXI !hgUApU_[! Tj*jm l1>sKt6O?4^"@AN}NzOGU .`e+V]]:,]^&֗թ\VRkD.pRvbuUY4]VgDvuk&`zuuNnzON4;>[l766s_ vk3թܩ~VUgp55sϸU=A^uiSuvםꅅZi~@Nj[Uׁ-007΢| .\b@)u]_Yȹ:]/u|ijTWWMb`W }u&/#DՏ9wͻ9Wo= =\ogg:u!W]CH$rP(A_˝;8(w~)suX/n(Nn/E~v8|ð1Kg?fu.|EKZ=e%^V\]ߛNkjߑtsac~/V7 u|L8/.?sz3wX"n.DnuTq`矹sav:f矹sa{ow.ܫ:f矹ea6Xm>uiYc1<qa .,nk7yD-& ;yjr*켇eV:>*P%u7DŽ]~ST(]/L 7W<̀R;ӓ[d8WhqSsKwz69gn97j; F >RM`uIy,HVu8Թ3ec4.;Wo;ӧ ;Y.S8eֹ`1dsKHե|5TYjƎt^,ߜ:̭4>~Ef/+kD+R\\\"b8f%{k{l6cy8gp/Y^߃>ԳzF,.z>zeTh:W|u@t[OgxDwsԈjnN[͞{yB#av~h[BbkOFj+ԧ*" 6}MS#F3)e:Y/ծ~rvW=4B?sn˩(JfvW]WrF Zrfthknj$At(sx , gGٝ1a1a2f( 64D"NH5އgK\5P=#ez^p(W|Z_TZxDt5|}a.Ri*ZUx}ʇR LL%ޣ%ը? -׋Q ^.>y4.\L"J2=$龭F;JbA5`Lꮖ!IHHj5x u+ IDAT0tfꮖ!HP$R&rn(GhWwLIEqћ&">>~.‹6Prٳ{N&"x,ViZ `70P]ݎp;dϳחl1L %;v;Mӎ;F0BqA!BF!`#g0B3!` F0Bq#!8.b@ I͕dB5ahltsR`d2X*; ll6K]oD8E.'=={U^7 #2 FU}#: ׭@ bE Fu!'M% ]}B._V|~1BIu8!䤿c#KM-Ko v;D'GRT>9Bw'`.s*`cf3Z.]uOvl}r(NFEc/3]#,*,X]gXv`̿Tjw&H!8nlVT7F-mbe5]Xj8Wl4Z[˻}3w/,CY~(N7 73yqCw5-b D"f|GoRz)$'}љ lur攑eoz1!&x}}б +=FgOakZZWoؓw<24@~v8G5!)>|z;R{+=s 73;6:d۞SEÓRTVVY?crV]};s !OGD=/\,Z}d_ߨ @_>߭vgNX4onmU}d\~-:Vz)cBN-yB._=gzɣ yH̩yGKo/]Ŵ_* wj dR )b#</!6ZV?sʘ ;O0 6%J\?iҸLHKƿ;`9,%g@Fڐ6O|O+@?%CbأONK5-oz쬡YCw;Yߨ}iFYf35Y ёё͚Vcƍc>:CqieXrS;W_zϯ'GjkYYm Μ/8[X|l:1._?|d+x+7 H'^tnBN]׉cG UV7L櫕 FuI&# xelԷ+6Uj]8 mAz7LQԱyw{+u kx9l}G.]Fm1[[$ޜ@rh?+UފIdKg+S78zaDCCn ŦVza$A-*3VkOlj04ս8{S}f^YEͿodF:olʤkB(GU9?z|QYݷ$alvv?)2Dܹyu]_Z02cD"-R6܂+e~8etǍXxQ/~|݈9>;z"7r.-~io{ْ+VMg/ ~=x#yV :a[SggEIRqxvw?eױ? 64[m]0i⸑\7 ;F#+D,2P鯏KXe{nCgxpX,b?ӳ'F!:ޢmՈEBn#xMz[o0\*cDbmִ VYf6o?bSVS?bh4등n~u<1l7쫭z&'DƓ>*%Bݤ",VV~Tl}h'r|s->r<ЉCc;+KnXflL2"B?rC:{(˥S1%QQYhߓs!hmv#@ >/iHd?]B^8Mn_{}u"D!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0c& h c#:uBjc_g6nBhp8Ea #fnS``0O!t[lς쬭 fs{{? ,B!IAp"PcijX(bFQh4\7!t'Á F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8םN\@td =; Q^^w57jk** }T^0tQoRxwSA!kB莡P(z ^zOeyX.R9};#Qrs'$) y竫j\Va̓+1!nG;CLguTXuRsώ w=a6[*lvy=B!{& }B6@łͻO-;ܹSG=aU7[,}oM7!$=GpjRLx#HټH$2P~#E"a[rT\THGBvs)hRX*u& S!T;O!ij)0̮}'?/_~@oWP([3B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8BF!`#g0B3!` F0Bq#!8vrcz,?khm ?o>u7Qa#}f^ǝfCP`S4M;$) nJ\T.S1"Dh^KR!7hkG3_b}\zsz ][ O>Bl]Qxڏ2= MM*K;'M_SZ};g_o"yP9ie>n AS>e\7/ò_Q_̤֘'39>f7.pW׋`|<=;'(ЗSkv}F ٩Tz)cBnźroG?-~)ϻj_f֕+_O[whzi$IH Qs:JeMn~=N }~,:s /6oV_N,}l/^u\/B c?1Ozvܰ$iv;x}qVG<{ _-]:v+O,ľ޸dY42Id~rWDhTłҕ/,!:rɵ}Gr_x򺺆wƳ )Qf7J=qr Fv*%Ţ܂O<8M ) GK(*-eȌə|Gfr -gAUm;G!~UՍGfn 7yx,O3Z[u~/>5o}sT/e԰}ϝ-}1Q!u"486OY9#v;M3")~u/RU5|oDZ;_kxr%o6YmTR\+o~lPԤpq&".&iT"nִmqS.46Q2"Wѻu,bQIyB.3X!$7ٲ\yѣbZyoB]xovdzy'I:qdbUWnzܓM IDAT5|=D";'bX$uKo2^>cl6H$"I?q{XJ }AtǓH$3$bq7T+s 9$?t7S_;`tSwk"=lwkqV:4#n( ν'bCՎNΗJD)I1=䙂YFwi6[NdSiHt!n#nEVj̲٩;O:$¿)v SV}'xʺp{ ֱd~otsw=_Tؓ\B *NJ[4gaO[=i/WXi0fC~LA(T|UHh$¼沎:WW_GQ}j̬쬡~A&B"荚S箔7x{[])QyMζnNtZg0'Ņ* @7=_XZ+Gd:@M& `U}s;۹T"RВ{B~E\L_.;|N M =2$q6sK/鍖?o67jt fJJpxD^:H6fd@p30;31.:d@9s7W?rAv;62;R&@Lf_T*#$>Y)ӇU|-+ۅcsf ;EqjϚl=ng⨨qOqW^Y#F3exIYxi~>JXhkqƄ5o% @[q԰x>}(h7c^orRڍ[xCginikә}ه6}ӝC3LޕEs@QiuM]~]=%U뷟91],97O?ԯZ֚-S &kFr#@}5RT޸hb>q:weY2tӪ `ԑʭ!a=0.]jX@AQ5`ˮ mhj{YA̞/{"%UC֮3:DK٩5i#njJ[9%Kۃ}Q! +|͚Kŵ=:U)KÆd&<10 niҙD}&Mً%#jymR\0mg. pjL}~dd =uiШX}rwGdkv?=R'Տ?Y9 {RNa&KxW}X 3V!e4_(>qEGN]M'<8_?o;Ovڄ ,*0&G͘ ͚Vm^}s O]1kÎv\v Vx^}7|>@T,4P^U/#c"E5ÆufFX,#tsdz\*nkZ+X8{#SZVJv=59!  U5]JŚ7^~H&~sly "!j3 EBmgâ{E1I4o17&~Mrc[lb/ Hlߙ]) ,=>>gΜaf=s朳2.yVTRy̭YS",$@$I! UҺzњJww;rt^78)bУ6 $ @|*~FI-W˔iEՖB302 i?׏V5#'K#)Lq{x0Es{D;}{fxF[!m "W Enq(ye-FeRG[sFD:{-$Ϲ_;_/ 1#BļƇ>i:YW/q>7U7l޽~n'YRoؼ'϶ii4Z{*A04kt:R*k),$P+j ͝2 xG|IRx&;ЋΝ^{C0p9T\QG5ҺFGʪ61bXhĠ@>ٰBwW{HP}olvNp9lgntd2Lƪu?zΔ! ̴!8)%}@TYMR&جbRin$f 2VW/O+(r J_kjur'VJ~fżz~L>$Rsf}r[߲{͊yt=8AY1㴿hW-q9G8وłܼ=_{: ¢G%=doA"6#FV۰e?WpՂ[M a!|l3Â@hL}]֮4R_GQxtzŹ@hI$AAGޮcBÜ9q8kR#|Ѫ9eVVfL"#BD5a zB*J%[ID6![/S$IUrf.1%3wC$I?sNqiANaPZ^-W u V̢`ˉaQC@߸Lqr> 1.J~윹H.IByZZbۭǎ "(ozXJie2?Oy k%SS\"baζmbEeYye#"U;<` IgnfsRrxT*Rb&f:Y2w'kʋNTJm) 8lU! w'k1C>8N58WPn.v$5wUyNXp}\w; .߼lonkmN#bp,Y2A⹣L}u죘[F$OV'S||3גR2ZZGe0F=ӿILɺz3eV F8ۭ^:^'[\^ '7=\85e|DnZI^3e$yT<V:)&sx-!%sv2fXOM/Z4+bdy7ukS(k9vsq?yDğ>>߷3;sZ}qrT|RzFNIyeŒ/KD -BRщ)Y%!rp u6㮥r̹S#[tʪ3Ook(+ROTt#1㭗'SbOM/Íx{8ْ3WSUeU 5kٹE5u'l::tUW00W 'LYA [ ^\Z`m_K_H-hU"! JHoɏ'2=gGeNm-^l ,& /7F8=?ۖ"8>.F۷4xAVDTåhnVLF kt73;\$^S- uns’J31x -??姨z:Nw|ɦRWWg":x>2ܿ'fWne0!T}-}]_ EyyD"iqmzu:H$jW-X߅ flO!A]]$I 2As+b n󠯞;9 NGMP0L 뎻:NP(ZCzԹD܄D~)J$aRIƓCzԹD(7ayIڍJj;QT q6!=u"`>}NJA.O8. JYtuH:w7r ӹ  0˥ԂQQ]SoST})5b}P3F@Azv`F{ҝc߽΃qUOj#%bmG޻}_:[l6`tfT>|iG?Σ5BtqoV͜04rh9qIn^iyDsURV_ai.lGk4KI%v֒Ri2erUStD0YڭԌR&1WXQ 8z-2l_qQ#B #WԤ$xMϐ ʭ4wQe/#kT$kT,pUfNUR`sWn- ?aLOSrV`On;PBt&FvbӢ{k:4 <071fߏ vm,D4Zpl*zif"wШHO^?x:<82mzni9/,q nPǤf[/4#\kP -}_}A1d/^NQ(SG46*~uJ<**Aq\B={ZDl!H^zS\RV5Փ]tԭ #C9ֹ)rոQ:otRڸ-Aޡ7G ;AAg$w##eRUj >)=dr޿:gM jl\b t@o*fX$g740֣o]:N XP "!Aпwޘ`o>ul!peC1m}r(Owp)}QhmiV-O*}1v6ޞNY?I58Br$ç xF rwUĻن!874QuvA"”WH0jhPРw4p->m`Gh7_L"슿L }0x\'Rg0ws<<_NJH'ju ]4i"!KP]Ӑ|`A8N\0:2(*n%e3] i nҗ'O}ߧoQVu-Iuu2HLN[o7e=~kpf[ytO`PtÒ+U_Tf1l^nv9%B| /naDp8,û?- QC-Kk/\?{rDջF+ u?MiE]`-V,&'8Қ|~(J8AP^ u^5cT;sk֔H+ DTC"IRg@^tv]쎜5'0wwEN`oyZN9[XaZo c`􍟿I%~3qM{e?׏V5#'K#)Lq{x0Es;}{fxF[!m "W Enq(ye-FeRG[sFD:{-$Ϲ_;_/ 1#BļƇ>i:YWZ?^jͻo٭$+U wa69((A p``uRYLae!RU^Q_X~7ha WP9$ JjTzѹk;JiZf+<{=/dtwy%r9\.Ga X9-{oٽf<:Fz ֬qc6衁Z&1lp`Q<-,{yZJ3TSJ!;Cpiyծ c6lP4,\Np0aeͯQʩW6-Z2| IDATs͒wiMÅk \jMStjt"0dȁZDw'+W{}bzV#(.${97j^^TRI2?/{3 Gc[)m.6l>\Fr,&cތ!^ 4.kWIk^Lycv}EJ7OW;C\{YYJv#!yb"'G[{C\}_,ո1'jh0~jNiY33y} cЭJR=rV@z IШ43v)7d/-0"I5u7HhrFjBVVHkP}je{^N G  jɛǚA5+lز ֬쉟a7^Akl-)8PH-hv>;CSVnSiYyOM5 qhS7aekc!kT>xR,}n&eXEk^IP^!X,v#BԂgk&+*twZr$YX\?Tm0+KD-,8u ݣ;CQqbcBrf?/;rQ.^8o{G ضtm}@ ZfB&ye/Z/;^چR)Pv+.82\ ' sqÉQ3sKHy@rjSbKsqFv;JHRitkKDSf1 ܝ*/:^TR *A+(YvW7c/ߝ8: PW8QS׈d^AqpߣgńjYSyNXp}\w; .߼lonkmN#bp,Y2A⹣L}ֵQZm˫ƏtowBMuGFL,ړ7͞y4,ۛČ# ;N@TDHbJ՛)TƓ|r@?Vr8ۭ^:^'[\^ ''2fM{1Ĺ۶VWq$I9_2s%@|rN|ΞS EfŴY̜b?nm z_Hj9vsq?yDğ>>߷3;sa{,\9$dB yBge)y}ĔW98iGqR9lܩ?EN{U{ \:nkc9gZLRJ»<1|/+rɂ|<]־3.VfK^g``B*-R(U-``^hYPX[TS'{R˦CWu5 kqɘ0:|4Ͱ%Pť ڬŷ,}e"ҲJGW7( +#ۋ'Nц 20f٫e{[K<6m F9a-Z,$3& ڟʐFE̘Æd{یL5*zxKsɾdKD\.'B*r8Vnf!=u" %B{Nr|0R+++ p?򌛥PjqmNQ箳~HT*M? Z0Prt:F{NH P*2 q>Nz먞sH$B!e8k4VYUTŇ}NhF&p8NGܣCzԹ{hharfyΡ!  &B0 ɠ b2(#  &B0 ɠ b2(#  &(FRC}ut:0 DH2U*a4bu̡H寧PղPnNS*6g3'%BPp\}c qRPENxJ~ P1R8KnGVH/Q>?P HBfp><t:j@ڄBp3A&`Stԗi 7͠t@Ad8$'k7G q¸ tBRkl20z.$WWP8rDT+ٌ3L':pu?<407t }kjj`ӆ>aӖ æH1w ͗F n5RFD|A|>*fp2 ms^7ׅ˰cWWN 2\&WԚ:YiyTԮG.^-.)[8EꥥųA9witLdu:]+cFEGSk;'d>u K^“jU~>%R`oL/׾f3tMlDhk TUU+ʚYaaNFގ R)K_OՂ:(W?^ Zd҄ K]F?gƖ~ xF$qm]%UҽM{FQXd2U ޮ=,4zX~=2 ;|'Ղޒ<3ďCZH_|DsRSfLy|GDGWh ?_vST-xՊ7p8ƌzU3O!~ii RPj3O$AVVVIkj歄oݦ210lm>O[8oܲO־/,:NjbPAh>Z63-D,։Ek &OW[WkXU]_^ڢW{]>A9\VTVVxS6nXgogK-3̕o/YN<}T{a\ENn~EUmUuBvNq1 Z抵~_0NsunN{/6~'* t[e|OWSq{A3^6(.z{87F;vƴ ə<;]$g nI}'UQaffrn'JѪҪ̜KWnx<.dfYFUL&ST$YU]]TZX^^)snj! [!%bQbcvvor\.WDB s4 F8~ѻ}?-ݥSes>\14h!ťN%ԚP"AIie^Q՘''IPPTVU#۶4f;zb|ɒ.=6zĐ7bxҲrˤ;)\+t: f8;9mYfڃCGN|杛>X%0.WTTiÏ,,.7/ 3*{~3.~nN]ZO>zԅBCp\`k/  _P~:hu,&,&hDT~ow"+q@~]~@=@yy 3&(tuFxڍ1Fqt$IATM ZҼi}"!ɫķXsρ oST\bkcd2`ރV/aaay|;7P>s#G nP! T?l02션p`25 |shjL& awh&gSǫTF|+ rrxCZZ:uȅgS)F>?:qœ&U{---5YA$Ҳʪ*03|׳gNza"B[[9>MA]АNq%2ey"9eZO^|+ǯ[Z[[a/k͚چR)!eXĐs/Fsvvi˗pfĻ+ȊDC{]EWHswoCGt:ݝ6Vf۶hu>liv>ؿes_su,+U;y/q N'8Ah:fJh[\ 8mȠ7lz s33Lw&5X,kk+DZ~ܝ{BS$>V%W8tP[[WYYEeP(T{dkpᗯ:YtCBoTkF(pOW|B|v~T1!nՆwuAv)L=/O2~knB͜ekT0,,6Ns/-kkJK Eu}OwbK f8;eˏ  66iG&7E%2 D>,+7m=dgmfmivZʢ9ctRV*UA@ w}ex I27\Bh_VVOIsҼp3,v7;URZ`_K X;D{з/L&}=% {cSЯq#큾a2A0/rj$(7`0 Jj;+x<˂(4`0h45uAލPs HO.fYi4z< h HOj͠<@: #1N.$=Ub }rN.$=U jF:6 Vh5ZV+T uZ͠0*\LLNO/(;aLwK'f{q H׮\SYLA|Ldgk!7x<6ܼ+74fI1AO\r*+j1%F-qXE)# FBhúW hb|sd:'#I4̳~ݫ<ϊWID\{ܻU\VS\Vs#1 mfY+y͙!m༂ێ>~]×o:1>)=>9zy/=_:ښ6wQPTiwئh4krѭ*2I _o "$G akqzgdTXォCL`/t>詫|gT􀦭`17^-VGíxm.$"G[s_/>q蹲?_Jky|Nyan][?b#U oևQ9fwW{S:ws" <ވhuY`0.$ N\뼒w $n``Yt:M$ 2eDZG Wk4B pwZjwg:ѾXhf [vmiۯM߶\Z?#m@?}xvCe+!c"o~ ٓQх=K-WcwGNX03fȡqt1˫bUw,.N6Z>v8A_S :wy0N{kIq;mȄ;>.)sSr㓳ƜJvVz͚sERSa_/!FOJ˫N_d̈́3o2<+75+OwuF 8/}<Θ)Zbp@K) X4r9cH})&sry|2|۟'BY WRk+sFּܲatg'ӆDZUo'xHo/ҹ=|Tqzޞ[` R &"my𛋳3zz31AEecgn/ IDATtMѺ F0PTr%Pnǣ.24 :jJ:NU E;(1p8 PdiP(dXԽKtt:dl&IP(lϻ|~oM]^ c<O|yat<͜S@QAѸ\ n;Nkv+ʍ2OWUj́# ənN6sf2a!)8AWP toV0$ SVNkV>dq Tk4>5$0нo'31vϝ[X8V `^6?~,fXk\x-ly(:~)>9zy/=_:ښ6\PTiw۔iAjԅSL<0?V>G4{ / I8 wFFuXaqy,Rmˎ#E$f} %1$՚M?lx0e+*v66Q8Ԍ·^< N^|h;5ڳqlBtb@BbDap/t:BC{8M;<٬#GDG/VRkW~.V6ѨfSN!voe_}B/WP_oy`XoI;kUIb (wg{X[ui1=wrC[I_~>$'9u#viIr|Zqts-KӯܼVkLFeuQ z^]PR a}|\bj!8!1AqmX3 ÔO p{ a576̹rP? &jjr +W69x/, @u?Xzyەh@}J}[ѭZ8<ݝxid0FGt~S4[K7_9 Ѓ5+tu}|` Hel(%5aK+*k⓳LE0qt8ރV*p_POiogymO{ˋRt:<5= KZ}[ߤZ}oRc| !)L\?~wU/^ůgPm,iTԹ~^r=|NtsF ~z9}ИAwS3EB~pOPI=3D 'W-\y[FaǿPZF ]MUFs3D_j<$ɳxZZHJJWAJe8y;Yp{ s~~R_`g9lp EB~y4-ÕsN_2Q:t~P&0v.-u0{05v. 6TE n=遺M.N6Z>v8A_I$)TMjY&)6VBaqD j}<<~st29|1*0}|*O.WY[=,%A\OHfM 1SG+f@\}_L>QChr>/藃9I7n͙p'%~njZn|rV\U]ۘSX J"OTKlSъM6g[ʀݚק:8X$>Vu2kn"%5LqvKyPa3ŧE郀{ӝYvAD4]T}߃C}|`/"/ҲfM;8kTG s,[ Ybs֖b\t3),zXfk_ѿbӮv_q/(dJĂ7M:yz\lh$}m/L& a\2jU88~'5g(S \W6YB[XܠǺ8Γb!AL94+b0-ie3=3y9e?dߑB>w _}',;bP]kG (?|=xl G|oLsqT6Kʪ:g7::]g'iu7*0'WTJm6VUuG :厷B.\ۨPPU]{2ƝbChοH?r,s7u1$ޞ[` R &"my@3:-,VTJo&eA䗸::W,[<տ_̃tv/.v7iF[p_Gbsz/|\?u1n.:{ʪZ&Y[ |j(-pt:rδw yb" ^V~acj|<]־3.w\J6OW/44IHH)9'S4.H6!ʸ{C O-^Z+ATկϵ[wQF†OfΙpNM"!)mסL`Y/뮓]4+ 7o?H*沙SƆz\s,&e{ F9a-n,$3& f4,&z!s29Ynq9S'D FDE jsG.B\98É`YE%UT.5jxϗ,16kKS5ZmWAz 7W1!{ѮH聐 - $6#Fupii4S7ǡI>9=um\cص?`~P0nyc!$lcBV$ٝG;fݟfޥ7Jk_9xTqr-/ar;eK-s9]ӓ;:::zo;[g{^y3$I.|KEQjfff"Iј^%ZD`#9veQ$ k y93!!DU`0zzt]OF×aQp14-z BP:R8߆B!C}(GSUu[( (ObIJ@)eYKca2 tױ4-P(GE1p(RU*\dPGp1DQ,ɑ,:e8)bd~KBH vx<(( a(B!EQǝqП,ˊ\.QyK0"o`0H%|U<$!#iZ fBjbJbJbjk!(WIX b?T Ę]lYBH(S5QKEIrߵlMP5|x7Zr8e~~)NJcS ]?e♳_w[o _ $8!M֭^_begi.%v$,V\T|vPE7Y-g8s ǿG-}O,jsH#=kચV.3ρ؀Ã+Pߌď^ɁoAr_!ͯwo,ŏI$-S0c {&LB#PXe khlkܜWo/]0Be:zzۋgO/u3#sp6)D><b#<н@q|!T۰-յp_YOpg~$F9t졣g{~1f;i9$o|NKk`cf嫗=^>Z6H6|C>Å܁3WJk:w-@P^E܉o!l daӑ-ܛ cw|Mʈ :qԹEOTkyc|.^;OޚĻGqYƪR{[Wa! AFØ&w# uƊdĩK't)k_mfc\I\% FQrJ cI7S.\٨wN>cxG@I.uXMND L?j7whBخu>papAJ%CkH۳3q~f<f\\(ᨺ%B Y9yUTjb$pIpMg8v"]f]:>V%Us @Dr-qGlZӃj@III4ԫ[^:ڏm6lNa CtAڒ5m6[^^^qqNsɩz\NfI8لKQuTJK✜@ĕ5v͛1ɷַX,AZM`Xh42̅_UJE;oY6M<_Na\xj[.bX,\oPC?e2+AS~ !O!)?BBS~ !O~P}f]p.:ES ywt jZ40iO<)Lbbbtt3U ;=ߑ"9T}tgG ^C{4Ѳt1~}مD{՝S!\&-?YvezfNNa8N9v]ww79 xO9uwC.0 q,2 Fl6( lc@p/Dqqq'ju#xvT*EaIRgj"H$_0`YV"zhp {8r%χhu.9mz{O@qU^=0oww)w>ɽ)HPH<#ҴmF4txw]g*/. L-Wy@CS݉3!Sw*\ˠBDt|h"[9'}g#1~pp7 Uy)vH_[2zmorlJjL-jS$h6*j)6SZZzSӐtD/ 跋DDIn vt7艈xh2i=֕ M Q=4i_|;|׏pqqp>R[t"(u%tjq;N)V:5b*NM;7Ͽj3>^L72h쏔S\ =؆N'טݤ~cO}[^ꏴϮJUDD#:Rn!CD4|l4blFs(@oh^{zc(moܩm:NU шAt(jhI:VHDC:W҇"8Սz BF6}Յp?69/,K 6"i9p"Shdd:?Z=V YBT֍AmhP;/֗F4h Ei賱 ݔVLKS׺4w,q!Fh3B'zp[贁>N*9Q& lb+ML<Գ)*/?ZH3Pnq9-g"}ѝ髉 ͦLe_ '8G{Q:j?MEwNHzyZ{^HvY}JDUH diդ*r&nQ<5=$'"Rɉeo7 #<|RJDTKC"_eeS%u,YhԐr6YIߎno7W M@GPܺrN-ķSCTSwjVsO-*)щ$#i1GiM@V7QT&m>Aڭ+X:9M,\};/ fRj/r>kT2"B3)Sam"Q˩iS:o*V<UDDVzk 5Sa;M8#VFQ`5ѣ;y /#"ϺR$>~v ]Y6dׁ`uK譟=w'"Jk)9u|C@]y=KNϨN;-Wdhl٘ "|"zΜSnTdg}!`d[`y9ѵ(-K3Oyj[V>PrTƷq=H_H~>Ы]TWh;%,Cc+W/r:M t:V\!vnH%. **]G8[{%4&"{NTBky(ic?LPN5tppY|f҉])7;%_P5~eB eW8m?jTl`tMW:wݻ`0 2D*,?w\||C=<7cIHTj-EYfրd:x]}DvxiݺukժշFUe'NxС3g8laas*ЪU+'\ӽQ%YfܸqUV1c|xYPP0`@yS;{g!য়~_fԩSGmjg:{'=sL\\\%vZLL]u{}GuꔿRg_?bŊI&L씔/Z,I&qg4z}FFƵk._?^8} GD4w?sܹDԯ_FI$Cpݺu? HRaOp˜'6i>vΝ;tl͛7S#QZXzDi=݃{i?nڴ)^" ~ѣG3 ӤIr[0a„ J̛7CBB*s=Wʕ++ N &3{pDQ$"e/]Ծ}{"OrssGwŋsss~-|W0sLgsNf&N8c }7p*<Ӟww CL;OwY,"R*˗/?u} ,Zǽ[y-^XP(-DDDXL@DIII 0 se˖1 &Zi wwԎ2jfw=ќ9s~ǭ[>~%K Z3?̟?ܸq/ hf̘!+*;o~ƌ t:]5/\`bʲZG!K.ݟ8{wAt1&/5yDtC@zzΝ;7olS~'ϟ^zڴi;w|駉(&&>'Ϛ5IV#({wK~ '՝٪>!ڑ"Snooձc{NTfff[.443f0 ####W^邂K ONN.[nZyLLvJn7nj] hC|GZqv^dԜ)EiiPC܎Zy,@CBP*ӦM[lYxwK]o*>bR T*={[?\xqET4 SSS V-vݺu?xN*1)))Da)H KJJB]v}nŋ;wt:nΜ9JpqF̓//^X~%J>(//СCÇhgώmժN ?G{ ڱcG|||o-~_~ʽjX%t ?B`.^W+.6*XlpU$gdeO/]r5]>'o7r7х~3shӤq_-ˌ+V|xm;wبΗYc4kAvnA#EDJpm+Ю(w| b'9{W6!g7~FX_:qah丙%<8=ؽ G>}Q߬6jXԴL"j׺٪gl]:&lݲSjxW*uϘ>i03:2lo8lH?ǻf95-MDd2|}ޝ^d7>7"zqǎ{'UfVnҭ=;8 R'"N+B'?*[;+"Sս˲Y]QW-V,Z]Vӹc+u ufr*};a[Rrg%'vlfhp[V2t %]`/U б%_تE(yA)4 .**""ɜp1c֖>P`, ~~{>S6Ow;}1nFx"ܷ"T)V?O=6wcYUش#"ڶ㏽Qsi?"Z:"Z4F h_Ҳql}eoS5<7B+|rbSpgqoT"5MyLJ1ҕpՊOߖdrtj(&L{%Otb'tm5sJM|=O86z`?oMD D|.wбs,)r" 6o]%_{Ƴ ^}SGk"bێ}K{wT*5<+B}vZܱ0dž:H!۷ T*dc;vӯU=yoMy?gI9iP?YR+Ypc=o7\XѶgw }rZۑwf<ݥc¢?d>yq3hμeYs_aÎ;UٽoY7^}lLr9Q< uzzC&S֥/_M,.6;tT>r  (_+bQ%}|﷈XuU6-;;;;;[.d2TZ2˲RT.KR{Mg.b#A8xTuڶif6DNn}G.^?yJaG=U'^)+ޫU+X_cM 2h;=זlZ~Ww~8#5-39%m#SҾ^a ^ ,RzT* rwKu_W^g!ٵX6ML7y#Wԧ_Yf1˲:?{쥉OO|999J[+l'O)UP(rssR[^m cUĩs3,u bl"ں밄 xP]1FcaF:wli\"fDXZ!Dtj"ٹI%?Y7[;g^8o2nfDj%7oy?p9Xod2UcYdrBJ  9%-5=Av#艳!ADwuGmsŗk"j[2V=Q>7ڏW}s;GN^(2]?eYCG|jx#[w5'?N@ ,_y#ѳEE7^lJpHx=[K W-1wR:'Ѫ5-'X!څK7T嬦|-15xC-n>S&)nE]ɺu"j*کM+.]YбND#~;d(h IDAT&?=}22sss 9ě'^JЫݛ=0_ 0i#iYcGS*o:ȱ*va#/8Nq |sMǜxԙk7RRekb~6ܟ +Z՜;R2$\'"ae e_~;V+Ȑ_7NёQ}9hC}JEFfK7ğߴuϜx"zїʞ4Oox_<6w>qwzrCm" (yZs-w\Fɗ?8$&TZ!ޫkV-_<G~K6C3>DO9#GOSvzpȠg]Za^ pFw!rn (JrS~г[Ⱥ>7^mסbů0!,,uNpi6QLѠ~dVH[QQڵi ~APFSXX(7 g`4MU Bx+_E:wl]33s澿yW_ɒyoT;웟gxZZ/ZG<؇nfjҕD":u:A]b$v:7S**Zh2}܀k!W2s˖_vsݦ=|gLԗ,7lxOkޢl?ecofԴW\p3ӳ3>^/Nw_|S{owe wmL"q6e@ZPPP(*d2i4ɈILLvid6+zK.cVuϿmݴx3Nץm6d>Oݺj-nfka4qÃ֪uk7n:}~w;PTTd4(} 00PVjA@%t>l6Ly&B 0 #Je2Y@@Bp%lj\.J  98TZ[!ej;)?BBS~ !O!)?BBS~ !O!)?BBS~ !OI<l6ADQl @aeYqYVA<  $q{Lc:H ߫qǒ~r"<|F tB)˭))1` u:] ~쯤_yas^8qTFh,ļ@xlFtjvW-u/~e|n!| ˲A!)} 60B CDfBbC#:W Ʊ?UNDkzMHҐaǻZ]g/3?JXlRO|j5ZS6 tT*[5WLbbbtt>l6W\^V`x/..X, q2LT:T*Uz]MOOH0TVx)ܗ0| ]8߸ڈk.xWp?qߵ!0%qv,J$nW[:Rǹ.hH"p'(69 ð,YR øu 0BBS~ !O!)?ৰ#x)͆ma`wVUO qwOtxAyޭ@bZEQt/(V}#y^D-B/PE0PEp7 @Y>x/**rRqT*UTR]DQ4 7[d/_`yR" 7tnj#j,. y>;Ki=9s GDyC Z+!ԏWwߍlӖ*OȾpڥ+IcGj1(fg/b@;{k3DI$t/k83ohLt|X [K̸q]ڞ:}VZ͔KRrTZ@>`0lZOIRiHڤki}ا :6OIJMVRcwߚ_~-~mDթU/2|ѓBAJTḀ,+G?4"ںcxA j"AZFpMx,)ܰR) jB/_`9VLe_:Z,Jqn];=yN.hިTm;i뾉c8ߤ:Z~תǟ%a]|%A_">OjJ A\"MalmA,.]t?=upK^!Z_u+='Wo/1E}"P9{7 Pg\ !| qA:[~0Uյل 6plk⤔R{gJ͜?wQJ _R:w7W(TU `EҕȈZ";uhxIoD5/J bd]{Xx><ߵ~ &tZ/|S#cZ19Ƥk$7`ƑcHhW&nתIlR; \5!| ˲Yi}f#"MD va8UW^wI;ќO=3KW/1XW >~t1D5i.v&:(a(VZꄇi6ok/z87k69:_ynZ`|qqb8dJ҅(M*=@?^weڈ^ę|}F\sT?rߵ!0%qv,J$nW[:Rǹ.hH"p'(69 ð,YR øu 0BBS~ !O!)?ৰ#x)͆ma`wVUO qwOtxAyޭ@bZEQt/(V}#y^D-B/PE0PEp7 @Y>x/**rRqT*UTR]DQ4 7G."q. uZ-b 2Ӄ< I,X.WNy>37ǜ?J,66@ª$&5Yaa8hqBlqT! AiJ\8ʕ Fm(YzԨDɭԌ? R4RJ_dN[N.lHX,N6}W$ÝU:cD0 &v-r#cܸbc%KA 8VLeeܞCx]/^ww銍Z;|칋ݩM3la2dxBmFcaVvnɗcN٬I}i5uL\VcOLCk!| q:Nc W"|hq |:WNF"]7K۳])bYD*6G1_dUVXvL8جT /A_R([;'M(Z(JjuieJ ΔU޷Q)[H:qE-/VYFse}u׈Ha 1;~?Ҧu"VdoHA{|{ jGk&*7o/0kjR)ԏ4-+le`6*2"*2/Wo * pJы(ˤR e5.n1,҅U^>ecۦGS& }ztGnS_6x&111:PfrnwR\(aƝ=_nJ|-1}Y6WDd4 ur,4$wE*#@y0<_\\lX;q'ɔJe|BIR6, SE* wmD/R>k#Eڈ^a8t DI;e%7LJ-xT}4 o$H8AE< 0,˺u!0nL)?BBS~ !O!)?BSz ިN:h!@0BBS~ !O!)?BBS~ O/eZFlZ6 H$\V%Fc htGjfyyѨVZ-0;ll$ј֡P.l6{^l6 ^ľӽ"Fjq"Heڈ^eڈ^}C^ @Y6baVbHD,d2RY;lp$bAAZ^ \3ɂ嚖ڐ^چ:Fò B՚wsռ}rF.c$ FMDbhܣٝVo\.T!Gyuԏ ܿKE*|8T^V.cDQλ9˥@NНq ''q_s xTX|9Q3Ѐ.D/|Ֆ>=9qlZSsLף MbhR;~p}SPPpsU˥b*bTr8yՂ*\ K^0=C~u-((Xx!.?vj5WK]vh>lPٌN=p ފOj歌a$|j5\ۗi*䔹dh̤鳗ۏ3r&W^o'ߵSk"XVVeJXBovzCnԷs96367J˶7iXq\/ /uZu]%!|Iqqqt9#/w $9#ٟ8TVWeZי6-XxVfMP#Wmاc֍RsVuލFm;Mbԯk*AjC~a&ad0 27|g!/X,dSo/l2t7nԏ$?ީ._M73FѿvXlO>S#տw6mʭKWnĠ[L}' ֵmaQ?~k/8r:@9~̃ ڛڻrgT(.xzJp/\쎝<ĨsKWnؠyCÚ%(Zr,[a-fI%]7>u"e&flnkm٬ԧE&"M<ЧO үsA]~V-=ׇK~00̒6 @D{[q!=g0&*"$6:G.v;c#T;( A " *D$ A$b->'K]7Q(~~нe(I:57ϰatҦu8XBZFNV QL֝<鮹,+ Y"pUVm,X-͚4(67ROpGy05#otof/H~QD!ADGˠsIDATTXd"fwy&=#[j\d!>\d2}HW̲c Wf /dZ3!Y5-r3-岞]}Fv~1/p3 3ឝ;4wTPe7:<,Q Қ~W]Gzĵۼ[}e [<`'Ҩ/?(k5PE-z "@M+KJeHrU~lf9wBpN[6%ʤ& $% }g2$;[ߺEJD}Щ]ZL;*w )g"%D @[$N;̸/Wũ*Y, F7jѵSRcy`]}EGO$L4J; {^Txffnjz V)ᵂOjtA gNkgR*$.X%H._K{#)^z31޸ث.)9eيbYeԓM{ $p̘TAsg=}KW^+KfdQ>]տq|#1j^SVu_Цe_&Gɰ]1ѵÒ &wnU5jefvl)(RR3[4mPf]ILL*$sNėL5\#Sȥ~Ӡhyl3   e ׹ V_outŢYxofdsd5O W*ZFFVsb%tD"HBBdBF("(h_{ ɷ2#n* +JpSòC%ʹ 3HTFVd2oIJ\.W(>1PRjZ.ߴ BLTvlW (M"jg D=#^qm]0>@ pߵ!HVwmD/rE < /V1BbRN.knD! 0Pաnm 0 VFlZ6[zgH$rܭ$IPSOtBS~ !O!)?BŽl6 (b`+ ð,q[`j ^xW A8s0^y$Axw)XVQ= ju_E`}K k#BxLk#Bx PŰO0狊r'JU*T*t|B$Q x-ZϚK4"y/jLFղ,*y}^Qlr-q, ^3[~c)|2!J EQdW$JR)lƬkz.$*>`0P5{X)ÐVCTp oAN3%K^6&vg_듢"#Ȑ_P2W@_xVa^\E@5sWOUN DF<7qeCQxtǴn=:[ B"h}wUWh-PˣXjT, T&FtAMqǜ:, NɜSpS[ǦEiW6$NZK[q{(Bߜs_.qU|}S{a̶S3꺫~],&Mͭ;1kJ0tvv:˫4,J57^x˾w/[$v=.oΟy_%g5O~g:o}+7'}_[[EѫkצIkαGLБOz~hna3ᕕ')B76ƾsyK/koVͨ0?ƥgO=W,[;:e7U(DQ˯]GSEcF^|ͭ[_}^j/W{+W??qf/`'76ۻ_zV.W~DQ4~\ QEQ`}!l&+~Gz'~9EW/瞻oIS4on|kؚMΤ3Oٵ\t:j ut (Iզӽ7^sGɘ/FEQkk-|W}ʞa45Ϝ>u?;xcgw'9G]us/:j g@ &l6_>#.S|T,U?8dHyǧ.<S{62OY4#fzKzu.s|䩟? KϩGI A>`効mqJ-.NC/lW^B>߹aee׭}G| KPcOwY MM͝]lf!Ӿ;*+j|n'' 0dٲ ֓6u,*:yUY;UmUG}m/{O/jmCEKv!ahM0dّ6grRTsc峊#}t:]^VVQQa/DX6=_  qOF|Tњҗtk`Xl+N; Lơ@T*ɔ:>-N6NK}0e2t:](b>A8NR%=!8.& P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"H^b@I@z]E%Q({ u)D$: .X,vuu:LPBvBٗROuuu t:J8|b%IR,r CPrIeW ]qJ@DJ@DJ@DJ@2Qmذj ![notes](../common/notes.svg) 說明: 系統預設一週起始日為星期一,您可以在**控制中心** > **時間日期** > **格式設定** 中調整一週首日的設定,更改週日期的展現效果。
檢視 說明
顯示全年的月份、天數。
顯示節日訊息、日程安排。
顯示這一週每天的日程安排。
顯示節日訊息、詳細的日程安排和黃曆。
### 建立日程 1. 透過以下方法之一建立日程。 - 在日曆介面,單擊選單欄上的添加按鈕 ![plus](../common/add.svg)。 - 在月、周或日檢視中,雙擊日期空白處或者單擊滑鼠右鍵選擇 **建立日程**。 - 在月、周或日檢視中,單擊滑鼠拖曳建立日程。 2. 彈出「建立日程」視窗,設定日程類型、內容、時間、提醒等訊息。 ![0|create](fig/create.png)
參數 說明
類型 系統預設提供「工作」、「生活」、「其他」三種日程類型,您也可以自訂日程類型。
  1. 在類型下拉選單選項中,選擇 新增日程類型
  2. 類型框呈可編輯狀態,輸入類型名稱,設定顏色。
您也可以透過主選單中的管理功能新增、編輯或刪除日程類型,具體操作步驟請參考「管理」章節。
內容 日程的描述訊息
日程時間 設定全天或非全天、公曆或農曆日程的日期和時間。
  • 全天
    • 勾選全天:開始時間和結束時間只能設定日期。
    • 取消勾選全天:開始時間和結束時間既能設定日期,也能設定小時和分鐘。
  • 時間
    • 公曆:開始時間和結束時間僅顯示公曆日期。
    • 農曆:開始時間和結束時間顯示公曆和農曆日期。
提醒 勾選全天,則提醒設置的選項包含:從不、日程發生當天(上午9點)、1天前、 2天前或1週前。
取消勾選全天,則提醒設置的選項包含:從不、日程開始時、15分鐘前、30分鐘前、1小時前、1天前、 2天前或1週前。
重複 選擇公曆日程,則重複設置的選項包含:從不、每天、工作日、每週、每月或每年。
選擇農曆日程,則重複設置的選項包含:從不、每月或每年。
結束重複 只有設定了重複功能,結束重複 才會出現。結束重複的選項包含:從不、於n次後或於日期。
3. 單擊 **儲存**,建立日程。日程建立完成後,會以標籤形式呈現在日曆檢視中。 ### 編輯日程 1. 在月、周或日檢視中,雙擊或右鍵單擊日程標籤。 2. 選擇 **編輯**,彈出 **編輯日程** 視窗。 3. 設定編輯日程的相關屬性,單擊 **儲存**。   4. 如果有設定全天或者重複,則彈出提示框,確認提示訊息後,完成日程編輯。 > ![notes](../common/notes.svg) 說明:已建立的日程可以透過拖曳日程標籤來修改日程的開始時間和結束時間。 編輯日程時,系統會根據所更改內容,顯示不同的提示訊息。提示訊息中按鈕說明如下表。
按鈕 說明
全部日程 修改所有與此相關的重複日程。
僅此日程 只修改目前日程。
所有將來日程 修改選中日期及以後日期的日程,選中的日期之前的日程仍然保留。
全部更改 修改所有重複日程。
### 設定全天或多天日程 在建立或編輯日程時,設定 **開始時間**、**結束時間**,可以設定全天或多天持續的日程。 ### 設定重複日程 1. 在建立或編輯日程時,在 **重複** 的下拉選單中選擇重複提醒日程的週期,例如,每月。 2. 在 **結束重複** 的下拉選單中設定結束重複的次數或停止日期。 ![pic](fig/repeat.png) ### 搜尋日程 1. 在日曆介面頂部搜尋框中,單擊 ![search](../common/search.svg) ,輸入關鍵字。 2. 按下鍵盤上的 **Enter** 鍵進行搜尋。 3. 在搜尋框中單擊 ![0|close](../common/close_icon.svg) 或刪除輸入的訊息,即可清除目前輸入的關鍵字或取消搜尋。 ### 查看日程 在月、周或日檢視中,雙擊日程標題,彈出「我的日程」視窗,此時既可以查看日程也可以 [編輯日程](#編輯日程) 或 [刪除日程](#刪除日程)。 ### 查看日程提醒詳情 當系統發出通知後,可以單擊通知提示框,查看日程提醒詳情。 日程提醒時,提示訊息按鈕說明如下表。
按鈕 說明
稍後提醒 提醒設定為當天,首次提醒後,單擊「稍後提醒」,10分鐘後再次提醒,此後每次單擊「稍後提醒」增加5分鐘的時間間隔。
您也可以在「稍後提醒」下拉選單中,選擇15分鐘後、1小時後、4小時後、明天。
明天提醒 當提醒設定為1天前或2天前時,出現該按鈕。
提前1天提醒 當提醒設定為1週前時,出現該按鈕。
關閉 關閉提示訊息。
### 刪除日程 1. 在月、周或日檢視中,雙擊或右鍵單擊日程標籤。 2. 選擇 **刪除**,彈出 **您正在刪除日程** 提示框。 3. 單擊 **刪除**,刪除該日程。 刪除日程時,重複與非重複日程提示訊息中按鈕說明如下表。
按鈕 說明
刪除日程 刪除非重複日程。
全部刪除 刪除所有重複日程。
僅刪除此日程 針對重複日程,僅刪除目前所選的日程。
刪除所有將來日程 針對重複日程,刪除目前選中日期及以後日期的日程,選中的日期之前的日程仍然保留。
## 主選單 在主選單中,您可以切換视窗主題、查看說明手冊,了解日曆的更多訊息。 ### 管理 #### 管理日程類型 單擊 ![icon_menu](../common/icon_menu.svg) > **管理**,進入日曆管理介面,您可以建立、編輯或刪除日程類型。 ![pig](fig/manage.png) **新增日程類型** 1. 在日曆管理介面,單擊添加按鈕 ![icon](../common/add1.svg)。 2. 彈出「新增日程類型」視窗,輸入類型名稱,設定顏色。 3. 單擊 **儲存**。 **編輯日程類型** 1. 在日曆管理介面,選擇某一個自訂類型。 2. 單擊編輯按鈕 ![icon](../common/edit.svg)。 3. 彈出「編輯日程類型」視窗,輸入類型名稱,設定顏色。 4. 單擊 **儲存**。 **刪除日程類型** 1. 在日曆管理介面,選擇某一個自訂類型。 2. 單擊刪除按鈕 ![icon](../common/delete.svg),刪除該日程類型。 ### 主題 视窗主題包含亮色主題、暗色主題和系統主題。 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. 單擊 **退出**。 dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_TW/fig/000077500000000000000000000000001423264401600262365ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_TW/fig/create.png000066400000000000000000001156271423264401600302230ustar00rootroot00000000000000PNG  IHDRQ pHYs+ IDATxwtW?gf%[Ͳ% c1w I!=,n'ْww-ffNzBSc0+EȲ-x>sG\YWWw\& B^$ @{/Bq!BE!n`"70B! _/Bq!BE!n`"70B! _nBEC=wt)3`Y{7C ,epvkVvqt'aM?{d2sJkoo72ǿ&$3#CMًPL ((m)v|Cja$ryCuMCf;˒r"|:}>Ce?d|#a 8,vGXBtqťVT{tqs͎>2eG)4DTr΂C MvPD[2%MATQyI<޾[4|sop\LLLJ_Gl1t~TYi:G{ Qx3MNmMvUҧn]SAصk 6i &R 5K>[3{[\kouok{0Ѡye1CVvS՞~q?Z5SsK"DPF㛿 Q-|ehU[4F-/`s^na1cki-ogDd eVWcbÔ UaܖfVt$=r&X@AVq'oPL8=}qӜt07s|"p rSo#SSd>ϧxAR|>#E )uZMڒ[Viµ7isPmV.沴`ljX8+5? _".жW/t%s>poՏ?5 *:G<׮:O)*YSoxckr]9AhRLl]ftƼZm2Tgݡ`_4ꑓ -nL W|5V7Ҩ"0l[&\Azf` U6ФpJ!^ a λKUFًm ?Y7\mjZV EAM|*$suewjgcތk;~)zȮ$jEz66JF0 AFiniRk-9\\͊R\j&-JnOX˻6 @̻爫F7jo=q J4CEMH 6].+)+)Y`7\Pt[S; vTV@ǥ0%ISE1g`6`h5Vqs'K гLS1q o@*ٙ3#Gi `=@(F4 l$y\lJLj (~!jp Z=\ 6ZX|f֊9 J2,q P,,˲,ð@RT|Pb<~ 'yDoO=AwEV(ɲ_qT使dxidٞӭ핥[+zc[;&%{dխ]QT >;{oya/oӇ^(BE#!Q#YO-I ㏝8Ze`v-zf;{,~b3^XBDZB3O A1:+̘lQ';Q]]m2nsxM %҈nB^Bq!BE!n`"70B! _/Bq!BE!n`"70B! _/Bq!?M.v3L_Ñ$EQpX. # bH$" 뫷[eYaf@ 1_4˲VpPPB( ("[Jei>/^gF*kov 0>/ Ͽ#B0vﹿ,1_[Z&B*IFQ۫V].Mq/.pB;;D"H(k,ouB $Iٶ@x"f=T3F8XF$) Q )q[T$c拼R*rNΔy)ok0mNJY27QR t#~Kxz׶|y)(2{jv`-jMəxTV({X$k)[[0;42943% l|]yb)*B5fGNd6n.7v4]pUQR;h‰ `4.{si'!g8*WuV MXL$Gz_Q"4ǏJ$g_ߡ=&n)cQ|`]·QYt (O{KWkMfbwtGUhJkOe`5p9:&^we!tۉEW/»/?& mߡ=NɊQ)j ~gg ;/t{ mISFM5f^sK `/w,O)'S3B;1 v~ѽL"gF\TŜ~hy$YT)5$):Q2SdYM68R%kk[lNFM P`I<)uu[(i9>5}jWz,+B(ULGўqG͡/33ڮ'Ǎ^zrj75'eg$hԐNֻ!He_&ŊE%>#4諪.URAJR=`t@}jZvES%~1q G ٴe?R6* 34dpz^LX| bj_7E@,`:Xg}x\E](y%Ey^2&͆e8"it7_/.DfP{m - L&a| j_9獕׿>NԛI[jiB<_ K~'B24P#T]}{Faq_)my|@h,0 aF|2epJjfuN2VE EAJSyyb쪈0M"(*TEC3@!`vp'VǞoJ F;K$,]b+6Vrm܉$tmZ-zId6Sy<6Y?pӦ= 24Є՗,+'OT]xnSkhK %NݽasV-m߽I^>r'|Ϛun4=L4˲6M f9]H^k\|+z)a+hñ6yMh6\!'aJP(YhVt B1|]ο%ϦΚݿl^$ ךXif:h: & 濾&i/ۺ>ys"%znEQr \!$zVZ"h8z4M;azD"xJUB\X|l^#~z1OG{ag8W Qx %h5ϊv”X,fk]x<^CCF(i[ܭlwtJ$xxW d4^+⛆Q+Oh<'g7sʵesׄ?g@ex"B$W?EhAHRݎ`F,@FQTPPX,&I [+0n74Md2d?ݲDbb0jT*HJJR*Tx$Ix<( sU7AtӵsXϡq*R7Y YgupU7~* }sHp_᎛cܩP/'Gљ. r?z >5VGg庼Fߣg'6>')^ݹuٜ&4R>i@SLk7}WiԩSeee'4eʔD" Aޒ\.˲G@oށ닠.8kjU&w\[Ҏ˽oꪮHJ{odV9`OԐTa4ڧ f75Ecy}|Iac~f*zQԩVYbvE^!-joaQJҪF0!|wq,Z_ui5*L,XW{/^c^~e\t1ǫT/(o+rt?ޣ:QOF3=M /n$l•@kod^Ώh,Ⱦ?- uQ?bWEW1WË[!yj?~ՍJHSiWynS2󫫫nXNgTTTWLumTVy<p u=lMTk|[ՍGxXd JyUPu&ygc+i*WR_JГ"+K<4TqHtiUGk

U-nU~A xʆOydaT6XѣØmSu9Nh'O>ѷbb{ro$"{/xDrp/ۃ#D~i{/Fuv({v0>5Lp;oy AdZ&VzQԛ-\{!Mcܤ . s(T*{_~x<^^p80|Qwx/KB`{-YuKc(S +,gs*dIbt( YzO:7;",sN&{v j۷J=HQx,,''_?* Ze&+-UfioC[$wC3r$7usR;T'"wvu? D'A)? ~QjJhG:'{2X#IID'>굳a0ԚT$46UkD0=\xJ]_$uTsdL/]U; ir4[e>!I2..t~A̚2l6Ie gޞj 2 tw$j)7Uwt?iU ;nW6 2v?iV6hgDu?i ֟<ǫZ:ןCyn'W AO&+Su?*y좎5 IDATCO*AOJʉ۰"|ozOneY/]}l[C #p1 x\׻0^vzE!n{2Bq!BE!n`"70B! _/Bqb(HI peXeYanwpD_?RH$޾Է%1|ljD"\>GA*!x~kuav~B$1_Yۅ;Ba. ! 8]p/Bǰ/_(1nBk5xZA×/nTsG+iuR$8y=qRE+$jSnl<e;*x謁Cpxl۟>{}dm{tӥ|XS?kdwnNS^4Frl߿O;Ba_-2{|ylmvOgzUeu1OeְYz s=6LXRr{MyIJ懶93R<<@ A/n`w}aq>|NVt%7AƢ?+hsSCшG|2<ͭzרA:ֺ͍B,o$w8TM&Z8GstR%iR|0u.LKyK{%iLYK?1rʨ0pxU+&g-ˎ6U2tlU~W/u&eOU79N3zz]β)*{(WL/O~M=SK>rN+!X{eƫێ_yWI W-28CMҊw>J$kZcl8)+9S$MN.ן:yvp e瀡gE3iE4)T3 rqO*uO%r[nZq؎o//pf6~K;2xJm=Qa7޵О ܮtbb']O]\yGv/0!Ժ%%SX5(bcn su[ga@/O+~,>%m3ա=ʴztS??>1/izXcqWn``T<4dkq1@H<ģK;SL'crQtV\- ๼7:!?3#]Eb̓ [,UJ^.y0#ĺ_L]X{9ww uϽt;;Q$5ux k_21aq0$^E/~I8RE:fwE<(.W1+cT]ck6??]mMz~IZ!"0lLq(P`=PwTF+YwOwf|S$%y- }pQ1 9_nȻҖ"TGtOera`[ZdH|պf:&"d c#Xz 2[xJtvʙG+$K{>+z>[) F-Y} ͼ'B#O Xs|**r[dcx|y2Tl)'OvT\ػk̉{{64^,,)#B#k 1Jg{Gvb]8YFBHJ-LIIQx2!5CaxSEsGGK]Ug/JG/}.! ц9垻Fť%hEhŋz٣$$! M;{@EMo6xX+{D&+- _hʉn)F/Qx.ؙ&qq Ve Ak*:xE09]m?&2L~,>eKo :kLIK"T y J[m?O\^It˴mtV<9L.j#F(^?L{xCRss"TFe/YHE? k'vJvMt` >.DfБ!4L;reNMF@yKw˲,AR'$jFC_V}}i?Z1x@H#>Rs̜tZV3>=KH3T%^|G;k);YG|͔fô++]>>|H_/Ϝ$ZBwW<)y0c3l7<[K eO<όv IydyLHu8‹B?"@zp R Swb4A%&m֠ٙa!C\.eҦ/!e4_ʽ\>'k2W5.ejnωr,@(f#n}Icsݙzt ̴mtV<9!t 0Ʉ%kggO>/ò(g\m'VZ@ĄGk>`D*CcI}Zͳ"%8P7 m1}2x93_ ϞXЧ7jq0 ĸ3JHɆ涤nB;'wZYO'~H{۷6+WNm`W,( [}uf]U m`٫?Z}Zkl\_9\%<1"h>u;=Q5b{Lyu}?#Ιtڃ$BttDB讃BE!n`"70B! _/Bq!BE!n`"70B! _/Bq!BE!n`"70B! _/Bq!BE!n`"70B<pjmVȚl|J١bG;npxچVhCU<u&&jc=5)2.a;MP|>qw@E;bmRn"ӿ( {nQRmJJ ]‘ QVJDYc+x_%شn͊aẉp ]U_iO H, : I1b-W>"dPs+4G6nLwL8qz.XwUOL@#Uv]x~GR|u7"5}WUt?^Ěܗ;B,}cs/ h//X HB<ǗŐ#"ġȠM%o_H K֭YA?q/f+I`~z6\__8*yk 53ޗ[0n9yi.\UT~-dqNq 55+2d$dO8_~@vB>2O\޿/p q'{6Gkj7yz"ĭ)&$\ei/%+Nf2cI,d[5v4T]w$gﮊsCGF_56W;>W|*\~-(jT~8>`ᆱMZ2^u#MHU]{ e&w! XEyj>uZKf$%e3h~,dFV{x.p%?kT]}{f䌄nVuvƇzG(stz7Ymʟ7?y3,I@N~t׮*Hx!׼:^͒qAD˿pwl33",C]ٺ/jٌ}gkT!<{7"4Y`zT>Oknnz&_Rz]߉a"Q+ly7 LG/NRW,''Umf<29D9{Q\WG6E*R{G!s_`g~},)AYU'Tf옡6A 4"u!;vwv@[n9/c\ ~qK>+{h~BaN T3/ﰃV`K'uk8|LSI cfuo6V>5`X+p 3oeqnU.\*`7;a@Qu-/KK,O]kՐ,W o/>2_U/''Vi:J >)Cd"Xd?:uJYAϿ24&)*gKOO +dҥk ,/|;}pRV=` /_nj .+v|4wͬd .OM1Dhػ"ts9}?@~}j>m)yn-`-r[lmקURt6W_O+qCxQ>:3V;$UJZOdB\8]Tgeqj`·'E_^bK]}-&z(:Bs@JַL lk~Q3ҵ|./B# \dL_RG)naARǹ5(GK#ZC-ׂѼng<4ׂn1sJ=GSl6LުO.<6mwÕ@W&a#m"/˲<Ӫ(GR133EfBx_F@Ͽ&R*mL";JXKLw)S)i/ۺ>ys"%}meoE-/V?#V%~yN<:kyMo;l.iȈW}6Cz'㓶<ۼXu;M>޶"ǟZEh$ۑ)"di3?bڱ}wXGk)l~w14wX<+R22:;7ݘ\G{8NBt:F{;,MRSC?.QT%̐͠P LÙ}'eTuazɻ`6[7s=vgD֯V.4Zn|Ɏ /aoii"ĹL2YsGOU~@;L0?Lv(BG7V[D]lye|˧'.؉y0&\ <|t삱267*¼+ȬW?VtKtWSaղ,nyl>v{amUe-I*6;/:Y]tt{!d::RJ/B y3WvF^ԜlKkv@ ko(4w0Oa<\+ɻ0\$vv6qW,@| ˴2X*K%"D$!r??')yQ:*CC=O 0DwO?xbPoQTzƋWē Wr[ }MLy+;ꤨش$q(% "ژoEAӣLU2YgWࠈӵwtNɾp|je^KP' j+>DdetV~l%d(M5zXyκ {R3Ҳ'6jZ`zfN9/ N̚<5Ͽ4yȸ(JD@#Qm W*AJqןD!t+FҀ+BK0B! _/Bq!BkRH IDATE!n`"70B! _/Bq!BE!n`"70B!čCӴr pt I UoV`bYn\.P("  X]y,p8vlb ~u| #䱻u=,kZ= AÈ Z- )"(Ձ8ah2pzaRi/c| y`pw#",, B@o 7> B>h۠nH`vq 4j5ARtH^Q:jEt_%6X#*]p ޡ>H$DB'>eD=vCnP($I{Hd6 | ʈzXú; NaI"'>eD=vCv>B#A5|{0#C=|0=d=|_v]neiO-.7}}^=r[uāN%-gǼ;q9ǍNaikp8BpMj;3LX*wاG{i$Q~=lnIUyvI_; ] R_9Is{=MY/~D1 ͑.wMN\℃!ĽQ_IAk+q$)|}k3䣤"$9!RBXKOc`VH*!_ȦnXȠQ%, U՟'>bߵMmF#1x+%.InBvFf=s-/7ٳƏU<.4ؔSBЖ.T]2Uc5eڏo8b<'> &sK3C~[4S5J⧿8JچJ[ibS71NϚ<28{>'Zbvc~uȨbSCdAe m9%/OkT2 L[eyi1t+VBOzr ŏOI!8`+`}e}}uywҝ?^:x%yJ~}C1e~bW NQCB Uk)`47nd]DpWϏ U'Ynb'JԦ5a.qX9%暃ۦcN Al0XiGr"iʔPeD`#WGetg͎)XTӖzlGM!65zWTx6Kii ߧ! zg:N~Pڵ 6jmftiUJ'%7ۍo9ǗKľcZ6 ;>@FyTVxlYs aLU%NVUcLw'!s/~v}Lp_<\【MXt/6:ſ{ȘIʉ]w4Ƣ]l1p[OҔ~#]VM*y9ŗ{?P}Eu}[3C]XQl`X&M1hfn6o6fwSL6lL1ŮѨ]" "~=Cx>0wfss9瞫#*+.9S/u>nFhIR ך,H*2- `;??γ)F ,6n}?kK}\rgJ T-c5֍l(5Q.juq}2".DZԜ+r!ΝQ;еjCOT"^jO7}vSal4|6}*R[-5镑r?]'?z)bVue{ 51&Dru3Pe~x]CNgK5tY."\[WIL9!IQn 8RP H2h JK.mJ;%4@4ˊ=RY7~Ϊ%*A`Bk4@g(/,/L<[2|\ aƊ2QÙTDC~_jA@c kSN<`s}ö3"aOd{|]L~t _VY^Bs7SME4T/>XrlorkF:ԐRDzA]"͔FWݑ"DrDgI8x|IS|X9ʊ MZ?#(Cn6`[ggBMzRS`%MgT)ԲqȤ+YV%p-[,H]n$8H4|"as|Y[__=y7ngI.~N;B0gn̪qC'VNr[nl QNӉ38wRW_ܸBjJҊj롢n;CݧN'zkeqpv Hr;ιr^2_ L^ y @]q/;GyY+gH=|PS u좍EyӛfYKB} uչy +Q9 xQ吇Cqf|4ND |VbE kSg3j"WDM::t}בۚ*Tȭѓ#,]> +0uU 6Y[p'ۏ&GM8}j_7thDAcx)Ĥvu\_aR&~F,#Q >;|hr5?2L+;wF(Yiۜ}(ȪCuV )67ʀ3+nT]ܒ=8ҡiʄ莋ٶꫛF:lӒKjx{FK#h| 3XjEi;8"Ў~TJ^!\)Gu/;i^D`;t7ufKA2%vҒ!j)\Υ{%7@9.~EG<>COWVU0N>PzYlE9ڢZ)]*Qyߛ)j{M:9FMkYGW-zM}WyOkh9.$H3vcm_+CF7%#o lLbAQ uTb|˱MZ͝T*pdZz55`@m9UڤJܧ~rU7ѓD `Ja):R\>hL;-1 =1R\I[̙2lΉ?!$s j"o"762eD4JGS?oF;(ĸL,EwGg))RzRlXIi҈iEϦ_:W͉|-'gQ^ޯ },^|\N6XLt?km;6i9}:h= _4ܱ.݋ R6j` HnlG{zx=/M1FAz4 rߑEQE`0,K|8I{Էҫ]O!f,KF&9ш1{~c[dt oWBHԻ֦#z]c2L&X%ݖ^z f4MC(J^ZRHA_  Ka$ /A}%AAkE,+}ﻻA-B,KRD5\0&ɶH$J:G%mczBI,4iG0yeYBa2l+cRnWw=b4п!X"eYfv*YeY͍yH}-jl}p.qo999!r=MӶbN ݮ޳z f`b^m%YXI"}SHo3j"X,;&t]$I]]]GAmU랾zB{;ܟ(J"tRH}-j7 !t?3/_/Dw$Ƚ:oru;7R\&_Iu\J*q7. .OZͻÂl6-VKOLftsLM>UE7WME2<m|]w\Q+NHoV[$gm䦁bJ9Y.'ll'sM z寥LB +m3j32_n#.]poߤj4O|FB3>lwi3x/OG(O ՌE5 @=1 ߭k_WZiRHE 6dLVbz +kXR|*\r3>r]OLRZF%W.ZaC' q,Pdę|v)7;nѓWsm!w|ɸGkLeyyӋ+c~?GT'sJO1C {NԤ|PMWӟ[&`ՙw]8nD#a^.*7׌@I+w%%uvwh6)/PK3e( WlϧlyGShˍ֧{zHמN`cvɆN s3rP3jXZr:qY>WV˹\cBNhi ( +Ԕd<&7#K71۔ʦUS Td VX{c4~؈̔/I !n䯩RaØ.;G>ՅDupU7JgT4M#he-hQI]iC)ܜb r8/: T/V#nw]%h<] gW(;zj nPv#>Ghpwǧ׆D!kggD(+/Wܑ}Pe.%}nl:'P×7VD{^A0VVjMPIcgc3%Uz EXu#+JM\ח^+s-ROG ݱ.'%{(衝]ˮx<;I%իtk75FyͧxAhs`*豧<%j9 J}ΡY0ywԤWF5Rtu^Y##%|vZNĘIGoշ}׹)]Nqzlyܰsro#IX=> ?ZiETZB`D*/ Cmt'G+E {.c"TeaB(8+",Vky6`,:scR|t>1۫ |fJ]K>R4eiUkJ2c=:3r/_5SRqfFw .L"an`կ-hõyAX"L=7RxRDI3E<>؁(4ok1$UJ|g Rx{X3*g]g_SI]ㅭ;JLT 'H*m2]͏@6lvqq+ &*ZRM{~Dw]㪳uDaip\CZq M9gS׼UKY:1MVz. IDATAb&p< VmM~A6owgpuj峗M.۾ꅓG>=RY7~Ϊ%*Oڊ*]3G#\-К+<8PKk+ V BX"Lp&)(FgП_{HKtZǀq~ή8>mێk[ z!ؙM__1ȶ ;f( ]6p#*\XhP`j)hf`KMs [)UJ7u-Li= |e)Ba-G@}ƑZhʯ;WVtN_\hm,Gr:;jғ*§+i H~48jsE5|Cv:L4BLjWi5).hBgjʲ1ŐS!Y#sG j̝هbތ:tYgPras :s.:KU-7*܃#Lmx)*;`ԪY=-IWG=>i9l.+}F 0g14͂D,B|uQ5PgBhG?*%#\_\Zʺs{oU[[XT7]()32r9%8QR44E &i5!_\|<~ 1Ρ&AQUUUL9t8[bcEQmvV@vcTf5r^{Dq#ZUmgSߕoES5kNf'ھ6W\ϕnKFK^ D/'Te$mJ @3\#H@+aGs~9 ,^Mc=f)D >y_Σp6)#zr95_KEҹoSJ'N7ڝJ.P2︙#7ܰjo76 Q2רG`NAmHqURƆjl9zi 7~-6 2~xvPzMqG]BYnv摒RR& ~r69SdaT!1b$XpwR4bZ:uUsb7_y =@9Y᳗b_E(77WٻBmmٵvI{OG#_tqf(!:.݋ R6j@/TQOvר7cAmA ~Hxpzy?A/i6(0``YX C'5RnKw=,F#Ƙ`HA_  Ka$ \!ahfv9!x'D}2 !DӴs?ﲭCQm1-`}v(JX,D,˒%DQ˲beYRw>$K[28\Nb4MrDE"aBd@.^0  ~E}"۸At[at;=.i/#HE"DH[!zHDHit=T's_lq:M#A8 VC}mm]M:d4Z3Z]w>]`ͳR*P|v.A}H732`<ަlKGYO,Vڱ6 1_~cgms<qb< 2=B}EN㫑܇"[,5Q3֝[5 Sg?X|*A;SH@m7_וVT..b.LA~ƪJzZPO`*b8>W,9犩ע}&;>%:u56iK _t?o :8^oF jk *zOH1Hh}zt+^]7PlpY.>15jzpAZbE_6@Mdo⹖wR } 詤149'"|;uV_>GB3w8ukZ,6 xN{GQuVc2W݆y7΃ⳅ!c:\CPĝI5ӷeV͜5o_SQU}+90M<;3 ruثDuhA#Ԧ̝ϊ$g;ճ'Cxbf`kE:4]u+Dಓjdž->t_n{}i`^>_3zKHw![ Q ۘ8X)Z lMQST?EQ|+<5>TjYY!tWt(5/6nQNFku%ə);RF.zPGrYTΪ|ᓯ"Lz@O{úXy\9"zuͭS(ՌOP[Z lOz\UˉC# cMܞm-$;vڂ r4 1{twO^мOļ<3xw{?ZS9eOA4v]rɚ?rm _2\[vj<shhV' ()(.ڕaS2]H$UK7m=V۱} L! BwkQ~v6檯߼T |GJu8Sn|Ë *zX#q ?W,Mo w>_}/zp%.Iܼf[q*)42 $hT_o0~9%eJy _b毠pn ؠq^5'y)i0fۊ'7xˈ]-[LoشnATFpzZ_D:G>*Zwn}e0WTTb,G 0 we\e-"ED(hhܖTlw]hhyKMղ 89b$jFCJFhutk!H·_^irB sZ}~ ~YMy Y3rDּf|dZ.{织@_ Y$*{BTP~Hpv(v Y=A—Aؐ 2D|Hs8X9 r`pō[.,X~O4BLjW>Q41曚_;'UW0jjkk@!sޙ ^*Lr}Ѷ3e@ A`]o6vfnZا7o@bT dF|х +"<:4!dt”}+^e/@zR7ڿ9;IvrA<}p? #昌z**2yĕ 4@0j[f ǰC(KEH#\>P7Yx;H䃔}&@:cܶ)d|!&v:|mPL"]^9lA*%A+fv$qLBt[yc|כDHE"o[Ǒ1.L&k^/фo+EzB盪=9ۖH$j jHA_  Ka$ /A}%AA >o%*~+R]UXG>Eb w4<쥍q\NtmqB+״{cBTpۻ D@- ci ~ сz D|E@!xcp~Z.m,<,| zljBiX,˷gR,E#z5\?(c2t:D!2q9#Sj&O n& Z/q[lwU?<RJ״h/W%V&ԋN,$)ǹٻDD/Eڿ~+R3`Iw cl8\wqދo2fe!6< Zfߒf&8{8rhT.lW)DV+E 7,VbVb5 ںzgaNWFt\{ wX~O<L, B^B JFk}O-us1MW!Znr ]\_^aQ$V8H)SҚ0ˡ_}`D3 CSȚkVY̳Ӽnm"̈$z]hނ鑊6Wfu&G_:{XkFά߸N vU/D%u &U6L;ĎfK?K93$Zv3m;/s*T-7>Z^=#]{s[NOU<gxv:5n~Vod(=41&AyxBqQ;uz;+yYvNX9ޭ!*iZ$#9ŀ i<p?k~-$gfXFQT"ZxyEUWg__>r0Lu;3^/qǺ1>3rMcb+lH?9X,x; 6ߟv|O|.k=90jó=dKGK;V~ajO~aϴ~UK?t'_5D0ۙ~-w%. чu?ԝ1`g 45]S;Rݿcb5ap h2!+IAi?.wlnqj J(p웫"^/brjj#7"_o+Y/ܜ~dw6ڿCR#quqԏR`^pG =g=djA..W=Iz!$?W,Mo w>vڿ;~|}Gӷ{LhR o\*r1e9#YEڳɵA0U@f`U_|OԎ+5ؖw`EzKZ6|u Fx咩>#_K]adlhB4v ~lW ÇWdݼZq{gR->6aj5(v~["l5QY0/@#?n6j Gխ]emĂEA5BHdpnU{Hd3 u02E _ at EYNX,wYM,p4ع(D/F =9_} <'w!$W(O⥵wqދŸt0& ZVۻ8D_Vg!Deqwqދo3 CNhȺmAi4L}@!b24@to+Ѯaz+[?ߔ+JeI@,T*)WFIDATVXVJ:ΐgma3՟ep^`8AܪE:8 /CbPV<ZK>ΑmG>uR{cBT7 F{tu(A'SŲ#ZE5=gIiEbg=D%AMa$ /A}%AA >HA_  Ka$ C 40FvDGl˓"8y8{HO&!hOQD |gqTO{}ɧ*_Qzɳ,9<uؘ_6g0 bE4pb*'ّ j{}ɳn^3XsNrAQ:E-S)oy)n+By֕s6ez52C-W#E&^Z$T0ɼnܶ;1vs:r%MMl]~H7 !DYBBR'CE9njHڑ[i`jH2Z>ׅ-Xߚh|]iI"`6& ?cUP%\s=s0dd1aclksk>XC/NM: $|u1a\yWЅ(I4 BeQCܑJOmǯUm6|sloOa]m5= r΋ܻJ.ˍ֧{zH9\y~/,e{2OpQӃ ,ڰj $Cgey`ߎ_|w(5ڗ`JI<^_a"̸z:Ǿa8{5XsR*hn \N\V2h;i^P/M}u8YO=*lwyͰ!xR^@Dc(j|PwG&K_M Rg͚"pqC)|wr*7Z+)HLّ2r:ˢ ?wV- |<ng+{ڻDu w9N-ݖ6w kNwЬ+v߽@0l"aUڑbdD,c 'W E٘v~SI0Wv*qOm[ /.  ?W,Mo w> :c8?gWguK6mǵ-f/ ؙM__1ȶ ;f( ıe~ۍ6 qeƔWgedh& T3nUWr90`V9zԜ祤=NBo+R Z[ްiݺ>">#cş۵9$|uMn-)9b~hZpsS`cYo/]gi9W/y;qDo_p΀M+Ъȹs#$WR31`F~^E^ܹ?6̻ܖTlwϬMQ44bSq0DѐRQ#ğgZFT'?-?tH> 捕@sEΤLwXobR񂭥Ǹ7oޑx> :u v1J̹\>GdNI2NѴ R44E &i'@kBF"(x}^ӓmhsp1ck'c3D-{y(ҳ@DPnnNd "N!(O6% ;RIω*l;]5uƀ"K^orj%QkBaH9;06rn^-U6~X,?2/^CXCd1J~PvUfC}^7ɢxDD"!%z`0:_x%5 HE"D-r=T$Kd!Vf3EQ.6H8Kt[ycODt߶8#c&]2Lu`# EQz?iw*DnAOt%ZBZsoy`$Hh $R 8*PZ2uP>?l8b;**(XDĐ@ 9FL&=ݜ|ﹿ='ONHcL$EQ9Kݒ$l>|@r>艚BAK!Ơ%cPB1( !b _B1/!BAK!Ơ%cPB1( !b _B1F(,ˊD'/)VtyƘ”^맇ۏ]~)QW&#KR3=9Z544n۵1YiE8]s.~$^ޛY$zl|\|ron^I G:.e6M&/$d2Y,$p:4οg wddll%`d dzYt%v L.,'$$|>#{+89. yMs*Z6K.2V5(bx-k]UoJKNdAiշsFe6rN=/gUBRFt H:BչEo]V;`0iˮoP#/ I/93&e}%ƈ~9&:&5ԹQٗX-1 䂡{og^nj FHZx\m#/_oCfF,H/T< ,ca3z}ӗ'@.LoW<]Ry߼K?:MZ79Slȗ-!ٽɷM?qsU~ҭxN*^ bn9r܂l,ח/S<В᪁w\t-Ft=s;K= &gѯ9Px0pݾzٞa:(>w\j=q򷏷_=ʎoj_Vzݽ( cUQ^տ@`?93u;H4&ܦ1u_탑(cg$)333\ca#WNz%gS\an}l`?--tpn6D{զUF@Hapt"$W7#w4ƞNhfEz, ܛ;qQ=/"q16OD(9c\G&2hu-z=o`d56oRH)G5BWܡ0yg<jB@І"pVb<"9W6^ cQ7*>ZP)S2OZ#-t(Ql9³k͟]5e%N־wj0 iΣ۷{Md/+01̅H"e]N_ Kc:\Wu,XPH=胆yt &\%^T-^;[>Jfnfd}c 54X &$wy{%_ɀR6EI{d}i%1La@uak3` &;NF7pKdu5ڱ|=Dtv4]X\/t_!D,\+i 8pkwktjkNi}IGCJȽjDMow+Z F*$z.(;/C b]͟` [0(*~t<'Bv"o@i>~ o cP!w|WC RrG|} M>e`y~%\qü[ջwW\zפ9}{u #{^ڈ2<h.|c[^yM8W&xup *+?M{]5=C̙i%=6Qu=xvxI?YY*GHKqO^<_(ωhƊ@l~I)@͆/BۿmU{g;<GS?˶[G]?1/{Х5/=/(%(7QZ3ZHQ,oœ\6`}(Y  fKHO$%?nP>_\3ޡ/ZcI}:-T9 :wwS*@N쬄~N8;M(K8YwDt979K^rSbb7nUk4Kفw.rttluf5j,I6p)ք ;) ]1LF!@ ν_=0%)+gBI~,oY/?hwtS%ESK0&T"̻ }Rޚn6bV\^Թ ?rꝘ& I!PR!FVs~[VNǜ iLzZM%:kҕ90;ΧGm؞_y,m$YL.0D"#9Xr&[տq1O4pd~6P($IC;rTU BFoJS<VZ]\o:篦iBM(i'nqlH\D=tk ҿz'UE/ jV@^ȔvDir9Ct^Q$I>/11YV.4M $nk$Iycw`eF+!(DCa$:ןEB!á(ԉ\X8hAUUkX n}$H2]~*;/a# 3L&lf!6&{%8p$Bȷp8с-.+b:B cSfSGyd%{T9Iɩ1c$E_9F=;=?$)9tz,e1:!/!BAK!Ơ%cPB1( !b _B1i^IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_TW/fig/hotkey.png000066400000000000000000000277631423264401600302660ustar00rootroot00000000000000PNG  IHDRLc pHYs+iTXtXML:com.adobe.xmp T{*IDATx{ T?(H5 v-]}*]Sڶ݊hItSaK)EEwtq)2ĸWL9?3?m۷v̙9^9s>MD:ttt<~xCCEQ+VDi}iӦ7ASSs4Ms\SSo짟~Ųٳ !}}]O>JJJJJJOnnnD---/_s玅Ezzi6lpiYW[XX::[PPPʚ;w͛7̙3hР!ClDbŊwZXX,X_~4MGx+V|mmm7o ill|Gy%%%ssswp8ӦM;r۷?vׇdˋB&Np߿/M]paժUCeK:;;K$Yٳ,:::99D&0a©SN>=tP?u][[o":;;;wnĉ eeeo]o߾ |~kkk 0>>>>>><ڽzDӧ_t ;vjbbP(x񢃃L",--uwwoii!$&&p8޽{ɽvzja!cǎ4ik!gϞUWWŧȻQս{ Bauu5!p֬Y <Bjjj!ʁ[BB,b:={ !E9;;988+**B TQQ0 0^;vvnܸall,{(jE>}СCf(((hii ¦&Ddɒ={^~c߿f" 哒tuu/_1sL33GFFŽs8*5yd> 6%%\]]UUU޽[XXXPPpIH0wŋ;p={̚5Kց|L]e֭[ss{lmmՇ:\OOϱcΝ;-0o<{{{r)3f {p8ǎhʕ+7n駟ddbbtz޿}􉈈`44mڴnݺ G?'##b# E"E"QBB²eRSS !\.;--ϗH$V?DӴOrrUΜ9m6Bw@UUUeiihkk{3fxxxEG!݃ݻw̙͛7꾣>"VZE)))9uꔢb\\իW 'ΝMD deeB455) ?y$!̌-˦/iӦxIII666QQQgϞLMMݻwR```sssgƓ3}5kddd|ئ8D&9;0WVTT֭[nݬGK6rA ɓ'B '=fϞ-yfϞ=eZ6?ݻ0ӧ=<<^$~׷j޼y%Mnnn엛w'%%40 ;"g{ $0ov|++#Fݹsgȑ#FxbYY~'~,666`ĈO~CCBB֭[uVyyΌŋoߎwss[f+B-;!Դy˖--*--]xMAA/Bٳ'Cߒ bnnkދ\߾}Ң|÷o߮})=,,L^^ѣ<OGG5777'''"""''rʔ)?>x`gOϙ3GZ)++BSoa^jdd4zhOwYظɓ'Ѷ>EEE tY{mmm cAAAG9r;޽{BUtttrrݻy<^'}tM~~{>i$PHtYYY~~~QQQ./_211/_>~8''틟l===V|bxƍ6mjkk{MMM$KJJBBB,,,]vL[[*<<<22ڵkB3#߾}#""6l@Ӵ@ Vkk+0ҦFZ~~z@@ooo~#G >EQ۷o2eʖ-[Ə9w\OOG/CCCUTT֮]rsseR Vyy9EQ!!!B끁7 u>>|;_ɗ# !ڄk׮X( MMMiM1<;0O 7K|~JJʜ9s ݻ"355eNqqq!O4믿>~̛bcc''00ݻϟ'=z4<<ѣG[u/`wuXܫW/eecǎ,322RWWr}:u+LF}\l]Qt.WPP`bb|ҥDKK˗ڵaY~͗.]*++知}Ν[LGGGK+++b~cbbbbb>b׵MMMUUUBŋ***uuu 3 m۶`ݻwBhشi;l1 SQQاOD[=zh_>55cDzKh0+Z-_|qU---BHvvĉmmm/\{n8dϞ=G<oƍO& >W?aׯ_Ϙ1:))iϞ=322?9n8uuudKKKZZٳg\RQQ.\dۧNz]UNMM---MNNn 9uꔕgNNbSPPoJJJ*++KKK_ϥD"TWWmڴ3kguRUUeggO---k/_~73VZ%!??~,?!yyjkk؄}óa+`gg7a„0vzKKKpp:9ȑ#G۷o…eeeg0JJJ*** bٳFFFo-@tPPՍ7wڵtRY߈,,,*++|>醆=z8wMӍnvvv7o!DKKrҥһB(++_p}ʕ++** :ԣGaÆ";;{РA\.066ə={ݻ7l؀I ennξr>uvСnݺBʞ?ڡ,e۷_|cjjq*++gee 8أGTSSSBY>+rrrŭ#. s(j:{&&&nܸDXAAqqqxgԩMMMkmmurrrss(&HVX!p Y}]n [|[|xƌK2 f'IIIoNJJZhQeeeffAtuuuuuN>p8ǎȸwޙ3g6oN2{(8p`߾};-KUUŋ.\hry|{{[nM6# E"E"QBB²eRSS !\.;--҉ TUU !.]*))_ z[z@ صkٳ-Z_UTTϝ;'HpBTTTSSSlr5ktݽ R/NOO1cNjZ٘?E__%%%DEE={355u޽JJJ5#0nj.;<44Ȉ]ZQQ+BH}}L.*322tttOf͚罹_$&&*(( 2a}xwvС'Nu7 MD )kjjR~IBtn^X6A'^tIEEwEihhtN]EQ~ƍTUUmٲ%::ԄB3ٳg'Onmm-))ٵkW'|^7n\ss Ν;וMqncc#F?߹sСC!!!֭SSS[nn///X$%''+((hkk^zd /^ܾ}o߾5k̟?_"|l3x<--[fddܹ妧B S]]]TT }||߿ߙYYY!ӧ.0 [=>oeeEYlW\) յ .|/>A}||vuXgϞ=zٳА=Zjƍٷ㓒VZ7ovN̟b``пKy.yOظɓ'Ѷ>EEE kkk0  Em߾}ʔ)[l?~|ppܹs===;-4M]VMMMKK+;;ټrssْgO+++444 ==N>}Æ )))MMMϟ쏣rSPs:$cǎׯ466vLnz嫷y? A,o߾x6liZ XZZwXaCCCo(ww Tѣ\VMo߾+WK5BĄgdd<{lر~~~FFF>4hPfffnnng}^3~۷o ¬ &ݺP6am۶gdd|WQ|>o~|>?%%eΜ9 [QQ㙚2 SWWWWWGӃ~ӧgLFQڵk僂n߾㓒BQsj øBBCCڊ'M_f;;Xi޽{󄐣G=zH&*))cƌ\d {qwgcd(++k…H$sbqPPІ BCC>|~txvd''0`:xrB-;!׵MMMUUUBŋ***uuuov(1 m۶`ݻwBhشiyTYf=zիWݻ.]b?Yuߗ0}i?ÓU]@NN@MMmرp'ճgO 3fݻ֭[mmm&&&%%%2|}9җl>%WZ{[ζljj ah֭!DKKjkkBD"QMM z/;]zR}^EKAalllΞ=+1t-_!!!Nyp8N <{LSSsɒ%7ndkϟ?U7TVV:;;RZ@AAAH$iiiaO"""***^:uGq8XiVO?EEE%..V#ܸqcBE(驩~MX4M{zzܹsb$'' jjjqR(l*ܹsP;;.;B Mӛ7o^zu=իW3fx}{7!灁8.UwڵK(Bbݻ7tG[fii>`;wJ$=zY[[=zJJJcx<[ biWWW7,,lĉ#F8qe.LLL8pU،M?|=-Z~/?~ɉͶ'0fcƌ)**>|8rܸqogذajjj+WիWqqӋ7nܨi:4  HIIa_4ֺ|-;!óa+`gg7a„0vzKKKppؒEoҡ널'O^zUOGo߾ ͟? www%%oooX|Ykkk##i:((HSSƍ^^^ֻvZt)ÑaNӴH$zsD")BQQqѢEz5jԥK͛w;99M4ޝwwwwqqy^ai/"ĉ)qZZZSGt.\vʕ++** :ԣGaÆ";;{РA\.066ə={ݻ7l@Q<]BQԶm'OС$M;w!Cߺ^zekk;k,>ҥ .888|fffF)ںu+.p|ss#GDGGظr8pWW`JJٗgYYYoU ݺoEEEʕ+؅ :tk>_NNӓ}4yKK !$11Dnnn^z50`ɄUUՁر> 8glLUUUNNNnnnEEśkۋD"W{?~m !BP^^>))IWWw3g433KMM?~|ddd\\ܛ->Ñ^QF:1bÑ dgϞY*MӁ֝;w6mΊ0LyyygB|~"h;wrŋKJJ455\w|||aat$6;.HII͛g0`@nnW_}S[[i cBpʔ)oߎӧOvv6;zd„ [n-..-//֋/RRRi;[hΖH$\SS'OBؒ:::Y !׮]{ꕕUaaȑ#;aaв1 $ !bxŊ/_&7nڵ-!O>}wIa|+++BȲerJǝ;w333UUUSSS?A<;immupp 0 SYYYTTTTTTYY5 ̙#SYYYGG0% 333{{{>_ZZq… K֭;ŋO>5bۍa~Z[[1446555dffbGGǔb!r'O\[[~ǿv~(mmmuuukkk0LIIɛO'++k…H$sbqPPІ BCC>|~tx6'Ntׯ322ƌsN s;;;u۷o?}iٳg:::WH$H$^^^ EQgfG$$$,Ztܹqqq}u/ZڹQIENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_TW/fig/main.png000066400000000000000000002262271423264401600277030ustar00rootroot00000000000000PNG  IHDR^|a, pHYs+ IDATxg\w]z/ cﱗhL17՛\SL$Wckivc$v t>3~`E . |N*>>B!` @!B6@ۺ !BhB!L0"B!!B!B!2hB!LX[JFhyVXtYeĿ" l]aH$l]`45^yb T!H$r9x"Thm] d]7hX>TbRX !$??_Vۺ U !8jBppp(օt:`mE4-R#hda볲l] T/tWWWDbX!$;;.\/!dZqCBH^^^vv60Eb6gȖ <;;;;::_]:5ٶ.He+z>??֥0BHfffffD""ȼ\4MD"D"#FP-0++ ? h4b?2jh4ںP(Ne1 P(l}"Tu1b?2B=NE@2`8.;;[&YcR4''8krű_,Ȟ'{[sΞ朜)FgWўsrr-seVCG;Ĭ;e@uT6\ !˲YY,u:P)8\B_[sw2vA(8qҌͷ8;nl4 $ ͚Q'OQ4 6R,[x$8،ӥ$#BY ֎ Xob5$&q2yuq5oƨTN#Gj]B 5#GR -Ȋ>KLC!eXfMZ U}^r!-jŝ\s^9xlx7^Kh.MjHD[ZFFAy޶GVh!٧VlZAХ&IL̔޶/o\!TX f-~Q*k[hnxR]xW&{y [jH\~?$+oƕiOuˡ.ǯ+~ֳkS<\ ՛>uά7FDU;GbP5F"d]1l`Ϟ>Y99Mo@6Wk>qP^D=|oJݘu{`A.B@bJ=0Ϫ/Syq{gEYnD:O߭EY@(ՇCw)ݟ#goL%[>vKC=&!䶍8UYZF_͜2esӈgXԶUhxE?oc~+ ̸o ѢNC'rv7&%Ymn2?Of&{й.]"^Cg۵ܼg{&A`4r_iSF V-եtpyRBѕG{z1D\<%qvUEZG(XfѐRԇlߟkzbἽ lЎCO=&xdzhS=FbbY6woOw«sReuVF %]|`*77VL]ڻGFKNLh^CgxM"5v-(0Bͣᆿ_}UK[;GNvsubeEGVC,OŰ8E8_"'hC"63o!l̯_l+{tpL%X}MʆBΝ=gT6!۱hn|=$Klg|5yVH/|ZIVKGmH7ԣkv(#`U٤2M5υPhMMB%%^11CԙK7npUĥEYw[ypS*#HAfZBbQ!%vtvU; =A23j(Ks.nrUuG0Yӓ?~wljP ݹ 22sU1Dd;gq񳟼[(7潿+6XOSyѰQ&N8 ,IIҡEr!<pΕw]ȉD\.MHL)zJ7T4u 3RH_bJ ןѦf]40&gxUS`|UPi.]iA-۶ *kHf„$ d:^RSx H~əq3U{/>"2)EN݉{XAS- ѰiXpvn )i>}ztpW.>~q,Rg9Lz)inl}YZٸCa%PX{Eۆ-TլTt;+h@y{6 `w.$˂%z~VnpTyBK%~q h"왝( sws,GR oҗAct u"T`ϖzЌ=Pm]\X6Ez@bRjO$fPXplhIkUXcSS!$SҪ}`'m$qp񢷭]ƅei( ޞv*`o>U[ߜ KώHA- E jKc2ïG_pGyZ5%bV"IĬX,m5Uڼˍ4 q{͒x9=,eYG56=[y3R)Ra ӭ‡5 <.|Ec'ĴcqSRJ[~;RuB˰WnRer4SKi4:88; " >Е,5w%OM1u<3Ui?T*Ju), %żq"3ϫuM\\\n5MƍIHHaTbrjHp`prT9JNNM*J,aX/ !͔G(ʢ+KŏP-hL,$2yBrssFB@D@DQHd'w(ʞ.̞"Ȫ+ `7'1T/XxޜDR~[`0 Ϗe+{S al] ,bF_q;*JR.W 7"B*٘=ˮVyB5vP.....` 2Ap{Mt:Lf#T i+$dtnHdO_蹥P(҃T_}gT*ZmCjJrppST Vq=2J q^uA2D"TIJl~~>cfJAJTj{zP HBiF⃄eYGGG{T(|Zm Tm .OraDV ^'TuEd2BJvyCu\ݍ H܌F`8Ϊ GUnvG޺x(iebH$rFE .B((3r{VD"DRSi(2 c1TYn(!BPB!P!B`4D!B& B! FCB!d!Bob B!VCB!d!B`D!BՅ!B!B!2eB!d!B[ B! "B!!B;B! "B!l5D!B&jB!L0"B!PF!B&jB!L0"B!PF!B& P(ar!d! E*.BRQۡKa1EPT>繰$aJNW)s BdHQ`.H]$ɌFc /0";ה!vt2y Uhьq!)H+uq>d`W,싃{9Rࣂ g@G[!h*㽼,X:OHє1V[]N"غJʇOoW@`EI-᫞૪ݒ!d^o"Xq2 [ +"VeY3Ҟf\vl"\;gXSa.[bzB0V ZCY(L:qK78`Hr3ޱ?W䊼"{~qHw[:v݇&͚D:fDv#'_K85j֤Yd}D嗒o1>zCP\Y'B ;[*P Y2l*Hqk7cJd0O?g 7n!c7C߿[j.HzQw % 3<}DtŷKjhk@>^JG(>km]˦R.iiK./|nv7'v(yo(cah GhT*6y+8f=ۻP$Y,j(%g>/I( ]9_xde%dZO;{T WN=@вWE^$Ky!nq'}:|о%(lnWWrF 5R, iϮ'4v:)E1>ö<{{CZw-J6$wl*Fcꌘs9XM*9apcS$m&i?^u v›/Lof~_9._N=7@W,9Mdk-%{[޾x~7>k Dܔ,0;Odҹ1/xeKH.Rgݽk q!۱Ru1xuN؆V їNXǣoV)˽{sϯ+zyioj!ٟThn]|eKN^}ýqNo\ˆ=gڼ0 RY}> ;?z1ۻmҠ??`81 ' X=y{{{ȍ]-mڿnCG] u\BHjqk3J=K[ _EByiMT3Dpwhg+'v߷=հ1' QՋTa Y0w&PMOm{THP?օH!)Y`K?l֡lNBWGHI۾E5~ݱ͕S.ns1&jD YWwoW*C^ڵRm{OҴHI!_k?7 ϑ$j?]iǶ^dtP )g1U~RxiSג!^3M8Ro{?_+wuV> 6_s=/_4v5G虑O:M# b2@3p%܌AxSmI`Ӗ8t5.slpD,`HeP"lgH9ӟ(`l9F}|f啅mgb/_(/G2;[%=ڏI3!X @pbs){Ɍ݂?t\X0~CYm5dԻ][_4v¨f i%aCیy۶pז:*_s_#= ۽4ԁGZr@N~Cл|k9+r}dP6ݱ03Ҍ7/˓56tP+Fu΍zGJ)q#ǧ2~˅@9Vڝﻼd`?~pqm4LĮ :Ggd;# |߽VA>qknur#Ϳ<r49o+?ą5j.ÿA7l]:k`k彮8 IDATFSm̊ѐdi ~nEh!;5AM@IRy81~71 %swϘx6>%TL:xO©U?+HTck'j]"GtDMnZ}΁ ,u4`hpf`΄M|?ԢoDI [!P)G7qn *޿/ .^fC&ތZ@$@掂iM hh9_X{d+-9ao-& v+ l.AGd(F,*W"KiA(w 8G9QYɍڿ/ghVun@F/k~Y|oi(D)q!+<*6;%)DʥD"yasY%nxpՒE?1^޼D]#S 338ɈNj?lă_x^l6z%["n6c8԰rz.hVG;&6ۻ5ȣ"-MpƵ75>x`an-O@3v\NIھKCGM{Ym,9JŹ6/TFn?͛8]9{T߷E(h¥1F lGesM!ڧӰk8ff'c_ke1DSd"D-*nnbã\u}hȋz!TФJf2 `Ì?B|zRx(t?˥6]sV$ƵuglF%f<KUt[DC?v$lm+YbhnpڍԼ ]ٳZo.+eSeLP%_r RJȌڶԌHDJ77GgIM/]L8#(Fߢ)cAr4̋6?l>qD8v(\ҾE hz8D:uХujo{{?J_|tl Fm='{tV[1oRMyA1^K̲ܕ?7fr^ rx/u D{w7 f+,=tƑg~2C[r̛9ؿc=q"X ^J-`o5 bhi mYc[k5gmTӔW:8ۈJ 7ب LZ^&۵pC+>Z62M'rT  ڿo,tP(Z$H$ f)`DD}"#vkĝE}/}cB()ثauzuw9X4TB@ [F{C .Y p+t)P/6Ŏ0NGt1|T[ ]aNG` t e{8t v񥷯ѺO)f;8t6.YECJ"W) ^~H9@_Yw?{s4A5Uƫm{;n7'j6~2a'krgoEfoʫB|ݬ%C)e|^`"LéW@4Qg0Nyh :Cp9oYaTގIٍۧ8>'OM@R'PrίNr'/aL>덱S>x1#=EyR'38ߎHOm`XDpYo C~*y3G(*ء>wϙ ~е&DY)? vBHُ-;Gלiff݂ˉN*V/)) ˜ra#q@ ohGǼGiF&1kt, I΃q<*B}'3Zqh6f;JφM<^:GSx` YIw9 `G|['P iV+:@޼~-ohg]ՊKjq?yWUw:)KHAFJ`RLw;w"|?!WfLѻ}lwVUn'گ~rJHe^q}@2| )˥+( ԫzsYکiU?xIŭK,vNYf>ڜ_rߖm)ůY\Zjы:_H{/3N]}$7=̕ ZRKɐQm6Sˮkzc#i<ɏBS{$">-=Jػ^fN۷heX-j`Ar<W( ׳e;5`'W=<΢kF v:XUߐrЊҐ-ď.nieЅ4hтd4CBy!_w>Z7v܀NM=ؽ?/?}k$|8~Rv@ym\3k\Q ZqGAޜ{o}¿3d/h )?i禾}ɲ/,9_F\^˃˩ {Cl? ݄ankSk!,eOpF- ˿}1g kw}ǯ%YN_9ta׫'W"lHvO.È6O8ΆW+%l\e|:" ޷oY %Q=jʭQg^1z@SGK?e5*e͂L$7(c~MwnϮ'ͣtH˽}K⺆UB w2/Y׀鷧*~_KoY}5SgpQyn+vn~A)[/u`4vсT ?XNK$x=Acޥ[E;|﯅z66+#Lj k*U^keP(yWVl?l[>%5OS4t^o>]%4y;XwsjDNJ+EJ|C 7YzEzL޺L@˞ifþ_;3kӂ }-13 ЉKVuܬ=_mAA0>< k y`&8*/͡Ѩ-l{{M:E]P^^^5ݍ1n38w|kUx"07%m^?{dS'VХ^׻:rŇMsIal6Lo_p_>گyU-/'p0:ڋp]*E(e둓|^|L۱ ٜ*0s 1 2_xj۶Ggex;u6.W|n ڿB6#t.;Hy,ԷȦ lYQR gl B֤m] 0J ̣&LO7: am!;@k"=iiiB!G(Em}'阀s״P!X~ڸj;oJDQ&+ x6jO:y$^8)\O7JײcC&??_㊷`dymDCLzjmçPYJ!%mޯqㆾBK 9 7b yx3S0C^Gds}ᴠ/>0y^Uv![ha4D2}!G_|#wpLgҰPXfF:\Pm(JEB[m"[VCd]w`*,+ŰE̅VCD"V1g4Fǎ3iii#o-14nτ)`Jk=s!d yI%bV' M4M3 |Ay(3,䲚Nh F"Cv3İLX((P<FC8+Bu!=ɎT"b8HL( XE5G.=G!vyB'$bpCKz;B!P0"B!!B!B!2hB!L0"B!!B!B!2hB!L0"B!!B!B!2hB!L0"B!!B!B!2hB!L0"B!!BȄF!zN/`!B! )JJhzB Di9c.D!w"ppZgnh ;B!Bu!D韹YZ s!B!PWPWeGF!p2B!2hB!L0"B!!B!B!2hB!L0"B!!B!B!2hB!L0"B!!B!B!2hB!L0"B! 9lakszXϵ&R93_9/y[HvflX[H탿w0I?'Û HG֋g7ksf=”<᭮KS;{ˏ+FÛά\n/"sri\S"F᮶+rTg0L*.)T9,qk3)b29VB}Ge( (񐼗DCch*B#7+nѳؼ 1cpnCY%HFz^lG472c;.{4m(()*iƳJ a=Qz J&óx&yY RR?#y7n=IMMZ$ZѺc xWZIu.ՏhH<T;1ٲf=HP=u?~zXϵfi ՠRb^y&%`HJ'&8^)>`\su/XL9ty+$W61TI;i]bkխgT?!66l8ڿS9O%2^{"o\JR`5MS|fԳ1 Q"M|?4g!'=t*~=7-(>/vIwF29[ щO>!R6z֓PŵP?1e_h3M^< Ngs*.,гֻ̪`3W\+/ѐ܎-0mW^ w-\m_7oMvRśhGo2*VzF2>LR\L hXdz1L\iB34A x St@wڦ3' @scw )eܕlS ۜWS &tNqB4zP8E7@"EܰW⥍\/RCtqrr9Xퟣ (6:JTuxA2+knzD}'D?X{/̫gHHC]rf(SOճhX_ZiH*] <%jQ`=aN= Z!-L3^{{[Ӧ9m;zԗfȧ<ܜ7^Z rv& )dp aNpTl5aF{[qܦ]/Q'x)üz'Hޭq]|$q]^Ưg/ksv=nx4rxTtT\T5Y ]W&ZriʌVpfVgAN<#桼9ͯ.P ]}q Rz**CGe+c C(ULBA?dz͙GٲH+!$ƞ]*FUDt5:A]k(Jߪ?1T>W-1TxVv5C,z6j}`@HoJK)jEuYQ^)8&ݾ#bX4 ;)щ&?f#{47Q )"a H*J\. (#^>ߴU8J5Tʵ^m∁/^:nͫvB9/v1׳gˡ:K;zԋtm0FyoWZ[wry(~ٿnޘѰH^dC 3tuوG Rd`^:5оߒ վ,~9ZwʊG[ϡNO~T||W%[ԵV G&BNfaaaE2R#̓\;kGY+\!:%cx<~O29:J BT=Ims(+Xτ777&h3ǜܾfsڼ:ZZ=_fY6$z7_=OfhS.ݻ1qDt4jXk TT*Q{).!؀Y~v㣫Q).u C;vTQÖ->j@ -c L.؀dXL=]?cc\'3FsT qiiiiii߿\./իW/\@ruuȸ|ݻw\mBEQZVѨT*+>0sAAA\\܃zѨQ#+&Xς j'''FÂGfddD"Q(ٱz ,qbbÇ9Db8#####ѣG;w^ Vzj "33ikj]&ŋa UgBHbj\O:j˓)z (C"}#ltUt\x+#8%krѫU?Yx0C>α_lo?]tFgg|%(hk94g"g_y4,<ϝP֩KG!oGSrfݺd[|? |͚zڦ M9_fp*b=2iy>.o=r .<NңKɈ:zEDHfFCA:ӵkWGGGH?{ŕ73;}iEE5$jw\.$&1\.)&hQ)K>[f HY ,yߏ߼Z]{Μ9দ3gNXX,{ҬYf$Id2(:ڧ89|tf4R xmoy[z1[_pYp@?l7>bs:J7Vfk!bs-| $cXF/_wro%I铔6mXۗ志X$9a„3gΤ]?Ə{r,kq㸨(g^`ĉϟl1NtϟoRmm-jR鼈: BaR~Z8tsΑ$9ydgS"AÇ7'N8zGYV_Fv8J;=BaHHH[r)S6n0Luuu[WPP0ѣ Ǐo)m@ Ip Djz ))))) :ɩ+qH$ZP:bF㮒E%J A v 6aڮƶ^8 _L؁Q_xZ%fiB&%^Y}ݳ[#Rq!n![ٲsPVH(%Er:I̔.X"[dL%iB*:A$"MTe"|.!O{/i\쨶[bRrEl 8μ/^H* ЇԐaHl@U|ٕQa8q {vqW>$Jesssss礆RT 8RNbYVT81 <ϓ$LSSS[**ѣΝ+--D<ϝ;<t:PؖIRTZ__4Е~qh4 `0dgg;t;w4 ;X{~͹ O4}/.sVgOQBfsY$IJ$8@aq\,kZ:=o۝TCbtMY1:IE@LƇ(ugd,XdlmQCXV@Ӄ1 ]'ON F$S:Δ2nGGr`:TE{gS'3B9AWU?_2X&KHiN0ӎdɅ8"4^d2h`l}Qzrzz]ПaqqqccP(l5vB8q"::F b___m'p8ݥS&l6k4Ywuu^rjm?2Eo߾ٳ555~~~vݹJppppUU{3/AqvraRqvPy9X, Ü?iiiACF#q>Jj daY \= 7}mtP.9s;؜=Vjὒ?{! f9B2{v:8@1bg m LӓbB[Bp?n.(=Dq\`\FJ1;j3/yh!3Б#%J&NݘwlXseȡG )))򢣣M\QGq.2k,[i[]ԤR:EfL6p;I砠kȑ#uuuJr񉉉۶mϙIwqnCQ\.o?A 4㺺ܲE9:]^z8u:J*RiCCC```߿硫8#t:0m5s$ߐa[F"c# '"Ȫ=W.l6;t<#>g_?~4Ji+G1FtdzŊ.6D@ֺ¼**z?e)hn2`1l]/jD$L"SuI4q\jgT;ns3{ݗ 9Lf&woFytIB5ԲM! (̭% =؊~sƼ>C4o2l9#O&/@&ibji;^Buxo 4#]5­%5y~ݍJ2##SO_een t .,,,))P$u۶X7fU;@91f$IYQMqĹ> *+++++YuNB'I!d4w"i!M"|xv>?|`P㓂%!H8;;$^z¹zty\Kήd;qӯnm-!903eee=w ytdCYm "bΜ9X:.33S4jV ?>))i`>P œ[]3˲[nHDܹCw˙]СCv 0\%gĈcǎmUVVfff,+D"sYs'N8;׸i[j:w5txꏗ@[wG] *gV]=(1{:Ʉzk++!ѷ[j/}dIg1~K苘L& Vb}ɧͪedܘrSѬ* (G.zƁ]nQOKJkK̪yr>vNttIm |%K8 u:P*)))C}z󋋋olllRRnqE|||XXXQQQyyhZj'%%vXuubOLL'cga?òl3AX[C]Nl]̿U?vt#&?-}3Ǹ6 IDATb]~>cXiM{3wyTщS1i)^sĈ[ C+ ֏p=j]>boإrgaaX yCr%]=lrS|H@n~O?!Cf<B` e ðˎǼKo{ ,ظ}Nl[ƸrS#kJfФ7 B8tnqXP jO a=N~8+K#%=r\ v߮FD6Il@9ȶ埗[[-m/m> n^9Y9;,`eoa޵HqDm@kIҊ.SJTUÛM|x`|oI.w'[?8呃e%qj0Z{;eurMI HJH ȰbQm7H7Ԟ!Xy42h(jLfh-U zD* = 0|dz'5GƚO}'A}!DŅ#oR7OT\x~rWM_wv BIJ-lnoa//>LP*TNYAUwxfƑ3g_xS%c&ƴRm&{Mi^ѽ ðSC ð%;S#}gFFiT{l>wl4c=8s?l ]Ɔ`k?a` =&k 60d>c!o+46Q@g\?A㣺vݱ60BxTF@ᑓG>F. n OjF50 0 Z0 0 kSC 0 0N 1 0 ð850 0 Z0 0 kSC 0 0lկw!҈{YGg` 9߾l|buյ˾l|wuԾjf0K;dp)_ԛmV.h,-o^2VߙW@bfݾ3ېӻݻlJR vl˫L,y֬,3F2H<Q8S8X^;- .<^PcUo'#q9[OvWPS4 4)FqChڂgnm8YXh9ϱf{)7e(-'Q۾:aƄhu?ם4dapww~s\gi<}IOɜZÁ]2>czB o-n m'M\/=poB\@:Db K᷏xWQW_wM'v>孯߻}bl_j\A{r8aDڼUoN &Ξ49g֭y椡徜ψZ!5y{VY4'>kߞĴ!_?2x)ޗxncݐdj}oŷU#Kܯ |s-f[lZG[ΝS{Psv;?h >+C/:ם[I:+B=itL_1.9}k`41f᷼ݣc<ٗ8QMb//As&ED&iE 3?ŧ综g9MO^E!Jlgv~*mbڳBd)9Psv;g9kD_1GBF[NuX |CK+ManC /lyȐ9׾H8ǻ8o|{>kcdz_O{$=[m Iȸ+lE u9w>+I7_<ePóCoYiIG}< ݱ+@3pn]nڜ=mmܽzyiNo|n?qo-OУqQ^0ODgS: !1t̵<&stBdXxFV$xZ"I$vْ PD"XHDe O%K%bPoISh$dX%kKnJ(HBA qpn@;^u|黟zSB˕E5l3M!I;8 W˼dR <-UȤR9B_et&GU2_X{ f1Fhp(eufK|g_i=x_]វ)μj" +Y]!WϏ9}+T&,{#mѬ?zuõi${Zє}ߙ jR diQ3Q=< yݥ|նs/뒽HՉ˞y~oׯ]Ѷ. K7a*?KkE G=`>a>hrJӲJLwYϟb,T'pؤ ( s8`$g1T;@[* pqMaYK:qRPqhȦj ]; T{_T~WZ4Ľ/+BJ/pФ (Hd>X+Z>#fN"x |Et2 wXF-1L6(LRT_NNWWatoĥ֞j`xL f iR9Fu0 Í۷Ҕ+o*sڭ'oKͳęPN4PcpP J|2k %S5.d@K֮㷬꫗zLnJ;޺1Lm%2Q'X"c>/H{WFAk`+d1rkκ\$)GKMo rKL*QԴ( DB!$yˎ CJCăP"d1 UcKgB3vT <#ӌW0 93ٻr|u;1J8?[dTs Sl  $IR(| Mq>z]G_C%`)=# eJP(rr% {[>ƦFJzs'MTH j/aaQ+ HILMTm8T#c<{, qRx g'j/Bp?2[ СF(I9%!*:{7Gv5tu۩m{LLO4d_3ʉ & O2\oa0I)s @[*-jdƎZ -sP 寄,uP52{`Ęvx-%Uͬ204,6yTh0z ,8~\ڬ k)|8Q'(PH HލZv*Kã7)抣YYI)Le@p&皊r@a4jOfk?YW(C#Ǚr2]qYEEϹ}Y̎ox/mci>lT-Dou|F&+Z<Iy ԅIUİ.T@D䞩wI d3X3Zxmi ߎ"}eR0,܅zC5eQԅ7n=Ħ.8o-q}lߙ 4tsey.i2-_Ah뼾RJ2 []5[tMKN@0TY[G ~>Ƃ]lr ykWۮzƸKX}3 [M6*++++ ϱvYk8}ǶwlvQCEmz_7LOI`w["^W RIILVTMMKz>ӭ3 s3M\Ago]n?:8"Z.f V|8zoF>N&xz]?NkRx5U ɀRKKPp4&qPo8iooVAƆ`_eGCs15wnm~zmt8hMLm}(IMx< 2ibjE$ SZׇınّbťUS@CΛ# !]?-7~9~X\g?Sz;3%Xy^Y̘s2fɘ1g\m֝3:'iy pH316q@{3'>̩}_~Uc%%VsOV>xKӹTĤL$e#S5Jڨo= e¢&U\|PKv $[ܞ"\-r=΃O/͕7c_㮵<0h]3?_nP^jsUu{8{*,;޸v7pvw}8SS^Gyw"4mvb@.v> Zff|7C-字5x왻'yJE3R2'Q01}Q#gF=f#GJfLy@S70h$6Czjo*=]zGizh[1 0nͫUا޻w7n ֗T0DÙ%-/ Em!OPhYeBV9[|i@-/v>ʤ]  IPW}no|fuE:W%Ѯ_Ih޹)nVXh3cGJ j@q8xJ)ܹnѯ৏rG c7xJ?[w\> K)!l?G`B:ի׏<9"u9~s~׳| Jt|6*v>sY}i ZpL ʭYSS=>"/WlЭ5ZБ+(6Ȧ-w嵡C#AVrA e)ܠ#b8Cբ)>kQ`bﮓ'ʂ&EdbQbƦ%xzҥn܆isty~tkW]xք5[޻=QF̛薻7VJ/]=.|6垬W x]cC+qz_{wfg>7bxsIOT{xjN3>Z-6%햒 cX9G)45 "ȂT"{ 7|g@>U L) Drr(5VqF% WhDy9'vE J R@ [Cy5_[*Zb_(QܰN{)SzBZd.i&SC̜jzǍ,$uiKHCϑ,7&kOgփ0^;BI ngyg;)|i+OܐR;>?iɍ+WΙNpmY`K(iG:md_;4crr+Ӄ<#&hȜǙ9H5~\I7P}&e ?$~1(;UZv}C$Tx/JInYѠSCS]E- _?ĕA.h[G 1SH 'I x`I(L_E A[D8+&m2O#1+ flY;6n̸~.uwL >SQO8()B $i:VI$@+BڝBر-I*"Gʢ=H=EĹ#Enns(i<yۣw|NJ>{{B'/z kecvVoRt3pE玑Y/qHv GwS%R(n2T5оmo:ȓ"=-}7Hs湥X%2dWTRG-=g߉4EI^ O2/8i#F_3zvԴ/+c7TA //l<>w<=fC#\ҹ-EK@_ޠzq[Ӟ:e CѰ8S4!6v Ls l/:r3{\ <|z/\us;u7ZF!臧#Tc!_Yh_6J揉&!oҞH=f-.233<#a A1~:;᦭Ḧ́CǍ-p2oOk4T8LC{_#G_^3!n;fB9gn oq IDATf|/Wz8WTSgH4-b{3|=wvm@ěJ6'g [gF ɩ?|=#KŁ{O&LfqA!d24z/]݄~}hlo8Ɲ9'rs A#G9qΒzaqfOǟ~yD94rʼO)w'?7}wdmuĐ2kuyQ>[N 7Nvjb{j]KL >gqvgp%571aaX <*mh z=&w"+Xu?d,sOPA>$0 z<%tpXWlŇ #ù^wHYv c0v񈵘fk7ɿho?w<{MU[<BJ]%}\A#8/B`s@:ޏ0 Æjp0ݾٛ K$33gʅPoг/>'~r;:R 6Z:X\lj[D-1/`E>֡{ Qv90 ð~SCFX(Ÿ>]' b=+nTNMUǟs.?jt/YsU+nqK/wKPo[bPL8]Y6Yjb_l^ɍj^/]N|>Lؿ2M.v ݹx&+Y0 lгY =u52dlJ]olR-bQ-}j0X,;mi_wRmƱ뗇 }.f51qB1k2Hy1DCJ2 7Fb]>pjّquC?uv⇃ i؊vͳ_q: mv@}6-RT:w"Xc LG7oʞ{uޞ2O'O{ۤ`nS3c)Gyb'O%yCՍ-nJ hkxz헎GV, @Oګ}j5aBî}ئN c'?tB*| YX Gn\a64г6"(};^;KazyYa# :`lkasoL+(PIQW%8w@E[T $RLL6 uXhP47y9g⒧&H ]8hγwîI Zƽ'93‡c˫Dz1y"N&0u\&bIHWd{<B~ハ*x9Iq|iA2lQ_ VML9 &meuGxT5C00 <N >)Wd(;=0Qj1cLZ7奖eP%N=塚ř!}eh7"NŸKjRm/cJBv]P}܄ C I/, u<=jy$e;Tg4,G[IA HƲˌa|5ڳ?]D sޜE>ZzKaq&BrWYmH &oYg[0 ׋辗&zoBJv8#UQ gXfPaXtgw WĊW_taEd]p.aWгDoN׌8J8f|-gqc[Ůz?=~yHRuo9 b?@Ƀ)"r{tи;&{d- L񷭛2RJ&t(oR=qЇJQ↑^s_)mc etsd"74$6%]\ϗ1Q|_f->[V*Tz֫z1 0SC"Ӻ*|_ +Xb:uVv\N +wD5Q+{& w vf/$b~$py.P6׻%N5co7`߿ I:@D(BGSDA)/gw]k-ӊɪs\{-[E5cFז ]pM72F E"wNw;2LB!0^xL>{kD-?44ߚ"pOђ!6LJڷd%a .A 6xMELϙ^YiW~ե5.]CΔ2+^RԼu5K'|DNUlML+ԐZJoZrV]\Mv~"wط?w}~Â7S^`1LɓO5,ӣ;q&\k9YG=Ì>3Ӡ{Q>X.FlІK9_8>La.WgΔJ*A9Юn7JUg]ƭi/ް/=mΗ [?;q4}GgEʳx{wW}r&Uroy{b~+73jY+z:[]ܧ}4ɧ~^{NQv Cؙuݞz=[)u^tf'wofJ۩s~ӟUn?+}ElRfK[;}qXQniZm}%g~~憅Ļ$1xsCvj-,|x9hչ"rMPwnk1*?9+bӼ \ǝiߪW@2'CVHI3SL_6a=>\{`V\BSz}ooxr .l\8דӤ"s&3"a}A&^!a杙m].г}@t X֒9 KkR|26I;~Qg?q|餑 sp7Kme g7^;~AW@}.͹z荌n6d&~%ehѰfy-rGFG |b>&'l43gJ^\ESdq,.P ЂL(4+7gI a^/YmMTlgEi2C+{ X,%^~0>ې7^S%^)]U?2jW SɥRD"k̛E5jwwR!AJ:8 &yea*־_{%Rv&3gWdizX6-ٔ{U<1 S6 %Oؾ˦GZ oTF_(dsئn|=lD&oRAK$EрSmxLa;r <^Crzcf=9^aӪwfP'Ḽoַ3(eIq~JWVSiT&WhnaaaeaaiXxs>6|w=Ym[WW7q@kr"&NR@}s-L5#y jN%Wh>`?|ސf#rTͻ?SQ{7_xOb46;;8ytDn4M.2,i(Ftg̳CÇ՘:k"W$SP3GӑsϯF|7%7vӪU$i)P>=N7<6]fۥ';Rg%>*h\zj|tqi3ѿ sέ燻pl2*?9Zrl%aޘwزC) Gi W^]4@-+yfJRۀZ.Ձ+J8(U:)R!qRҰ䉻/8rJY%xkȊ|x_9 WdރU-x r0#;y*?rO\'; n7u 8E swM enA*,y8 N 떽~v#0c ~~5y[va>i IDAT}籮\.6[u w?ŹwNP&3_/݈ uvr׷;okoM 1#"LQg.'Ofȵ{g͚OCM~ae9|C=B[ELكmyw>DJ3ñm=Uw.㦘w]zU7,겐;iMpx {!J(xsԝT6o-(ųLtD khoNg28 pd2= Nݬޣ)b*4*WڟuZꍾA܂Z>chu [`Pŏb 1ΰz:VkIds6[Kj0ZEoF%)+/AȌW`Oi| 9xYc=]LJOΪgb964lZ*rf,8 EmSQ%c98 ULyB;{Hl *.%KV>vBs&ZPfw"go;! 6nx|M17&l.mo{T72gnϰxâAl,6[ "V@i EelFi:m }0e`߿Q~ U4.$c1}Lf FM %r۱~#ݮ3Jwxgdu3W pnDێ޳jFŁdnqb؟ ߪ߻9{(e\;zR,>҄PY )h`idPg8ny7B*F "&> e}-|xG|8{|UI?>Nt rOC~ꐒ>ӏadz+27r$A=É@}2]Q5~ۑTn; ?fM:gʙ=٨0QJUh׸&Jy-&Zܵ_ oOX?Ur̍T\?|EM T?z,5/z˺s5.Y  ~؝k&lz|q3Vk}(`㗟@/֯/ի~RI$r1RRR5ysEQ&*l?as]V^ˢT?D"/g]q^LQs(HES[Wzoh^z4kߧ 4t g+*??nto<|ȇuSg3R|s6R]6,Ͽ7™Rڒ'w}Ěa+*Lү{۰?s>c B5-ʢB`Q득gӽOh9|A~MkP?v:!]Ed`>X}Z,Ϲi/|ꔿФ=!esy?ڧ [6׋F"cn?WmINwʕChܜWNwO/ =bz55bp-=0gz`2I:`0Kk<2v_C7uPWU= XN|ŷm mA(:vy9p0K-MXt~ߝbݽ{#XyC^[5q(P!%EY0ԱvZ3SH\K6ٟ?sNCA!J(Щu@jJ ^ #,~_ ==}`Ún%|Q:`XL L`^>SԶWԭew շt,I!f|p ^+ձ8mn.bi&ܐR_( BI3G2O㺌x٬Z+Y7elV^@XS)F @wcשSp̿~jMZqGԥZjX"PFQVֽIt\*-pQʢ3Nl ~?U+[\ХNJJ=@vwonztZF3pȥQgѻPqSd?|~+ڻ{Moh<5Mje2VMTrD#*2F%,ޛ"44o9sG9+@UɌk5C&zom[m;y7wr`3?1fsgt alDŽa*|~wAz?I9y[ ui#E3݂J[6bȱº؟9Ci(X|KsLr.z^S(l[un /p0gzS.jr̝-c0o_]hЍ@U{z;0X`"PAeCP , BYb-<B!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JaiB!JjB*j46Jl6s66̙3=0gz`VBa\l6m&ʱ_j4q3=0gz`fUQ Կ4r\.@MBh4l6s66̙3=0gz`h4Hdf ij5U68!B!B225@L>t dJD"0:ЍD!PcacBK]'@d*,>ְ'!B'~_I]X:l !BMdh7L]!l#\H6ZB!`iOP CBV0rmm–?V%KY 2瘩sVOn\d^ӱdQZL&):4i!!IY)g]u $_wun>߭=M)^\úmyeۮPuFʲRӋT{8]RZJM:FR>njo!JX*6T=?pGNn;YR6~locG.IZ/DɞE]s wξt+]ؿ_ 0`]U!#ӝRmV)W|8nϢ/fm$e{7U~b^)SGܝ6;f]ݱȎg~"KReEʶupTy# kk!Ff?DXխ^Vmr&nyn_ jGQ띳*⚯>_o8sxcž D@cΔ jubni:iziNYv9371::&çPWqgom"690xcgT~u{ѢIߜ)u^tf'wofJ۩sL}:{n7V_ۻ˦ r JҚ.oa!G11l[W/Y_S`2!QT ZT*}՝6_eP*8 `EBMDE Jng[a<Fo\ n "j* @ O N&5srzl۹'@ɒotlirM #xyѹt}Xdƍg2Q_e]GvɣQ#Lgl=f\Pd܍NT[PIwm;XtrˏѧR_٩k{ snL{hO*~zvGg.@G&0[u a08>Pc̙ea*lrkَ߯ ;S=3Yt~aӢM EpU^ cĪtIZ5$7i?`0 oXc=6H}agf&*- lLdx9=R  ?}−;0)̴닒dI-\l9?mqyA4]s@CE l9? 77JLXvnd%{vyő G6d?-&L4Ϣ#*E3b/e䋓c.e4ca,ϟ*-[u W%TWl97=,5ev5Yr|X`='jst* '-y|Ē?a(c&,z h$ 7E뎭}~r6 uq &$wg(StrsRZIfbL٬2&>`$aoƗEϰU5+>ÏNPXw^O b)~Zlzɱws$̓O Tk5M IDATTrQ520= ЭCO7Iejyo̾ƀn3SQ_}9.3" ?"Bq΢KJOAODLEgoSdҒ=5ߠ=O~3v\}3m%=9CSsZЭq:IR;L rKk۵!F9P^~|q~Cř6L  JZ8&)9ouz5`S+rR3{ȝr.2(Uf&' @TWJ|2w@}^[<ܣC7KIc N- EJFmXU97Vd^B2pWõ,}s䉻/8r-*sT/jXaӪwfZƜ^6(EVzșogiWݟɼZa`[Gc}r(MN6mmO]{nCٖ -YINC 1 a{yY.\XdAerfokF$F\!Uxux^39tz2ӢyLnWͬ4JY ~s81ύY v=.) \=w!\MqջMQiΊwcR0ד:eR¥S1Rs>^u:cPo·)buwZ!~g; SYz{8,uO=vlE}Gp\7+C/GwOcMu9?}2sG;k|j{e&gyh߱UĴ=ؙ&0w<ށi02aέҁl쳕Lqq#v1UPc8ELNݳ$:IZtW*;iXVOߜQ3%y}~{v>YDLZ}AP[O 7B4Y6rf{odc9?(.ndxk',#l;4.c]G d޿xXToX59VU] :|ʔn>$h!9 K;CKBV6 c54 dr1_.rTX3T~^X^~g|an m?Y*vkƴڻ[֥735k> #ժETnW2O@qYx= ?p͙=٨0QJU䫣[hggM9ZLX6˹kBW6~6 b?VŏjWLJeSJ- _ţ_=JCJyhqcn+i?—}){rBO^ν: rgY O{*ݚF!jiRv]̗w%_䋻vi^SG8:ְj"hK*r ;A[=4߅&ZC>gd(3=0gz`JX,2k\ 6>j27f,<uc]BZl$JPk;U#@:i;D96!Gߜayp!RPs̙3=0gz?g *0`aݏsg Š,T*9X2gw.l x!nY(jP=Cl5!3=0gz`gRP&@-T`cV_Gi+@friσ^s|tf_1KRhYə a.D,ȓCVh=+ +_H_3=0gz`C2 kM|)W7*u- JPZ+V/OC)%I [w\XR#LA֤;g̙3=0gz*g TX׉J 2U,uDY;"Mzs}`9sIUlGSWzP >jO9w]zyPSpirf$I7/Y㖔4 Ox:t[3ϵξA#uū3=0gz`Κ-d .lŵa|{QmǯI:{١͹*SҰAڬ#[v=cWfݍ(sU©'z͘6x, ]UӖ'iOLM'Dź\1J쩔z{9sL̙9Hら(ptӀ-ũ)R&s-c®|;p%:$7oO.NΟW,O#kxPEl6C\X(axl j03=0gz`dҜb7JfbXpo9s̙f5->bQAɫKARtǑ=2(Iջ^x)dm{TkcZٽ˳IV3:̴wS:utdef̺g/3=<\3]0gz`FΠRq9p iu̪sk˜{\Tps~s( Nj/#JURфw te. {8߸Xڊaٟ`zth6{kꖡA6^~!:zG}j3[}u'̙3=0gz`0Pi4q:w[ ks/AXhaV\Ұ' Bߐ}{[ZI_=G0]Ֆ :>F s[7ȁl >c3=0gz`a-rocq Wqpy@ssY,6\ku- 9"Lz[L6!|<¼qGNWEVBc 9z^Sf.^7V_,73/ك:pl_9{}hn9sL̙fV?ײ N}FKv9WfAo:gv] c"%%ѱo{*!ORC K}JR69L̙3=0gzT3%&SA51 K^jʼKdeeuk3!csa9sGrrkT8.B_ ]Qk<6򂆘s`9sGr1ָ,aqU5 UD jmݖU|[pX {+0gz`9ӣ9ۛLRhtsuL0xazfu3œ9sL̙z;H8B!8yO?t8Ğ{{QbL.'۾^̺A:0>s¢̙!j4JCŒQqi]; L:G7jvq}<"R:T ܎讐JUeٕxZ\]Zkj-rS]V*2PGBn1([= (Pi@́Y☳0gz'g+( 6XRw+$ h^~tpeݳ }N> ];u>:>E&jqО~Ly-g-۬`L@c+ZSj -kq̹0gz!g.ymHdV$-wjf;OXu-]΅H"b6n a߾`=`~tZA nFKs9#œQȠY2{|?W_wjky#c) ˿upDz2pO~\ l;` .]B𹢽M+0Fϝފ2ԊJ#vLD -̹>0gz3BՃ)YO9}}U2<رd6'>Jֹ'>&=1 =)ܪvCQ%u!jY%TtIW?ZrhRs:O Nn|sԡޢm/yu ѯk'4K̹3=!$JCJ~QO ,q|gP2)Qi($;=hX?'ei_Y;M4d615iIsS&9w 6Qxa#W?{*eQ9=Ĝ9gs#ha!! yo˵==t|ܯd~7OLV$-|{7cG(̲3̺Nz3tq{]R8giIqaX,F#֘ lPjپSClB0gz`!И3g4i'e `2IH8ԍw.fEEe8GZĦ\z/z"ajiWμcYϔq6L(]sCl ~{ի?y6UC/ VLf%9ɫ##MuU56>ޖ1vpYRX'X0gz32(̙jT*.)Ƞt:T;J*Fiǎƽ?ׯ_ɑa6,ų2/62oޭX 1=[1בlYj$x ؄;{k_[sgΟ:}S'OG=Uú .lE9(V~YAV4Q 4>m-Cl,Bu"cf@+zZJ̹3=4l3=4>Iue'%.od4lrV"B*Vt:Xxڰk\6 4"RhH J/^vspG0!T.+r؉!N;qOe*`q8pl;?ٻ8ޫ.M` C  ~Pݽޫ*[U:31,[֎V漏H٣wܚLGyw[֝Fߡ/Ygy`P(j'r Ƭ ip 𢢲cN U*JA- B ngy`qG(+ O2Ppj]}"9QŶZq!B!!B!!B!!B!!B!!B!!B!siˎ-K~aњN22ٷNUC_8#ަ/вN&t:ojϚ04UZ/Lܿ ;.ʤ:qMψ\y3'4Fm@LǎXy}ºoqu˝_#{==.t;LEΘ~^\Dy3[;wV1t7vĈ\ ZdtB폳,Z7[ۑ0h7rݰdu$g"q}}=%V-^b͖5Crz}J?,rf;rT\ihoa߆ r5S8rh=yg€8/3(VWW9|ԩbB-JфX#؄r caSb4t @)m ~){Ab9;_|[7z`u,7>+v@Nn ڬac]XU KX@pw XPs2'FO߉q_?vnz5}'z+[c23U3D_pչͼ>i0n;̻,U= W)ρEOͽ]Bs9翿{7<y5GL=nI\nYA9jڠ0|=E<߿#0xW{ws avg>B)< } |y5b& IDAT}=CL ޛ|~} Zej{7]V 0DR:V:߷j)Xj%|æ<4 q~#ӧϬ_> ֝,IOvyE'BW{{ SCU$qE!2 6[iz@zF3˲Jn2-y$!$!1!w45Mwf|~䆁 jh =@Na/>C7/\aыO@:8opάL/* V~߾yϼWUoHR RBG-(WxtFA Bm7CyC>Xp.飮ו9,xOwo48K%:&y5ֆl0|55.pRJ)(&%'AՖH)TXTӧ[?zΊ[|!:k'F?;c 7ydHDI'6>hkJBLػD}śWI0RiK3um}~ʴo2԰P;5e4l7pi@=D?tRŪ}Ns3G?;k3u_2Y^r\ΐG}ΈX n.5:>w+v;GVxjEU\T#&2B{a;:R,Z~9ᦏ6tsz?xoac+m ZӾz#tՆc&I 0xꨌn/u4Qs\[,_@m8r^꺽~;~Pp;bYnhFJ8kޅ+0G. x9Rj(0x}yfڝ|ޔK1(t,ˆC?]<@TxzTst@!,bYiYRrB(+- 711WUVշVWBfSՖՖ,ٲ[\is<;B9=?h4qZv{2sCZe &#9I6:On50YEC돰c0| ZmݐJǙڶ|PƝj"sƨek<7B]?y[_7,Һ8g-޼j_*5616#`0*VLؔZ#g4|r"8k-.1:bڲn54,څ,LL]6K Ę &k}AӾ8ZDd(bئ45!%j5ɟؽك{_p$Ɯ`" a?j]&ጿrr/RM^_I -aUZ GKߨuFL)wOӸw@8fR2=Px{pPO  "9-Nx| "5J BxA`kuuM0h<ԃ,!h4hw`vN禆uh  7h@~Pm;UV~lꚼ{M=ύm.)(F*1 *vb1gbDvt c/b @;lC LKŘZ`'2+DAMtv{|N돩`0( {E9׵TFX٧%ޘO 9&}'*>?ϼMnK v:( xQRR5gs O=46r{ze6S>uU2߀ѽͯԩZ( z5`^g&j-Ypnӧ`O|ǯmӜt~2>-Q<{Ogsqz]9^}s^@Ŗw'uŒ$*T)56wK\z%?{_ߞk?{CW7WRj (Ռ?.K<^J}å3lMS9C #BbR4QLPfdf'7<@̌ V ^o0DQC!iiڍ߷e}5Nmq9#n}aA,LM{OfE^EOIÜ}|s ~I@T*9҃yOwK?k^mbkm԰8S*{lDJ쟗fScûwK!v[Mω^8Bu#ߨ ﷳ8SO g|O+o<6>L葩xhu./B97m5W9mtO/Vҙҟs56sj۸Ww;?^(ξ_ZV\wWG;Vf(JK2.5SVUJ</uHPd L>4[%:u7퇺1lZ S]#tA(16jy6_"φ\.7P'fզRA nֽ}x&~-sֵ[gE YߕYu?P_ \l~ Ltޤq9h1JO߼oPpfeҘ/W=fs{sqyrrUϱ}b.?֩i4ְ <BBӺsEޢM0񷞙֮UdS6"n;0xUʽ1P\Zw& WeJhzɼp1 v~1VͷgxJ;I ڴ^)LGwm̈gr#W\/5))0~5[33ӿSP75w2c|M]pb^Pt /Ubm,V_6,:mg.: +qA+ݻ4>Dd>vdݲCD8`lXǰx-{M/Իp#bVGQpT8A3:.S l_[qȷ? p}r5j&n$O!^0,'ߊ]FI}ԣjR+VaX.ټPR5]eYEaǫt#cFo&q&IVWVVI^+P>ii ovO!WEÈ80hڔP뺤38CzzE W,@ w˨z=F7<Ɛ5p@NY(?^i&Zsc*Z3uXU7w.l=>'2+uZi{}"8k҇]4Z+5;|Dre܋jGVWY9Una۰h+?͒c8KCW_-ab'\/0q\F FHK+oBJ%DGG5)3qq(&4&\==x+`qϠˎv3 6nSWxmƙM018qkMQ:>:Xaϣ~{Aa6 -3][@-YhӦt5ڈ3+bac4 r v9[8gܑYcH Y\ZVWo}73nFsQ/?ThXthSg\9 ";,"J; ɟ:TENw7/\F_5/=mhWZ6%&VtmǙRs2L`[@% L)ߋYi p5׮Ob_fv6b?r4^:^kЏ&M.bM*j~nKŪ iHv 1T_9w="z|{Y}y| ȸ{'FҞ8*+=uK!u+S {"|sc>e9"V"Uʽwפ=s?uKeǫCI{MKLG?WVt(gW]ChFZ=Λt8[*v|r9o|r]$Nኒ/_|.Ep˃VL<@sj '`ofFN3u"wsgRHLS8,}O}}Z;sCh-ڿ#S0Pɢ?'d䦩V4o嵧k\SϡEX0a\Z{,vωjVm6uzPtB쬁t-QŖ~0پ#,n9>mY ݻnk8r\onyJ_sčp"-V级Xv/o]i2q¸7:F:7δz_m𫛶q4iq}mW[00gM΍U 9q]'7w WlsUٓGa>@pXfՊM{=Z=t@1̞:'lǏ~ݒ~㮚9F˿3e԰jϋDNЯ_cFw]>™Nb:Ygy`zj:ŦcړB!T ~p!Cx6LJ jЫ; 8,K3BNh !Sjs_Z ,vqA 6P Ըb-8Ygy\J2>?OMvYÜsA'P+kNݵZe-u%N1a 0!!/uV]Zooƹ08o'֚ @!s2XjٸܷoQh42 br9 Q]+.ń7/?x7cnHK,w45t>*|)08ˣqFrwBA$-߄(F$@3z0EJ%! %`5QX*=۞uQ [Q׿9=xɗjn21|NS`[}dןFl߯]Q'̝9uؤw6|ڌ^8,<g.#oR>ē}?H{k/eU?o^ý޽3y` DQ;I@bJëjupAU;0a[ǃ'?;gԮ783qꤛ~;qn YgyԞ›W(:O~iFPv U^ggݖR`ZqbweC44 IDAT:irNhB`؈x5'AW/M$@= *.oRZXn;\!9b_os0 7Ɣ{5 _?3=?S']J1m8,L pj@ Yn1 cRwvI 妱MoǢmr㖵Qv,Վ55奆Sijk3'&J-P Uh<4*Sr!qgy`8#t9iި+=0jƃ)64w,OCqz"fwjxëmE}ouO`_M Z[VPյԫnar8~whzON@[c/Ygy?]F(&!_&g8T3I:LTʵ7M_z$nnNV|ʊBbml&"y;Uh*[ȊWӉR5q5(SOv ƹaqG:R+t~?'&7~;qUDǾ|f3 J}/xtWd}O}&9Zq᳧cR3l/k=s]Ե?rÃCkKV!Ѻ(HeX:Ŏ^uZtë֪xs`quL bjV6y.\XRQeZJ*8s]BtHOpǮV@➂q<0@$B i9/.ИԱ^D3CX[C(90;ƹ08RFv; z5PN jcǫwXm,<06ڌY /!B(<05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu05D!Bu6RN q7<08_hr.W3]}"9Qr:eSBcq8˃Ua !]}"9FC)8FTPv\Xb fK`V˲lgj(*XY<3S(]}"9e)pcYVF+++[ڹ)r_VVxT*Urrr~~~ll<~)AkOfEGG˹4nEUY;gNHEQ()E MIa\Q]vሎb<^޽{+**\.^2d^XU@EA Np+++׮YrXt^gϜquU R.$@(P v`aJ{ eYRY[k7 KêRM=[n: zR]]]UUuHL.9Nsuui4Zm||\X?NSM8+ҒҖދo.4 ZnTu !R(S%Ҋ NWUsS3gάYFZV'N:uj̘1}:\y5Lsbbb^` 1 ͦ~? .ա~`. anvTUP@vh47_EQx5;vlVV nq\0~Qyw:n5ʓ[իW 0`|F - \ p8srrr0ZIIIRݨcFIIUFY>zGJc対(v]29Vޢz( PT`.ըQm.<_o$'%A͖H)X"doF7l 8aP(mRCׯo323P($ca3*O(;Mֲiz0;$+Rqt/lry^aKoWU.8kJbb:O q2ٜ#kSYy^!Ql:!$--ym2{v^o)gJrРA+BhPy7Ryf.,jm]QQQsTTCn,SFc~^o-J2੼gS l25gy55< @Q(4x^JNkx9f&66jzZ9SRIl Z`RʲjX,>`0ƦseY~T|>e6taxuu5tIfg`+Ϟʳni(j8UVVVX,zGvv9֔Vx&˘.=a].U\gozCkZBPb4俫LHHڴiӄ DVTTϧY JV[ְ]oy ⻤VMj~fdR]*$2?_! jr "xFC04 FZa0x<5lG 3 G !)]./8vV6qZn펋Je)FHBK,ixrrqd)q'j cH1W㋢t:d29}ݿW[[8W=h Ra9 9WFS]]hyHa!WϞ]8xn?VypxҠyn C04]z!d„ -:qn>|xRRҦMx7n\ UoI˳U*j4iX;]\|ӳg߫Y1\'(}%8ׄ,<rJ1Ch4jéR(|($KKkL),MO8pAjNeglB)6|X׵^,)BbRTI)ԴTUr,֣A}ر 1bP E~ GA-c* -x DQ,))ݳ{k_=MN뭩nm`_l\lX'blTQGE-2!ҍi\|\Ӗ95lVlllrrriiiYYY|>d9sFl6fZEQEi2,ˆIWk ...//o'NϏ13-xQ5|?+0Qlr,u\n٤V++>0q`4#m0 b)9 RZYU !QգFٳ|d``B vM&Z]YUU&%&::lkOmR}vQ V<pBñwѣG4:KK9TfS說*i^ORC׻j`01`0K`⸌ZK1(!{Lh4I'N,)).8SJ=/|>iFkXGNN\ƹU!(DrR(iBR*p`&**jLGEj'+,VV[Z"s&-`&Jw=22/l]\l,!d^SSӏ?BnWb,8f`]HJJ:qDyyTZ: !~NS48KkH#wTc###Pda矓]dYUUUttiSR{nf!_^^Qǥ}v񚚚rBHfNdff*Fs:uR3+ݥwm~"d \85풂.J'n{%555fy)hh7rɽ{OEEG:εkֺnӵgP;vl?'7L*--]| qqqbnA 0@UVw+9sa~eFjeH:FɡnذNUUծ]wޑ -t=JY+VAATf^KԣGvMu#7lܲyNyR;nltttW#B핓S]]]TTft:NLL4ih'NoTjkk>|xrrrW@)1㏱zvK+ou.EgvWRd0#GջױΞ-6OJJ.p7v>}=z,ݻwov.a⊴#Gl6R9`n{^Ēp>LJԩS>\[[kz}VVVnnnbbbW]FN>z G>x6Ea{)s 5.:J!X ]}69"pY !/?jpxO\Bboh=W?/ztQY!%!pUGV]]Lw} @O7^u\Ul ʚS~wCVY k]6G h n3񂄼Yf Dmv;]"?NHĶ*gm ~Th0;`RQ^{ (卄!bR|ukNã4nT?C r0w8 %"yg*[.uVl_ ܾ7o3^/;mK_s[|v9c^ԐШȣi(n?4^BBhqޟk&665i|zlyʞr+__y5~!b zqcyb\ fKߍ,K,U 8sԯLk -Ț1;\B 9\ Niа+Euv$8n2+FuÆ6q,[d gbpN) IDAT/⟷O >Xqce]ٓ JFИ4ƿ1fuI ޢn$ǧnMam_זUBl'OtE l"V "1Fc+O:W.*L4;A`9.@UW{2+FskA'5XtX*+ waT d}㕉շ<8my@3bw _=v{u>&ͽ}Yg@Crk_$eظ~+#w4¥T{q&<|:f<| 9KੰTbOT~?]2kgx) WܪקMK7^?_.{wGeͽʚ7vtI}5ۡ&{y@_r9O*}fG늴h]`̌a jjևfvFytZO1^EKJ2oJ?~>jᒻ sO%'Vۑ=ᣁ)F}xH2ߍNZtM (0Stbt7#EUL8}btĪ>cҴÄ4I<^TMB{ۻ(;ۻ\..@H $@7tG)h`t:VRG Oӑ2S*(Ev RΔ_j@KBO&@.ٽ?tHv-X򇧖X7e55St#}.Y< C]Ze;Z|_߅6g״7yC֔^jq%yG,AZlv'\{̏&Pf=kecz*Ν9~i+9OOK4oO}ϩk("ZBL;{\{Yɇ*u,]D4ޡ]{0 ;rL/w›3)xWe^=1oZ> /UzWDD|zhr&b]9Ϸ{W xUh~X4w>M>OjN~鎒jq%<ە3expM T}L/~09ӔHȞv5_ _˝MHtwң f3CBw0x}c̕oݎ미r g$h)9E}oWk=bVr,oX7X?thڞ 3>l"Ɲ;-7eJy!WFͿ<4h™:;<|,+-gcϩ6kvXacGt؁%[?T#1RF=<W\iب};ø s܎\U)S^ƝLy/bh."b_̗X8y#aYngirGy1 Ly^Z?5Φn 5o\!ك{rЅOi"ɝ^5'^.|FcU͒#EuS^ 06f&$ 7Qn_򈆱qh("k ByDظm4ʻm]}ʋ$v~.r-'ڻhJFxQ%#-4\Ijʠ @DDtC9*`f9 xSY/~tՠTM!)^Nj_!\ $X!i^I}& xSuI$wЉx|~p  A4h!DC8p  A4#hھhcJjW sP)n4ɶ!@p,+"*@P).tPeEr7Y"6ImۦiFqڦD7RB**M:Rp8[ɵ\ E2@m;\("FF)eE7Dw16@<,+lS)K4 Xȍ2RJbJDtM4!(]ϱa۶(ٶu#6lVskզڂDXѰAD,VԻ&vϱ!"0 s h F1t^DC8p  A4h!w3ʜJG*;IENDB`dde-calendar-5.9.1/calendar-client/assets/dde-calendar/calendar/zh_TW/fig/manage.png000066400000000000000000000473311423264401600302040ustar00rootroot00000000000000PNG  IHDRj pHYs+ IDATxw|SU7IӴR(eMKA2TxDxAD!*C 7ŲGKKHڴMrso~C %iyO9\&11H(::z~ !O!)?BBS~ !O!)?ge.]Yh\! FM~ڠy5;ǰu;bqp'3,K(x<67qAzKr5+[(,-[pMШQ{&X`StꔲEsyl,160.h܃ILL&yz.U䂑 7OMQqoj[%ko^t~ַЧG>ң}g˲~6uϖeu?m9~_~s˓%_\9{|fMbRn_>v6S'{xPzuIpR9% =,h!2yJD*"+'lhA(\C@Q(g}.]I99>mfc\I\% FQrJ cI7S.\٨wN>cxG@I.uXMND L?j7whBخu>papAJ%CkH۳3q~f<f\\(ᨺ%B Y9yUTjb$pIpMg8v"]f]:>V%Us @Dr-qGlZӃj@III4ԫ[^:ڏm6lNa CtAڒ5m6[^^^qqNsɩz\NfI8لKQuTJK✜@ĕ5v͛1ɷַX,AZM`Xh42̅_UJE;oY6M<_Na\xj[.bX,\oPC?e2+AS~ !O!)?BBS~ !O~P}f]p.:ES ywt jZ40iO<)Lbbbtt3U ;=ߑ"9T}tgG ^C{4Ѳt1~}مD{՝S!\&-?YvezfNNa8N9v]ww79 xO9uwC.0 q,2 Fl6( lc@p/Dqqq'ju#xvT*EaIRgj"H$_0`YV"zhp {8r%χhu.9mz{O@qU^=0oww)w>ɽ)HPH<#ҴmF4txw]g*/. L-Wy@CS݉3!Sw*\ˠBDt|h"[9'}g#1~pp7 Uy)vH_[2zmorlJjL-jS$h6*j)6SZZzSӐtD/ 跋DDIn vt7艈xh2i=֕ M Q=4i_|;|׏pqqp>R[t"(u%tjq;N)V:5b*NM;7Ͽj3>^L72h쏔S\ =؆N'טݤ~cO}[^ꏴϮJUDD#:Rn!CD4|l4blFs(@oh^{zc(moܩm:NU шAt(jhI:VHDC:W҇"8Սz BF6}Յp?69/,K 6"i9p"Shdd:?Z=V YBT֍AmhP;/֗F4h Ei賱 ݔVLKS׺4w,q!Fh3B'zp[贁>N*9Q& lb+ML<Գ)*/?ZH3Pnq9-g"}ѝ髉 ͦLe_ '8G{Q:j?MEwNHzyZ{^HvY}JDUH diդ*r&nQ<5=$'"Rɉeo7 #<|RJDTKC"_eeS%u,YhԐr6YIߎno7W M@GPܺrN-ķSCTSwjVsO-*)щ$#i1GiM@V7QT&m>Aڭ+X:9M,\};/ fRj/r>kT2"B3)Sam"Q˩iS:o*V<UDDVzk 5Sa;M8#VFQ`5ѣ;y /#"ϺR$>~v ]Y6dׁ`uK譟=w'"Jk)9u|C@]y=KNϨN;-Wdhl٘ "|"zΜSnTdg}!`d[`y9ѵ(-K3Oyj[V>PrTƷq=H_H~>Ы]TWh;%,Cc+W/r:M t:V\!vnH%. **]G8[{%4&"{NTBky(ic?LPN5tppY|f҉])7;%_P5~eB eW8m?jTl`tMW:wݻ`0 2D*,?w\||C=<7cIHTj-EYfրd:x]}DvxiݺukժշFUe'NxС3g8laas*ЪU+'\ӽQ%YfܸqUV1c|xYPP0`@yS;{g!য়~_fԩSGmjg:{'=sL\\\%vZLL]u{}GuꔿRg_?bŊI&L씔/Z,I&qg4z}FFƵk._?^8} GD4w?sܹDԯ_FI$Cpݺu? HRaOp˜'6i>vΝ;tl͛7S#QZXzDi=݃{i?nڴ)^" ~ѣG3 ӤIr[0a„ J̛7CBB*s=Wʕ++ N &3{pDQ$"e/]Ծ}{"OrssGwŋsss~-|W0sLgsNf&N8c }7p*<Ӟww CL;OwY,"R*˗/?u} ,Zǽ[y-^XP(-DDDXL@DIII 0 se˖1 &Zi wwԎ2jfw=ќ9s~ǭ[>~%K Z3?̟?ܸq/ hf̘!+*;o~ƌ t:]5/\`bʲZG!K.ݟ8{wAt1&/5yDtC@zzΝ;7olS~'ϟ^zڴi;w|駉(&&>'Ϛ5IV#({wK~ '՝٪>!ڑ"Snooձc{NTfff[.443f0 ####W^邂K ONN.[nZyLLvJn7nj] hC|GZqv^dԜ)EiiPC܎Zy,@CBP*ӦM[lYxwK]o*>bR T*={[?\xqET4 SSS V-vݺu?xN*1)))Da)H KJJB]v}nŋ;wt:nΜ9JpqF̓//^X~%J>(//СCÇhgώmժN ?G{ ڱcG|||o-~_~ʽjX%t ?B`.^W+.6*XlpU$gdeO/]r5]>'o7r7х~3shӤq_-ˌ+V|xm;wبΗYc4kAvnA#EDJpm+Ю(w| b'9{W6!g7~FX_:qah丙%<8=ؽ G>}Q߬6jXԴL"j׺٪gl]:&lݲSjxW*uϘ>i03:2lo8lH?ǻf95-MDd2|}ޝ^d7>7"zqǎ{'UfVnҭ=;8 R'"N+B'?*[;+"Sս˲Y]QW-V,Z]Vӹc+u ufr*};a[Rrg%'vlfhp[V2t %]`/U б%_تE(yA)4 .**""ɜp1c֖>P`, ~~{>S6Ow;}1nFx"ܷ"T)V?O=6wcYUش#"ڶ㏽Qsi?"Z:"Z4F h_Ҳql}eoS5<7B+|rbSpgqoT"5MyLJ1ҕpՊOߖdrtj(&L{%Otb'tm5sJM|=O86z`?oMD D|.wбs,)r" 6o]%_{Ƴ ^}SGk"bێ}K{wT*5<+B}vZܱ0dž:H!۷ T*dc;vӯU=yoMy?gI9iP?YR+Ypc=o7\XѶgw }rZۑwf<ݥc¢?d>yq3hμeYs_aÎ;UٽoY7^}lLr9Q< uzzC&S֥/_M,.6;tT>r  (_+bQ%}|﷈XuU6-;;;;;[.d2TZ2˲RT.KR{Mg.b#A8xTuڶif6DNn}G.^?yJaG=U'^)+ޫU+X_cM 2h;=זlZ~Ww~8#5-39%m#SҾ^a ^ ,RzT* rwKu_W^g!ٵX6ML7y#Wԧ_Yf1˲:?{쥉OO|999J[+l'O)UP(rssR[^m cUĩs3,u bl"ں밄 xP]1FcaF:wli\"fDXZ!Dtj"ٹI%?Y7[;g^8o2nfDj%7oy?p9Xod2UcYdrBJ  9%-5=Av#艳!ADwuGmsŗk"j[2V=Q>7ڏW}s;GN^(2]?eYCG|jx#[w5'?N@ ,_y#ѳEE7^lJpHx=[K W-1wR:'Ѫ5-'X!څK7T嬦|-15xC-n>S&)nE]ɺu"j*کM+.]YбND#~;d(h IDAT&?=}22sss 9ě'^JЫݛ=0_ 0i#iYcGS*o:ȱ*va#/8Nq |sMǜxԙk7RRekb~6ܟ +Z՜;R2$\'"ae e_~;V+Ȑ_7NёQ}9hC}JEFfK7ğߴuϜx"zїʞ4Oox_<6w>qwzrCm" (yZs-w\Fɗ?8$&TZ!ޫkV-_<G~K6C3>DO9#GOSvzpȠg]Za^ pFw!rn (JrS~г[Ⱥ>7^mסbů0!,,uNpi6QLѠ~dVH[QQڵi ~APFSXX(7 g`4MU Bx+_E:wl]33s澿yW_ɒyoT;웟gxZZ/ZG<؇nfjҕD":u:A]b$v:7S**Zh2}܀k!W2s˖_vsݦ=|gLԗ,7lxOkޢl?ecofԴW\p3ӳ3>^/Nw_|S{owe wmL"q6e@ZPPP(*d2i4ɈILLvid6+zK.cVuϿmݴx3Nץm6d>Oݺj-nfka4qÃ֪uk7n:}~w;PTTd4(} 00PVjA@%t>l6Ly&B 0 #Je2Y@@Bp%lj\.J  98TZ[!ej;)?BBS~ !O!)?BBS~ !O!)?BBS~ !OI<l6ADQl @aeYqYVA<  $q{Lc:H ߫qǒ~r"<|F tB)˭))1` u:] ~쯤_yas^8qTFh,ļ@xlFtjvW-u/~e|n!| ˲A!)} 60B CDfBbC#:W Ʊ?UNDkzMHҐaǻZ]g/3?JXlRO|j5ZS6 tT*[5WLbbbtt>l6W\^V`x/..X, q2LT:T*Uz]MOOH0TVx)ܗ0| ]8߸ڈk.xWp?qߵ!0%qv,J$nW[:Rǹ.hH"p'(69 ð,YR øu 0BBS~ !O!)?ৰ#x)͆ma`wVUO qwOtxAyޭ@bZEQt/(V}#y^D-B/PE0PEp7 @Y>x/**rRqT*UTR]DQ4 7[d/_`yR" 7tnj#j,. y>;Ki=9s GDyC Z+!ԏWwߍlӖ*OȾpڥ+IcGj1(fg/b@;{k3DI$t/k83ohLt|X [K̸q]ڞ:}VZ͔KRrTZ@>`0lZOIRiHڤki}ا :6OIJMVRcwߚ_~-~mDթU/2|ѓBAJTḀ,+G?4"ںcxA j"AZFpMx,)ܰR) jB/_`9VLe_:Z,Jqn];=yN.hިTm;i뾉c8ߤ:Z~תǟ%a]|%A_">OjJ A\"MalmA,.]t?=upK^!Z_u+='Wo/1E}"P9{7 Pg\ !| qA:[~0Uյل 6plk⤔R{gJ͜?wQJ _R:w7W(TU `EҕȈZ";uhxIoD5/J bd]{Xx><ߵ~ &tZ/|S#cZ19Ƥk$7`ƑcHhW&nתIlR; \5!| ˲Yi}f#"MD va8UW^wI;ќO=3KW/1XW >~t1D5i.v&:(a(VZꄇi6ok/z87k69:_ynZ`|qqb8dJ҅(M*=@?^weڈ^ę|}F\sT?rߵ!0%qv,J$nW[:Rǹ.hH"p'(69 ð,YR øu 0BBS~ !O!)?ৰ#x)͆ma`wVUO qwOtxAyޭ@bZEQt/(V}#y^D-B/PE0PEp7 @Y>x/**rRqT*UTR]DQ4 7G."q. uZ-b 2Ӄ< I,X.WNy>37ǜ?J,66@ª$&5Yaa8hqBlqT! AiJ\8ʕ Fm(YzԨDɭԌ? R4RJ_dN[N.lHX,N6}W$ÝU:cD0 &v-r#cܸbc%KA 8VLeeܞCx]/^ww銍Z;|칋ݩM3la2dxBmFcaVvnɗcN٬I}i5uL\VcOLCk!| q:Nc W"|hq |:WNF"]7K۳])bYD*6G1_dUVXvL8جT /A_R([;'M(Z(JjuieJ ΔU޷Q)[H:qE-/VYFse}u׈Ha 1;~?Ҧu"VdoHA{|{ jGk&*7o/0kjR)ԏ4-+le`6*2"*2/Wo * pJы(ˤR e5.n1,҅U^>ecۦGS& }ztGnS_6x&111:PfrnwR\(aƝ=_nJ|-1}Y6WDd4 ur,4$wE*#@y0<_\\lX;q'ɔJe|BIR6, SE* wmD/R>k#Eڈ^a8t DI;e%7LJ-xT}4 o$H8AE< 0,˺u!0nL)?BBS~ !O!)?BSz ިN:h!@0BBS~ !O!)?BBS~ O/eZFlZ6 H$\V%Fc htGjfyyѨVZ-0;ll$ј֡P.l6{^l6 ^ľӽ"Fjq"Heڈ^eڈ^}C^ @Y6baVbHD,d2RY;lp$bAAZ^ \3ɂ嚖ڐ^چ:Fò B՚wsռ}rF.c$ FMDbhܣٝVo\.T!Gyuԏ ܿKE*|8T^V.cDQλ9˥@NНq ''q_s xTX|9Q3Ѐ.D/|Ֆ>=9qlZSsLף MbhR;~p}SPPpsU˥b*bTr8yՂ*\ K^0=C~u-((Xx!.?vj5WK]vh>lPٌN=p ފOj歌a$|j5\ۗi*䔹dh̤鳗ۏ3r&W^o'ߵSk"XVVeJXBovzCnԷs96367J˶7iXq\/ /uZu]%!|Iqqqt9#/w $9#ٟ8TVWeZי6-XxVfMP#Wmاc֍RsVuލFm;Mbԯk*AjC~a&ad0 27|g!/X,dSo/l2t7nԏ$?ީ._M73FѿvXlO>S#տw6mʭKWnĠ[L}' ֵmaQ?~k/8r:@9~̃ ڛڻrgT(.xzJp/\쎝<ĨsKWnؠyCÚ%(Zr,[a-fI%]7>u"e&flnkm٬ԧE&"M<ЧO үsA]~V-=ׇK~00̒6 @D{[q!=g0&*"$6:G.v;c#T;( A " *D$ A$b->'K]7Q(~~нe(I:57ϰatҦu8XBZFNV QL֝<鮹,+ Y"pUVm,X-͚4(67ROpGy05#otof/H~QD!ADGˠsIDATTXd"fwy&=#[j\d!>\d2}HW̲c Wf /dZ3!Y5-r3-岞]}Fv~1/p3 3ឝ;4wTPe7:<,Q Қ~W]Gzĵۼ[}e [<`'Ҩ/?(k5PE-z "@M+KJeHrU~lf9wBpN[6%ʤ& $% }g2$;[ߺEJD}Щ]ZL;*w )g"%D @[$N;̸/Wũ*Y, F7jѵSRcy`]}EGO$L4J; {^Txffnjz V)ᵂOjtA gNkgR*$.X%H._K{#)^z31޸ث.)9eيbYeԓM{ $p̘TAsg=}KW^+KfdQ>]տq|#1j^SVu_Цe_&Gɰ]1ѵÒ &wnU5jefvl)(RR3[4mPf]ILL*$sNėL5\#Sȥ~Ӡhyl3   e ׹ V_outŢYxofdsd5O W*ZFFVsb%tD"HBBdBF("(h_{ ɷ2#n* +JpSòC%ʹ 3HTFVd2oIJ\.W(>1PRjZ.ߴ BLTvlW (M"jg D=#^qm]0>@ pߵ!HVwmD/rE < /V1BbRN.knD! 0Pաnm 0 VFlZ6[zgH$rܭ$IPSOtBS~ !O!)?BŽl6 (b`+ ð,q[`j ^xW A8s0^y$Axw)XVQ= ju_E`}K k#BxLk#Bx PŰO0狊r'JU*T*t|B$Q x-ZϚK4"y/jLFղ,*y}^Qlr-q, ^3[~c)|2!J EQdW$JR)lƬkz.$*>`0P5{X)ÐVCTp oAN3%K^6&vg_듢"#Ȑ_P2W@_xVa^\E@5sWOUN DF<7qeCQxtǴn=:[ B"h}wUWh-PˣXjT, T&FtAMqǜ:, NɜSpS[ǦEiW6$NZK[q{(Bߜs_.qU|}S{a̶S3꺫~],&Mͭ;1kJ0tvv:˫4,J57^x˾w/[$v=.oΟy_%g5O~g:o}+7'}_[[EѫkצIkαGLБOz~hna3ᕕ')B76ƾsyK/koVͨ0?ƥgO=W,[;:e7U(DQ˯]GSEcF^|ͭ[_}^j/W{+W??qf/`'76ۻ_zV.W~DQ4~\ QEQ`}!l&+~Gz'~9EW/瞻oIS4on|kؚMΤ3Oٵ\t:j ut (Iզӽ7^sGɘ/FEQkk-|W}ʞa45Ϝ>u?;xcgw'9G]us/:j g@ &l6_>#.S|T,U?8dHyǧ.<S{62OY4#fzKzu.s|䩟? KϩGI A>`効mqJ-.NC/lW^B>߹aee׭}G| KPcOwY MM͝]lf!Ӿ;*+j|n'' 0dٲ ֓6u,*:yUY;UmUG}m/{O/jmCEKv!ahM0dّ6grRTsc峊#}t:]^VVQQa/DX6=_  qOF|Tњҗtk`Xl+N; Lơ@T*ɔ:>-N6NK}0e2t:](b>A8NR%=!8.& P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"% P"H^b@I@z]E%Q({ u)D$: .X,vuu:LPBvBٗROuuu t:J8|b%IR,r CPrIeW ]qJ@DJ@DJ@DJ@2Qmذjϼ糳$''BAn #GV3|!]!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0Qa6fB[~:>oh80LU%yfF{)H2kW_[tv\e VjŌG _5jKKZbRl7^S7UΕ%plIA~m˱[X pl+U L۶{GatxZyFFaNnaJZQRFC1x~n.@%/7m2~0F0<+:?oww!@s*@6zz1a}}ǒ@7+6/+.Tpi4{HM.PipuZj 4%L4~M>0~{v(Q%1QˆE]`/qmmiXW/0QA}/-D}|EhCjoJz6&BR,a0#UzyM/H"^۶|@j#Hl8tpX$5YsmbFE E^RTZߝ@+pBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#oz~VBP BJ)zBu8,:4Fpr9!D 0xÌ8erWWW3diJJ$X,0z1 #$H$Tnl"BE$ =9LVB!!D&R)0Baj !aB|CQVwCݽP(BzfqF0Bz* 0nFAOEւ[\MY\q-mΠtaQtOB= u*Y 73@,a2ZV7U)/`4&jjȺ Һ+lV:{u;);^1X}fQSBCe/|%rZ Q3~roQgU=)3o3g&twAi%VW`#,E __.EVglbt;zȔg91aߋ{&9x˜aZrF:lW܅l:nbfGIv ֭k~#(>ǖ~T$2:~("h{ڭR}ȨAf2BRJRһ*RBߡ8 ̄o_)ޘ/w̝i&3q!>Tnٝ#2ޟtCϳ,,:~}lN;d(HS)?K ~ng?6)SnO['u`A.D'$Ѓ.'Gݟ$Na^ /BUVQik)Y~a@Ų'_mq3w` w7gzx ȸV 8h0Iʦkq Vt"l?nz 7',$(xK•e\X U<;dJN?3\Np&9Fý ZPsc[Ȳh6^߻Ojڑ{B'%\Y0&\+>ޤܜj;Gd|$Tˣ}Ou|+ )rܧSb˲~9%-W {wMSK=E5fJ/z%ڙ`3Ɏ| 4WW&d Z~J7fA BgyKYRvLr}iBv瘧5N$b8LM3ƥ]5c鋓uBNޜ[m#J)%K~2\FW\^O)5ۀgbF+,)>%n2FzzSZ~9_Y~_b^kQ+|TU,%'; 7!~`7J<=-HM@<Ϻ՟-|%ZQtfϺv @N & ygY̼}$dmMB4칔iYvcPGyrRƇBFjuGr 9=O,0 [zO~Dz\})Df'?4nd]0eފ(g:R/.%L}uXKⰙO?vFn!ݶʸHDc.@^1XXiN8[_^\%2<198e_?ֽJ$TSǶ\ į>qJxYo>1Q/&@Sk^ S`^!sL&jG05ܺZj0JRfFxkG\]kU}EuwDFN;`=,N?V,P&@/2~UF'&;)$?}߶O< G~HҞ^^z=iϑ+V`Ш1Gq BPWWgXomIoN#!qgX;1k^|6PO(#VV+0mz9n-Qp+,RJtuQ#Ǣ#-ѭPgXM0[ad2caA,6@Zp[bFTveF| !ԍ88@)Hz⢁H$&"b1!zʡ!^4m6nLFbl6bqGNB0B'z1a~!P'B#!xBF!`#o0B7!` F0B?>@ K%B)1wBC! A4Zg,=vDv(KCJ9]An10l2{[j5~Umj͚d_R-&(bwBhjcYo%l?Ȗ 5ݽiP(֦rb\ͼ~:ju8x4VP(HrŦ[jL6Xx:{%T /: &/BBZNl@%z&VSS#2Blj8 <"q^#Yb$"}DG`O#^nFpLKL8EE)3=;T{2<ƫe~¾u ˆz ^M [}swihKk.n}\2p̤}۶}ZWlɖuΑa1 cּkreGv;h\?-}sGCG6ݐgu,Q Pgt&+G>=Xzt{՗~D,_F6sbw?n2S湓wߘ9ot.pMq{ u`8D;-Ga69GelፗY6K\?4k[K_Ӌ`HWVa+8 v|βF ??fL""mH@g9|(PG{ ]Zm<*8dK1C奟\>ssǾJhrW\HO,yy-妍B]l7ϥN_?8'b}ׁIJqBIi[7g_5cuέ9xa򚤭OeBfLӱ8>o1N7kNd"!H!rPw\q yW/Ze<ߐO;p艦_7 n?GY@(}#D$3ވ hVB$?(Ocz.V^1L: 1Kޙ\[{EqKtT;6<z:_?_篣񫷚)PD$<|֭Zý?@"4\˨h,P8$PH8k_t缤gmmW\ 'l̘:"$X}ݸ7_g]R׸cvk}}P\\bS7v]K R rOǧ;GA%vD-N5;.e;\42T# (mشëqqic{6&28MhȼJ@cO$˗#6p~ſظ1 IDATc*.,U2n/+%zԐq<˨{ 6Kac_Rjw㪴_>g R]?5NZ~a xܾBqriwwՌaÜӉ'S!7M/caY0nݛwM_4*a-sٽoq 0 <[~瑯S lT¸F~|w5FD/x|M)]G/_tރ{d!!c Kt\ᱟ}(9b遍`k~oW uim|`5 m{,G5;-x`mA؋əԭL߲BEh};mn@? PI.K$q|}\)~`My=мSu5O}D%" t8;; PV;[#ZĽUcT.ײB{qШ7^ 8{`"%`~k*̫2@m>eOm:+x4z f*^4"V 0!U|hmZ՝&H!УߠL)%L|<j3:Y|}!zB!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!` F0B#!xBnmw_B|"Z)4BnU BP(,0 #P=cY6Dw_B|H$G3m0LOuCͦQ|\ZB,B\|L ):k_7HʷonS|w!Z-{?-D,ݺ-fv/cX&Zhp,#hnToay48n"Fp3e&e FuW*"!D$)J}g3 !Gn:''`0t6,jd_#zv|\K-PI0z8Zi=iB]R!^,=[~;BNF04lM޴Կin <1!5ɓ.*J.6BYo9V,BxVʶownRO}:.BO~ۺ٥Ax{*ŕiYXRA=:q[؛vYk"ߧ3Ewugg٣%汃H|޸ [>K{|úl$CuNgĀ2Em"Ϣ;¶[;?1x}^v0.3W.oL%ZO?g^^,ʩbvy9ϙͻNVU._2Skf@Y! i=d!"SFj =/ַD3m)^ ز D;3ܽf V+EC^wTUXIXXO pǾ|Zh ?m^TUumj\g5TV^Gϊ/(zx736LǿάzKOL|ɍ'&j7m"ĻNւQG->Zw'/F3B@k3Qp^oXdh;ke&w[invmucc@71d۞!Tmv]؉9С|i]q8#~+ͣ<"a*~)L)|='WSI8-6$]W=ܜz1Q*OIձ5V9BX}Yll5Gjmn"t-Ҹ<`duqw5":r640qsWt"eƯ]AY/ `wǙP 5L/LZFvԧ0ؚہErDXp2q04D|̐9ƿ=D!O"^3_ԅb{RoVbKpnhoh; nِEdrj4SJ.lVc6"DAvJ}_W_(8{7nj̸.\z; KM?8֔W :`:ďgM!["&;%7z;?Z__?B3dHsvF`qxh}PTRٙz6!c*o]ջ Ϸ[lb/BD"=h\Ö*pzduײ%uD=ed 3"}rݰݠ~YC-ol6Ԕu͙s8 !XR7I]8t넳B8 41oepaqfGj-W|5F?opMge=ViLYEzy^|/BD'O9|剉.9>< B$DDꦔ2@@$3ޏOh>&ĊHXHq1"qv x|v 3EKG7$ >}dV r"ׇ*!nEU̍kl~f_4GݻGTx4zd%FR"tϺX j̈¿lǟ\6F|80]i˕_۳kemr[ӣ΄}=٧g0*l I3{zmu sHҞJޙ18Geu">^(G/6JYQ`sqfZ"=T Ta0$[E"嬰 (>CܢqmV\{.uЯ8 ϮT5q>M6s#t@xl+Cڻ|mڐ7^<ҹR*:cY1:2LDB^  \ą'Nnd_5X ,s[6^}z=g叙 T*\qV]\N#C9a?1uߨ6<^!l)xEܠSR}B!w73fvrװs8wl"Z"_^otQ~90z :\(eccGmPqjRa6ڂN\,HٶSc}ϔea]~>xHgg) Ϸ:~szݞ3bAjkM}5QCy+ꝥ^x(~[Z%;E= 1W"tt\h!HwNpsaN9zP{~[rһ}@]fКߟf&n7?a6;1ع(TRRQ?B [> u|]-_2˪Έ%9)v5-[m7U}]6$z7!^(]"U)3a.^*!o;~-Ws}@{ynDʭ9Ή_ՅU}flN%'`Ku."GƸ Nciֵ}ioWQV*z]N#}D"a'ѺH~'0-0rEG~JBZ-B?!` F0B#!xBF!`#o0B7!` F0B#!xBF!`#o0B7!`Mòf`F$b@Хƻ{~~!(ffԽ$L&JBWU8bZX,i;[=%} d29;!U"B@ `_Z8eYHT*-KEEq w2޺W4͚cԃ^}s?Ug$e:|c\8wBUyJU*/~\22P>|1[>K{|úS$CuN {BB'' >a*B.n!D'uQz{;Ѻ2~B-'fyd*W E .b[y{aq3L[h?84}+ p7wY-.hZYw[h] iE6~HtDalN\>Qø{GJPsT:pEܘ{Ù>CeG0q :Uݨӏ5>Gģ􆭼!WRd*cњ[!Ɗo\޽lɈ`)B`&|UjO 7O CִC@)66BG^, #&'p>d։H.:pRԪ<<\wRQǽp[O@ܕ#pk״1B.\_PUtCgkD(=|zPy2Ka:j=R2bP/\u0fOR9qX?F.aZ[P0`u_z [Zi9?;|?ˤ>#}}?ZbJѰ@TN**k~|%3岶ŭ:uϛNݐ~Z{@@ltx gN>x:;N8pzǷW>ww!4T@#xΨQYTǍIo2U}lo#bR,@)p Lͥ76ע<aW5lao 7? f\B Y"M@T-,x ټ/oeCk"SZm>P״R y6PSv!(] l}g Ҟk\YN-h$˥"GmhPJ3aH.VTѺ߽Xhpbp,I%=]ƹQW3{c3ԣG Y\q;ܓD`-ÎA45Mx6U;SzswW\tH12t#NYӏí\6x^a%ƥj5\Rֺ\~C-g/$Eu25X IDATʰotlg+jÈ,?ѳaP@.72_kuQBT5Fl,>323)h\eYCj=b urjJ\cɥC]KjujʰƺuwxߖQ!%׳}aߑL*y|?VN6[|qm=ԥ;u`oG(eWeTr<2`#zqUKˊ^U'#0BOmwuem⛕z1-h&16Rq24\@1i_=& ?2VܦXF I*D M'4yzbEJ,$Nd{,T簳  bDB;- 悳 Z1Ej3e.*t$@T|UэZ]aP$,*K}ʣ"k3DWpՏXۿ~0帷\.6.`jlO y*7kX9"SIتww3fΟeuVs~q+eLNC [iik*-..!M[w mwʼ׃IQo]f`m&nq:`Ӗ+n㨼yt*@"b-ZN_D n=h=vTe{ Su/q2VY^SW(RBknxw4#V^=9Jx`qF?192_?~c-{+j/YP3+-./tL;ltPNTrqL"*|6>w|v;pG9 rٛFy>#ŬdO50{|V,{/޾bQ{]<"h.DD{(lJ@ $@L/xQsёr-^_\#*u\G^:qV67_gJ=pF>)-yXp\l)Kiwy}d谒JP:(.X%`3ṟaɫ%&z>E.SZoK-/[dO%5ڿ| gf s8l@ nP("W>wtsUgؿ=/oue1nCVNnlCd=o D@8pryo\,m= yeK$e'Fy)MTj MTbu4w-/T>=[ٝj.Mؑp_0-̽Q$Ok^^9"'* g7ǎbe?5]3'ZX! zͨƭVZ?|`j,N+r'jO/#ˈlw`gã-'{I -B XւQW]UUuuE]U4顤!=!:IcM$|^Of̙s=׺%[uYZuaMD3`@}]uVܕ?UF>q=do=]`u5J>V;+|fޛS0mZ̢ʪ$i~9:hY rӼ?>tRq M@*J*Iŧv>U,:śJ+ GĐԣ<i(ʓ.x$>Y(syW\FX3^P] w/nznvg+,5 u&QeXeK.WϙɓG?a5c?o~PD>tмR(XBgABDFd:?gu Y9偑>=IХ;y&5ɉ}G`.`DcQk={<|kۏ_*~ txC$!^y6Ī3\(͌sTgON'/ n FEp%ԝ>ʼn77ʀWj3 n* rhD/1YҙKxgSGhk 3TBʂJMmݠ8,E΁Tbn~ZIĺbsk;׏u=EsiSeAjZf\(%}N]5a0Rr϶(-FFQ#北++*"FDPGNfh(+T Dr۳gaY5@5}ZҊym,ը>NӸm*KQiW&22I"EWbdrM׍çb> *^z-p5`@mWHjqg˽b=zs7 1fK$PJe.89BI !|X9V΁͘gi6e9$!D $N.s[A4 1Jf h84A3cg?Jr ĐEjю؜'UyNRZ>sd s+99R B腫t2(SSS2 "E}[q{bkFL#_{$3bZBGgۦ닋[aeﰫu] &Խq.M33U=^FEAz ݨ;lB{ v|{A]w8]Vpz=˲4{uZmXn]n&,*9 "a<ϋhMv[ju#&Mduc4;_F^TXn]n܄i*7***At=Ԟy^ PQQ!:ؙv[ju# nA. q z 0nnn4M]ڻJee2L&Xn]S3E4M^A8o,<B6B6B6B6B6B6B6B6B6gǵ OEw(e% K)T*e2![zEh4Zg{H$r:@ǰ;Yw#Qu:NؿB\\\R)MӄeCYUTF:RxKvgu n`0пB<<j8M:cGg./ EVmz>[\IoMHVެ05IQ_SYO-t;ecjӐ=i(HڵOBkl.8|LdK)U 1_n?!o\Ӷjoݐy(W" ~h/w|NJ'㟎PYO@4s{x[? Te/u@8GF':[D}QƩiIEfbs{+N'fj)w߱0\m3׋De`x1AR|]ѥ3ׯdi*爨!)Vg*P G :h}> d_SFYg?ܐ\;ܻ; yU 5TaI9jX7ĺkO9%XȾw{,j\&~߱CZG.m40kf+rlq0vz&ԉ_ԬՍR^S<֑ɬJ[Ȥ#J.pIp+OVEK@:bS%q' tف.D1bÙW]<ݍ$2uwllR\I\hE3,/A˜,@œAP1TEh ^>݇9gǿ.4ksc Y?][2N^nhɽB ?P@6xQ=$Ld#  @G33 SyL49SCrϖA ,VTFH7GkiIiM4%]a.o$ eRGK ٔ190doׇTTj78#֝[z雍W.BsWrfK"*&=F\zI~-4alDƺIG/˃ 1Kwru.O|RNXaϿ "I9\'>╵1WLZ#6v6t'wD 'k5Z7o{elSa˟ !V7-S)h@-,zK?u1vWU4+Xm4Wg(T3;E̚a="EàC.`,2ܓZ o#w ĉP_E¼%G*)Fuvp YEe?>溕JeQO7 JzH6s3cGNгG4o]Xr-aarcz{'V aTpuǘs4ڸSg-v:y P$?mߕ_\,O'\P@(:W=:DA@xLˊ̍fH"T_ҐۦԃO8N^3_cbaSK{[P M?>H..d{0UU@5 bNTz7t>SrTȫAӴen eFͱqB+N+q+jTh.dg&ڨʪBQ6IFjQ/_*UPQ#mrVɦ>Ը%? BmwPz,uهg"EXSt+ˬn̸Q4r %}~M66L[mv:yoɩ. v)'bE!n'a%ȵoL ?,\j|X,'QFfY ݟ6y>&F-ar,)%I\@Yx0 .ep\}CŸa#Z iIu} Xpe#ATu뷯*Juɗ<#xR ƾ %8'Nb2V|>Ƌ+(ͼ B7R;6tj@;'5ALfI r &)%5\{}vuXtm2֝EFD.o2M5A{V#"vry˦Gif=x'jEy\e #G aXWߙ Z,\DD%Q-f؁e*" oz XWW[[e*P #6Vy@_bMz‰C])b%`27f3P=E.?7[yUaM겢[7ϛ= sg6Lk*7@/-./uBۈ",DOejb1к'?uׁηDJ_u89Qzⶓfjh/,ض3E iˢXeοeW>3ңÍ*' %M {r݇nu5j3)/D9kv$ h~@DХ;{RM_4=!|p%ks Vm>'S|Tp"fkK(Yg2@0%DZAN!no6,ğ>,?&:؁}ք r]:J&o~@83G+a:7-;[w<%ASrb9l쉾i?OKKU*Pr+Wu.];߂BQTq4vDi:"R}ӀBemqaVOUt g(.^-)/򤁫<)0ezp]aݒغ,Tc.>y'xɀMrm:+ʁQ #s8HX cO#]ݪhS j_ZFyo=jP 5bSRwHf)QEs֦o`gfD?yws;W?Iɹꌴ8X'ɠ(oRr+-3?-Gcqyqǯ\ߧ+O:wPg}nf~Zf~FҎ)92RWpPoNZVAo@ÁqSqm&OOϮԉ)(6б̬cGS}OlB!6Lh\t!bɅ*QtbZ]'5" }`G}BOSu[w"}MIIЋ\U{I a=GܿV}=/)uc" B`9׶T=۵TWo9{0GĪ3\(͌sTgON'/ n FEp%ԝ>ʼn77ʀWj3 n* rfH +.A_dԯ&:ʻY9i@AȎ|ڿYxg &A&tS[7(3 @s`[V芫ߎtշ y*5eFY$1%&s)>l:FT+N+I:eŲNRhj~NacYpU^ǻ|Hl^(Ǒzriwbg>p5SECYAufZ 6c4ޞ=3DzӢ7/ϼVkcQuF^ -Yl4nCsac|S()py7"%nY*ur{Ԉ e7q51\ϧS5"]k7XP6lW̴~:"<"W)>@,w9oڒ1,Pp2 OXi/uy3J=f!$N.s[A4 N֟sBI} SF;}fGCͅ1$ƳsQAw=Oy/\O~Rqt|x3q?yP(UyNRZ>sd s+99R B腫t2(SS* IDATScb؅֣nm@퉭1m_ǿ|Ä#S6xzz*=qtmzѱVvQZw~pf}F߿K߈(B\|AuM(t.ٛu/[M(m,to8Nwjv[ju#l7aY\im@5&PAdUzki^Jȫy/#wj_`{m 9yGlhkq* uSoM&a#}cwOї^^aSLIyc*_t7n/X6=}b؆7(b+*nH[wqJ1%ȏp@@0J>h ;*W:ƃ'&HC>#͗yU<~grZVzۺoZϋeɗ6eWVv\ TWj|['V8[1ЫF|W\vrrű{5! K_prU(0fzϽ0$a㟛_EvUFo[?~\_:y'}"=kcG=9.+}hto%SSP\^3gS]NgǕ7mM/^K"f!`u?4m,U]ܼt |1.E:\Q|3#?׮M uPЅVVn)NXtiٯN)bYaL@Ќ I [2?z.]ηd]*g:( [4\꒏^HUNƇæt|e@PO_Խn/E}^u>l#X0hKM@SW/,ܺ "zu)ou_!Ìn?l M^`&<%Zl븖= .o:vQ%Hl] P?!d3-Z(*UQBC|x֥+-"XU-Bv%uCBl]!d3m+]9n0^Z!dToo:jRt#npP_o#1w[`GB F0B F0B F0B .ahf:ANcq8S0:) BMq1LE(^uP߀ZmoP",:EQ˲ReYQjK  qJJ%q eA}L Br 6Lf;AH Y !x k-C n/y QW`ܴV$XKZ-u H+]auBj_(l,l15uյu]/$J\7 H,MVL6Dm⑍Y=኿_ӥo|dah..j'o'h?[yB []S4&B*ZWZfD 7::I<|]`؛f%y׆OmӖ(ǏۑSnb3X,?%^j5X-.7jJ?g¡侗_-8%섲׼}A<暶u}L[#Xhmy;5,Fq3cԛ ,WYg?ܐ\;9-%x-_zY߿CxIxtܔQ4FW'&L>-wO^7ɣ>- iZE O`niގmz-"jgWAeҮkC|< ,ͣV8>EUTo{zrO/n<Ԍ!!N*!TǿعXhvﱿ7KŸpU T^[s;N̗.w?s8]ډ0:/78QM]Ų6KIT=7Q]>ї^^aW//ߙƺUntzG$` ,8͖'r ?_g!vAA`'ug{2xԣOut믻޿0KA߱coJ"VǛ/='?>y|䴜7֭ uQ.Qy,_qD㕾rLw8DOdF|$[ DQlw,'e^/]Tӈ?nff(A!q)Ujoh1.Maʼn(_7֭z?r O.} x FVE?>LImo,'b]q]7 ʙaC4Q sa)QsݜhXz?lɷm`զGnb ,yiƇ UTVi>)+>lӫ|5m](N+x/hg93F\?:RQP-cE\:01Zr >9k.Slόv,Wx(ylŰ[Oeh`x zcZԢ@_=faI;צz5f -h/&3_%+=M$` KWv8E m#*&k\3*golyzzX9Q^4 K"`ͥv8.1><>LJ1@Y]m|^?Mkѯu`3*hǻ 9cL)G33F?ay,r((j'*z 5eR^ZE W6}wl9#jjD0֖QWS?lxc#1OƝN xEݫKLM|nN.p?t!q<fttה9[_;έlߐ[4\!^ݷ/ŮK_2%~S)/6.h|ݟ iG9[?Z8`FDBQMO=Mq%D}:ݑ By"du ݓ0[-u H+;DQT3"t[83~s( å5BqREwiRqBt>L׽2-0 C.d2u􇝠nduݰ֢6,k [-%PwjZDְniEoKD5`-"Zvn ul9*%Tc5W2ҮCGL>s&8;#+!gw[WwQfS"ģ%>u!ԚK9yXZ1a(p6XVlzpv#"k r>)|z/)!III|EzN˺L~|&8z.pSQ^#?^ԏ ROJAS!Ug~rM XyWȜd 36g~;х'>o1OODQ<~:n6yلi{x$hrzId [ttuF;xgL4xм"6˯7-BCyzOy[24NxcCd:-xxRx|/t)O{ ܈:An )ZW{2,4fXπ99+XPB(9WE BꛑP4~?LA'?|074@{o7j"jgWAe|آo>k{$ϿpkGSCgpqm˞ߺ9{O^O~ŭRϾޙ;$2թ'KAT !kkV[+6k?T۴JYnio9 {/aYo':}M:י/ߣUjXP^0e(/_nd肂:aaGz(Uy/$p"}E[<ܿuݷԎlkɏoxK.w<|BDQ#vzGJ}D9aH' dKr&[p?wΛX oVY ?o? nї[_xroPW'kh1[@4+b)rYtLUFU 1{v$RRD\:P*Iuv꥓}eR ~/%/j\p6]ۺ+qugAQr1ąZ F#rqxwn4=lDi_<э_xß<<\B@;V0Wq̷nV "3hU+.SR溻֮hifdwWHX TĒ~]Ya~]g^} kV6\rD4"20ic'>* \<Сj/2JWP#pH|̘{H=5Z砉/n;m6_"m;sZB,ډZܼg/WomI$93F\?:RQP-cE\:鍽Qr͠p6dt;h,(u+?_kSm@]N[ϯjk {NI%ȧ?|ߒ##3F4'I}uuӯDy r~ ЕENˑ+M̲A'JguQOKKU*Pr+Wu.]ߧ]zH؉_8Z7kV5Q\q׎&0|+;"BemqaVOde`W,&3(\YƥRHg^2 _i[iHI+r|m=& #}rPC mRGm>kڠeLLXy&yQҤ#ɚ!ύv߽V]nxy$QBœ-- y {lUhw?:s;v]4qPr~V}S\ߔO 9”K#K۰g*gՓ1AmFuBUUiکT;STBWEh*Hr|$r Ȋs#_Ӟc:u1ގ,=&7GR:IGT+IȸW 3:{tS\eSIAAA+ ߹?߿c ݧFLe˖1H aok qㇷSOuX|csß+EOXgcUͶ5bQ<1oT T0jĹZHbJLR}ҸQ8®$&G8I6晵! 'Q5Ok=DtR|ꩄUyL7>^;$x Z5D'dU Xw"S|F<]) o(Ϲ6y_r^.PW׎+S5䉇GX۳e fkƒe S[@ Svǥ\ɨ?t؟Q7tႡ K1wJDbyӖd)Jb}=@NYoS FL6˔a⿌t%?ό@.  rװ0p舊쌛7U~=>0 ?sC}'Fp!oȄ͏ȼ=n_Z㨬lREM(IOuɩP^ ~k~iݐ6d2YEzhlQ,L﨨w7I`{#l`EB]n9[tZY<߂d(͙ -ǙL^2Ag5 /w[-}9X d2ba7dn*@"Ea{s~n^DP./W%R _BPT/}^wpoto^֥r P@+en0QWI=)"EcuХz_#ن#@EI#Wʇ]졶AP{8ZѺ9`8?ԖU[lY{([" eKmgs r[v?7Yo3ύPpǔ{ا ǟZNKRU&ڤ_̟ NԶ{廩.V%>jnL6WRnsm} LooWlᚥ4;h"$( s,v1nt&X_qgtXY oe |~3EJ aG_z޶z3{Zxfb]>wvl~Lzsko?ܸϋbuQ1o|7@Rh<l1hj>ZA؀A=ap+߁/?0%e0[:Ro9 !bϠkKK_z3[ZOK$ iXͮk)ag~+}NnYIAiHߩH:oh"dg@%Y7:NǴq8l8u^(&Cs!iOhP!"xy了2'?pqZL?p0*;jذz^[ٳU683јy>Dq1 ͂K2̹ p+'佛9̀I@UimOb[F3*D}¿.mWoǗn޴}bS2tIWt~jJe06'O::';ɶ'\oSaLXg7TV8t*\5V<[J`2 ^l 6ZN ]AoHP~ayRÑ[' }uGDqw4}giu3S\VB0 0|xOoIR?${%pgFa5fM˵xw4m<{'b"? rLHJe[krF`7JBh:&7u|]E}6 Qy\3eɢ -_#޾yQ0oZSwN7zj/K'oR JNŋ+J9pU!b0HScSqB!::%mvaN”( vĔeGJcR#3eg-.J\m:zK˰qKԆ+ =4X`sct , Gi,[^E~BAq|#}+ f6(fTNy{zz\Zf6nhmiod$x'hf`y,$@po .ǒ">Y0h0&dA&2,vK|,P ;z n219+"P0?IkVٶ5 @K+ 4O,7x\.YC. ;;? Hl\y_Zטh/,Xnݭ)&(r$IlZm/$blK#Tjd0,):E/JqFQVK%ͅs9dYv8:7 磷7 L H'8m"lHxcF2Ò !!|iվw>dqaQ&!!cP# OJOfG{cpeYG resources/dde-calendar.qss resources/icon/dde-calendar.svg resources/icon/dde-calendar_96.png resources/icon/dde-calendar_48.png resources/icon/next_disabled.svg resources/icon/next_hover.svg resources/icon/next_normal.svg resources/icon/next_press.svg resources/icon/previous_disabled.svg resources/icon/previous_hover.svg resources/icon/previous_normal.svg resources/icon/previous_press.svg resources/icon/today_hover.svg resources/icon/today_normal.svg resources/icon/today_press.svg resources/icon/dde-ji.svg resources/icon/dde-ban.svg resources/icon/dde-logo.svg resources/icon/dde-xiu.svg resources/icon/dde-yi.svg resources/icon/dde-choose24.svg resources/icon/dde-choose30.svg resources/icon/choose20X20_checked .svg resources/icon/icon_ji.svg resources/icon/icon_type_life.svg resources/icon/type_xiu.svg resources/icon/search_type_work.svg resources/icon/icon_type_other.svg resources/icon/choose30X30_checked .svg resources/icon/icon_yi.svg resources/icon/search_type_life.svg resources/icon/search_type_other.svg resources/icon/type_ban_bg.svg resources/icon/type_ban.svg resources/icon/icon_type_work.svg resources/icon/data_line_checked.svg resources/icon/type_xiu_bg.svg resources/icon/data_day_line.svg resources/icon/checkbox_checked .svg resources/icon/checkbox_unchecked .svg resources/icon/uos_logo.svg resources/icon/oval.svg resources/icon/darkchoose30X30_checked .svg resources/icon/darkchoose20X20_checked .svg resources/icon/dark_ban_bg.svg resources/icon/dark_xiu_bg.svg resources/icon/ban.svg resources/icon/xiu.svg resources/icon/warning.svg resources/DynamicIcon/day5.svg resources/DynamicIcon/calendar_bg.svg resources/DynamicIcon/day1.svg resources/DynamicIcon/day2.svg resources/DynamicIcon/day3.svg resources/DynamicIcon/day4.svg resources/DynamicIcon/day6.svg resources/DynamicIcon/day7.svg resources/DynamicIcon/day8.svg resources/DynamicIcon/day9.svg resources/DynamicIcon/day10.svg resources/DynamicIcon/day11.svg resources/DynamicIcon/day12.svg resources/DynamicIcon/day13.svg resources/DynamicIcon/day14.svg resources/DynamicIcon/day15.svg resources/DynamicIcon/day16.svg resources/DynamicIcon/day17.svg resources/DynamicIcon/day18.svg resources/DynamicIcon/day19.svg resources/DynamicIcon/day20.svg resources/DynamicIcon/day21.svg resources/DynamicIcon/day22.svg resources/DynamicIcon/day23.svg resources/DynamicIcon/day24.svg resources/DynamicIcon/day25.svg resources/DynamicIcon/day26.svg resources/DynamicIcon/day27.svg resources/DynamicIcon/day28.svg resources/DynamicIcon/day29.svg resources/DynamicIcon/day30.svg resources/DynamicIcon/day31.svg resources/DynamicIcon/month1.svg resources/DynamicIcon/month2.svg resources/DynamicIcon/month3.svg resources/DynamicIcon/month4.svg resources/DynamicIcon/month5.svg resources/DynamicIcon/month6.svg resources/DynamicIcon/month7.svg resources/DynamicIcon/month8.svg resources/DynamicIcon/month9.svg resources/DynamicIcon/month10.svg resources/DynamicIcon/month11.svg resources/DynamicIcon/month12.svg resources/DynamicIcon/week1.svg resources/DynamicIcon/week2.svg resources/DynamicIcon/week3.svg resources/DynamicIcon/week4.svg resources/DynamicIcon/week5.svg resources/DynamicIcon/week6.svg resources/DynamicIcon/week7.svg resources/icon/delete.svg resources/icon/edit.svg resources/icon/create_black.svg resources/icon/create_white.svg dde-calendar-5.9.1/calendar-client/assets/resources/000077500000000000000000000000001423264401600223745ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/000077500000000000000000000000001423264401600245715ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/calendar_bg.svg000066400000000000000000000050401423264401600275320ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day1.svg000066400000000000000000000016271423264401600261560ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day10.svg000066400000000000000000000035761423264401600262430ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day11.svg000066400000000000000000000022031423264401600262260ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day12.svg000066400000000000000000000035601423264401600262360ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day13.svg000066400000000000000000000052501423264401600262350ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day14.svg000066400000000000000000000024701423264401600262370ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day15.svg000066400000000000000000000050551423264401600262420ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day16.svg000066400000000000000000000120511423264401600262350ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day17.svg000066400000000000000000000022561423264401600262440ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day18.svg000066400000000000000000000057751423264401600262560ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day19.svg000066400000000000000000000117071423264401600262470ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day2.svg000066400000000000000000000032621423264401600261540ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day20.svg000066400000000000000000000051461423264401600262370ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day21.svg000066400000000000000000000035631423264401600262410ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day22.svg000066400000000000000000000051421423264401600262350ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day23.svg000066400000000000000000000066141423264401600262430ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day24.svg000066400000000000000000000040651423264401600262420ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day25.svg000066400000000000000000000065111423264401600262410ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day26.svg000066400000000000000000000134361423264401600262460ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day27.svg000066400000000000000000000036651423264401600262520ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day28.svg000066400000000000000000000073441423264401600262510ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day29.svg000066400000000000000000000131771423264401600262530ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day3.svg000066400000000000000000000047641423264401600261650ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day30.svg000066400000000000000000000066571423264401600262500ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day31.svg000066400000000000000000000052721423264401600262410ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day4.svg000066400000000000000000000020001423264401600261430ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day5.svg000066400000000000000000000046251423264401600261630ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day6.svg000066400000000000000000000115761423264401600261670ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day7.svg000066400000000000000000000016521423264401600261620ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day8.svg000066400000000000000000000055111423264401600261610ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/day9.svg000066400000000000000000000114041423264401600261600ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month1.svg000066400000000000000000000022621423264401600265220ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month10.svg000066400000000000000000000022471423264401600266050ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month11.svg000066400000000000000000000023611423264401600266030ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month12.svg000066400000000000000000000027601423264401600266070ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month2.svg000066400000000000000000000023761423264401600265310ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month3.svg000066400000000000000000000035501423264401600265250ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month4.svg000066400000000000000000000032311423264401600265220ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month5.svg000066400000000000000000000032571423264401600265330ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month6.svg000066400000000000000000000026551423264401600265350ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month7.svg000066400000000000000000000021551423264401600265310ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month8.svg000066400000000000000000000033221423264401600265270ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/month9.svg000066400000000000000000000034731423264401600265370ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week1.svg000066400000000000000000000027011423264401600263260ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week2.svg000066400000000000000000000037371423264401600263410ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week3.svg000066400000000000000000000031751423264401600263360ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week4.svg000066400000000000000000000030411423264401600263270ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week5.svg000066400000000000000000000021101423264401600263240ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week6.svg000066400000000000000000000033171423264401600263370ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/DynamicIcon/week7.svg000066400000000000000000000030211423264401600263300ustar00rootroot00000000000000 dde-calendar-5.9.1/calendar-client/assets/resources/dde-calendar.qss000066400000000000000000000003441423264401600254300ustar00rootroot00000000000000QFrame#CalendarBackground { background-color: rgba(220, 220, 220, 200) } QLabel#CalendarHeaderWeekday { font-size: 14px; color: #696969; } QLabel#CalendarHeaderWeekend { font-size: 14px; color: #ff5b38; } dde-calendar-5.9.1/calendar-client/assets/resources/deepin-calendar.qss000066400000000000000000000003441423264401600261400ustar00rootroot00000000000000QFrame#CalendarBackground { background-color: rgba(220, 220, 220, 200) } QLabel#CalendarHeaderWeekday { font-size: 14px; color: #696969; } QLabel#CalendarHeaderWeekend { font-size: 14px; color: #ff5b38; } dde-calendar-5.9.1/calendar-client/assets/resources/icon/000077500000000000000000000000001423264401600233245ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/assets/resources/icon/ban.svg000066400000000000000000000015731423264401600246130ustar00rootroot00000000000000 类型 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/checkbox_checked .svg000077500000000000000000000075411423264401600273530ustar00rootroot00000000000000 checkbox_checked 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/checkbox_unchecked .svg000077500000000000000000000020021423264401600277010ustar00rootroot00000000000000 checkbox_unchecked 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/choose20X20_checked .svg000077500000000000000000000032671423264401600275020ustar00rootroot00000000000000 椭圆形 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/choose30X30_checked .svg000077500000000000000000000033141423264401600274750ustar00rootroot00000000000000 choose_checked Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/create_black.svg000066400000000000000000000017671423264401600264570ustar00rootroot00000000000000 编组 21 dde-calendar-5.9.1/calendar-client/assets/resources/icon/create_white.svg000066400000000000000000000017671423264401600265230ustar00rootroot00000000000000 编组 21 dde-calendar-5.9.1/calendar-client/assets/resources/icon/dark_ban_bg.svg000066400000000000000000000024711423264401600262620ustar00rootroot00000000000000 类型 3 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dark_xiu_bg.svg000066400000000000000000000024731423264401600263310ustar00rootroot00000000000000 类型 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/darkchoose20X20_checked .svg000066400000000000000000000034401423264401600303320ustar00rootroot00000000000000 checkbox_checked Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/darkchoose30X30_checked .svg000066400000000000000000000033271423264401600303400ustar00rootroot00000000000000 choose30X30_checked Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/data_day_line.svg000077500000000000000000000013501423264401600266240ustar00rootroot00000000000000 Line Copy 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/data_line_checked.svg000077500000000000000000000036611423264401600274440ustar00rootroot00000000000000 Rectangle 75 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-ban.svg000077500000000000000000000020251423264401600253410ustar00rootroot00000000000000 类型-班 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-calendar.svg000077500000000000000000000117731423264401600263640ustar00rootroot00000000000000 logo Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-calendar_48.png000066400000000000000000000024531423264401600266540ustar00rootroot00000000000000PNG  IHDR00WsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATh[lUs S\RTA+Q%`!-&> A!@ixiA$ >1>(`JjkI4h[msaڅnwwfR?33眙176#ץyv@D" B BNQwaoB9iF$y@ꪨCуcFDL$^:=Tr .3J´Fv$ήy \  t}7 Zam\ ܼ)gW[ޑ.eF?=)$3sK >Gm`>="sM8eW[z7% !@yn-7n;L΋ېo@;crI`4y]gp߻x/s-x-E7F8nFIwFƃ(b yޔ(}v(C,-tߚJfz;5?}t ߿Dt=}yضj5҂0My/ E%ԣ!SgC_D <`\ZYJ\Zmri1f4J 1m0|+@3!(.n^e0M>1zuuR?+5(7 `E+o?:T0Ob~M%hm6~,HoVAAկdcQߪ9 &wfMwgfD~V@?ۉ\T\Th&Ҋ3N %vxK븦 YٵQPFZK'4|Z8BB09`rYi5:nY$@骨  \"p|0٘0ٸ"okXᖼXy /ȑHv m}V {0u0%`2|a$%B&7RT':cbpkuL5 ^R&&{fuCZb2.E S߀AUlyQZp8,׈" K-Bk: ˷#;+:[BXj?5p Z >Šx{wf: K}PӸpTR}U#bd;|4GD̸eme á@{\rG"B&v\rCYG&TRܚ0 0 0 0΍p HԾOEG PTتJnYjɣH> m?p%Y$u`?E !뢌IO0܍݈ j2obx~VT>;O7-%?+ j%B{Lh %t[&\ГM&M(ؗn*B[|iMMm8o[5t|4g ; |}7,# [7eBgm+UTI63 .tMO ysb>D=߃obK w@z7вz'Jxok%;߃*^=\F3߻p֏۸ak%~KsM>[ :1xIC3luѨ(ln2z;[8olp53+ϋ1M M'|Zl{uMgWM}=mK<5ktFcP#yT")/#, mȯBǃGIb )Ez%l1=dG &ĩ1 FcT3'd8ekVvEA 4OqAj121}`oO/R֭6S?rhy! o"8b/Q[U-nj11&OD 5C0&+FYF;A0Of$k/[2Z!Dw!B~f=ϘWD?W0SKFIBOŰp5>1ޮGzDTc; |jpD\j 5|kށx@/·=޲j+] sQn59_Cl@gﵥ  6.[2Q4qUx s2G:~m![6E9_틙ϘG6k>_|rg^J;P"/lJC7 z O>@M$2/@. &tr[f|#oL&m|xg\m 9 Q2cP2x&"s;^rM3 5@dF–QǞ"?{Ѩljr,lu<ӦvuJ3-]ߵް#%sxt}J  ƎNpL;TNx瑿?G:|,54qomWX ϜAmgꝰ02Ht?3qG;1oJ{yjfWDr(b[6UL@:!"&wD.i`v#;Pƿ V6$L'79PdIƃ$w?lFg *4.)ZJCddxzⰾ.h4 0 0 0 0 0 0cU.XY&WϐJٞqhTxZ?l86V f d}%I"$  5~c\z_\DhђIɈUk}m'"U)Dk&>_KqmmGlb͐e]:'V26TwZSm@:kkf*i檔:ZmKpSFWoW.jF EMz%̉|G"9CA#QyIKقϥJNmPؕR+5 , IENDB`dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-choose24.svg000077500000000000000000000041041423264401600262270ustar00rootroot00000000000000 choose24X24_checked Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-choose30.svg000077500000000000000000000033141423264401600262260ustar00rootroot00000000000000 choose_checked Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-ji.svg000077500000000000000000000025701423264401600252100ustar00rootroot00000000000000 icon_ji Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-logo.svg000077500000000000000000000117731423264401600255530ustar00rootroot00000000000000 logo Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-xiu.svg000077500000000000000000000020251423264401600254060ustar00rootroot00000000000000 类型-休 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/dde-yi.svg000077500000000000000000000025701423264401600252270ustar00rootroot00000000000000 icon_yi Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/delete.svg000066400000000000000000000064111423264401600253110ustar00rootroot00000000000000 icon/schedule/delete dde-calendar-5.9.1/calendar-client/assets/resources/icon/edit.svg000066400000000000000000000043171423264401600247770ustar00rootroot00000000000000 编组 18 dde-calendar-5.9.1/calendar-client/assets/resources/icon/icon_ji.svg000077500000000000000000000025701423264401600254660ustar00rootroot00000000000000 icon_ji Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/icon_type_life.svg000077500000000000000000000025141423264401600270420ustar00rootroot00000000000000 icon_type_life Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/icon_type_other.svg000077500000000000000000000024731423264401600272500ustar00rootroot00000000000000 icon_type_other Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/icon_type_work.svg000077500000000000000000000025021423264401600271020ustar00rootroot00000000000000 编组 5 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/icon_yi.svg000077500000000000000000000025701423264401600255050ustar00rootroot00000000000000 icon_yi Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/next_disabled.svg000066400000000000000000000015271423264401600266570ustar00rootroot00000000000000 next_disabled Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/next_hover.svg000066400000000000000000000014751423264401600262350ustar00rootroot00000000000000 next_hover Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/next_normal.svg000066400000000000000000000014771423264401600264040ustar00rootroot00000000000000 next_normal Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/next_press.svg000066400000000000000000000014751423264401600262460ustar00rootroot00000000000000 next_press Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/oval.svg000066400000000000000000000027021423264401600250070ustar00rootroot00000000000000 椭圆形 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/previous_disabled.svg000066400000000000000000000015251423264401600275530ustar00rootroot00000000000000 previous_disabled Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/previous_hover.svg000066400000000000000000000014731423264401600271310ustar00rootroot00000000000000 previous_hover Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/previous_normal.svg000066400000000000000000000014751423264401600273000ustar00rootroot00000000000000 previous_normal Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/previous_press.svg000066400000000000000000000014731423264401600271420ustar00rootroot00000000000000 previous_press Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/search_type_life.svg000077500000000000000000000012751423264401600273620ustar00rootroot00000000000000 矩形 3 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/search_type_other.svg000077500000000000000000000012751423264401600275640ustar00rootroot00000000000000 矩形 4 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/search_type_work.svg000077500000000000000000000013131423264401600274160ustar00rootroot00000000000000 矩形 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/today_hover.svg000066400000000000000000000017551423264401600264000ustar00rootroot00000000000000 today_hover Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/today_normal.svg000066400000000000000000000017571423264401600265470ustar00rootroot00000000000000 today_normal Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/today_press.svg000066400000000000000000000017551423264401600264110ustar00rootroot00000000000000 today_press Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/type_ban.svg000077500000000000000000000020251423264401600256500ustar00rootroot00000000000000 类型-班 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/type_ban_bg.svg000077500000000000000000000024711423264401600263250ustar00rootroot00000000000000 类型 3 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/type_xiu.svg000077500000000000000000000020251423264401600257150ustar00rootroot00000000000000 类型-休 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/type_xiu_bg.svg000077500000000000000000000024731423264401600263740ustar00rootroot00000000000000 类型 2 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/uos_logo.svg000066400000000000000000000054441423264401600257020ustar00rootroot00000000000000 uos_logo Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/warning.svg000066400000000000000000000065321423264401600255200ustar00rootroot00000000000000 deepin-cloudprint-config-helper Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/resources/icon/xiu.svg000066400000000000000000000015731423264401600246600ustar00rootroot00000000000000 类型 Created with Sketch. dde-calendar-5.9.1/calendar-client/assets/translate_generation.sh000066400000000000000000000003501423264401600251240ustar00rootroot00000000000000#!/bin/bash # this file is used to auto-generate .qm file from .ts file. # author: shibowen at linuxdeepin.com ts_list=(`ls translations/*.ts`) for ts in "${ts_list[@]}" do printf "\nprocess ${ts}\n" lrelease "${ts}" done dde-calendar-5.9.1/calendar-client/src/000077500000000000000000000000001423264401600176475ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/KeyPress/000077500000000000000000000000001423264401600214145ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/KeyPress/calldaykeyleftdeal.cpp000066400000000000000000000031071423264401600257440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "calldaykeyleftdeal.h" #include "graphicsItem/cweekdaybackgrounditem.h" #include "cgraphicsscene.h" CAllDayKeyLeftDeal::CAllDayKeyLeftDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Left, scene) { } bool CAllDayKeyLeftDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { CWeekDayBackgroundItem *backgroundItem = dynamic_cast(item); backgroundItem->initState(); //如果是第一个则切换时间 scene->setActiveSwitching(true); if (backgroundItem->getLeftItem() == nullptr) { scene->setPrePage(item->getDate().addDays(-1), true); } else { scene->signalSwitchView(backgroundItem->getDate().addDays(-1), true); } return true; } dde-calendar-5.9.1/calendar-client/src/KeyPress/calldaykeyleftdeal.h000066400000000000000000000024061423264401600254120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CALLDAYKEYLEFTDEAL_H #define CALLDAYKEYLEFTDEAL_H #include "ckeypressdealbase.h" /** * @brief The CAllDayKeyLeftDeal class * 全体左方向键处理 */ class CAllDayKeyLeftDeal : public CKeyPressDealBase { public: explicit CAllDayKeyLeftDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CALLDAYKEYLEFTDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/calldaykeyrightdeal.cpp000066400000000000000000000031171423264401600261300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "calldaykeyrightdeal.h" #include "graphicsItem/cweekdaybackgrounditem.h" #include "cgraphicsscene.h" CAllDayKeyRightDeal::CAllDayKeyRightDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Right, scene) { } bool CAllDayKeyRightDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { CWeekDayBackgroundItem *backgroundItem = dynamic_cast(item); backgroundItem->initState(); //如果没有下一个则切换时间 scene->setActiveSwitching(true); if (backgroundItem->getRightItem() == nullptr) { scene->setNextPage(item->getDate().addDays(1), true); } else { scene->signalSwitchView(backgroundItem->getDate().addDays(1), true); } return true; } dde-calendar-5.9.1/calendar-client/src/KeyPress/calldaykeyrightdeal.h000066400000000000000000000023631423264401600255770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CALLDAYKEYRIGHTDEAL_H #define CALLDAYKEYRIGHTDEAL_H #include "ckeypressdealbase.h" /** * @brief The CAllDayKeyRightDeal class * */ class CAllDayKeyRightDeal : public CKeyPressDealBase { public: explicit CAllDayKeyRightDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CALLDAYKEYRIGHTDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeydowndeal.cpp000066400000000000000000000026321423264401600245740ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeydowndeal.h" #include "graphicsItem/cscenebackgrounditem.h" #include "cgraphicsscene.h" #include CKeyDownDeal::CKeyDownDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Down, scene) { } bool CKeyDownDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { item->initState(); if (item->getDownItem() != nullptr) { scene->setCurrentFocusItem(item->getDownItem()); item->getDownItem()->setItemFocus(true); } else { scene->setNextPage(item->getDate().addDays(7)); } return true; } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeydowndeal.h000066400000000000000000000023351423264401600242410ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYDOWNDEAL_H #define CKEYDOWNDEAL_H #include "ckeypressdealbase.h" /** * @brief The CKeyDownDeal class * 下方向键处理 */ class CKeyDownDeal : public CKeyPressDealBase { public: explicit CKeyDownDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CKEYDOWNDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyenabledeal.cpp000066400000000000000000000064771423264401600250660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeyenabledeal.h" #include "cgraphicsscene.h" #include "scheduledlg.h" #include "graphicsItem/cscenebackgrounditem.h" #include "graphicsItem/draginfoitem.h" #include "myscheduleview.h" #include CKeyEnableDeal::CKeyEnableDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Return, scene) { } /** * @brief CKeyEnableDeal::focusItemDeal 焦点项处理 * @param item * @param scene * @return */ bool CKeyEnableDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { bool result = false; CFocusItem *focusItem = item->getFocusItem(); if (focusItem != nullptr) { result = true; QWidget *parentWidget = scene->views().at(0); switch (focusItem->getItemType()) { case CFocusItem::CBACK: { CSceneBackgroundItem *backgroundItem = dynamic_cast(focusItem); if (backgroundItem != nullptr) { QDateTime createDateTime; //设置创建时间 createDateTime.setDate(backgroundItem->getDate()); createDateTime.setTime(QTime(0, 0, 0)); //如果为月视图背景则根据是否为当前时间设置不一样的创建时间 if (backgroundItem->getItemOfView() == CSceneBackgroundItem::OnMonthView) { QDateTime currentDateTime = QDateTime::currentDateTime(); //如果为当前时间则设置创建开始时间为当前时间 if (backgroundItem->getDate() == currentDateTime.date()) { createDateTime.setTime(currentDateTime.time()); } else { createDateTime.setTime(QTime(8, 0, 0)); } } createSchedule(createDateTime, parentWidget); } } break; case CFocusItem::CITEM: { DragInfoItem *scheduleItem = dynamic_cast(focusItem); CMyScheduleView dlg(scheduleItem->getData(), parentWidget); dlg.exec(); } break; default: { scene->signalGotoDayView(focusItem->getDate()); } break; } } return result; } /** * @brief CKeyEnableDeal::createSchedule 创建日程 * @param createDate * @param parent */ void CKeyEnableDeal::createSchedule(const QDateTime &createDate, QWidget *parent) { CScheduleDlg dlg(1, parent); dlg.setDate(createDate); dlg.setAllDay(true); dlg.exec(); } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyenabledeal.h000066400000000000000000000026111423264401600245150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYENABLEDEAL_H #define CKEYENABLEDEAL_H #include "ckeypressdealbase.h" #include #include /** * @brief The CKeyEnableDeal class * 回车键处理 */ class CKeyEnableDeal : public CKeyPressDealBase { public: explicit CKeyEnableDeal(QGraphicsScene *scene = nullptr); protected: //焦点项处理 bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; private: //创建日程 static void createSchedule(const QDateTime &createDate, QWidget *parent); }; #endif // CKEYENABLEDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyleftdeal.cpp000066400000000000000000000026321423264401600245570ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeyleftdeal.h" #include "graphicsItem/cscenebackgrounditem.h" #include "cgraphicsscene.h" #include CKeyLeftDeal::CKeyLeftDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Left, scene) { } bool CKeyLeftDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { item->initState(); if (item->getLeftItem() != nullptr) { scene->setCurrentFocusItem(item->getLeftItem()); item->getLeftItem()->setItemFocus(true); } else { scene->setPrePage(item->getDate().addDays(-1)); } return true; } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyleftdeal.h000066400000000000000000000023351423264401600242240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYLEFTDEAL_H #define CKEYLEFTDEAL_H #include "ckeypressdealbase.h" /** * @brief The CKeyLeftDeal class * 左方向键处理 */ class CKeyLeftDeal : public CKeyPressDealBase { public: explicit CKeyLeftDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CKEYLEFTDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeypressdealbase.cpp000066400000000000000000000032021423264401600256060ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeypressdealbase.h" #include "cgraphicsscene.h" #include "graphicsItem/cscenebackgrounditem.h" CKeyPressDealBase::CKeyPressDealBase(Qt::Key key, QGraphicsScene *scene) : m_key(key) , m_scene(scene) { } CKeyPressDealBase::~CKeyPressDealBase() { } /** * @brief CKeyPressDealBase::getKey 获取注册的key * @return */ Qt::Key CKeyPressDealBase::getKey() const { return m_key; } bool CKeyPressDealBase::dealEvent() { CGraphicsScene *scene = qobject_cast(m_scene); if (scene != nullptr) { CSceneBackgroundItem *item = dynamic_cast(scene->getCurrentFocusItem()); if (item != nullptr) { return focusItemDeal(item, scene); } else { return false; } } return false; } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeypressdealbase.h000066400000000000000000000026361423264401600252650ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYPRESSDEALBASE_H #define CKEYPRESSDEALBASE_H #include class QGraphicsScene; class CSceneBackgroundItem; class CGraphicsScene; class CKeyPressDealBase { public: explicit CKeyPressDealBase(Qt::Key key, QGraphicsScene *scene = nullptr); virtual ~CKeyPressDealBase(); //获取注册的key Qt::Key getKey() const; bool dealEvent(); protected: virtual bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) = 0; private: Qt::Key m_key; protected: QGraphicsScene *m_scene; }; #endif // CKEYPRESSDEALBASE_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeypressprxy.cpp000066400000000000000000000037421423264401600250610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeypressprxy.h" #include CKeyPressPrxy::CKeyPressPrxy() { } CKeyPressPrxy::~CKeyPressPrxy() { QMap::iterator iter = m_keyEventMap.begin(); for (; iter != m_keyEventMap.end(); ++iter) { delete iter.value(); } m_keyEventMap.clear(); } /** * @brief CKeyPressPrxy::keyPressDeal 键盘事件处理 * @param event * @return */ bool CKeyPressPrxy::keyPressDeal(int key) { bool result = m_keyEventMap.contains(key); if (result) { //如果有注册对应的key事件 开始处理 result = m_keyEventMap[key]->dealEvent(); } return result; } /** * @brief CKeyPressPrxy::addkeyPressDeal 添加需要处理的键盘事件 * @param deal */ void CKeyPressPrxy::addkeyPressDeal(CKeyPressDealBase *deal) { if (deal != nullptr) m_keyEventMap[deal->getKey()] = deal; } /** * @brief CKeyPressPrxy::removeDeal 移除添加的键盘事件 * @param deal */ void CKeyPressPrxy::removeDeal(CKeyPressDealBase *deal) { if (m_keyEventMap.contains(deal->getKey())) { m_keyEventMap.remove(deal->getKey()); delete deal; } } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeypressprxy.h000066400000000000000000000025471423264401600245300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYPRESSPRXY_H #define CKEYPRESSPRXY_H #include "ckeypressdealbase.h" #include #include class CKeyPressPrxy { public: explicit CKeyPressPrxy(); ~CKeyPressPrxy(); //键盘事件处理 bool keyPressDeal(int key); //添加需要处理的键盘事件 void addkeyPressDeal(CKeyPressDealBase *deal); //移除添加的键盘事件 void removeDeal(CKeyPressDealBase *deal); private: QMap m_keyEventMap {}; }; #endif // CKEYPRESSPRXY_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyrightdeal.cpp000066400000000000000000000026421423264401600247430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeyrightdeal.h" #include "graphicsItem/cscenebackgrounditem.h" #include "cgraphicsscene.h" #include CKeyRightDeal::CKeyRightDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Right, scene) { } bool CKeyRightDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { item->initState(); if (item->getRightItem() != nullptr) { scene->setCurrentFocusItem(item->getRightItem()); item->getRightItem()->setItemFocus(true); } else { scene->setNextPage(item->getDate().addDays(1)); } return true; } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyrightdeal.h000066400000000000000000000023431423264401600244060ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYRIGHTDEAL_H #define CKEYRIGHTDEAL_H #include "ckeypressdealbase.h" /** * @brief The CKeyRightDeal class * 右方向键处理 */ class CKeyRightDeal : public CKeyPressDealBase { public: explicit CKeyRightDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CKEYRIGHTDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyupdeal.cpp000066400000000000000000000026121423264401600242470ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ckeyupdeal.h" #include "graphicsItem/cscenebackgrounditem.h" #include "cgraphicsscene.h" #include CKeyUpDeal::CKeyUpDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Up, scene) { } bool CKeyUpDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { item->initState(); if (item->getUpItem() != nullptr) { scene->setCurrentFocusItem(item->getUpItem()); item->getUpItem()->setItemFocus(true); } else { scene->setPrePage(item->getDate().addDays(-7)); } return true; } dde-calendar-5.9.1/calendar-client/src/KeyPress/ckeyupdeal.h000066400000000000000000000023201423264401600237100ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CKEYUPDEAL_H #define CKEYUPDEAL_H #include "ckeypressdealbase.h" /** * @brief The CKeyUpDeal class * 上方向键处理 */ class CKeyUpDeal : public CKeyPressDealBase { public: explicit CKeyUpDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CKEYUPDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/cscenetabkeydeal.cpp000066400000000000000000000035741423264401600254170ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cscenetabkeydeal.h" #include "graphicsItem/cscenebackgrounditem.h" #include "cgraphicsscene.h" #include #include CSceneTabKeyDeal::CSceneTabKeyDeal(QGraphicsScene *scene) : CKeyPressDealBase(Qt::Key_Tab, scene) { } bool CSceneTabKeyDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { CSceneBackgroundItem *nextItem = qobject_cast(item->setNextItemFocusAndGetNextItem()); if (nextItem == nullptr) { scene->setCurrentFocusItem(nullptr); item->setItemFocus(false); return false; } else { CFocusItem *focusItem = nextItem->getFocusItem(); //如果当前焦点显示不为背景则定位到当前焦点item位置 if (focusItem->getItemType() != CFocusItem::CBACK) { QGraphicsView *view = scene->views().at(0); QPointF point(scene->width() / 2, focusItem->rect().y()); view->centerOn(point); } scene->setCurrentFocusItem(nextItem); return true; } } dde-calendar-5.9.1/calendar-client/src/KeyPress/cscenetabkeydeal.h000066400000000000000000000024171423264401600250570ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCENETABKEYDEAL_H #define CSCENETABKEYDEAL_H #include "ckeypressdealbase.h" /** * @brief The CSceneTabKeyDeal class * 场景tab切换处理 */ class CSceneTabKeyDeal : public CKeyPressDealBase { public: explicit CSceneTabKeyDeal(QGraphicsScene *scene = nullptr); protected: //焦点切换处理 bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CSCENETABKEYDEAL_H dde-calendar-5.9.1/calendar-client/src/KeyPress/cweekdayscenetabkeydeal.cpp000066400000000000000000000040151423264401600267600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cweekdayscenetabkeydeal.h" #include "graphicsItem/cweekdaybackgrounditem.h" #include "cgraphicsscene.h" CWeekDaySceneTabKeyDeal::CWeekDaySceneTabKeyDeal(QGraphicsScene *scene) : CSceneTabKeyDeal(scene) { } bool CWeekDaySceneTabKeyDeal::focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) { CWeekDayBackgroundItem *focusItem = dynamic_cast(item); if (focusItem != nullptr) { //如果当前背景是焦点显示则切换到另一个视图 if (focusItem->getItemFocus()) { focusItem->setItemFocus(false); scene->setActiveSwitching(true); scene->signalSwitchView(focusItem->getDate()); return true; } else { //如果该背景上还有切换显示的日程标签 if (focusItem->hasNextSubItem() || focusItem->showFocus()) { return CSceneTabKeyDeal::focusItemDeal(item, scene); } else { focusItem->initState(); scene->setActiveSwitching(true); scene->signalSwitchView(focusItem->getDate()); return true; } } } return false; } dde-calendar-5.9.1/calendar-client/src/KeyPress/cweekdayscenetabkeydeal.h000066400000000000000000000026331423264401600264310ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CWEEKDAYSCENETABKEYDEAL_H #define CWEEKDAYSCENETABKEYDEAL_H #include "cscenetabkeydeal.h" /** * @brief The CWeekDaySceneTabKeyDeal class * 周/日场景tab切换 */ class CWeekDaySceneTabKeyDeal : public CSceneTabKeyDeal { public: enum TabKeyType { ALLDayDeal, PartTimeDeal }; //全体视图处理,非全天视图处理 public: explicit CWeekDaySceneTabKeyDeal(QGraphicsScene *scene = nullptr); protected: bool focusItemDeal(CSceneBackgroundItem *item, CGraphicsScene *scene) override; }; #endif // CWEEKDAYSCENETABKEYDEAL_H dde-calendar-5.9.1/calendar-client/src/accessible/000077500000000000000000000000001423264401600217445ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/accessible/accessible.h000066400000000000000000000152001423264401600242100ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 ACCESSIBLE_H #define ACCESSIBLE_H #include "accessibledefine.h" #include "../widget/yearWidget/yearwindow.h" #include "../widget/monthWidget/monthwindow.h" #include "../widget/weekWidget/weekwindow.h" #include "../widget/dayWidget/daywindow.h" #include "../customWidget/scheduleRemindWidget.h" #include "../view/alldayeventview.h" #include "../view/monthgraphiview.h" #include "../view/graphicsview.h" #include "../customWidget/customframe.h" #include "../customWidget/animationstackedwidget.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE //using namespace DCC_NAMESPACE; SET_FORM_ACCESSIBLE(CYearWindow, "YearWidget"); SET_FORM_ACCESSIBLE(CMonthWindow, "MonthWidget"); SET_FORM_ACCESSIBLE(CWeekWindow, "WeekWidget"); SET_FORM_ACCESSIBLE(CDayWindow, "DayWidget"); SET_FORM_ACCESSIBLE(ScheduleRemindWidget, "ScheduleRemindWidget"); SET_FORM_ACCESSIBLE(CAllDayEventWeekView, "CAllDayEventWeekView"); SET_FORM_ACCESSIBLE(CMonthGraphicsview, "CMonthGraphicsview"); SET_FORM_ACCESSIBLE(CGraphicsView, "CGraphicsView"); SET_FORM_ACCESSIBLE(CustomFrame, "CustomFrame"); SET_FORM_ACCESSIBLE(AnimationStackedWidget, "AnimationStackedWidget"); // Qt控件 SET_FORM_ACCESSIBLE(QFrame, m_w->objectName().isEmpty() ? "frame" : m_w->objectName()) SET_FORM_ACCESSIBLE(QWidget, m_w->objectName().isEmpty() ? "widget" : m_w->objectName()) SET_BUTTON_ACCESSIBLE(QPushButton, m_w->text().isEmpty() ? "qpushbutton" : m_w->text()) SET_SLIDER_ACCESSIBLE(QSlider, "qslider") SET_FORM_ACCESSIBLE(QMenu, "qmenu") //SET_LABEL_ACCESSIBLE(QLabel, m_w->text().isEmpty() ? "qlabel" : m_w->text()) // Dtk控件 SET_FORM_ACCESSIBLE(DFrame, m_w->objectName().isEmpty() ? "frame" : m_w->objectName()) SET_FORM_ACCESSIBLE(DWidget, m_w->objectName().isEmpty() ? "widget" : m_w->objectName()) SET_FORM_ACCESSIBLE(DBackgroundGroup, m_w->objectName().isEmpty() ? "dbackgroundgroup" : m_w->objectName()) SET_BUTTON_ACCESSIBLE(DSwitchButton, m_w->text().isEmpty() ? "switchbutton" : m_w->text()) SET_BUTTON_ACCESSIBLE(DFloatingButton, m_w->toolTip().isEmpty() ? "DFloatingButton" : m_w->toolTip()) SET_FORM_ACCESSIBLE(DSearchEdit, m_w->objectName().isEmpty() ? "DSearchEdit" : m_w->objectName()) SET_BUTTON_ACCESSIBLE(DPushButton, m_w->objectName().isEmpty() ? "DPushButton" : m_w->objectName()) SET_BUTTON_ACCESSIBLE(DIconButton, m_w->objectName().isEmpty() ? "DIconButton" : m_w->objectName()) SET_BUTTON_ACCESSIBLE(DCheckBox, m_w->objectName().isEmpty() ? "DCheckBox" : m_w->objectName()) SET_BUTTON_ACCESSIBLE(DCommandLinkButton, "DCommandLinkButton") SET_FORM_ACCESSIBLE(DTitlebar, m_w->objectName().isEmpty() ? "DTitlebar" : m_w->objectName()) //SET_LABEL_ACCESSIBLE(DLabel, m_w->text().isEmpty() ? "DLabel" : m_w->text()) SET_BUTTON_ACCESSIBLE(DToolButton, m_w->objectName().isEmpty() ? "DToolButton" : m_w->objectName()) SET_FORM_ACCESSIBLE(DDialog, m_w->objectName().isEmpty() ? "DDialog" : m_w->objectName()) SET_FORM_ACCESSIBLE(DFileDialog, m_w->objectName().isEmpty() ? "DFileDialog" : m_w->objectName()) QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) { QAccessibleInterface *interface = nullptr; USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CYearWindow); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CMonthWindow); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CWeekWindow); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CDayWindow); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), ScheduleRemindWidget); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CAllDayEventWeekView); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CMonthGraphicsview); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CGraphicsView); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), CustomFrame); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), AnimationStackedWidget); // Qt 控件 USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), QFrame); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), QWidget); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), QPushButton); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), QSlider); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), QMenu); // USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), QLabel); // dtk 控件 USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DFrame); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DWidget); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DBackgroundGroup); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DSwitchButton); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DFloatingButton); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DSearchEdit); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DPushButton); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DIconButton); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DCheckBox); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DCommandLinkButton); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DTitlebar); // USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DLabel); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DDialog); USE_ACCESSIBLE(QString(classname).replace("dccV20::", ""), DFileDialog); return interface; } #endif // ACCESSIBLE_H dde-calendar-5.9.1/calendar-client/src/accessible/accessibledefine.h000066400000000000000000000356021423264401600253730ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 ACCESSIBLEDEFINE_H #define ACCESSIBLEDEFINE_H #include #include #include #include #include #include #include #include #include #include #define SEPARATOR "_" inline QString getAccessibleName(QWidget *w, QAccessible::Role r, const QString &fallback) { const QString lowerFallback = fallback.toLower(); // 避免重复生成 static QMap objnameMap; if (!objnameMap[w].isEmpty()) return objnameMap[w]; static QMap> accessibleMap; QString oldAccessName = w->accessibleName().toLower(); oldAccessName.replace(SEPARATOR, ""); // 按照类型添加固定前缀 QMetaEnum metaEnum = QMetaEnum::fromType(); QByteArray prefix = metaEnum.valueToKeys(r); switch (r) { case QAccessible::Form: prefix = "Form"; break; case QAccessible::Button: prefix = "Btn"; break; case QAccessible::StaticText: prefix = "Label"; break; case QAccessible::EditableText: prefix = "Editable"; break; case QAccessible::Slider: prefix = "Slider"; break; default: break; } // 再加上标识 QString accessibleName = QString::fromLatin1(prefix) + SEPARATOR; accessibleName += oldAccessName.isEmpty() ? lowerFallback : oldAccessName; // 检查名称是否唯一 if (accessibleMap[r].contains(accessibleName)) { // 获取编号,然后+1 int pos = accessibleName.indexOf(SEPARATOR); int id = accessibleName.mid(pos + 1).toInt(); QString newAccessibleName; do { // 一直找到一个不重复的名字 newAccessibleName = accessibleName + SEPARATOR + QString::number(++id); } while (accessibleMap[r].contains(newAccessibleName)); accessibleMap[r].append(newAccessibleName); objnameMap.insert(w, newAccessibleName); QObject::connect(w, &QWidget::destroyed, [=](QObject *obj) { // 对象销毁后移除占用名称 objnameMap.remove(obj); accessibleMap[r].removeOne(newAccessibleName); }); return newAccessibleName; } else { accessibleMap[r].append(accessibleName); objnameMap.insert(w, accessibleName); QObject::connect(w, &QWidget::destroyed, [=](QObject *obj) { // 对象销毁后移除占用名称 objnameMap.remove(obj); accessibleMap[r].removeOne(accessibleName); }); return accessibleName; } } // 公共的功能 #define FUNC_CREATE(classname, accessibletype, accessdescription) \ explicit Accessible##classname(classname *w) \ : QAccessibleWidget(w, accessibletype, #classname) \ , m_w(w) \ , m_description(accessdescription) \ { \ } #define FUNC_TEXT(classname, accessiblename) \ QString Accessible##classname::text(QAccessible::Text t) const \ { \ switch (t) { \ case QAccessible::Name: \ return getAccessibleName(m_w, this->role(), accessiblename); \ case QAccessible::Description: \ return m_description; \ default: \ return QString(); \ } \ } // button控件特有功能 #define FUNC_ACTIONNAMES(classname) \ QStringList Accessible##classname::actionNames() const \ { \ if (!m_w->isEnabled()) \ return QStringList(); \ return QStringList() << pressAction() << showMenuAction(); \ } #define FUNC_DOACTION(classname) \ void Accessible##classname::doAction(const QString &actionName) \ { \ if (actionName == pressAction()) { \ QPointF localPos = m_w->geometry().center(); \ QMouseEvent event(QEvent::MouseButtonPress, localPos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); \ qApp->sendEvent(m_w, &event); \ } else if (actionName == showMenuAction()) { \ QPointF localPos = m_w->geometry().center(); \ QMouseEvent event(QEvent::MouseButtonPress, localPos, Qt::RightButton, Qt::RightButton, Qt::NoModifier); \ qApp->sendEvent(m_w, &event); \ } \ } // Label控件特有功能 #define FUNC_TEXT_(classname) \ QString Accessible##classname::text(int startOffset, int endOffset) const \ { \ Q_UNUSED(startOffset) \ Q_UNUSED(endOffset) \ return m_w->text(); \ } // Slider控件特有功能 #define FUNC_CURRENTVALUE(classname) \ QVariant Accessible##classname::currentValue() const \ { \ return m_w->value(); \ } #define FUNC_SETCURRENTVALUE(classname) \ void Accessible##classname::setCurrentValue(const QVariant &value) \ { \ return m_w->setValue(value.toInt()); \ } #define FUNC_MAXMUMVALUE(classname) \ QVariant Accessible##classname::maximumValue() const \ { \ return QVariant(m_w->maximum()); \ } #define FUNC_FUNC_MINIMUMVALUE(classname) \ QVariant Accessible##classname::minimumValue() const \ { \ return QVariant(m_w->minimum()); \ } #define FUNC_FUNC_MINIMUMSTEPSIZE(classname) \ QVariant Accessible##classname::minimumStepSize() const \ { \ return QVariant(m_w->singleStep()); \ } #define SET_FORM_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, accessdescription) \ class Accessible##classname : public QAccessibleWidget \ { \ public: \ FUNC_CREATE(classname, QAccessible::Form, accessdescription) \ QString text(QAccessible::Text t) const override; \ void *interface_cast(QAccessible::InterfaceType t) override \ { \ switch (t) { \ case QAccessible::ActionInterface: \ return static_cast(this); \ default: \ return nullptr; \ } \ } \ \ private: \ classname *m_w; \ QString m_description; \ }; \ FUNC_TEXT(classname, accessiblename) #define SET_BUTTON_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, accessdescription) \ class Accessible##classname : public QAccessibleWidget \ { \ public: \ FUNC_CREATE(classname, QAccessible::Button, accessdescription) \ QString text(QAccessible::Text t) const override; \ void *interface_cast(QAccessible::InterfaceType t) override \ { \ switch (t) { \ case QAccessible::ActionInterface: \ return static_cast(this); \ default: \ return nullptr; \ } \ } \ QStringList actionNames() const override; \ void doAction(const QString &actionName) override; \ \ private: \ classname *m_w; \ QString m_description; \ }; \ FUNC_TEXT(classname, accessiblename) \ FUNC_ACTIONNAMES(classname) \ FUNC_DOACTION(classname) #define SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, accessdescription) \ class Accessible##classname : public QAccessibleWidget \ , public QAccessibleTextInterface \ { \ public: \ FUNC_CREATE(classname, QAccessible::StaticText, accessdescription) \ QString text(QAccessible::Text t) const override; \ void *interface_cast(QAccessible::InterfaceType t) override \ { \ switch (t) { \ case QAccessible::ActionInterface: \ return static_cast(this); \ case QAccessible::TextInterface: \ return static_cast(this); \ default: \ return nullptr; \ } \ } \ QString text(int startOffset, int endOffset) const override; \ void selection(int selectionIndex, int *startOffset, int *endOffset) const override {} \ int selectionCount() const override { return 0; } \ void addSelection(int startOffset, int endOffset) override {} \ void removeSelection(int selectionIndex) override {} \ void setSelection(int selectionIndex, int startOffset, int endOffset) override {} \ int cursorPosition() const override { return 0; } \ void setCursorPosition(int position) override {} \ int characterCount() const override { return 0; } \ QRect characterRect(int offset) const override { return QRect(); } \ int offsetAtPoint(const QPoint &point) const override { return 0; } \ void scrollToSubstring(int startIndex, int endIndex) override {} \ QString attributes(int offset, int *startOffset, int *endOffset) const override { return QString(); } \ \ private: \ classname *m_w; \ QString m_description; \ }; \ FUNC_TEXT(classname, accessiblename) \ FUNC_TEXT_(classname) #define SET_SLIDER_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, accessdescription) \ class Accessible##classname : public QAccessibleWidget \ , public QAccessibleValueInterface \ { \ public: \ FUNC_CREATE(classname, QAccessible::Slider, accessdescription) \ QString text(QAccessible::Text t) const override; \ void *interface_cast(QAccessible::InterfaceType t) override \ { \ switch (t) { \ case QAccessible::ActionInterface: \ return static_cast(this); \ case QAccessible::ValueInterface: \ return static_cast(this); \ default: \ return nullptr; \ } \ } \ QVariant currentValue() const override; \ void setCurrentValue(const QVariant &value) override; \ QVariant maximumValue() const override; \ QVariant minimumValue() const override; \ QVariant minimumStepSize() const override; \ \ private: \ classname *m_w; \ QString m_description; \ }; \ FUNC_TEXT(classname, accessiblename) \ FUNC_CURRENTVALUE(classname) \ FUNC_SETCURRENTVALUE(classname) \ FUNC_MAXMUMVALUE(classname) \ FUNC_FUNC_MINIMUMVALUE(classname) \ FUNC_FUNC_MINIMUMSTEPSIZE(classname) #define SET_EDITABLE_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, accessdescription) \ class Accessible##classname : public QAccessibleWidget \ , public QAccessibleEditableTextInterface \ , public QAccessibleTextInterface \ { \ public: \ FUNC_CREATE(classname, QAccessible::EditableText, accessdescription) \ QString text(QAccessible::Text t) const override; \ QAccessibleInterface *child(int index) const override { return nullptr; } \ void *interface_cast(QAccessible::InterfaceType t) override \ { \ switch (t) { \ case QAccessible::ActionInterface: \ return static_cast(this); \ case QAccessible::TextInterface: \ return static_cast(this); \ case QAccessible::EditableTextInterface: \ return static_cast(this); \ default: \ return nullptr; \ } \ } \ QString text(int startOffset, int endOffset) const override; \ void selection(int selectionIndex, int *startOffset, int *endOffset) const override {} \ int selectionCount() const override { return 0; } \ void addSelection(int startOffset, int endOffset) override {} \ void removeSelection(int selectionIndex) override {} \ void setSelection(int selectionIndex, int startOffset, int endOffset) override {} \ int cursorPosition() const override { return 0; } \ void setCursorPosition(int position) override {} \ int characterCount() const override { return 0; } \ QRect characterRect(int offset) const override { return QRect(); } \ int offsetAtPoint(const QPoint &point) const override { return 0; } \ void scrollToSubstring(int startIndex, int endIndex) override {} \ QString attributes(int offset, int *startOffset, int *endOffset) const override { return QString(); } \ void insertText(int offset, const QString &text) override {} \ void deleteText(int startOffset, int endOffset) override {}; \ void replaceText(int startOffset, int endOffset, const QString &text) override {} \ \ private: \ classname *m_w; \ QString m_description; \ }; \ FUNC_TEXT(classname, accessiblename) \ FUNC_TEXT_(classname) #define USE_ACCESSIBLE(classnamestring, classname) \ if (classnamestring == QLatin1String(#classname) && object && object->isWidgetType()) { \ interface = new Accessible##classname(static_cast(object)); \ } // [指定objectname]---适用同一个类,但objectname不同的情况 #define USE_ACCESSIBLE_BY_OBJECTNAME(classnamestring, classname, objectname) \ if (classnamestring == QLatin1String(#classname) && object && (object->objectName() == objectname) && object->isWidgetType()) { \ interface = new Accessible##classname(static_cast(object)); \ } /*******************************************简化使用*******************************************/ #define SET_FORM_ACCESSIBLE(classname, accessiblename) SET_FORM_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, "") #define SET_BUTTON_ACCESSIBLE(classname, accessiblename) SET_BUTTON_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, "") #define SET_LABEL_ACCESSIBLE(classname, accessiblename) SET_LABEL_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, "") #define SET_SLIDER_ACCESSIBLE(classname, accessiblename) SET_SLIDER_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, "") #define SET_EDITABLE_ACCESSIBLE(classname, accessiblename) SET_EDITABLE_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, "") #define SET_PROGRESSBAR_ACCESSIBLE(classname, accessiblename) SET_PROGRESSBAR_ACCESSIBLE_WITH_DESCRIPTION(classname, accessiblename, "") /************************************************************************************************/ #endif // ACCESSIBLEDEFINE_H dde-calendar-5.9.1/calendar-client/src/calendarglobalenv.cpp000066400000000000000000000041331423264401600240170ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "calendarglobalenv.h" CalendarGlobalEnv *CalendarGlobalEnv::getGlobalEnv() { static CalendarGlobalEnv globalEnv; return &globalEnv; } CalendarGlobalEnv *CalendarGlobalEnv::operator->() const { return getGlobalEnv(); } //注册关键字 bool CalendarGlobalEnv::registerKey(const QString &key, const QVariant &variant) { //如果不包含则添加 if (!m_GlobalEnv.contains(key)) { m_GlobalEnv[key] = variant; return true; } return false; } //修改值 bool CalendarGlobalEnv::reviseValue(const QString &key, const QVariant &variant) { //如果包含,则修改 if (m_GlobalEnv.contains(key)) { m_GlobalEnv[key] = variant; return true; } return false; } //移除注册的关键字 bool CalendarGlobalEnv::removeKey(const QString &key) { //如果包含则移除 if (m_GlobalEnv.contains(key)) { m_GlobalEnv.remove(key); return true; } return false; } //根据关键字获取对应的值 bool CalendarGlobalEnv::getValueByKey(const QString &key, QVariant &variant) { if (m_GlobalEnv.contains(key)) { variant = m_GlobalEnv.value(key); return true; } return false; } CalendarGlobalEnv::CalendarGlobalEnv() : m_GlobalEnv{} { } dde-calendar-5.9.1/calendar-client/src/calendarglobalenv.h000066400000000000000000000052421423264401600234660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CALENDARGLOBALENV_H #define CALENDARGLOBALENV_H #include /** * @brief The CalendarGlobalEnv class 日历全局环境变量类,用来保存一些全局唯一的变量 */ class CalendarGlobalEnv { public: /** * @brief getGlobalEnv * @return */ static CalendarGlobalEnv *getGlobalEnv(); CalendarGlobalEnv *operator->() const; /** * @brief registerKey 注册关键字 * @param key 关键字 * @param variant 值 * @return 是否成功,若key已经被注册返回false,否则返回true */ bool registerKey(const QString &key, const QVariant &variant); /** * @brief reviseValue 修改值 * @param key 关键字 * @param variant 值 * @return 是否成功,若key没有被注册则返回false,否则返回true */ bool reviseValue(const QString &key, const QVariant &variant); /** * @brief removeKey 移除注册的关键字 * @param key 关键字 * @return 若key没有被注册则返回false,否则返回true */ bool removeKey(const QString &key); /** * @brief getValueByKey 根据关键字获取对应的值 * @param key 关键字 * @param variant 获取到的值 * @return 若key没有被注册则返回false,否则返回true */ bool getValueByKey(const QString &key, QVariant &variant); private: CalendarGlobalEnv(); CalendarGlobalEnv(CalendarGlobalEnv &) = delete; CalendarGlobalEnv &operator=(const CalendarGlobalEnv &) = delete; private: QMap m_GlobalEnv; }; #endif // CALENDARGLOBALENV_H dde-calendar-5.9.1/calendar-client/src/configsettings.cpp000066400000000000000000000042711423264401600234050ustar00rootroot00000000000000/* * 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 "configsettings.h" #include DCORE_USE_NAMESPACE; CConfigSettings::CConfigSettings() { init(); } CConfigSettings::~CConfigSettings() { releaseInstance(); } void CConfigSettings::init() { //如果为空则创建 if (m_settings == nullptr) { auto configFilepath = DStandardPaths::standardLocations(QStandardPaths::AppConfigLocation).value(0) + "/config.ini"; m_settings = new QSettings(configFilepath, QSettings::IniFormat); } } /** * @brief CConfigSettings::releaseInstance 释放配置指针 */ void CConfigSettings::releaseInstance() { delete m_settings; m_settings = nullptr; } CConfigSettings *CConfigSettings::getInstance() { static CConfigSettings configSettings; return &configSettings; } void CConfigSettings::sync() { m_settings->sync(); } QVariant CConfigSettings::value(const QString &key, const QVariant &defaultValue) { return m_settings->value(key, defaultValue); } //设置对应key的值 void CConfigSettings::setOption(const QString &key, const QVariant &value) { m_settings->setValue(key, value); } //移除对应的配置信息 void CConfigSettings::remove(const QString &key) { m_settings->remove(key); } //判断是否包含对应的key bool CConfigSettings::contains(const QString &key) const { return m_settings->contains(key); } CConfigSettings *CConfigSettings::operator->() const { return getInstance(); } dde-calendar-5.9.1/calendar-client/src/configsettings.h000066400000000000000000000035221423264401600230500ustar00rootroot00000000000000/* * 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 . */ #ifndef CCONFIGSETTINGS_H #define CCONFIGSETTINGS_H #include #include class CConfigSettings { public: static CConfigSettings *getInstance(); void sync(); /** * @brief value 根据key获取对应值 * @param key 对应的key * @return */ QVariant value(const QString &key, const QVariant &defaultValue = QVariant()); /** * @brief setOption 设置对应key的值 * @param key * @param value */ void setOption(const QString &key, const QVariant &value); /** * @brief remove 移除对应的配置信息 * @param key */ void remove(const QString &key); /** * @brief contains 判断是否包含对应的key * @param key * @return */ bool contains(const QString &key) const; CConfigSettings *operator->() const ; protected: CConfigSettings(); ~CConfigSettings(); void init(); //释放配置指针 void releaseInstance(); private: QPointer m_settings; }; #endif // CCONFIGSETTINGS_H dde-calendar-5.9.1/calendar-client/src/constants.h000066400000000000000000000125661423264401600220460ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 CONSTANTS_H #define CONSTANTS_H #include namespace DDECalendar { //光标坐标关键字 const QString CursorPointKey = "CursorPoint"; static const int HeaderItemWidth = 80; static const int HeaderItemHeight = 40; static const int CellWidth = 106; static const int CellHeight = 70; static const int CellHighlightWidth = 80; static const int CellHighlightHeight = 70; static const int QueryEarliestYear = 1900; static const int QueryLatestYear = 9999; static const int FestivalTypeID = 4; static const int FontSizeEleven = 11; static const int FontSizeTwelve = 12; static const int FontSizeFourteen = 14; static const int FontSizeSixteen = 16; static const int FontSizeTwentyfour = 24; static const int FontSizeTwenty = 20; static const int FontSizeTen = 10; static const int FontSizeOneHundred = 100; static const int CalendarYearWindow = 0; static const int CalendarMonthWindow = 1; static const int CalendarWeekWindow = 2; static const int CalendarDayWindow = 3; static const int ThirtyMinutesWithSec = 1800; static const int AtTimeOfEvent = 0; static const int OnStartDay = 0; static const int FifteenMinutesBefore = 15; static const int ThirtyMinutesBefore = 30; static const int OneHourBefore = 60; static const int OneDayBeforeWithDay = 1; static const int OneDayBeforeWithMinutes = 1440; static const int TwoDayBeforeWithDay = 2; static const int TwoDayBeforeWithMinutes = 2880; static const int OneWeekBeforeWithDay = 7; static const int OneWeekBeforeWithMinutes = 10080; static const int NewScheduleLabelWidth = 70; static const int QuarterOfAnhourWithMinute = 15; } // namespace DDECalendar namespace DDEYearCalendar { static const int RectSizeOfEveryMonth = 42; static const int FrameSizeOfEveryYear = 12; static const int YearScheduleListMaxcount = 5; static const int YHeaderItemWidth = 20; static const int YHeaderItemHeight = 16; static const int YCellWidth = 26; static const int YCellHeight = 20; static const int YCellHighlightWidth = 26; static const int YCellHighlightHeight = 20; static const int Y_MLabelHeight = 36; static const int Y_YLabelHeight = 45; static const int Y_MWindowWidth = 202; static const int Y_MWindowHeight = 159; } // namespace DDEYearCalendar namespace DDEMonthCalendar { static const int ItemSizeOfMonthDay = 42; static const int AFewDaysOfWeek = 7; static const int LinesNumOfMonth = 6; static const int MonthNumOfYear = 12; static const int MHeaderItemWidth = 60; static const int MHeaderItemHeight = 33; static const int MEventsItemHeight = 36; static const int MCellWidth = 120; static const int MCellHeight = 74; static const int MCellHighlightWidth = 120; static const int MCellHighlightHeight = 74; static const int MWeekCellWidth = 120; static const int MWeekCellHeight = 54; static const int MDayCellWidth = 36; static const int MDayCellHeight = 36; static const int M_YTopHeight = 76; static const int M_YLabelHeight = 36; static const int M_YLunaLabelWindth = 66; static const int M_YLunaLabelHeight = 20; static const int MTodayWindth = 100; static const int MTodayHeight = 36; static const int M_MWindowWidth = 202; static const int M_MWindowHeight = 162; } namespace DDEWeekCalendar { static const int FirstDayOfWeekend = 6; static const int AFewDaysofWeek = 7; static const int NumWeeksDisplayed = 10; static const int WCellHeaderItemWidth = 109; static const int WCellHeaderItemHeight = 54; static const int WMCellHeaderWidth = 80; static const int MCellHighlightWidth = 120; static const int MCellHighlightHeight = 74; static const int WWeekCellWidth = 36; static const int WWeekCellHeight = 36; static const int W_YLabelHeight = 36; static const int W_YLunatLabelWindth = 66; static const int W_YLunatLabelHeight = 20; static const int WTodayWindth = 100; static const int WTodayHeight = 36; static const int W_MWindowWidth = 202; static const int W_MWindowHeight = 162; } namespace DDEDayCalendar { static const int PainterCellNum = 42; static const int DCellWidth = 35; static const int DCellHeight = 28; static const int DCellHighlightWidth = 33; static const int DCellHighlightHeight = 26; static const int D_MLabelHeight = 36; static const int D_YLabelHeight = 36; static const int DDLabelHeight = 117; static const int DWLabelHeight = 22; static const int DHuangLiInfoLabelHeight = 17; static const int DHuangLiLabelHeight = 56; static const int DHuangLiLabelWidth = 330; static const int D_MWindowWidth = 350; static const int D_MWindowHeight = 564; } namespace DARROWRECT { //提示框圆角 static const int DRADIUS = 10; } // namespace DARROWRECT enum Week { Monday = 6, Tuesday = 5, Wednesday = 4, Thursday = 3, Friday = 2, Saturday = 1, Sunday = 0, }; #endif // CONSTANTS_H dde-calendar-5.9.1/calendar-client/src/customWidget/000077500000000000000000000000001423264401600223255ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/customWidget/animationstackedwidget.cpp000066400000000000000000000220041423264401600275510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "animationstackedwidget.h" #include #include AnimationStackedWidget::AnimationStackedWidget(const AnimationOri ori, QWidget *parent) : QStackedWidget(parent) , m_animationOri(ori) , m_Animation(new QPropertyAnimation(this, "offset", this)) { setDuration(1000); connect(m_Animation, &QPropertyAnimation::finished, this, &AnimationStackedWidget::animationFinished); } AnimationStackedWidget::~AnimationStackedWidget() { delete m_Animation; } /** * @brief setDuration 设置动画持续时间 * @param duration 动画时间 */ void AnimationStackedWidget::setDuration(int duration) { m_Duration = duration; m_Animation->setEasingCurve(QEasingCurve::InOutQuad); } /** * @brief paintEvent 窗口绘制事件 * @param e 绘制事件 */ void AnimationStackedWidget::paintEvent(QPaintEvent *e) { Q_UNUSED(e); if (m_IsAnimation) { QPainter paint(this); paintCurrentWidget(paint, currentIndex()); paintNextWidget(paint, m_NextIndex); } } void AnimationStackedWidget::mouseMoveEvent(QMouseEvent *e) { Q_UNUSED(e); } /** * @brief animationFinished 动画切换完成 */ void AnimationStackedWidget::animationFinished() { m_IsAnimation = false; setCurrentIndex(m_NextIndex); //如果有需要跳转的页面 if (m_nextGotoIndex != -1) { setCurrent(m_nextGotoIndex); // m_nextGotoIndex = -1; return; } emit signalIsFinished(); } /** * @brief setCurrent 设置当前窗口 * @param index 索引 */ void AnimationStackedWidget::setCurrent(int index) { //设置移动方向 m_moveOri = getMoveOrientation(currentIndex(), index); setCurrentWidget(index, getBeginValue()); } /** * @brief AnimationStackedWidget::setPre设置上一个索引的窗口 */ void AnimationStackedWidget::setPre() { //获取堆窗口数 const int count = this->count(); switch (m_animationOri) { case LR: { m_moveOri = LeftToRight; } break; case TB: { m_moveOri = TopToBottom; } break; } //获取下一个窗口编号 int nextIndex = currentIndex() - 1; if (nextIndex < 0) { nextIndex = nextIndex + count; } setCurrentWidget(nextIndex, getBeginValue()); } /** * @brief setNext 设置下一个索引的窗口 */ void AnimationStackedWidget::setNext() { //获取堆窗口数 const int count = this->count(); switch (m_animationOri) { case LR: { m_moveOri = RightToLeft; } break; case TB: { m_moveOri = BottomToTop; } break; } //获取下一个窗口编号 int nextIndex = (currentIndex() + 1) % count; setCurrentWidget(nextIndex, getBeginValue()); } /** * @brief setCurrentWidget 根据索引设置当前窗口,开启动画绘制 * @param index 索引 * @param beginWidth 动画起始值 */ void AnimationStackedWidget::setCurrentWidget(int &index, int beginWidth) { //如果正在动画,那么退出 if (m_IsAnimation) { m_nextGotoIndex = index; return; } //如果索引为当前索引则退出 if (index == currentIndex()) { emit signalIsFinished(); return; } m_IsAnimation = true; m_NextIndex = index; //隐藏当前的widget this->widget(currentIndex())->hide(); m_Animation->setStartValue(beginWidth); m_Animation->setEndValue(0); m_Animation->setDuration(m_Duration); m_Animation->start(); } /** * @brief getBeginValue 获取动画起始值 * @return 返回动画起始值 */ int AnimationStackedWidget::getBeginValue() { //存储窗口高度或宽度 int value {0}; //获取窗口矩阵 QRect widgetRect = this->rect(); switch (m_animationOri) { case LR: { value = widgetRect.width(); } break; case TB: { value = widgetRect.height(); } } return value; } /** * @brief getMoveOrientation 根据当前索引和下一个索引获取动画方向 * @param currIndex 当前索引 * @param nextIndex 设置的索引 * @return 动画绘制方向 */ AnimationStackedWidget::MoveOrientation AnimationStackedWidget::getMoveOrientation(const int currIndex, const int nextIndex) { MoveOrientation moveOri{LeftToRight}; if (nextIndex < currIndex) { switch (m_animationOri) { case LR: { moveOri = LeftToRight; } break; case TB: { moveOri = TopToBottom; } break; } } else if (nextIndex > currIndex) { switch (m_animationOri) { case LR: { moveOri = RightToLeft; } break; case TB: { moveOri = BottomToTop; } break; } } return moveOri; } /** * @brief paintCurrentWidget 获取当前窗口的图片动态绘制 * @param paint 绘制对象 * @param nextIndex 窗口索引 */ void AnimationStackedWidget::paintCurrentWidget(QPainter &paint, int currentIndex) { //获得当前页面的Widget QWidget *currentWidget = widget(currentIndex); QPixmap currentPixmap(currentWidget->size()); //将当前窗口绘制到pixmap中 currentWidget->render(¤tPixmap); QRect widgetRect = this->rect(); //绘制当前的Widget double value = m_offset; //窗口宽度 const int widgetWidth = widgetRect.width(); //窗口高度 const int widgetHeight = widgetRect.height(); QRectF targetRect; QRectF sourceRect; switch (m_moveOri) { case LeftToRight: { targetRect = QRectF(widgetWidth - value, 0, value, widgetHeight); sourceRect = QRectF(0.0, 0.0, value, widgetHeight); } break; case RightToLeft: { targetRect = QRectF(0.0, 0.0, value, widgetHeight); sourceRect = QRectF(widgetWidth - value, 0, value, widgetHeight); } break; case TopToBottom: { targetRect = QRectF(0.0, widgetHeight - value, widgetWidth, value); sourceRect = QRectF(0.0, 0.0, widgetWidth, value); } break; case BottomToTop: { targetRect = QRectF(0.0, 0.0, widgetWidth, value); sourceRect = QRectF(0, widgetHeight - value, widgetWidth, value); } } paint.drawPixmap(targetRect, currentPixmap, sourceRect); } /** * @brief paintNextWidget 获取下一个窗口的图片动态绘制 * @param paint 绘制对象 * @param nextIndex 窗口索引 */ void AnimationStackedWidget::paintNextWidget(QPainter &paint, int nextIndex) { QWidget *nextWidget = widget(nextIndex); QRect widgetRect = this->rect(); //设置下一个窗口的大小 nextWidget->resize(widgetRect.width(), widgetRect.height()); QPixmap nextPixmap(nextWidget->size()); nextWidget->render(&nextPixmap); double value = m_offset; //窗口宽度 const int widgetWidth = widgetRect.width(); //窗口高度 const int widgetHeight = widgetRect.height(); QRectF targetRect; QRectF sourceRect; switch (m_moveOri) { case LeftToRight: { targetRect = QRectF(0.0, 0.0, widgetWidth - value, widgetHeight); sourceRect = QRectF(value, 0.0, widgetWidth - value, widgetHeight); } break; case RightToLeft: { targetRect = QRectF(value, 0.0, widgetWidth - value, widgetHeight); sourceRect = QRectF(0.0, 0.0, widgetWidth - value, widgetHeight); } break; case TopToBottom: { targetRect = QRectF(0.0, 0.0, widgetWidth, widgetHeight - value); sourceRect = QRectF(0.0, value, widgetWidth, widgetHeight - value); } break; case BottomToTop: { targetRect = QRectF(0.0, value, widgetWidth, widgetHeight - value); sourceRect = QRectF(0.0, 0.0, widgetWidth, widgetHeight - value); } } paint.drawPixmap(targetRect, nextPixmap, sourceRect); } /** * @brief offset 获取移动偏移量 * @return 移动偏移量 */ double AnimationStackedWidget::offset() const { return m_offset; } /** * @brief setOffset 设置移动偏移量 * @param offset 移动偏移量 */ void AnimationStackedWidget::setOffset(double offset) { m_offset = offset; update(); } dde-calendar-5.9.1/calendar-client/src/customWidget/animationstackedwidget.h000066400000000000000000000071571423264401600272320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 AnimationStackedWidget_H #define AnimationStackedWidget_H #include #include #include /** * @brief The AnimationStackedWidget class * 动画切换界面 */ class AnimationStackedWidget : public QStackedWidget { Q_OBJECT Q_PROPERTY(double offset READ offset WRITE setOffset) public: enum MoveOrientation {LeftToRight, RightToLeft, TopToBottom, BottomToTop}; enum AnimationOri {LR, TB}; //LR:Left Right ,TB:Top Bottom public: explicit AnimationStackedWidget(const AnimationOri ori = LR, QWidget *parent = nullptr); ~AnimationStackedWidget() override; //设置动画持续时间 void setDuration(int duration = 500); /** * @brief IsRunning 动画是否正在运行 * @return 动画师傅正在运行 */ bool IsRunning()const { return m_IsAnimation; } //获取移动偏移量 double offset() const; //设置移动偏移量 void setOffset(double offset); protected: //窗口绘制事件 void paintEvent(QPaintEvent *e) override; void mouseMoveEvent(QMouseEvent *e) override; signals: /** * @brief signalIsFinished 动画结束信号 */ void signalIsFinished(); public slots: //动画切换完成 void animationFinished(); //设置当前窗口 void setCurrent(int index); //setPre设置上一个索引的窗口 void setPre(); //设置下一个索引的窗口 void setNext(); private: //根据索引设置当前窗口,开启动画绘制 void setCurrentWidget(int &index, int beginWidth); //获取动画起始值 int getBeginValue(); //根据当前索引和下一个索引获取动画方向 MoveOrientation getMoveOrientation(const int currIndex, const int nextIndex); //获取当前窗口的图片动态绘制 void paintCurrentWidget(QPainter &paint, int currentIndex); //获取下一个窗口的图片动态绘制 void paintNextWidget(QPainter &paint, int nextIndex); private: /** * @brief m_animationOri 动画方向--左右还是上下 */ AnimationOri m_animationOri{LR}; /** * @brief m_Animation 动画对象 */ QPropertyAnimation *m_Animation = nullptr; /** * @brief m_Duration 动画时间(ms) */ int m_Duration{0}; /** * @brief m_IsAnimation 是否为动画状态 */ bool m_IsAnimation = false; /** * @brief m_offset 移动偏移量 */ double m_offset = 0; /** * @brief paintNext */ int m_WidgetCount{0}; /** * @brief m_NextIndex 下一个索引 */ int m_NextIndex{0}; /** * @brief m_moveOri 移动方向 */ MoveOrientation m_moveOri = MoveOrientation::LeftToRight; int m_nextGotoIndex = -1; //在动画过程中,下次需要跳转的页面 }; #endif // AnimationStackedWidget_H dde-calendar-5.9.1/calendar-client/src/customWidget/cbuttonbox.cpp000066400000000000000000000030561423264401600252240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cbuttonbox.h" #include CButtonBox::CButtonBox(QWidget *parent) : DButtonBox(parent) { } void CButtonBox::focusInEvent(QFocusEvent *event) { DButtonBox::focusInEvent(event); //窗口激活时,不设置Button焦点显示 if (event->reason() != Qt::ActiveWindowFocusReason) { //设置当前选中项为焦点 this->button(checkedId())->setFocus(); } } void CButtonBox::focusOutEvent(QFocusEvent *event) { DButtonBox::focusOutEvent(event); //当tab离开当前buttonbox窗口时,设置选中项为焦点 if (event->reason() == Qt::TabFocusReason) { //设置当前选中项为焦点 this->button(checkedId())->setFocus(); } } dde-calendar-5.9.1/calendar-client/src/customWidget/cbuttonbox.h000066400000000000000000000023161423264401600246670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CBUTTONBOX_H #define CBUTTONBOX_H #include DWIDGET_USE_NAMESPACE class CButtonBox : public DButtonBox { Q_OBJECT public: explicit CButtonBox(QWidget *parent = nullptr); protected: void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; signals: public slots: }; #endif // CBUTTONBOX_H dde-calendar-5.9.1/calendar-client/src/customWidget/ccustomtimeedit.cpp000066400000000000000000000047051423264401600262410ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ccustomtimeedit.h" #include #include #include CCustomTimeEdit::CCustomTimeEdit(QWidget *parent) : QTimeEdit(parent) { //设置edit最大宽度,不影响其他控件使用 setMaximumWidth(80); setButtonSymbols(QTimeEdit::NoButtons); } /** * @brief CCustomTimeEdit::getLineEdit 获取编辑框 * @return */ QLineEdit *CCustomTimeEdit::getLineEdit() { return lineEdit(); } void CCustomTimeEdit::focusInEvent(QFocusEvent *event) { QTimeEdit::focusInEvent(event); emit signalUpdateFocus(true); } void CCustomTimeEdit::focusOutEvent(QFocusEvent *event) { QTimeEdit::focusOutEvent(event); emit signalUpdateFocus(false); } void CCustomTimeEdit::mousePressEvent(QMouseEvent *event) { //设置父类widget焦点 if (parentWidget() != nullptr) { parentWidget()->setFocus(Qt::TabFocusReason); } //设置点击位置的光标 lineEdit()->setCursorPosition(lineEdit()->cursorPositionAt(event->pos())); QAbstractSpinBox::mousePressEvent(event); } void CCustomTimeEdit::keyPressEvent(QKeyEvent *event) { QTimeEdit::keyPressEvent(event); //鼠标左右键,切换光标位置 if (event->key() == Qt::Key_Left || event->key() == Qt::Key_Right) { if (parentWidget() != nullptr) { parentWidget()->setFocus(Qt::TabFocusReason); } lineEdit()->setCursorPosition(currentSectionIndex()); } } void CCustomTimeEdit::mouseDoubleClickEvent(QMouseEvent *event) { QTimeEdit::mouseDoubleClickEvent(event); //鼠标双击,选中section setSelectedSection(currentSection()); } dde-calendar-5.9.1/calendar-client/src/customWidget/ccustomtimeedit.h000066400000000000000000000027651423264401600257120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CCUSTOMTIMEEDIT_H #define CCUSTOMTIMEEDIT_H #include /** * @brief The CCustomTimeEdit class */ class CCustomTimeEdit : public QTimeEdit { Q_OBJECT public: explicit CCustomTimeEdit(QWidget *parent = nullptr); //获取编辑框 QLineEdit *getLineEdit(); protected: void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void mouseDoubleClickEvent(QMouseEvent *event) override; signals: void signalUpdateFocus(bool showFocus); }; #endif // CCUSTOMTIMEEDIT_H dde-calendar-5.9.1/calendar-client/src/customWidget/cdateedit.cpp000066400000000000000000000161771423264401600247730ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "cdateedit.h" #include "lunarcalendarwidget.h" #include #include #include CDateEdit::CDateEdit(QWidget *parent) : QDateEdit(parent) { connect(this, &QDateEdit::userDateChanged, this, &CDateEdit::slotDateEidtInfo); connect(lineEdit(), &QLineEdit::textChanged, this, &CDateEdit::slotRefreshLineEditTextFormat); connect(lineEdit(), &QLineEdit::cursorPositionChanged, this, &CDateEdit::slotCursorPositionChanged); connect(lineEdit(), &QLineEdit::selectionChanged, this, &CDateEdit::slotSelectionChanged); connect(lineEdit(), &QLineEdit::editingFinished, this, [this]() { //监听完成输入信号,触发文本改变事件,保证退出文本编辑的情况下依旧能刷新文本样式 //当非手动输入时间时不会触发文本改变信号 slotRefreshLineEditTextFormat(text()); }); } void CDateEdit::setDate(QDate date) { QDateEdit::setDate(date); } void CDateEdit::setDisplayFormat(QString format) { this->m_format = format; //刷新时间显示信息 slotDateEidtInfo(date()); } QString CDateEdit::displayFormat() { return m_format; } void CDateEdit::setLunarCalendarStatus(bool status) { m_showLunarCalendar = status; //刷新时间显示信息 slotDateEidtInfo(date()); //更新日历显示类型 updateCalendarWidget(); } void CDateEdit::setLunarTextFormat(QTextCharFormat format) { m_lunarTextFormat = format; //刷新文本样式 slotRefreshLineEditTextFormat(text()); } QTextCharFormat CDateEdit::getsetLunarTextFormat() { return m_lunarTextFormat; } void CDateEdit::setCalendarPopup(bool enable) { QDateEdit::setCalendarPopup(enable); //更新日历显示类型 updateCalendarWidget(); } void CDateEdit::slotDateEidtInfo(const QDate &date) { QString format = m_format; if (m_showLunarCalendar) { m_lunarName = getLunarName(date); format += m_lunarName; } //当当前显示格式与应该显示格式一致时不再重新设置 if (QDateEdit::displayFormat() == format) { return; } //记录刷新格式前的状态 bool hasSelected = lineEdit()->hasSelectedText(); //是否选择状态 int cPos = 0; QDateTimeEdit::Section section = QDateTimeEdit::NoSection; if (hasSelected) { section = currentSection(); //选择节 } else { cPos = lineEdit()->cursorPosition(); //光标所在位置 } QDateEdit::setDisplayFormat(format); //恢复原状 if (hasSelected) { setSelectedSection(section); //设置选中节 } else { lineEdit()->setCursorPosition(cPos); //设置光标位置 } //刷新文本样式 //当非手动输入时间时不会触发文本改变信号 slotRefreshLineEditTextFormat(date.toString(format)); } void CDateEdit::slotRefreshLineEditTextFormat(const QString &text) { QFont font = lineEdit()->font(); QFontMetrics fm(font); int textWidth = fm.width(text); int maxWidth = lineEdit()->width() - 25; //文本能正常显示的最大宽度 if (textWidth > maxWidth) { setToolTip(text); } else { setToolTip(""); } //不显示农历时无需处理 if (!m_showLunarCalendar) { return; } QList formats; QTextLayout::FormatRange fr_tracker; fr_tracker.start = text.size() - m_lunarName.size(); //样式起始位置 fr_tracker.length = m_lunarName.size(); //样式长度 fr_tracker.format = m_lunarTextFormat; //样式 formats.append(fr_tracker); //更改农历文本样式 setLineEditTextFormat(lineEdit(), formats); } void CDateEdit::slotCursorPositionChanged(int oldPos, int newPos) { //不显示农历时无需处理 if (!m_showLunarCalendar) { return; } Q_UNUSED(oldPos); //光标最大位置不能超过时间长度不能覆盖农历信息 int maxPos = text().length() - m_lunarName.length(); bool hasSelected = lineEdit()->hasSelectedText(); if (hasSelected) { int startPos = lineEdit()->selectionStart(); int endPos = lineEdit()->selectionEnd(); //新的光标位置与选择区域末尾位置相等则是向后选择,向前选择无需处理 if (newPos == endPos) { newPos = newPos > maxPos ? maxPos : newPos; lineEdit()->setSelection(startPos, newPos - startPos); //重新设置选择区域 } } else { //非选择情况当新光标位置大于最大位置时设置到最大位置处,重新设置选中节位最后一节 if (newPos > maxPos) { setCurrentSectionIndex(sectionCount() - 1); lineEdit()->setCursorPosition(maxPos); } } } void CDateEdit::slotSelectionChanged() { //不显示农历时无需处理 if (!m_showLunarCalendar) { return; } //全选时重新设置为只选择时间不选择农历 if (lineEdit()->hasSelectedText() && lineEdit()->selectionEnd() == text().length()) { int startPos = lineEdit()->selectionStart(); lineEdit()->setSelection(startPos, text().length() - m_lunarName.length() - startPos); } } QString CDateEdit::getLunarName(const QDate &date) { CaHuangLiDayInfo info; CScheduleDBus::getInstance()->GetHuangLiDay(date, info); return info.mLunarMonthName + info.mLunarDayName; } void CDateEdit::setLineEditTextFormat(QLineEdit *lineEdit, const QList &formats) { if (!lineEdit) { return; } QList attributes; for (const QTextLayout::FormatRange &fr : formats) { QInputMethodEvent::AttributeType type = QInputMethodEvent::TextFormat; int start = fr.start - lineEdit->cursorPosition(); int length = fr.length; QVariant value = fr.format; attributes.append(QInputMethodEvent::Attribute(type, start, length, value)); } QInputMethodEvent event(QString(), attributes); QCoreApplication::sendEvent(lineEdit, &event); } void CDateEdit::updateCalendarWidget() { if (calendarPopup()) { //setCalendarWidget: //The editor does not automatically take ownership of the calendar widget. if (m_showLunarCalendar) { setCalendarWidget(new LunarCalendarWidget(this)); } else { setCalendarWidget(new QCalendarWidget(this)); } } } dde-calendar-5.9.1/calendar-client/src/customWidget/cdateedit.h000066400000000000000000000060221423264401600244240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 CDATEEDIT_H #define CDATEEDIT_H #include "cscheduledbus.h" #include #include class CDateEdit : public QDateEdit { Q_OBJECT public: explicit CDateEdit(QWidget *parent = nullptr); /** * @brief setData * 设置显示时间(覆盖父类方法) */ void setDate(QDate); /** * @brief setDisplayFormat * 设置时间显示格式(覆盖父类方法) * @param format 时间格式 */ void setDisplayFormat(QString format); /** * @brief displayFormat * 获取当前时间格式(覆盖父类方法) * @return */ QString displayFormat(); /** * @brief setLunarCalendarStatus * 设置农历状态 * @param status true:显示农历 false:不显示农历 */ void setLunarCalendarStatus(bool status); /** * @brief setLunarTextFormat * 设置农历文本样式 * @param format */ void setLunarTextFormat(QTextCharFormat format); /** * @brief getsetLunarTextFormat * 获取农历文本样式 * @return */ QTextCharFormat getsetLunarTextFormat(); /** * @brief setCalendarPopup * 是否弹出日历选择界面 * @param enable */ void setCalendarPopup(bool enable); signals: private slots: //连接时间改变信号,填充农历信息 void slotDateEidtInfo(const QDate &date); //连接输入框文本改变信号,刷新文本样式 void slotRefreshLineEditTextFormat(const QString&); //连接光标位置改变信号,限制光标位置 void slotCursorPositionChanged(int, int); //连接文本选择改变信号,处理键盘全选时情况 void slotSelectionChanged(); private: //获取农历信息 QString getLunarName(const QDate&); //设置文本样式 void setLineEditTextFormat(QLineEdit* lineEdit, const QList& formats); //更新日历显示类型 void updateCalendarWidget(); private: QString m_format = ""; //时间格式化格式 bool m_showLunarCalendar = false; //农历显示状态 true:显示 false:不显示 QString m_lunarName = ""; //农历字符串 QTextCharFormat m_lunarTextFormat; //农历文本样式 }; #endif // CDATEEDIT_H dde-calendar-5.9.1/calendar-client/src/customWidget/cdynamicicon.cpp000066400000000000000000000115201423264401600254700ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "cdynamicicon.h" #include #include #include #include #include #define BackgroundRatio 0.9394 #define Month_X_Ratio 0.3203 #define Month_Y_Ratio 0.1690 #define Month_W_Ratio 0.3125 #define Month_H_Ratio 0.15625 #define Day_X_Ratio 0.28125 #define Day_Y_Ratio 0.33333 #define Day_W_Ratio 0.4375 #define Day_H_Ratio 0.4160 #define Week_X_Ratio 0.4375 #define Week_Y_Ratio 0.728515625 #define Week_W_Ratio 0.21875 #define Week_H_Ratio 0.09375 CDynamicIcon *CDynamicIcon::m_Icon = nullptr; CDynamicIcon::CDynamicIcon(int width, int height) : m_pixmap(new QPixmap(QSize(width, height))) , m_Date() , m_Dayrenderer(new QSvgRenderer()) , m_Weekrenderer(new QSvgRenderer()) , m_Monthrenderer(new QSvgRenderer()) , m_backgroundrenderer(new QSvgRenderer()) { m_pixmap->fill(Qt::transparent); m_Date = QDate::currentDate(); setDate(m_Date); } CDynamicIcon::~CDynamicIcon() { delete m_pixmap; m_pixmap = nullptr; delete m_Dayrenderer; m_Dayrenderer = nullptr; delete m_Weekrenderer; m_Weekrenderer = nullptr; delete m_Monthrenderer; m_Monthrenderer = nullptr; delete m_backgroundrenderer; m_backgroundrenderer = nullptr; } CDynamicIcon *CDynamicIcon::getInstance() { if (nullptr == m_Icon) { m_Icon = new CDynamicIcon(512, 512); } return m_Icon; } void CDynamicIcon::releaseInstance() { if (m_Icon != nullptr) { delete m_Icon; m_Icon = nullptr; } } void CDynamicIcon::setDate(const QDate &date) { m_Date = date; QString dayfile = QString(":/resources/DynamicIcon/day%1.svg").arg(date.day()); m_Dayrenderer->load(dayfile); QString weekfile = QString(":/resources/DynamicIcon/week%1.svg").arg(date.dayOfWeek()); m_Weekrenderer->load(weekfile); QString monthfile = QString(":/resources/DynamicIcon/month%1.svg").arg(date.month()); m_Monthrenderer->load(monthfile); QString backgroundfile(":/resources/DynamicIcon/calendar_bg.svg"); m_backgroundrenderer->load(backgroundfile); //draw pixmap paintPixmap(m_pixmap); } void CDynamicIcon::setIcon() { QIcon icon(this->getPixmap()); qApp->setProductIcon(icon); if (qApp->aboutDialog() != nullptr) qApp->aboutDialog()->setProductIcon(icon); m_Titlebar->setIcon(icon); } void CDynamicIcon::setTitlebar(DTitlebar *titlebar) { m_Titlebar = titlebar; } void CDynamicIcon::paintPixmap(QPixmap *pixmap) { QPainter painter(pixmap); //draw background qreal backgroundwidget = pixmap->size().width() * BackgroundRatio; qreal backgroundHeight = pixmap->size().height() * BackgroundRatio; QRectF backgroundRect = QRectF((pixmap->size().width() - backgroundwidget) / 2, (pixmap->size().height() - backgroundHeight) / 2, backgroundwidget, backgroundHeight); m_backgroundrenderer->render(&painter, backgroundRect); //draw month qreal month_x = pixmap->size().width() * Month_X_Ratio; qreal month_y = pixmap->size().width() * Month_Y_Ratio; qreal month_w = pixmap->size().width() * Month_W_Ratio; qreal month_h = pixmap->size().width() * Month_H_Ratio; m_Monthrenderer->render(&painter, QRectF(month_x, month_y, month_w, month_h)); //draw day qreal day_x = pixmap->size().width() * Day_X_Ratio; qreal day_y = pixmap->size().width() * Day_Y_Ratio; qreal day_w = pixmap->size().width() * Day_W_Ratio; qreal day_h = pixmap->size().width() * Day_H_Ratio; m_Dayrenderer->render(&painter, QRectF(day_x, day_y, day_w, day_h)); //draw week qreal week_x = pixmap->size().width() * Week_X_Ratio; qreal week_y = pixmap->size().width() * Week_Y_Ratio; qreal week_w = pixmap->size().width() * Week_W_Ratio; qreal week_h = pixmap->size().width() * Week_H_Ratio; m_Weekrenderer->render(&painter, QRectF(week_x, week_y, week_w, week_h)); painter.end(); } dde-calendar-5.9.1/calendar-client/src/customWidget/cdynamicicon.h000066400000000000000000000037101423264401600251370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CDYNAMICICON_H #define CDYNAMICICON_H #include #include #include #include #include #include DWIDGET_USE_NAMESPACE DCORE_USE_NAMESPACE class CDynamicIcon { private: explicit CDynamicIcon(int width, int height); ~CDynamicIcon(); //禁用拷贝构造,拷贝赋值 CDynamicIcon(const CDynamicIcon &) = delete; CDynamicIcon &operator=(const CDynamicIcon &) = delete; public: static CDynamicIcon *getInstance(); static void releaseInstance(); public: void setDate(const QDate &date); QDate getDate() const { return m_Date; } void setIcon(); void setTitlebar(DTitlebar *titlebar); QPixmap getPixmap() const { return *m_pixmap; } public: static CDynamicIcon *m_Icon; private: void paintPixmap(QPixmap *pixmap); private: QPixmap *m_pixmap = nullptr; QDate m_Date; QSvgRenderer *m_Dayrenderer = nullptr; QSvgRenderer *m_Weekrenderer = nullptr; QSvgRenderer *m_Monthrenderer = nullptr; QSvgRenderer *m_backgroundrenderer = nullptr; DTitlebar *m_Titlebar {nullptr}; }; #endif // CDYNAMICICON_H dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/000077500000000000000000000000001423264401600246075ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/colorlabel.cpp000066400000000000000000000130431423264401600274320ustar00rootroot00000000000000/* * Copyright (C) 2020 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: Ji XiangLong * * Maintainer: WangYu * * 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 "colorlabel.h" #include #include #include #include ColorLabel::ColorLabel(DWidget *parent) : DLabel(parent) , m_pressed(false) { setMouseTracking(true); m_dotCursor = pickColorCursor(); } //h∈(0, 360), s∈(0, 1), v∈(0, 1) QColor ColorLabel::getColor(qreal h, qreal s, qreal v) { int hi = int(h / 60) % 6; qreal f = h / 60 - hi; qreal p = v * (1 - s); qreal q = v * (1 - f * s); qreal t = v * (1 - (1 - f) * s); if (hi == 0) { return QColor(std::min(int(255 * p), 255), std::min(int(255 * q), 255), std::min(int(255 * v), 255)); } else if (hi == 1) { return QColor(std::min(int(255 * t), 255), std::min(int(255 * p), 255), std::min(int(255 * v), 255)); } else if (hi == 2) { return QColor(std::min(int(255 * v), 255), std::min(int(255 * p), 255), int(255 * q)); } else if (hi == 3) { return QColor(std::min(int(255 * v), 255), std::min(int(255 * t), 255), std::min(int(255 * p), 255)); } else if (hi == 4) { return QColor(std::min(int(255 * q), 255), std::min(int(255 * v), 255), std::min(int(255 * p), 255)); } else { return QColor(std::min(int(255 * p), 255), std::min(int(255 * v), 255), std::min(int(255 * t), 255)); } } void ColorLabel::setHue(int hue) { m_hue = hue; update(); } void ColorLabel::pickColor(QPoint pos, bool picked) { if (!rect().contains(pos)) { return; } QPixmap pickPixmap; pickPixmap = this->grab(QRect(0, 0, this->width(), this->height())); QImage pickImg = pickPixmap.toImage(); if (!pickImg.isNull()) { QRgb pickRgb = pickImg.pixel(pos); m_pickedColor = QColor(qRed(pickRgb), qGreen(pickRgb), qBlue(pickRgb)); } else { m_pickedColor = QColor(0, 0, 0); } if (picked) { emit signalpickedColor(m_pickedColor); } else { emit signalPreViewColor(m_pickedColor); } } void ColorLabel::paintEvent(QPaintEvent *) { if (m_entered) { setCursor(m_dotCursor); } else { setCursor(QCursor()); } QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); QImage backgroundImage(this->width(), this->height(), QImage::Format_ARGB32); QColor penColor; for (qreal s = 0; s < this->width(); s++) { for (qreal v = 0; v < this->height(); v++) { penColor = getColor(m_hue, s / this->width(), v / this->height()); if (!penColor.isValid()) { continue; } backgroundImage.setPixelColor(int(s), this->height() - 1 - int(v), penColor); } } QPixmap pm = QPixmap::fromImage(backgroundImage); QSize size(this->width(), this->height()); QBitmap mask(size); QPainter painterMask(&mask); painterMask.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painterMask.fillRect(0, 0, size.width(), size.height(), Qt::white); painterMask.setBrush(QColor(0, 0, 0)); painterMask.drawRoundedRect(0, 0, size.width(), size.height(), 5, 5); QPixmap image = pm.scaled(size); image.setMask(mask); painter.drawPixmap(this->rect(),image); } void ColorLabel::mousePressEvent(QMouseEvent *e) { m_pressed = true; pickColor(e->pos(), m_pressed); QLabel::mousePressEvent(e); } void ColorLabel::mouseMoveEvent(QMouseEvent *e) { if (rect().contains(e->pos())) { m_entered = true; } else { m_entered = false; } update(); pickColor(e->pos(), m_pressed); //移动事件不传递到父控件中 e->accept(); } void ColorLabel::mouseReleaseEvent(QMouseEvent *e) { if (m_pressed && rect().contains(e->pos())) { emit clicked(); } m_pressed = false; QLabel::mouseReleaseEvent(e); } QCursor ColorLabel::pickColorCursor() { int tipWidth = 11; QPixmap cursorPix = QPixmap(QSize(tipWidth, tipWidth)); cursorPix.fill(QColor(Qt::transparent)); QPen whitePen; whitePen.setWidth(1); whitePen.setCapStyle(Qt::FlatCap); whitePen.setJoinStyle(Qt::RoundJoin); whitePen.setColor(QColor(255, 255, 255, 255)); QPen blackPen; blackPen.setWidth(1); blackPen.setCapStyle(Qt::FlatCap); blackPen.setJoinStyle(Qt::RoundJoin); blackPen.setColor(QColor(0, 0, 0, 125)); QPainter painter(&cursorPix); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter.setPen(blackPen); painter.drawEllipse(cursorPix.rect().center(), tipWidth / 2 - 1, tipWidth / 2 - 1); painter.drawEllipse(cursorPix.rect().center(), tipWidth / 2 - 3, tipWidth / 2 - 3); painter.setPen(whitePen); painter.drawEllipse(cursorPix.rect().center(), tipWidth / 2 - 2, tipWidth / 2 - 2); return QCursor(cursorPix, -1, -1); } dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/colorlabel.h000066400000000000000000000051471423264401600271050ustar00rootroot00000000000000/* * Copyright (C) 2020 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: Ji XiangLong * * Maintainer: WangYu * * 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 COLORLABEL_H #define COLORLABEL_H #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class ColorLabel : public DLabel { Q_OBJECT public: explicit ColorLabel(DWidget *parent = nullptr); //h∈(0, 360), s∈(0, 1), v∈(0, 1) QColor getColor(qreal h, qreal s, qreal v); void setHue(int hue); /** * @brief pickColor 获取鼠标位置颜色 * @param pos 位置 * @param picked 是否获取 */ void pickColor(QPoint pos, bool picked = false); signals: /** * @brief clicked 鼠标点击信号 */ void clicked(); /** * @brief pickedColor 获取颜色信号 * @param color 颜色 */ void signalpickedColor(QColor color); /** * @brief signalPreViewColor 颜色预览信号 * @param color 颜色 */ void signalPreViewColor(QColor color); protected: void paintEvent(QPaintEvent *); /** * @brief mousePressEvent 鼠标点击事件 * @param e 鼠标事件 */ void mousePressEvent(QMouseEvent *e); /** * @brief mouseMoveEvent 鼠标移动事件 * @param e 鼠标事件 */ void mouseMoveEvent(QMouseEvent *e); /** * @brief mouseReleaseEvent 鼠标弹起事件 * @param e 鼠标事件 */ void mouseReleaseEvent(QMouseEvent *e); private: /** * @brief pickColorCursor * @return 返回自定义光标 */ QCursor pickColorCursor(); private: QCursor m_dotCursor; // 圆点光标 int m_hue = 0; bool m_pressed = false; //鼠标按下状态,用于判断是否发送颜色值 bool m_entered = false; //鼠标移入状态,用于判断光标显示类型 QColor m_pickedColor; }; #endif // COLORLABEL_H dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/colorpickerWidget.cpp000066400000000000000000000122441423264401600307760ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: liulibang * * 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 "colorpickerWidget.h" #include "tabletconfig.h" #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CColorPickerWidget::CColorPickerWidget(QWidget *parent) : DAbstractDialog(parent) , m_colorLabel(new ColorLabel(this)) , m_colorSlider(new ColorSlider(this)) , m_colHexLineEdit(new DLineEdit(this)) , m_wordLabel(new DLabel(this)) , m_cancelBtn(new DPushButton(this)) , m_enterBtn(new DSuggestButton(this)) { initUI(); setColorHexLineEdit(); moveToCenter(); connect(m_cancelBtn, &DPushButton::clicked, this, &CColorPickerWidget::slotCancelBtnClicked); connect(m_enterBtn, &DPushButton::clicked, this, &CColorPickerWidget::slotEnterBtnClicked); connect(m_colorLabel, &ColorLabel::signalpickedColor, this, &CColorPickerWidget::slotUpdateColor); connect(m_colHexLineEdit, &DLineEdit::textChanged, this, &CColorPickerWidget::slotHexLineEditChange); connect(m_colorSlider, &ColorSlider::valueChanged, this, [this](int val) { m_colorLabel->setHue(val); }); } CColorPickerWidget::~CColorPickerWidget() { } void CColorPickerWidget::setColorHexLineEdit() { m_colHexLineEdit->setText(""); //确认按钮初始置灰 m_enterBtn->setDisabled(true); //输入框输入限制 QRegExp reg("^[0-9A-Fa-f]{6}$"); QValidator *validator = new QRegExpValidator(reg, m_colHexLineEdit->lineEdit()); m_colHexLineEdit->lineEdit()->setValidator(validator); setFocusProxy(m_colHexLineEdit); } /** * @brief CColorPickerDlg::initUI 初始化 */ void CColorPickerWidget::initUI() { QFont mlabelTitle; QFont mlabelContext; mlabelTitle.setWeight(QFont::Bold); mlabelContext.setWeight(QFont::Medium); setFixedSize(314, 276); m_colorLabel->setFixedSize(294, 136); m_colorSlider->setFixedSize(294, 14); QVBoxLayout *mLayout = new QVBoxLayout(this); mLayout->setSpacing(12); mLayout->setContentsMargins(10, 10, 10, 8); mLayout->addWidget(m_colorLabel); mLayout->addWidget(m_colorSlider); m_wordLabel->setText(tr("Color")); m_wordLabel->setFixedWidth(40); m_wordLabel->setAlignment(Qt::AlignVCenter | Qt::AlignLeft); m_colHexLineEdit->setClearButtonEnabled(false); //不显示清空按钮 QHBoxLayout *inputLayout = new QHBoxLayout; inputLayout->setMargin(0); inputLayout->setSpacing(6); inputLayout->addWidget(m_wordLabel); inputLayout->addWidget(m_colHexLineEdit, 1); mLayout->addLayout(inputLayout); mLayout->addSpacing(4); m_cancelBtn->setText(tr("Cancel", "button")); m_cancelBtn->setFixedSize(140, 36); m_enterBtn->setText(tr("Save", "button")); m_enterBtn->setFixedSize(140, 36); QHBoxLayout *btnLayout = new QHBoxLayout; btnLayout->setMargin(0); btnLayout->setSpacing(5); btnLayout->addWidget(m_cancelBtn); DVerticalLine *line = new DVerticalLine(this); line->setObjectName("VLine"); line->setFixedSize(3, 28); btnLayout->addWidget(line); line->show(); btnLayout->addWidget(m_enterBtn); mLayout->addLayout(btnLayout); this->setLayout(mLayout); this->setFocusPolicy(Qt::TabFocus); setTabOrder(m_colHexLineEdit, m_cancelBtn); setTabOrder(m_cancelBtn, m_enterBtn); setTabOrder(m_enterBtn, m_colorSlider); } void CColorPickerWidget::slotHexLineEditChange(const QString &text) { QString lowerText = text.toLower(); if (lowerText == text) { QRegExp rx("^[0-9a-f]{6}$"); if (rx.indexIn(lowerText) == -1) { m_enterBtn->setDisabled(true); } else { m_enterBtn->setDisabled(false); } } else { m_colHexLineEdit->setText(lowerText); } } QColor CColorPickerWidget::getSelectedColor() { return QColor("#" + m_colHexLineEdit->text()); } void CColorPickerWidget::slotUpdateColor(const QColor &color) { if (color.isValid()) { this->m_colHexLineEdit->setText(color.name().remove("#")); } } void CColorPickerWidget::slotCancelBtnClicked() { reject(); } void CColorPickerWidget::slotEnterBtnClicked() { accept(); } void CColorPickerWidget::keyPressEvent(QKeyEvent *e) { //键盘有两个Enter按键,一个为Enter一个为Return if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) { //暂时不处理回车事件 } else { DAbstractDialog::keyPressEvent(e); } }dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/colorpickerWidget.h000066400000000000000000000035531423264401600304460ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 COLORPICKERWIDGET_H #define COLORPICKERWIDGET_H #include "colorlabel.h" #include "colorslider.h" #include #include #include #include DWIDGET_USE_NAMESPACE class CColorPickerWidget : public DAbstractDialog { Q_OBJECT public: explicit CColorPickerWidget(QWidget *parent = nullptr); ~CColorPickerWidget(); QColor getSelectedColor(); private: void initUI(); void setColorHexLineEdit(); public slots: /** * @brief slotUpdateColor 画板颜色更新事件 */ void slotUpdateColor(const QColor &color = QColor()); /** * @brief slotHexLineEditChange * 颜色输入框文本更改事件 * @param text */ void slotHexLineEditChange(const QString &text); void slotCancelBtnClicked(); void slotEnterBtnClicked(); protected: void keyPressEvent(QKeyEvent *e) override; private: ColorLabel *m_colorLabel; ColorSlider *m_colorSlider; DLineEdit *m_colHexLineEdit; DLabel *m_wordLabel; DPushButton *m_cancelBtn; DPushButton *m_enterBtn; QColor curColor; }; #endif // COLORPICKERWIDGET_H dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/colorslider.cpp000066400000000000000000000067731423264401600276510ustar00rootroot00000000000000/* * Copyright (C) 2020 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: Ji XiangLong * * Maintainer: WangYu * * 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 "colorslider.h" #include #include #include #include const int IMAGE_HEIGHT = 10; ColorSlider::ColorSlider(QWidget *parent) : QSlider(parent) { setMinimum(0); setMaximum(359); setOrientation(Qt::Horizontal); QRect rect = this->rect(); m_backgroundImage = QImage(rect.width(), IMAGE_HEIGHT, QImage::Format_ARGB32); for (qreal s = 0; s < m_backgroundImage.width(); s++) { for (qreal v = 1; v <= m_backgroundImage.height() ; v++) { QColor penColor = getColor(qreal(s / rect.width() * maximum()), 1, 1); if (!penColor.isValid()) { continue; } m_backgroundImage.setPixelColor(std::min(int(s), rect.width()), m_backgroundImage.height() - int(v), penColor); } } } ColorSlider::~ColorSlider() { } //h∈(0, 360), s∈(0, 1), v∈(0, 1) QColor ColorSlider::getColor(qreal h, qreal s, qreal v) { int hi = int(h / 60) % 6; qreal f = h / 60 - hi; qreal p = v * (1 - s); qreal q = v * (1 - f * s); qreal t = v * (1 - (1 - f) * s); if (q < 0) { q = 0; } QColor color; if (hi == 0) { color = QColor(std::min(int(255 * p), 255), std::min(int(255 * q), 255), std::min(int(255 * v), 255)); } else if (hi == 1) { color = QColor(std::min(int(255 * t), 255), std::min(int(255 * p), 255), std::min(int(255 * v), 255)); } else if (hi == 2) { color = QColor(std::min(int(255 * v), 255), std::min(int(255 * p), 255), int(255 * q)); } else if (hi == 3) { color = QColor(std::min(int(255 * v), 255), std::min(int(255 * t), 255), std::min(int(255 * p), 255)); } else if (hi == 4) { color = QColor(std::min(int(255 * q), 255), std::min(int(255 * v), 255), std::min(int(255 * p), 255)); } else { color = QColor(std::min(int(255 * p), 255), std::min(int(255 * v), 255), std::min(int(255 * t), 255)); } return color; } void ColorSlider::paintEvent(QPaintEvent *ev) { Q_UNUSED(ev) QRect rect = this->rect(); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.setRenderHint(QPainter::SmoothPixmapTransform); painter.drawImage(QRect(rect.x(), rect.y() + 2, rect.width(), IMAGE_HEIGHT), m_backgroundImage); const int offset = 2; const qreal k = qreal(value() - minimum()) / qreal(maximum() - minimum()); qreal x = ((rect.width() - 2 * offset) * k) + offset; QPen pen; pen.setWidth(1); pen.setColor(QColor(0, 0, 0, 51)); painter.setPen(pen); painter.setBrush(QBrush(Qt::white)); painter.drawRect(QRectF(QPointF(x - offset, rect.top()), QPointF(x + offset, rect.bottom()))); } dde-calendar-5.9.1/calendar-client/src/customWidget/colorWidget/colorslider.h000066400000000000000000000024011423264401600272760ustar00rootroot00000000000000/* * Copyright (C) 2020 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: Ji XiangLong * * Maintainer: WangYu * * 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 COLORSLIDER_H #define COLORSLIDER_H //#include #include #include class ColorSlider : public QSlider { Q_OBJECT public: explicit ColorSlider(QWidget *parent = nullptr); ~ColorSlider(); //h∈(0, 360), s∈(0, 1), v∈(0, 1) QColor getColor(qreal h, qreal s, qreal v); protected: void paintEvent(QPaintEvent *ev); private: int m_value; QImage m_backgroundImage; }; #endif // COLORSLIDER_H dde-calendar-5.9.1/calendar-client/src/customWidget/colorseletorwidget.cpp000066400000000000000000000141431423264401600267540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "colorseletorwidget.h" #include ColorSeletorWidget::ColorSeletorWidget(QWidget *parent) : QWidget(parent) { init(); } void ColorSeletorWidget::init() { initView(); m_colorGroup = new QButtonGroup(this); m_colorGroup->setExclusive(true); connect(m_colorGroup, QOverload::of(&QButtonGroup::buttonClicked), this, &ColorSeletorWidget::slotButtonClicked); //默认选中第一个 initColorButton(0); } void ColorSeletorWidget::initColorButton(int index) { reset(); QList lstColorInfo = JobTypeInfoManager::instance()->getJobTypeColorList(); for (JobTypeColorInfo &var : lstColorInfo) { if (TypeSystem == var.getAuthority()) { addColor(var); } } if (index >= 0 && index < m_colorGroup->buttons().size()) { m_colorGroup->buttons().at(index)->click(); } } void ColorSeletorWidget::reset() { //清空所有的色彩实体和控件 m_colorEntityMap.clear(); QList buttons = m_colorGroup->buttons(); for (QAbstractButton *btn : buttons) { m_colorGroup->removeButton(btn); m_colorLayout->removeWidget(btn); delete btn; } if (m_userColorBtn) { delete m_userColorBtn; } m_userColorBtn = nullptr; m_userColorBtnId = -1; } void ColorSeletorWidget::addColor(const JobTypeColorInfo &cInfo) { static int count = 0; //静态变量,充当色彩控件id count++; m_colorEntityMap.insert(count, cInfo); //映射id与控件 CRadioButton *radio = new CRadioButton(this); radio->setColor(QColor(cInfo.getColorHex())); //设置控件颜色 radio->setFixedSize(18, 18); m_colorGroup->addButton(radio, count); m_colorLayout->addWidget(radio); if (TypeUser == cInfo.getAuthority()) { m_userColorBtn = radio; //记录用户色彩指针 m_userColorBtnId = count; } } JobTypeColorInfo ColorSeletorWidget::getSelectedColorInfo() { return m_colorInfo; } void ColorSeletorWidget::setSelectedColorByIndex(int index) { if (index >= 0 && index < m_colorGroup->buttons().size()) { QAbstractButton *but = m_colorGroup->buttons().at(index); if (nullptr != but) { but->click(); } } } void ColorSeletorWidget::setSelectedColorById(int colorId) { //如果是用户自定义颜色则直接选中 if ((colorId > 9 || colorId < 1) && m_userColorBtn) { m_userColorBtn->click(); return; } //系统颜色则向后移一位 auto iterator = m_colorEntityMap.begin(); while (iterator != m_colorEntityMap.end()) { if (iterator.value().getTypeNo() == colorId) { //向后移一位 iterator++; if (iterator == m_colorEntityMap.end() || iterator.key() == m_userColorBtnId) { iterator = m_colorEntityMap.begin(); } QAbstractButton *btn = m_colorGroup->button(iterator.key()); if (btn) { btn->click(); } break; } iterator++; } } void ColorSeletorWidget::setSelectedColor(const JobTypeColorInfo &colorInfo) { if (TypeUser == colorInfo.getAuthority()) { setUserColor(colorInfo); } bool isFind = false; //遍历所有控件 for (QAbstractButton *but : m_colorGroup->buttons()) { if (nullptr != but && qobject_cast(but)->getColor().name() == colorInfo.getColorHex()) { but->click(); isFind = true; break; } } if (!isFind) { setUserColor(JobTypeColorInfo(0, colorInfo.getColorHex(), TypeUser)); } } void ColorSeletorWidget::initView() { m_colorLayout = new QHBoxLayout(); QHBoxLayout *hLayout = new QHBoxLayout(); hLayout->addLayout(m_colorLayout); QPushButton *addColorBut = new QPushButton(); addColorBut->setIcon(DStyle().standardIcon(DStyle::SP_IncreaseElement)); addColorBut->setFixedSize(18, 18); addColorBut->setIconSize(QSize(10, 10)); hLayout->addWidget(addColorBut); hLayout->addStretch(1); m_colorLayout->setMargin(0); m_colorLayout->setSpacing(3); hLayout->setMargin(0); hLayout->setSpacing(3); this->setLayout(hLayout); connect(addColorBut, &QPushButton::clicked, this, &ColorSeletorWidget::slotAddColorButClicked); } void ColorSeletorWidget::slotButtonClicked(int butId) { auto it = m_colorEntityMap.find(butId); if (m_colorEntityMap.end() == it) { return; } JobTypeColorInfo info = it.value(); if (info.getColorHex() != m_colorInfo.getColorHex()) { m_colorInfo = info; emit signalColorChange(info); } } void ColorSeletorWidget::slotAddColorButClicked() { CColorPickerWidget *colorPicker = new CColorPickerWidget(this); if (colorPicker->exec()) { //设置用户自定义控件颜色 setUserColor(JobTypeColorInfo(0, colorPicker->getSelectedColor().name(), TypeUser)); m_userColorBtn->click(); } delete colorPicker; } void ColorSeletorWidget::setUserColor(const JobTypeColorInfo &colorInfo) { if (TypeUser != colorInfo.getAuthority()) { return; } if (nullptr == m_userColorBtn) { addColor(colorInfo); } m_userColorBtn->setColor(colorInfo.getColorHex()); m_colorEntityMap[m_userColorBtnId] = colorInfo; m_userColorBtn->click(); } dde-calendar-5.9.1/calendar-client/src/customWidget/colorseletorwidget.h000066400000000000000000000061151423264401600264210ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 COLORSELETOR_H #define COLORSELETOR_H #include "cradiobutton.h" #include "colorWidget/colorpickerWidget.h" #include "scheduledatamanage.h" #include "src/scheduledatainfo.h" #include #include #include #include #include //色彩控件选择类 class ColorSeletorWidget : public QWidget { Q_OBJECT public: explicit ColorSeletorWidget(QWidget *parent = nullptr); //色彩类别 enum ColorType{ TypeSystem = 1, //系统默认 TypeUser = 7 //用户自定义 }; /** * @brief reset * 重置 */ void reset(); /** * @brief getSelectColor * @return 当前已选在的色彩 */ JobTypeColorInfo getSelectedColorInfo(); /** * @brief setUserColor 设置用户自定义的色彩 */ void setUserColor(const JobTypeColorInfo&); /** * @brief setSelectedColorByIndex 设置选择的色彩控件 * @param index 色彩控件位置 */ void setSelectedColorByIndex(int index); /** * @brief setSelectedColorById 设置选择的色彩控件 * @param colorId 色彩id */ void setSelectedColorById(int colorId); /** * @brief selectColor 设置选择的色彩控件 * @param color 色彩 */ void setSelectedColor(const JobTypeColorInfo& color); /** * @brief initColorButton * 初始化色彩控件 * @param index 初始选择的色彩下标 */ void initColorButton(int index = -1); signals: //选择的色彩改变信号 void signalColorChange(JobTypeColorInfo); public slots: //色彩控件点击信号 void slotButtonClicked(int butId); //添加自定义色彩控件点击信号 void slotAddColorButClicked(); private: void init(); void initView(); //添加色彩控件 void addColor(const JobTypeColorInfo&); private: QMap m_colorEntityMap; //所有色彩实体 QHBoxLayout *m_colorLayout = nullptr; //色彩控件布局类 QButtonGroup *m_colorGroup = nullptr; //所有色彩控件 JobTypeColorInfo m_colorInfo; //当前已选择的色彩 CRadioButton *m_userColorBtn = nullptr; //用户自定义的色彩控件 int m_userColorBtnId = -1; //用户自定义的色彩控件id }; #endif // COLORSELETOR_H dde-calendar-5.9.1/calendar-client/src/customWidget/cpushbutton.cpp000066400000000000000000000075701423264401600254200ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "cpushbutton.h" #include #include #include #include #include #include #include CPushButton::CPushButton(QWidget *parent) : QWidget(parent) { QHBoxLayout *layoutAddType = new QHBoxLayout(); m_textLabel = new QLabel(tr("New event type")); m_textLabel->setFixedSize(100,34); m_textLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_textLabel->setFixedSize(200,34); layoutAddType->setSpacing(0); layoutAddType->setMargin(0); layoutAddType->setAlignment(Qt::AlignLeft); m_iconButton = new DIconButton(this); m_iconButton->setFocusPolicy(Qt::NoFocus); m_iconButton->setFixedSize(16, 16); m_iconButton->setFlat(true); DPalette palette = DPaletteHelper::instance()->palette(this); QPalette pa = m_textLabel->palette(); //设置深浅色主题下正常状态时的文本颜色,与下拉框颜色对其 if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { pa.setBrush(QPalette::WindowText, QColor("#FFFFFF")); } else { pa.setBrush(QPalette::WindowText, QColor("#000000")); } m_textLabel->setPalette(pa); layoutAddType->setContentsMargins(33,0,0,0); layoutAddType->addWidget(m_iconButton); layoutAddType->addSpacing(5); layoutAddType->addWidget(m_textLabel); setFixedHeight(34); setLayout(layoutAddType); } void CPushButton::setHighlight(bool status) { if (status == m_Highlighted) { return; } m_Highlighted = status; update(); } bool CPushButton::isHighlight() { return m_Highlighted; } void CPushButton::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event); m_pressed = true; } void CPushButton::mouseReleaseEvent(QMouseEvent *event) { if (m_pressed && rect().contains(event->pos())){ emit clicked(); } m_pressed = false; } void CPushButton::paintEvent(QPaintEvent *event) { QWidget::paintEvent(event); DPalette palette = DPaletteHelper::instance()->palette(this); QPainter painter(this); // 反走样 painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::NoPen); if (m_Highlighted) { //背景设置为高亮色 painter.setBrush(palette.highlight()); m_textLabel->setBackgroundRole(QPalette::Highlight); //高亮状态显示白色图片 m_iconButton->setIcon(QIcon(DHiDPIHelper::loadNxPixmap(":/resources/icon/create_white.svg"))); } else { //背景透明 painter.setBrush(QBrush("#00000000")); m_textLabel->setBackgroundRole(QPalette::Window); //深色主题下只能是白色图片,浅色主题下显示黑色图片 if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { m_iconButton->setIcon(QIcon(DHiDPIHelper::loadNxPixmap(":/resources/icon/create_white.svg"))); } else { m_iconButton->setIcon(QIcon(DHiDPIHelper::loadNxPixmap(":/resources/icon/create_black.svg"))); } } //绘制背景 painter.drawRect(this->rect()); } dde-calendar-5.9.1/calendar-client/src/customWidget/cpushbutton.h000066400000000000000000000030741423264401600250600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 CPUSHBUTTON_H #define CPUSHBUTTON_H #include #include DWIDGET_USE_NAMESPACE class CPushButton : public QWidget { Q_OBJECT public: explicit CPushButton(QWidget *parent = nullptr); //设置高亮状态 void setHighlight(bool status); //返回高亮状态 bool isHighlight(); signals: void clicked(); protected: void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void paintEvent(QPaintEvent *event) override; private: bool m_Highlighted = false; //记录当前是否处于高亮状态 bool m_pressed = false; //记录鼠标是否按下 QLabel *m_textLabel = nullptr; //文字控件 DIconButton *m_iconButton = nullptr; //icon控件 }; #endif // CPUSHBUTTON_H dde-calendar-5.9.1/calendar-client/src/customWidget/cradiobutton.cpp000066400000000000000000000043051423264401600255300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "cradiobutton.h" #include #include #include DWIDGET_USE_NAMESPACE CRadioButton::CRadioButton(QWidget *parent) : QRadioButton(parent) { } void CRadioButton::setColor(const QColor &color) { m_color = color; } QColor CRadioButton::getColor() { return m_color; } void CRadioButton::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); // 反走样 painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::NoPen); int w = width(); int h = height(); if (!isChecked()) { // 设置画刷颜色 painter.setBrush(m_color); // 绘制圆 painter.drawEllipse(QPointF(w / 2, h / 2), w / 2 - 1, h / 2 - 1); //绘制黑色描边 QPainterPath path; path.addEllipse(0, 0, w, h); path.addEllipse(2, 2, w - 4, h - 4); QColor c = QColor("#000000"); c.setAlphaF(0.1); painter.setBrush(c); painter.drawPath(path); } else { DPalette palette = DPaletteHelper::instance()->palette(this); QPainterPath path; path.addEllipse(0, 0, w, h); path.addEllipse(2, 2, w - 4, h - 4); painter.setBrush(palette.highlight()); painter.drawPath(path); // 设置画刷颜色 painter.setBrush(m_color); // 绘制圆 painter.drawEllipse(QPointF(w / 2, h / 2), w / 2 - 3, h / 2 - 3); } } dde-calendar-5.9.1/calendar-client/src/customWidget/cradiobutton.h000066400000000000000000000022741423264401600252000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 CRADIOBUTTON_H #define CRADIOBUTTON_H #include //自定义颜色单选按钮 class CRadioButton : public QRadioButton { Q_OBJECT public: explicit CRadioButton(QWidget *parent = nullptr); void setColor(const QColor&); QColor getColor(); signals: public slots: protected: void paintEvent(QPaintEvent *event) override; private: QColor m_color; }; #endif // CRADIOBUTTON_H dde-calendar-5.9.1/calendar-client/src/customWidget/ctitlewidget.cpp000066400000000000000000000214751423264401600255320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "ctitlewidget.h" #include "constants.h" #include #include #include #include #include CTitleWidget::CTitleWidget(QWidget *parent) : QWidget(parent) { m_buttonBox = new CButtonBox(this); m_buttonBox->setObjectName("ButtonBox"); m_buttonBox->setAccessibleName("ButtonBox"); m_buttonBox->setAccessibleDescription("Year, month, week, day button box"); DButtonBoxButton *m_yearButton = new DButtonBoxButton(tr("Y"), this); //设置年辅助技术显示名称 m_yearButton->setObjectName("YearButton"); m_yearButton->setAccessibleName("YearButton"); m_yearButton->setFocusPolicy(Qt::TabFocus); m_yearButton->installEventFilter(this); QFont viewfont; viewfont.setWeight(QFont::Medium); viewfont.setPixelSize(DDECalendar::FontSizeFourteen); m_yearButton->setFixedSize(50, 36); DButtonBoxButton *m_monthButton = new DButtonBoxButton(tr("M"), this); //设置月辅助技术显示名称 m_monthButton->setObjectName("MonthButton"); m_monthButton->setAccessibleName("MonthButton"); m_monthButton->setFixedSize(50, 36); m_monthButton->setFocusPolicy(Qt::TabFocus); m_monthButton->installEventFilter(this); DButtonBoxButton *m_weekButton = new DButtonBoxButton(tr("W"), this); //设置周辅助技术显示名称 m_weekButton->setObjectName("WeekButton"); m_weekButton->setAccessibleName("WeekButton"); m_weekButton->setFixedSize(50, 36); m_weekButton->setFocusPolicy(Qt::TabFocus); m_weekButton->installEventFilter(this); DButtonBoxButton *m_dayButton = new DButtonBoxButton(tr("D"), this); //设置日辅助技术显示名称 m_dayButton->setObjectName("DayButton"); m_dayButton->setAccessibleName("DayButton"); m_dayButton->setFixedSize(50, 36); m_dayButton->setFocusPolicy(Qt::TabFocus); m_dayButton->installEventFilter(this); m_yearButton->setFont(viewfont); m_monthButton->setFont(viewfont); m_weekButton->setFont(viewfont); m_dayButton->setFont(viewfont); QList btlist; btlist.append(m_yearButton); btlist.append(m_monthButton); btlist.append(m_weekButton); btlist.append(m_dayButton); m_buttonBox->setButtonList(btlist, true); m_buttonBox->setId(m_yearButton, DDECalendar::CalendarYearWindow); m_buttonBox->setId(m_monthButton, DDECalendar::CalendarMonthWindow); m_buttonBox->setId(m_weekButton, DDECalendar::CalendarWeekWindow); m_buttonBox->setId(m_dayButton, DDECalendar::CalendarDayWindow); m_buttonBox->setFixedSize(200, 36); m_searchEdit = new DSearchEdit(this); //设置搜索框辅助技术显示名称 m_searchEdit->setObjectName("SearchEdit"); m_searchEdit->setAccessibleName("SearchEdit"); DFontSizeManager::instance()->bind(m_searchEdit, DFontSizeManager::T6); m_searchEdit->setFixedHeight(36); m_searchEdit->setFont(viewfont); m_searchEdit->lineEdit()->installEventFilter(this); connect(m_searchEdit, &DSearchEdit::searchAborted, [&] { //搜索框关闭按钮,清空数据 slotSearchEditFocusChanged(false); }); //搜索按钮,在窗口比较小的时候,显示搜索按钮隐藏搜索框 m_searchPush = new DIconButton(this); m_searchPush->setFixedSize(36, 36); m_searchPush->setIcon(QIcon::fromTheme("search")); connect(m_searchPush, &DIconButton::clicked, this, &CTitleWidget::slotShowSearchEdit); //新建日程快捷按钮 m_newScheduleBtn = new DIconButton(this); DStyle style; m_newScheduleBtn->setFixedSize(36, 36); //设置+ m_newScheduleBtn->setIcon(style.standardIcon(DStyle::SP_IncreaseElement)); //除新建日程按钮外的控件放在这个widget内,因为这些控件会根据窗口的大小显示变化而变化 QWidget *leftWidget = new QWidget(this); { QHBoxLayout *layout = new QHBoxLayout; layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(m_buttonBox, Qt::AlignLeft); layout->addStretch(); layout->addWidget(m_searchEdit, Qt::AlignCenter); layout->addStretch(); layout->addWidget(m_searchPush, Qt::AlignRight); leftWidget->setLayout(layout); } QHBoxLayout *layout = new QHBoxLayout; layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(leftWidget); layout->addWidget(m_newScheduleBtn, Qt::AlignRight); this->setLayout(layout); //设置焦点代理为buttonBox setFocusProxy(m_buttonBox); } void CTitleWidget::setShowState(CTitleWidget::Title_State state) { m_showState = state; stateUpdate(); } DButtonBox *CTitleWidget::buttonBox() const { return m_buttonBox; } DSearchEdit *CTitleWidget::searchEdit() const { return m_searchEdit; } DIconButton *CTitleWidget::newScheduleBtn() const { return m_newScheduleBtn; } void CTitleWidget::stateUpdate() { switch (m_showState) { case Title_State_Mini: { //如果搜索框没有焦点且搜索框内没有内容则隐藏搜索框显示搜索图标按钮 if (m_searchEdit->text().isEmpty() && !m_searchEdit->lineEdit()->hasFocus()) { m_searchPush->show(); m_searchEdit->hide(); } else { miniStateShowSearchEdit(); } } break; default: { m_searchEdit->show(); if (m_searchPush->hasFocus()) { m_searchEdit->setFocus(); } m_buttonBox->show(); m_searchPush->hide(); normalStateUpdateSearchEditWidth(); setFocusProxy(m_buttonBox); } break; } } void CTitleWidget::miniStateShowSearchEdit() { m_buttonBox->hide(); m_searchPush->hide(); m_searchEdit->setMaximumWidth(width()); m_searchEdit->show(); //取消焦点代理 setFocusProxy(nullptr); } void CTitleWidget::normalStateUpdateSearchEditWidth() { int padding = qMax(m_buttonBox->width(), m_newScheduleBtn->width()); //更加widget宽度设置搜索框宽度 int searchWidth = width() - 2 * padding; //参考其他应用设置宽度范围为 240~354 if (searchWidth < 240) { searchWidth = 240; } else if (searchWidth > 354) { searchWidth = 354; } m_searchEdit->setMaximumWidth(searchWidth); } void CTitleWidget::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); if (m_showState == Title_State_Normal) { normalStateUpdateSearchEditWidth(); } } bool CTitleWidget::eventFilter(QObject *o, QEvent *e) { DButtonBoxButton *btn = qobject_cast(o); if (btn != nullptr && e->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = dynamic_cast(e); if (keyEvent != nullptr && (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Space)) { emit signalSetButtonFocus(); } } if (m_searchEdit != nullptr && m_searchEdit->lineEdit() == o) { if (e->type() == QEvent::FocusOut) { QFocusEvent *focusOutEvent = dynamic_cast(e); //如果为tab切换焦点则发送焦点切换信号 if (focusOutEvent->reason() == Qt::TabFocusReason) { emit signalSearchFocusSwitch(); } //根据焦点离开原因,决定是否隐藏搜索框 if (focusOutEvent->reason() == Qt::TabFocusReason || focusOutEvent->reason() == Qt::MouseFocusReason) { slotSearchEditFocusChanged(false); } } } return QWidget::eventFilter(o, e); } void CTitleWidget::slotShowSearchEdit() { miniStateShowSearchEdit(); m_searchEdit->setFocus(); } void CTitleWidget::slotSearchEditFocusChanged(bool onFocus) { //如果获取焦点,或者搜索编辑框内容不为空则不处理 if (onFocus || !m_searchEdit->text().isEmpty()) { return; } //如果为小窗口模式则隐藏部分控件 if (m_showState == Title_State_Mini) { m_buttonBox->show(); m_searchEdit->hide(); m_searchPush->show(); setFocusProxy(m_buttonBox); } } dde-calendar-5.9.1/calendar-client/src/customWidget/ctitlewidget.h000066400000000000000000000053031423264401600251670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CTITLEWIDGET_H #define CTITLEWIDGET_H #include "cbuttonbox.h" #include #include #include DWIDGET_USE_NAMESPACE class CTitleWidget : public QWidget { Q_OBJECT public: enum Title_State { Title_State_Mini, //最小状态显示 Title_State_Normal //正常状态显示 }; explicit CTitleWidget(QWidget *parent = nullptr); /** * @brief setShowState 设置显示状态 * @param state */ void setShowState(Title_State state); DButtonBox *buttonBox() const; DSearchEdit *searchEdit() const; DIconButton *newScheduleBtn() const; private: /** * @brief stateUpdate 切换显示状态 */ void stateUpdate(); /** * @brief miniStateShowSearchEdit 最小状态下搜索框显示 */ void miniStateShowSearchEdit(); /** * @brief normalStateUpdateSearchEditWidth 正常状态下搜索显示 */ void normalStateUpdateSearchEditWidth(); protected: void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; bool eventFilter(QObject *o, QEvent *e) override; signals: void signalSetButtonFocus(); void signalSearchFocusSwitch(); public slots: /** * @brief slotShowSearchEdit 搜索按钮点击下切换搜索框 */ void slotShowSearchEdit(); /** * @brief slotSearchEditFocusChanged 状态切换下,根据搜索框是否有内容或焦点切换显示状态 * @param onFocus 搜索框是否有焦点 */ void slotSearchEditFocusChanged(bool onFocus); private: CButtonBox *m_buttonBox {nullptr}; DSearchEdit *m_searchEdit {nullptr}; DIconButton *m_newScheduleBtn {nullptr}; //全局的新建日程按钮 DIconButton *m_searchPush {nullptr}; Title_State m_showState {Title_State_Normal}; }; #endif // CTITLEWIDGET_H dde-calendar-5.9.1/calendar-client/src/customWidget/customframe.cpp000066400000000000000000000115721423264401600253640ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "customframe.h" #include "constants.h" #include #include #include #include DGUI_USE_NAMESPACE CustomFrame::CustomFrame(QWidget *parent) : QFrame(parent) { m_font.setWeight(QFont::Medium); m_font.setPixelSize(DDECalendar::FontSizeFourteen); this->setAttribute(Qt::WA_TranslucentBackground);//设置窗口背景透明 this->setWindowFlags(Qt::FramelessWindowHint); //设置无边框窗口 setContentsMargins(0, 0, 0, 0); } void CustomFrame::setBColor(QColor normalC) { m_bnormalColor = normalC; m_bflag = true; update(); } void CustomFrame::setRoundState(bool lstate, bool tstate, bool rstate, bool bstate) { m_lstate = lstate; m_tstate = tstate; m_rstate = rstate; m_bstate = bstate; } void CustomFrame::setTextStr(const QFont &font, const QColor &tc, const QString &strc, int flag) { m_font = font; m_tnormalColor = tc; m_text = strc; m_textflag = flag; } void CustomFrame::setTextStr(const QString &strc) { m_text = strc; if (!m_fixsizeflag) { QFontMetrics fm(m_font); int w = fm.width(m_text); setMinimumWidth(w); } update(); } void CustomFrame::setTextColor(QColor tc) { m_tnormalColor = tc; update(); } void CustomFrame::setTextFont(const QFont &font) { m_font = font; if (!m_fixsizeflag) { QFontMetrics fm(m_font); int w = fm.width(m_text); setMinimumWidth(w); } } void CustomFrame::setTextAlign(int flag) { m_textflag = flag; } void CustomFrame::setRadius(int radius) { m_radius = radius; } void CustomFrame::setboreder(int framew) { m_borderframew = framew; } void CustomFrame::setFixedSize(int w, int h) { m_fixsizeflag = true; QFrame::setFixedSize(w, h); } void CustomFrame::paintEvent(QPaintEvent *e) { int labelwidth = width() - 2 * m_borderframew; int labelheight = height() - 2 * m_borderframew; QPainter painter(this); QRect fillRect = QRect(m_borderframew, m_borderframew, labelwidth, labelheight); if (m_bflag) { painter.save(); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.setBrush(QBrush(m_bnormalColor)); painter.setPen(Qt::NoPen); QPainterPath painterPath; painterPath.moveTo(m_radius, m_borderframew); if (m_lstate) { painterPath.arcTo(QRect(m_borderframew, m_borderframew, m_radius * 2, m_radius * 2), 90, 90); } else { painterPath.lineTo(m_borderframew, m_borderframew); painterPath.lineTo(m_borderframew, m_radius); } painterPath.lineTo(0, labelheight - m_radius); if (m_bstate) { painterPath.arcTo(QRect(m_borderframew, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 180, 90); } else { painterPath.lineTo(m_borderframew, labelheight); painterPath.lineTo(m_radius, labelheight); } painterPath.lineTo(labelwidth - m_radius, labelheight); if (m_rstate) { painterPath.arcTo(QRect(labelwidth - m_radius * 2, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 270, 90); } else { painterPath.lineTo(labelwidth, labelheight); painterPath.lineTo(labelwidth, labelheight - m_radius); } painterPath.lineTo(labelwidth, m_radius); if (m_tstate) { painterPath.arcTo(QRect(labelwidth - m_radius * 2, m_borderframew, m_radius * 2, m_radius * 2), 0, 90); } else { painterPath.lineTo(labelwidth, m_borderframew); painterPath.lineTo(labelwidth - m_radius, m_borderframew); } painterPath.lineTo(m_radius, m_borderframew); painterPath.closeSubpath(); painter.drawPath(painterPath); painter.restore(); } if (!m_text.isEmpty()) { painter.save(); painter.setRenderHints(QPainter::HighQualityAntialiasing); painter.setFont(m_font); painter.setPen(m_tnormalColor); painter.drawText(fillRect, m_textflag, m_text); painter.restore(); } QFrame::paintEvent(e); } dde-calendar-5.9.1/calendar-client/src/customWidget/customframe.h000066400000000000000000000043301423264401600250230ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CustomFrame_H #define CustomFrame_H #include class CustomFrame : public QFrame { Q_OBJECT public: explicit CustomFrame(QWidget *parent = nullptr); void setBColor(QColor normalC); void setRoundState(bool lstate, bool tstate, bool rstate, bool bstate); void setTextStr(const QFont &font, const QColor &tc, const QString &strc, int flag = Qt::AlignCenter); void setTextStr(const QString &strc); void setTextColor(QColor tc); void setTextFont(const QFont &font); void setTextAlign(int flag = Qt::AlignCenter); void setRadius(int radius = 8); void setboreder(int framew = 0); QString getTextStr() { return m_text; } void setFixedSize(int w, int h); protected: void paintEvent(QPaintEvent *e) override; private: QColor m_bnormalColor = "#FFFFFF"; QColor m_tnormalColor = "#000000"; QFont m_font; bool m_bflag = false; bool m_fixsizeflag = false; int m_textflag = Qt::AlignCenter;//对齐方式 QString m_text; int m_radius = 8; int m_borderframew = 0; bool m_lstate = false; bool m_tstate = false; bool m_rstate = false; bool m_bstate = false; }; #endif // TODYBUTTON_H dde-calendar-5.9.1/calendar-client/src/customWidget/jobtypecombobox.cpp000066400000000000000000000244701423264401600262450ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "jobtypecombobox.h" #include #include #include #include #include #include #include #include #include #include JobTypeComboBox::JobTypeComboBox(QWidget *parent) : DComboBox(parent) { initUI(); //不启用自动匹配 setAutoCompletion(false); //设置不接受回车键插入 setInsertPolicy(QComboBox::NoInsert); connect(this, QOverload::of(&QComboBox::highlighted), [this](int index) { view()->setFocus(); m_hoverSelectedIndex = index; }); } JobTypeComboBox::~JobTypeComboBox() { return; } int JobTypeComboBox::getCurrentJobTypeNo() { if (this->currentIndex() < 0 || this->currentIndex() >= m_lstJobType.size()) { return -1; } return m_lstJobType[this->currentIndex()].getJobTypeNo(); } void JobTypeComboBox::setCurrentJobTypeNo(int strJobTypeNo) { for (int i = 0; i < m_lstJobType.size(); i++) { if (strJobTypeNo == m_lstJobType[i].getJobTypeNo()) { this->setCurrentIndex(i); break; } } return; } void JobTypeComboBox::setAlert(bool isAlert) { if (m_control) { //输入框未显示警告色? m_control->setAlert(isAlert); } } bool JobTypeComboBox::isAlert() const { if (m_control) { return m_control->isAlert(); } return false; } void JobTypeComboBox::showAlertMessage(const QString &text, int duration) { showAlertMessage(text, nullptr, duration); } void JobTypeComboBox::showAlertMessage(const QString &text, QWidget *follower, int duration) { if (m_control) { m_control->showAlertMessage(text, follower ? follower : this, duration); } } void JobTypeComboBox::setAlertMessageAlignment(Qt::Alignment alignment) { if (m_control) { m_control->setMessageAlignment(alignment); } } void JobTypeComboBox::hideAlertMessage() { if (m_control) { m_control->hideAlertMessage(); } } int JobTypeComboBox::getCurrentEditPosition() const { return m_newPos; } bool JobTypeComboBox::updateJobType() { QString strColorHex; QString strJobType; m_lstJobType = JobTypeInfoManager::instance()->getJobTypeList(); clear(); //更新前先清空原有列表 for (m_itemNumIndex = 0; m_itemNumIndex < m_lstJobType.size(); m_itemNumIndex++) { strColorHex = m_lstJobType[m_itemNumIndex].getColorHex(); strJobType = m_lstJobType[m_itemNumIndex].getJobTypeName(); if (strColorHex.isEmpty() || strJobType.isEmpty()) { m_lstJobType.removeAt(m_itemNumIndex); m_itemNumIndex--; continue; } addJobTypeItem(m_itemNumIndex, m_lstJobType[m_itemNumIndex].getColorHex(), m_lstJobType[m_itemNumIndex].getJobTypeName()); } return true; } void JobTypeComboBox::addJobTypeItem(int idx, QString strColorHex, QString strJobType) { //绘制的pixmap为基准大小的4倍,防止缩放时出现齿距 QSize size(64, 64); QPixmap pixmap(size); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); painter.setRenderHints(QPainter::Antialiasing); painter.setBrush(QColor(strColorHex)); painter.setPen(QColor(strColorHex)); painter.drawRoundedRect(0, 0, 64, 64, 16, 16); //描边 QPainterPath path; path.addRoundedRect(0, 0, 64, 64, 16, 16); path.addRoundedRect(4, 4, 56, 56, 16, 16); painter.setBrush(QColor(0, 0, 0, 255 / 10)); painter.drawPath(path); insertItem(idx, QIcon(pixmap), tr(strJobType.toLocal8Bit())); } void JobTypeComboBox::initUI() { setEditable(false); setIconSize(QSize(16, 16)); } void JobTypeComboBox::setItemSelectable(bool status) { if (-1 == m_hoverSelectedIndex) { return; } //更改当前列表框里的高亮项的可选择状态设置,将其设置为不可选中状态可实现失去选中效果,待聚焦后再恢复过来 QStandardItemModel *pItemModel = qobject_cast(model()); pItemModel->item(m_hoverSelectedIndex)->setSelectable(status); //设置“添加按键”按钮的高亮状态 if (nullptr != m_addBtn) { m_addBtn->setHighlight(!status); } } void JobTypeComboBox::addCustomWidget(QFrame *viewContainer) { if (viewContainer) { if (nullptr == m_customWidget) { //获取原控件布局 QBoxLayout *layout = qobject_cast(viewContainer->layout()); //自定义控件 QVBoxLayout *hLayout = new QVBoxLayout; DPushButton *splitter = new DPushButton(this); m_addBtn = new CPushButton(); splitter->setFixedHeight(2); splitter->setFocusPolicy(Qt::NoFocus); hLayout->addWidget(splitter); hLayout->addWidget(m_addBtn); hLayout->setContentsMargins(0, 0, 0, 0); hLayout->setSpacing(0); m_customWidget = new QWidget(this); m_customWidget->setFixedHeight(35); m_customWidget->setLayout(hLayout); //添加自定义控件到最后 layout->insertWidget(-1, m_customWidget); viewContainer->setFixedHeight(viewContainer->height() + m_customWidget->height()); //设置可接受tab焦点 m_addBtn->setFocusPolicy(Qt::TabFocus); setTabOrder(view(), m_addBtn); //注册事件监听 m_addBtn->installEventFilter(this); view()->installEventFilter(this); connect(m_addBtn, &CPushButton::clicked, this, &JobTypeComboBox::slotBtnAddItemClicked); } } } void JobTypeComboBox::showPopup() { //重置icon大小 setIconSize(QSize(16, 16)); setItemSelectable(true); if (currentIndex() < 0) setCurrentIndex(0); //设置为不可编辑模式 setEditable(false); //下拉模式取消信号关联,并释放警报控制 if (m_control) { disconnect(m_control, &DAlertControl::alertChanged, this, &JobTypeComboBox::alertChanged); delete m_control; m_control = nullptr; } emit activated(0); DComboBox::showPopup(); //获取下拉视图容器 QFrame *viewContainer = findChild(); if (nullptr == m_customWidget) { //添加自定义布局 addCustomWidget(viewContainer); } if (m_customWidget && m_lstJobType.size() >= 20) { m_customWidget->hide(); } //设置最大高度为400 if (viewContainer->height() > 400) { viewContainer->setFixedHeight(400); } //重新调整选中项的位置 view()->scrollTo(view()->currentIndex(), QAbstractItemView::PositionAtCenter); } bool JobTypeComboBox::eventFilter(QObject *obj, QEvent *event) { if (view() == obj && (event->type() == QEvent::Enter)) { view()->setFocus(); } else if (m_addBtn == obj && (event->type() == QEvent::Enter)) { m_addBtn->setFocus(); } else if (view() == obj && event->type() == QEvent::FocusIn) { //列表框控件焦点进入事件 setItemSelectable(true); } else if (m_addBtn == obj && event->type() == QEvent::FocusIn) { //“添加按键”控件焦点进入事件 setItemSelectable(false); } else if (event->type() == QEvent::KeyPress) { QKeyEvent *kEvent = dynamic_cast(event); if (view() == obj && kEvent->key() == Qt::Key_Down) { //焦点在列表框时的下方向按键按下事件 if (m_addBtn->isHighlight()) { return true; } if (m_hoverSelectedIndex == m_itemNumIndex - 1) { //列表框到达最后一项时的下方向按键按下事件 //将焦点转移到“添加按键”控件上 m_addBtn->setFocus(); } } else if (m_addBtn == obj && kEvent->key() == Qt::Key_Up) { //焦点在m_addBtn时的上方向按键按下事件 if (m_addBtn->isHighlight()) { //将焦点转移到列表控件上 view()->setFocus(); } } else if (m_addBtn->isHighlight() && kEvent->key() == Qt::Key_Return) { //回车事件 slotBtnAddItemClicked(); } //过滤掉m_addBtn的所有按键事件 if (m_addBtn == obj) { return true; } } return DComboBox::eventFilter(obj, event); } void JobTypeComboBox::slotBtnAddItemClicked() { JobTypeComboBox::hidePopup(); setIconSize(QSize(0, 0)); //设置没有选中, // setCurrentIndex(-1); setEditable(true); setCurrentText(""); //设置为编辑模式后才会创建lineEdit m_control = new DAlertControl(this->lineEdit(), this); connect(m_control, &DAlertControl::alertChanged, this, &JobTypeComboBox::alertChanged); connect(lineEdit(), &QLineEdit::editingFinished, this, &JobTypeComboBox::slotEditingFinished); connect(lineEdit(), &QLineEdit::cursorPositionChanged, this, &JobTypeComboBox::slotEditCursorPositionChanged); emit signalAddTypeBtnClicked(); return; } void JobTypeComboBox::slotEditingFinished() { //TODO:待优化,由于上下按键会匹配下拉列表内容,导致会调整lineEdit显示位置 //当前先改回设置显示图标的方法 // int oldPos = m_newPos; // QString str = lineEdit()->text(); // setCurrentIndex(-1); // setCurrentText(str); // lineEdit()->setCursorPosition(oldPos); emit editingFinished(); } void JobTypeComboBox::slotEditCursorPositionChanged(int oldPos, int newPos) { m_oldPos = oldPos; m_newPos = newPos; } dde-calendar-5.9.1/calendar-client/src/customWidget/jobtypecombobox.h000066400000000000000000000047621423264401600257140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 JOBTYPECOMBOBOX_H #define JOBTYPECOMBOBOX_H #include "src/scheduledatainfo.h" #include "scheduledatamanage.h" #include "cpushbutton.h" #include #include DWIDGET_USE_NAMESPACE class JobTypeComboBox : public DComboBox { Q_OBJECT public: explicit JobTypeComboBox(QWidget *parent = nullptr); ~JobTypeComboBox() override; bool updateJobType(); int getCurrentJobTypeNo(); void setCurrentJobTypeNo(int strJobTypeNo); void setAlert(bool isAlert); bool isAlert() const; void showAlertMessage(const QString &text, int duration = 3000); void showAlertMessage(const QString &text, QWidget *follower, int duration = 3000); void setAlertMessageAlignment(Qt::Alignment alignment); void hideAlertMessage(); int getCurrentEditPosition() const; signals: void signalAddTypeBtnClicked(); void alertChanged(bool alert) const; void editingFinished(); public slots: protected slots: void slotBtnAddItemClicked(); void slotEditingFinished(); void slotEditCursorPositionChanged(int oldPos, int newPos); protected: void showPopup() override; bool eventFilter(QObject *, QEvent *) override; private: void initUI(); void addJobTypeItem(int idx, QString strColorHex, QString strJobType); void addCustomWidget(QFrame *); void setItemSelectable(bool status); private: QWidget *m_customWidget {nullptr}; CPushButton *m_addBtn {nullptr}; QList m_lstJobType; int m_hoverSelectedIndex = -1; //鼠标悬停的选项下标 int m_itemNumIndex = 0; //item数量 DAlertControl *m_control {nullptr}; QLineEdit *m_lineEdit {nullptr}; int m_oldPos = 0; int m_newPos = 0; }; #endif // JOBTYPECOMBOBOX_H dde-calendar-5.9.1/calendar-client/src/customWidget/jobtypelistview.cpp000066400000000000000000000216161423264401600263020ustar00rootroot00000000000000#include "jobtypelistview.h" #include "cscheduleoperation.h" #include "scheduletypeeditdlg.h" #include "schedulectrldlg.h" #include #include #include #include #include Q_DECLARE_METATYPE(JobTypeInfo) //Qt::UserRole + 1,会影响item的高度 static const int RoleJobTypeInfo = Qt::UserRole + 2; static const int RoleJobTypeEditable = Qt::UserRole + 3; static const int RoleJobTypeLine = Qt::UserRole + 4; JobTypeListView::JobTypeListView(QWidget *parent) : QTableView(parent) { initUI(); } JobTypeListView::~JobTypeListView() { JobTypeInfoManager::instance()->removeFromNoticeBill(this); } void JobTypeListView::initUI() { m_modelJobType = new QStandardItemModel(this); setModel(m_modelJobType); setFrameStyle(QFrame::NoFrame); setEditTriggers(QListView::NoEditTriggers); setSelectionMode(QListView::NoSelection); setFocusPolicy(Qt::NoFocus); setItemDelegate(new JobTypeListViewStyle(this)); setShowGrid(false); verticalHeader()->setMinimumSectionSize(0); horizontalHeader()->setStretchLastSection(true); horizontalHeader()->hide(); verticalHeader()->hide(); // updateJobType(); //添加到通知单列表 JobTypeInfoManager::instance()->addToNoticeBill(this, "updateJobType"); } bool JobTypeListView::viewportEvent(QEvent *event) { QTableView::viewportEvent(event); int indexCurrentHover; if (QEvent::HoverLeave == event->type()) { QStandardItemModel *itemModel = qobject_cast(model()); if (nullptr == itemModel) { return true; } DStandardItem *itemJobType = dynamic_cast(itemModel->item(m_iIndexCurrentHover)); if (nullptr == itemJobType) { return true; } //typedef QList DViewItemActionList; for (DViewItemAction *a : itemJobType->actionList(Qt::Edge::RightEdge)) { a->setVisible(false); } m_iIndexCurrentHover = -1; } else if (QEvent::HoverMove == event->type()) { indexCurrentHover = indexAt(static_cast(event)->pos()).row(); if (indexCurrentHover != m_iIndexCurrentHover) { DStandardItem *itemJobType; //隐藏此前鼠标悬浮行的图标 if (m_iIndexCurrentHover >= 0) { itemJobType = dynamic_cast(m_modelJobType->item(m_iIndexCurrentHover)); if (nullptr != itemJobType) { for (DViewItemAction *a : itemJobType->actionList(Qt::Edge::RightEdge)) { a->setVisible(false); } } //typedef QList DViewItemActionList; } if (indexCurrentHover < 0) { return true; } //展示此前鼠标悬浮行的图标 m_iIndexCurrentHover = indexCurrentHover; itemJobType = dynamic_cast(m_modelJobType->item(m_iIndexCurrentHover)); if (nullptr == itemJobType) { return true; } if (itemJobType->actionList(Qt::Edge::RightEdge).size() > 0) { for (DViewItemAction *a : itemJobType->actionList(Qt::Edge::RightEdge)) { a->setVisible(true); } } else { // 设置其他style时,转换指针为空 if (DStyle *ds = qobject_cast(style())) { Q_UNUSED(ds) if (!itemJobType->data(RoleJobTypeEditable).toBool()) return true; auto actionEdit = new DViewItemAction(Qt::AlignVCenter, QSize(20, 20), QSize(20, 20), true); actionEdit->setIcon(DHiDPIHelper::loadNxPixmap(":/resources/icon/edit.svg")); actionEdit->setParent(this); connect(actionEdit, &QAction::triggered, this, &JobTypeListView::slotUpdateJobType); auto actionDelete = new DViewItemAction(Qt::AlignVCenter, QSize(20, 20), QSize(20, 20), true); actionDelete->setIcon(DHiDPIHelper::loadNxPixmap(":/resources/icon/delete.svg")); actionDelete->setParent(this); connect(actionDelete, &QAction::triggered, this, &JobTypeListView::slotDeleteJobType); itemJobType->setActionList(Qt::Edge::RightEdge, {actionEdit, actionDelete}); } } } } return true; } bool JobTypeListView::updateJobType() { m_modelJobType->removeRows(0, m_modelJobType->rowCount());//先清理 m_iIndexCurrentHover = -1; QList lstJobType = JobTypeInfoManager::instance()->getJobTypeList(); int viewHeight = 0; for (int i = 0; i < lstJobType.size(); i++) { viewHeight += addJobTypeItem(lstJobType[i]); } setFixedHeight(viewHeight); emit signalAddStatusChanged(canAdd()); return true; } bool JobTypeListView::canAdd() { //最多20个类型 return JobTypeInfoManager::instance()->getJobTypeList().count() < 20; } int JobTypeListView::addJobTypeItem(const JobTypeInfo &info) { int itemHeight = 0; DStandardItem *item = new DStandardItem; item->setData(QVariant::fromValue(info), RoleJobTypeInfo); item->setData(info.getAuthority() > 1, RoleJobTypeEditable); item->setData(false, RoleJobTypeLine); //首个 非默认日程类型,前面 添加分割线 if (m_modelJobType->rowCount() > 1 && !m_modelJobType->item(m_modelJobType->rowCount() - 1)->data(RoleJobTypeEditable).toBool() && item->data(RoleJobTypeEditable).toBool()) { DStandardItem *itemLine = new DStandardItem; itemLine->setData(QVariant(), RoleJobTypeInfo); itemLine->setData(false, RoleJobTypeEditable); itemLine->setData(true, RoleJobTypeLine); m_modelJobType->appendRow(itemLine); setRowHeight(m_modelJobType->rowCount() - 1, 19); itemHeight += 19; } m_modelJobType->appendRow(item); setRowHeight(m_modelJobType->rowCount() - 1, 46); itemHeight += 46; return itemHeight; } void JobTypeListView::slotUpdateJobType() { int index = indexAt(mapFromGlobal(QCursor::pos())).row(); if (index < 0 || index >= m_modelJobType->rowCount()) return; QStandardItem *item = m_modelJobType->item(index); if (!item) return; JobTypeInfo info = item->data(RoleJobTypeInfo).value(); ScheduleTypeEditDlg a(info, this); a.exec(); updateJobType();//更新item return; } void JobTypeListView::slotDeleteJobType() { DStandardItem *item = dynamic_cast(m_modelJobType->item(m_iIndexCurrentHover)); if (!item) return; JobTypeInfo info = item->data(RoleJobTypeInfo).value(); int typeNo = info.getJobTypeNo(); CScheduleOperation so; if (so.isJobTypeUsed(typeNo)) { CScheduleCtrlDlg msgBox(this); msgBox.setText(tr("You are deleting an event type.")); msgBox.setInformativeText(tr("All events under this type will be deleted and cannot be recovered.")); msgBox.addPushButton(tr("Cancel", "button"), true); msgBox.addWaringButton(tr("Delete", "button"), true); msgBox.exec(); if (msgBox.clickButton() == 0) { return; } else if (msgBox.clickButton() == 1) { so.deleteJobType(typeNo); //删除日程类型时,后端会删除关联日程 } } else { so.deleteJobType(typeNo); } } void JobTypeListViewStyle::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItem opt = option; //draw line bool isDrawLine = index.data(RoleJobTypeLine).toBool(); if (isDrawLine) { int y = opt.rect.y() + opt.rect.height() / 2; int x = opt.rect.x(); int w = x + opt.rect.width(); painter->fillRect(x, y, w, 1, qApp->palette().color(QPalette::Button)); return; } opt.rect.adjust(0, 5, 0, -5); DStyledItemDelegate::paint(painter, opt, index); JobTypeInfo info = index.data(RoleJobTypeInfo).value(); //draw icon painter->save(); painter->setPen(QPen(QColor(0, 0, 0, int(255 * 0.1)), 2)); painter->setBrush(QColor(info.getColorHex())); painter->drawEllipse(QRect(opt.rect.x() + 12, opt.rect.y() + 10, 16, 16)); //draw text painter->setPen(qApp->palette().color(QPalette::Text)); QFontMetrics fontMetr(painter->font()); const int &typeNameWidth = fontMetr.width(info.getJobTypeName()); //绘制类型名称区域 QRect textRect = opt.rect.adjusted(38, 0, 0, 0); //如果为焦点,且不为系统自带颜色 if (opt.state & QStyle::State_HasFocus && !info.getColorInfo().isSysColorInfo()) { } painter->drawText(opt.rect.adjusted(38, 0, 0, 0), Qt::AlignVCenter | Qt::AlignLeft, info.getJobTypeName()); painter->restore(); } dde-calendar-5.9.1/calendar-client/src/customWidget/jobtypelistview.h000066400000000000000000000026641423264401600257510ustar00rootroot00000000000000#ifndef JOBTYPELISTVIEW_H #define JOBTYPELISTVIEW_H #include "scheduledatamanage.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class JobTypeListView : public QTableView { Q_OBJECT public: explicit JobTypeListView(QWidget *parent = nullptr); ~JobTypeListView(); /** * @brief canAdd 是否可以继续新增类型 */ bool canAdd(); protected: bool viewportEvent(QEvent *event) override; private: void initUI();//初始化 /** * @brief addJobTypeItem 添加item * @return 返回item的高度 */ int addJobTypeItem(const JobTypeInfo &info);//新增一行【日程类型】数据 signals: /** * @brief signalAddStatusChanged 信号:是否可以继续新增类型 */ void signalAddStatusChanged(bool); public slots: void slotUpdateJobType(); void slotDeleteJobType(); bool updateJobType(); private: QStandardItemModel *m_modelJobType {nullptr}; int m_iIndexCurrentHover = -1; }; class JobTypeListViewStyle : public DStyledItemDelegate { Q_OBJECT public: explicit JobTypeListViewStyle(QAbstractItemView *parent = nullptr) : DStyledItemDelegate(parent) {} protected: // painting void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; }; #endif // JOBTYPELISTVIEW_H dde-calendar-5.9.1/calendar-client/src/customWidget/labelwidget.cpp000066400000000000000000000027521423264401600253220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "labelwidget.h" #include #include LabelWidget::LabelWidget(QWidget *parent) : QLabel(parent) { //设置焦点选中类型 setFocusPolicy(Qt::FocusPolicy::TabFocus); } LabelWidget::~LabelWidget() { } void LabelWidget::paintEvent(QPaintEvent *ev) { QPainter painter(this); if (hasFocus()) { //有焦点,绘制焦点 QStyleOptionFocusRect option; option.initFrom(this); option.backgroundColor = palette().color(QPalette::Background); style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this); } QLabel::paintEvent(ev); } dde-calendar-5.9.1/calendar-client/src/customWidget/labelwidget.h000066400000000000000000000021611423264401600247610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 LABELWIDGET_H #define LABELWIDGET_H #include class LabelWidget : public QLabel { public: explicit LabelWidget(QWidget *parent = nullptr); ~LabelWidget() override; protected: void paintEvent(QPaintEvent *ev) override; }; #endif // LABELWIDGET_H dde-calendar-5.9.1/calendar-client/src/customWidget/lunarcalendarwidget.cpp000066400000000000000000000351631423264401600270600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: changze * * Maintainer: changze * * 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 "lunarcalendarwidget.h" #include "cscheduledbus.h" #include #include #include #include #include #include #include #include #include #include #include /** * 实现的效果:保证原本日历不变的前提下,1.增加阴历年、2.增加阴历日、3.增加控件底部留白 * 1.增加阴历年 * 添加QLabel * * 2.增加阴历日 * 重新绘制item * 相关算法:item.height = 2px空心圆 + 1.5px空白 + 实心圆.直径 + 2px空心圆 + 1.5px空白 + 阴历日.font.height * 实心圆.直径 = 阳历日.font.height = 阴历日.font.height * 实心圆.直径 = (item.height - 7) / 2 * * 如下面代码: * int d = (rect.height() - 7) / 2;//阳历日.font.height * int h = d + 7;//阳历日在的rect的高度 * * 3.增加控件底部留白 * 添加固定高度的QWidget **/ //底部留空10px static const int BottomSpacing = 10; DWIDGET_USE_NAMESPACE class CalenderStyle : public QProxyStyle { public: CalenderStyle() {} /** * @brief getColor 获取对应palette的颜色 */ QColor getColor(const QStyleOption *option, DPalette::ColorType type, const QWidget *widget) const; QColor getColor(const QStyleOption *option, QPalette::ColorRole role) const; /** * @brief drawCalenderEllipse 绘制圆 */ void drawCalenderEllipse(QPainter *p, const QRect &rect, int offset) const; /** * @brief drawItemViewSelected 绘制选中样式 */ void drawItemViewSelected(QPainter *p, const QStyleOption *opt) const; /** * @brief drawItemViewFocus 绘制焦点样式 */ void drawItemViewFocus(QPainter *p, const QStyleOption *opt, const QWidget *w) const; /** * @brief getLunarYearDesc 获取阴历年描述 */ QString getLunarYearDesc(const QDate &date) const; /** * @brief getLunarDayName 获取阴历日 */ QString getLunarDayName(const QDate &date) const; /** * @brief updateLunarInfo 更新阴历信息 */ void updateLunarInfo(const QDate &date) const; protected: void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override; private: mutable QMap m_caHuangLiDayMap; }; QColor CalenderStyle::getColor(const QStyleOption *option, DPalette::ColorType type, const QWidget *widget) const { const DPalette &pa = DPaletteHelper::instance()->palette(widget, option->palette); return pa.brush(type).color(); } QColor CalenderStyle::getColor(const QStyleOption *option, QPalette::ColorRole role) const { return option->palette.brush(role).color(); } void CalenderStyle::drawCalenderEllipse(QPainter *p, const QRect &rect, int offset) const { int d = (rect.height() - 7) / 2; int h = d + 7; QRect r = rect.adjusted(0, 0, 0, -(rect.height() - h)); QRect ellipese = r; ellipese.setWidth(ellipese.height()); ellipese.moveCenter(r.center()); p->drawEllipse(ellipese.adjusted(offset, offset, -offset, -offset)); } void CalenderStyle::drawItemViewSelected(QPainter *p, const QStyleOption *opt) const { if (opt->state & QStyle::State_Selected) { QRect rect = opt->rect; int d = (rect.height() - 7) / 2; int h = d + 7; QRect r = rect.adjusted(0, 0, 0, -(rect.height() - h)); QRect ellipese = r; ellipese.setWidth(ellipese.height()); ellipese.moveCenter(r.center()); p->setBrush(opt->palette.brush(QPalette::Highlight)); p->setPen(Qt::NoPen); p->setRenderHint(QPainter::Antialiasing); p->drawEllipse(ellipese.adjusted(1, 1, -1, -1)); } } void CalenderStyle::drawItemViewFocus(QPainter *p, const QStyleOption *opt, const QWidget *w) const { const QColor &focus_color = getColor(opt, QPalette::Highlight); if (!focus_color.isValid() || focus_color.alpha() == 0) return; p->setRenderHint(QPainter::Antialiasing); QPen pen; pen.setWidth(2); pen.setColor(focus_color); p->setPen(pen); p->setBrush(Qt::NoBrush); bool calendar = w && (w->objectName() == "qt_calendar_calendarview"); pen.setWidth(2); int offset = 1; // 先画内框(黑or白) pen.setColor(getColor(opt, QPalette::Base)); p->setPen(pen); if (calendar) { pen.setWidth(3); p->setPen(pen); offset = 2; drawCalenderEllipse(p, opt->rect, offset); } // 再画外框(活动色即焦点) pen.setColor(focus_color); p->setPen(pen); if (calendar) { pen.setWidth(2); p->setPen(pen); offset = 1; drawCalenderEllipse(p, opt->rect, offset); } } QString CalenderStyle::getLunarDayName(const QDate &date) const { updateLunarInfo(date); CaHuangLiDayInfo &info = m_caHuangLiDayMap[date]; return info.mLunarDayName; } QString CalenderStyle::getLunarYearDesc(const QDate &date) const { updateLunarInfo(date); CaHuangLiDayInfo &info = m_caHuangLiDayMap[date]; return info.mGanZhiYear + info.mZodiac + "年 " + info.mLunarMonthName; } void CalenderStyle::updateLunarInfo(const QDate &date) const { if (m_caHuangLiDayMap.count() > 100) m_caHuangLiDayMap.clear(); if (!m_caHuangLiDayMap.contains(date)) { CaHuangLiDayInfo info; CScheduleDBus::getInstance()->GetHuangLiDay(date, info); m_caHuangLiDayMap[date] = info; } } void CalenderStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { const QWidget *w = widget; const QStyleOption *opt = option; QPainter *p = painter; while (element == CE_ItemViewItem) { if (w && w->objectName() == "qt_calendar_calendarview") { if (const QStyleOptionViewItem *vopt = qstyleoption_cast(opt)) { LunarCalendarWidget *calendar = qobject_cast(w->parent()); if (!calendar) break; const QAbstractTableModel *model = qobject_cast(vopt->index.model()); if (!model) break; //获取阳历和阴历 QString dayName; QString dayNumber = vopt->index.data().toString(); //获取该item的显示天。若为周x则为0 int day = vopt->index.data().toInt(); //该item的时间 QDate curDate = QDate(calendar->yearShown(), calendar->monthShown(), 1); //显示天的item需要获取每个item的显示时间 if (day > 0) { //如果是第一行会显示上个月的日期 if (vopt->index.row() < 2 && day > 20) { curDate = curDate.addMonths(-1); } else if (vopt->index.row() == model->rowCount() - 1 && day < 10) { curDate = curDate.addMonths(1); } curDate.setDate(curDate.year(), curDate.month(), day); dayName = getLunarDayName(curDate); //更新阴历年描述 int selectedYear = calendar->yearShown(); int selectedMonth = calendar->monthShown(); //如果为焦点状态,则根据该item的日期设置年份时间 if (vopt->state & QStyle::State_HasFocus) { QDate selectedDate = QDate(selectedYear, selectedMonth, day); calendar->setLunarYearText(getLunarYearDesc(selectedDate)); } } p->save(); p->setClipRect(vopt->rect); //绘制禁用项 if (!(vopt->state & QStyle::State_Enabled)) { p->save(); p->setPen(Qt::NoPen); p->setBrush(getColor(vopt, DPalette::Window)); p->drawRect(vopt->rect); p->restore(); } // 绘制当前选中项 drawItemViewSelected(p, vopt); // draw the text if (!vopt->text.isEmpty()) { QPalette::ColorGroup cg = (vopt->state & QStyle::State_Enabled) ? QPalette::Normal : QPalette::Disabled; if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active)) cg = QPalette::Inactive; QColor colorOrg; QColor colorDisable = qApp->palette().brush(QPalette::Disabled, QPalette::Text).color(); if (vopt->state & QStyle::State_Selected) { colorOrg = vopt->palette.color(cg, QPalette::HighlightedText); } else { colorOrg = vopt->palette.color(cg, QPalette::Text); } p->save(); const QRect rect = vopt->rect; int d = (rect.height() - 7) / 2; if (vopt->index.row() == 0) { p->setPen(colorOrg); p->drawText(vopt->rect, Qt::AlignCenter, dayNumber); } else { int h = d + 7; p->setPen(colorOrg); p->drawText(rect.adjusted(0, 0, 0, -(rect.height() - h)), Qt::AlignCenter, dayNumber); p->setPen(colorDisable); p->drawText(rect.adjusted(0, h, 0, 0), Qt::AlignCenter, dayName); } p->restore(); } //绘制日历分割线 if (vopt->index.row() == 0) { p->save(); QColor color = getColor(vopt, DPalette::FrameBorder, w); color.setAlpha(static_cast(255 * 0.05)); QPen pen(color, 2); p->setPen(pen); int margins = DStyle::pixelMetric(proxy(), DStyle::PM_ContentsMargins); if (vopt->index.column() == 0) p->drawLine(vopt->rect.bottomLeft() + QPoint(margins, 0), vopt->rect.bottomRight()); else if (vopt->index.column() == model->columnCount() - 1) { p->drawLine(vopt->rect.bottomLeft(), vopt->rect.bottomRight() - QPoint(margins, 0)); } else { p->drawLine(vopt->rect.bottomLeft(), vopt->rect.bottomRight()); } p->restore(); } // draw the focus rect if (vopt->state & QStyle::State_HasFocus) { QStyleOptionFocusRect o; o.QStyleOption::operator=(*vopt); o.rect = proxy()->subElementRect(SE_ItemViewItemFocusRect, vopt, w); o.state |= QStyle::State_KeyboardFocusChange; o.state |= QStyle::State_Item; QPalette::ColorGroup cg = (vopt->state & QStyle::State_Enabled) ? QPalette::Normal : QPalette::Disabled; o.backgroundColor = vopt->palette.color(cg, (vopt->state & QStyle::State_Selected) ? QPalette::Highlight : QPalette::Window); drawItemViewFocus(p, vopt, w); } p->restore(); return; } } break; } //while QProxyStyle::drawControl(element, option, painter, widget); } LunarCalendarWidget::LunarCalendarWidget(QWidget *parent) : QCalendarWidget(parent) , m_style(new CalenderStyle) { QWidget *w = findChild("qt_calendar_calendarview"); if (w) w->setStyle(m_style); QVBoxLayout *layoutV = qobject_cast(layout()); m_lunarLabel = new QLabel(this); m_lunarLabel->setObjectName("lunarLabel"); m_lunarLabel->setAutoFillBackground(true); m_lunarLabel->setBackgroundRole(QPalette::Base); m_lunarLabel->setAlignment(Qt::AlignCenter); layoutV->insertWidget(1, m_lunarLabel); //底部留空10px QLabel *label = new QLabel(this); m_lunarLabel->setObjectName("BottomSpacingLabel"); label->setAutoFillBackground(true); label->setBackgroundRole(QPalette::Base); label->setFixedHeight(BottomSpacing); layoutV->insertWidget(3, label); } LunarCalendarWidget::~LunarCalendarWidget() { //Sets the widget's GUI style to style. The ownership of the style object is not transferred. //需手动删除 delete m_style; } void LunarCalendarWidget::setLunarYearText(const QString &text) { if (m_lunarLabel->text() != text) m_lunarLabel->setText(text); } QString LunarCalendarWidget::lunarYearText() { return m_lunarLabel->text(); } QSize LunarCalendarWidget::minimumSizeHint() const { QTableView *view = findChild("qt_calendar_calendarview"); if (!view) return QSize(); QAbstractItemModel *model = view->model(); if (!model) return QSize(); QWidget *navigationbar = findChild("qt_calendar_navigationbar"); if (!navigationbar) return QSize(); int rowcount = model->rowCount(); int hf = QFontMetrics(this->font()).height(); //原生日历的宽度 QSize old = QCalendarWidget::minimumSizeHint(); int w = old.width(); //navigationbar的高度 int h = navigationbar->minimumSizeHint().height(); //m_lunarLabel的高度 h += m_lunarLabel->minimumSizeHint().height(); //CalendarView的高度 h += (hf * 2 + 7) * rowcount; //底部留空 h += BottomSpacing; return QSize(w, h); } dde-calendar-5.9.1/calendar-client/src/customWidget/lunarcalendarwidget.h000066400000000000000000000030311423264401600265120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: changze * * Maintainer: changze * * 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 LUNARCALENDARWIDGET_H #define LUNARCALENDARWIDGET_H #include class QLabel; class CalenderStyle; class LunarCalendarWidget : public QCalendarWidget { Q_OBJECT public: explicit LunarCalendarWidget(QWidget *parent = nullptr); virtual ~LunarCalendarWidget(); /** * @brief setLunarYearText 设置阴历年描述语 * @param text */ void setLunarYearText(const QString &text); /** * @brief lunarYearText 返回阴历年描述语 * @return */ QString lunarYearText(); protected: virtual QSize minimumSizeHint() const override; private: QLabel *m_lunarLabel = nullptr;//阴历年的label CalenderStyle *m_style = nullptr;//阴历相关样式 }; #endif // LUNARCALENDARWIDGET_H dde-calendar-5.9.1/calendar-client/src/customWidget/monthbrefwidget.cpp000066400000000000000000000357111423264401600262300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "monthbrefwidget.h" #include "constants.h" #include "scheduledatamanage.h" #include "calendarglobalenv.h" #include #include #include CMonthDayRect *CMonthDayRect::m_CurrentRect = nullptr; qreal CMonthDayRect::m_DevicePixelRatio = 0; QColor CMonthDayRect::m_ceventColor("#FF5D00"); QColor CMonthDayRect::m_notCurrentTextColor = "#b2b2b2"; CMonthDayRect::CellColor CMonthDayRect::m_currentColor; QColor CMonthDayRect::m_defaultTextColor; QColor CMonthDayRect::m_selectedTextColor; MonthBrefWidget::MonthBrefWidget(QWidget *parent) : QWidget(parent) { for (int i = 0; i < DDEYearCalendar::RectSizeOfEveryMonth; ++i) { CMonthDayRect *item = new CMonthDayRect(); m_DayItem.append(item); } setMouseTracking(true); CMonthDayRect::setDevicePixelRatio(devicePixelRatioF()); } MonthBrefWidget::~MonthBrefWidget() { for (int i = 0; i < m_DayItem.size(); ++i) { delete m_DayItem[i]; } m_DayItem.clear(); } /** * @brief setDate 设置每个月的日期 * @param date 日期 */ void MonthBrefWidget::setDate(const int showMonth, const QVector &showDate) { Q_ASSERT(showDate.size() == m_DayItem.size()); m_currentMonth = showMonth; for (int i = 0; i < m_DayItem.size(); ++i) { m_DayItem.at(i)->setDate(showDate[i]); m_DayItem.at(i)->setIsCurrentMonth(showDate[i].month() == m_currentMonth); } update(); } /** * @brief setTheMe 根据系统主题设置颜色 * @param type 系统主题 */ void MonthBrefWidget::setTheMe(int type) { CMonthDayRect::setTheMe(type); } /** * @brief setLintFlag 设置是否有日程的标志 * @param lineFlag 是否有日程的标志 */ void MonthBrefWidget::setLintFlag(const QVector &lineFlag) { if (lineFlag.size() == DDEYearCalendar::RectSizeOfEveryMonth) { for (int i = 0; i < DDEYearCalendar::RectSizeOfEveryMonth; ++i) { m_DayItem.at(i)->setLineFlag(lineFlag.at(i)); } } update(); } /** * @brief MonthBrefWidget::setSearchScheduleFlag 设置搜索日程标志 * @param searchFlag */ void MonthBrefWidget::setSearchScheduleFlag(const QVector &searchFlag) { if (searchFlag.size() == DDEYearCalendar::RectSizeOfEveryMonth) { for (int i = 0; i < DDEYearCalendar::RectSizeOfEveryMonth; ++i) { m_DayItem.at(i)->setSearchScheduleFlag(searchFlag.at(i)); } } update(); } /** * @brief MonthBrefWidget::updateSize 设置每天的日期所在矩形框的大小 */ void MonthBrefWidget::updateSize() { qreal w = width() / 7; qreal h = height() / 6; QRectF rect ; int w_offset = 0; int h_offset = 0; for (int i = 0 ; i < m_DayItem.size(); ++i) { h_offset = i / 7; w_offset = i % 7; rect.setRect(w * w_offset, h * h_offset, w, h); m_DayItem.at(i)->setRect(rect); } update(); } /** * @brief MonthBrefWidget::getMousePosItem 获取点击日期的索引 * @param pos * @return */ int MonthBrefWidget::getMousePosItem(const QPointF &pos) { int res = -1; for (int i = 0 ; i < m_DayItem.size(); ++i) { if (m_DayItem.at(i)->rect().contains(pos)) { res = i; break; } } return res; } /** * @brief MonthBrefWidget::resizeEvent 设置每天的日期所在矩形框的大小 * @param event */ void MonthBrefWidget::resizeEvent(QResizeEvent *event) { Q_UNUSED(event); updateSize(); } /** * @brief MonthBrefWidget::mousePressEvent 鼠标单击事件,单击日期显示当天的日程和节日。 * @param event */ void MonthBrefWidget::mousePressEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { //如果为触摸转换则设置触摸状态和触摸开始坐标 m_touchState = 1; m_touchBeginPoint = event->pos(); QWidget::mousePressEvent(event); } else { if (event->button() == Qt::LeftButton) mousePress(event->pos()); } } /** * @brief MonthBrefWidget::mouseDoubleClickEvent 鼠标双击事件,双击跳转到上次打开的视图 * @param event */ void MonthBrefWidget::mouseDoubleClickEvent(QMouseEvent *event) { int itemindex = getMousePosItem(event->pos()); if (!(itemindex < 0)) { if (m_pressIndex == itemindex) { m_DayItem.at(itemindex)->setCellEvent(CMonthDayRect::CellPress); m_press = true; if (event->button() == Qt::LeftButton) { emit signalDoubleClickDate(m_DayItem.at(itemindex)->getDate()); } } } } /** * @brief MonthBrefWidget::mouseReleaseEvent 鼠标释放事件 * @param event */ void MonthBrefWidget::mouseReleaseEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { if (m_touchState == 1) { //如果为触摸且状态为点击则为触摸点击 mousePress(event->pos()); m_touchState = 0; } QWidget::mouseReleaseEvent(event); } m_press = false; mouseMoveEvent(event); } /** * @brief MonthBrefWidget::mouseMoveEvent 鼠标移动事件,设置hover状态 * @param event */ void MonthBrefWidget::mouseMoveEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { QPoint currentPoint = event->pos(); //如果移动距离大与5则为触摸移动状态 if (QLineF(m_touchBeginPoint, currentPoint).length() > 5) { m_touchState = 2; } QWidget::mouseMoveEvent(event); } if (!m_press) { int itemindex = getMousePosItem(event->pos()); if (!(itemindex < 0)) { m_DayItem.at(itemindex)->setCellEvent(CMonthDayRect::Cellhover); } update(); } } /** * @brief MonthBrefWidget::paintEvent 绘制日期以及当天状态 * @param event */ void MonthBrefWidget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); for (int i = 0 ; i < m_DayItem.size(); ++i) { m_DayItem[i]->paintItem(&painter, m_DayItem[i]->rect()); } painter.end(); } /** * @brief MonthBrefWidget::leaveEvent 离开事件,设置当前选中的日期为空 * @param event */ void MonthBrefWidget::leaveEvent(QEvent *event) { Q_UNUSED(event); CMonthDayRect::setCurrentRect(nullptr); update(); } /** * @brief MonthBrefWidget::mousePress 鼠标点击触发事件 * @param point */ void MonthBrefWidget::mousePress(const QPoint &point) { //获取当前item编号 int itemindex = getMousePosItem(point); CalendarGlobalEnv::getGlobalEnv()->reviseValue(DDECalendar::CursorPointKey, mapToGlobal(point)); if (!(itemindex < 0)) { //设置选中item为press状态 m_DayItem.at(itemindex)->setCellEvent(CMonthDayRect::CellPress); m_press = true; m_pressIndex = itemindex; emit signalPressDate(m_DayItem.at(itemindex)->getDate()); } update(); } CMonthDayRect::CMonthDayRect() : m_rect(0, 0, 0, 0) { m_dayNumFont.setPixelSize(DDECalendar::FontSizeTwelve); m_hightFont.setPixelSize(DDECalendar::FontSizeTwelve); } /** * @brief CMonthDayRect::setTheMe 根据系统主题类型设置颜色 * @param type */ void CMonthDayRect::setTheMe(int type) { if (type == 2) { m_currentColor.hoverColor = "#FFFFFF"; m_currentColor.hoverColor.setAlphaF(0.1); m_currentColor.pressColor = "#252525"; m_currentColor.pressColor.setAlphaF(1); m_currentColor.normalColor = "#000000"; m_currentColor.normalColor.setAlphaF(0.00); m_ceventColor = QColor(204, 77, 3); m_notCurrentTextColor = "#C0C6D4"; m_notCurrentTextColor.setAlphaF(0.5); m_defaultTextColor = "#C0C6D4"; m_selectedTextColor = Qt::white; } else if (type == 0 || type == 1) { m_currentColor.hoverColor = "#000000"; m_currentColor.hoverColor.setAlphaF(0.05); m_currentColor.pressColor = "#000000"; m_currentColor.pressColor.setAlphaF(0.2); m_currentColor.normalColor = "#FFFFFF"; m_currentColor.normalColor.setAlphaF(1); m_ceventColor = QColor(255, 93, 0); m_selectedTextColor = Qt::white; m_defaultTextColor = Qt::black; m_notCurrentTextColor = "#b2b2b2"; } } CMonthDayRect::~CMonthDayRect() { } /** * @brief CMonthDayRect::setDate 设置某一天的时间 * @param date */ void CMonthDayRect::setDate(const QDate &date) { m_date = date; } /** * @brief CMonthDayRect::getDate 获取某一天的时间 * @return */ QDate CMonthDayRect::getDate() const { return m_date; } /** * @brief CMonthDayRect::setCellEvent 设置某一天的状态,CellEventType * @param type */ void CMonthDayRect::setCellEvent(const CMonthDayRect::CellEventType &type) { m_cellEventType = type; m_CurrentRect = this; } /** * @brief CMonthDayRect::setIsCurrentMonth 设置是否是当前月 * @param isCurrMonth */ void CMonthDayRect::setIsCurrentMonth(const bool isCurrMonth) { m_isCurrentMonth = isCurrMonth; } /** * @brief CMonthDayRect::rect 当天日期所在的矩形 * @return */ QRectF CMonthDayRect::rect() const { return m_rect; } /** * @brief CMonthDayRect::setRect 设置当天日期的矩形 * @param rect */ void CMonthDayRect::setRect(const QRectF &rect) { m_rect = rect; } /** * @brief CMonthDayRect::setRect 设置当天日期的矩形 * @param x * @param y * @param w * @param h */ void CMonthDayRect::setRect(qreal x, qreal y, qreal w, qreal h) { m_rect.setRect(x, y, w, h); } /** * @brief CMonthDayRect::paintItem 绘制年视图一天的所有状态并展示出来。 * @param painter * @param rect */ void CMonthDayRect::paintItem(QPainter *painter, const QRectF &rect) { m_highColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); if (m_date.year() < DDECalendar::QueryEarliestYear) return; const bool isCurrentDay = m_date == QDate::currentDate() && m_isCurrentMonth; bool isSelectedCell = false; if (isCurrentDay) { isSelectedCell = true; } const qreal r = rect.width() > rect.height() ? rect.height() * 0.9 : rect.width() * 0.9 ; int fontsize = qRound(DDECalendar::FontSizeTwelve + (r - 18) * 6 / 17); if (fontsize < DDECalendar::FontSizeTwelve) { fontsize = DDECalendar::FontSizeTwelve; } m_dayNumFont.setPixelSize(fontsize); m_hightFont.setPixelSize(fontsize); const qreal x = rect.x() + (rect.width() - r) / 2; const qreal y = rect.y() + (rect.height() - r) / 2; QRectF fillRect = QRectF(x, y, r, r); QColor m_cellBackgroundColor; if (m_CurrentRect != this) { m_cellEventType = CellNormal; } if (m_cellEventType == CellPress) { m_cellBackgroundColor = m_currentColor.pressColor; } else if (m_cellEventType == Cellhover) { m_cellBackgroundColor = m_currentColor.hoverColor; } else { m_cellBackgroundColor = m_currentColor.normalColor; } painter->setBrush(m_cellBackgroundColor); painter->setPen(Qt::NoPen); painter->drawEllipse(fillRect); bool highflag = false; if (m_isCurrentMonth) { highflag = m_searchScheduleFlag; } if (highflag) { painter->setBrush(QBrush(m_highColor)); painter->setPen(Qt::NoPen); painter->drawEllipse(fillRect); painter->setPen(Qt::SolidLine); painter->setPen(m_highTextColor); painter->setFont(m_hightFont); painter->drawText(fillRect, Qt::AlignCenter, QString::number(m_date.day())); } else { // draw selected cell background circle if (isSelectedCell) { painter->setBrush(QBrush(m_highColor)); painter->setPen(Qt::NoPen); painter->drawEllipse(fillRect); } painter->setPen(Qt::SolidLine); // draw text of day if (isSelectedCell) { painter->setPen(m_selectedTextColor); } else if (isCurrentDay) { painter->setPen(m_currentDayTextColor); } else { if (m_isCurrentMonth) painter->setPen(m_defaultTextColor); else painter->setPen(m_notCurrentTextColor); } painter->setFont(m_dayNumFont); painter->drawText(fillRect, Qt::AlignCenter, QString::number(m_date.day())); if (m_vlineflag) { painter->save(); painter->setRenderHint(QPainter::Antialiasing); painter->setRenderHint(QPainter::HighQualityAntialiasing); painter->setRenderHint(QPainter::SmoothPixmapTransform); QPen pen; pen.setWidth(2); pen.setColor(m_ceventColor); painter->setPen(pen); painter->setBrush(QBrush(m_ceventColor)); painter->setPen(Qt::NoPen); qreal ellipse_r = rect.width() * (4 / 25); if (ellipse_r < 4) { ellipse_r = 4; } else if (r > 7) { ellipse_r = 7; } painter->drawEllipse(QRectF(rect.width() - ellipse_r + rect.x(), rect.y(), ellipse_r, ellipse_r)); painter->restore(); } } } /** * @brief CMonthDayRect::setLineFlag 设置是否有日程的标志 * @param flag */ void CMonthDayRect::setLineFlag(const bool flag) { m_vlineflag = flag; } /** * @brief CMonthDayRect::setSearchScheduleFlag 设置是否有搜索日程标志 * @param flag */ void CMonthDayRect::setSearchScheduleFlag(const bool flag) { m_searchScheduleFlag = flag; } /** * @brief CMonthDayRect::setDevicePixelRatio 设置显示缩放比例 * @param pixel */ void CMonthDayRect::setDevicePixelRatio(const qreal pixel) { m_DevicePixelRatio = pixel; } /** * @brief CMonthDayRect::setCurrentRect 设置当前天 * @param currrect */ void CMonthDayRect::setCurrentRect(CMonthDayRect *currrect) { m_CurrentRect = currrect; } void CMonthDayRect::setSystemActiveColor(const QColor &activeColor) { m_highColor = activeColor; } dde-calendar-5.9.1/calendar-client/src/customWidget/monthbrefwidget.h000066400000000000000000000127301423264401600256710ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 MONTHBREFWIDGET_H #define MONTHBREFWIDGET_H #include #include class CMonthDayRect; class MonthBrefWidget : public QWidget { Q_OBJECT public: explicit MonthBrefWidget(QWidget *parent = nullptr); ~MonthBrefWidget() override; //设置每个月的日期 void setDate(const int showMonth, const QVector &showDate); //根据系统主题设置颜色 void setTheMe(int type = 0); //设置是否有日程的标志 void setLintFlag(const QVector &lineFlag); //设置是否有搜索日程 void setSearchScheduleFlag(const QVector &searchFlag); private: //设置每天的日期所在矩形框的大小 void updateSize(); //获取点击日期的索引 int getMousePosItem(const QPointF &pos); protected: //设置每天的日期所在矩形框的大小 void resizeEvent(QResizeEvent *event) override; //鼠标单击事件,单击日期显示当天的日程和节日。 void mousePressEvent(QMouseEvent *event) override; //鼠标双击事件,双击跳转到上次打开的视图 void mouseDoubleClickEvent(QMouseEvent *event) override; //鼠标释放事件 void mouseReleaseEvent(QMouseEvent *event) override; //鼠标移动事件,设置hover状态 void mouseMoveEvent(QMouseEvent *event) override; //绘制日期以及当天状态 void paintEvent(QPaintEvent *event) override; //离开事件,设置当前选中的日期为空 void leaveEvent(QEvent *event) override; private: //鼠标点击触发事件 void mousePress(const QPoint &point); signals: /** * @brief signalPressDate 鼠标点击日期的信号 * @param date 传递时间参数 */ void signalPressDate(const QDate &date); /** * @brief signalDoubleClickDate 鼠标双击日期的信号 * @param date 传递时间参数 */ void signalDoubleClickDate(const QDate &date); private: QVector m_DayItem; int m_currentMonth = 1; bool m_press = false; int m_pressIndex = 0; //触摸状态 0:原始 1:点击 2:移动 int m_touchState{0}; //触摸点击坐标 QPoint m_touchBeginPoint; }; class CMonthDayRect { public: /** * @brief The CellEventType enum */ enum CellEventType { CellNormal = 0, Cellhover = 1, CellPress = 2 }; /** * @brief The CellColor struct */ struct CellColor { QColor normalColor; QColor hoverColor; QColor pressColor; }; CMonthDayRect(); ~CMonthDayRect(); //设置某一天的时间 void setDate(const QDate &date); //获取某一天的时间 QDate getDate()const; //设置某一天的状态,CellEventType void setCellEvent(const CellEventType &type); //设置是否是当前月 void setIsCurrentMonth(const bool isCurrMonth); //当天日期所在的矩形 QRectF rect() const; //设置当天日期的矩形 void setRect(const QRectF &rect); //设置当天日期的矩形 inline void setRect(qreal x, qreal y, qreal w, qreal h); //绘制年视图一天的所有状态并展示出来。 void paintItem(QPainter *painter, const QRectF &rect); //设置是否有日程的标志 void setLineFlag(const bool flag); //设置是否有搜索日程标志 void setSearchScheduleFlag(const bool flag); //根据系统主题类型设置颜色 static void setTheMe(int type = 0); //设置显示缩放比例 static void setDevicePixelRatio(const qreal pixel); //设置当前天 static void setCurrentRect(CMonthDayRect *currrect); void setSystemActiveColor(const QColor &activeColor); private: QFont m_dayNumFont; QFont m_hightFont; int m_themetype = 0; CellEventType m_cellEventType {CellNormal}; QColor m_highColor = "#0081FF"; QColor m_highTextColor = "#FFFFFF"; bool m_vlineflag = false; bool m_searchScheduleFlag{false}; QColor m_currentDayTextColor = "#2ca7f8"; static QColor m_defaultTextColor; static QColor m_selectedTextColor; static QColor m_notCurrentTextColor; static CellColor m_currentColor; static QColor m_ceventColor; static CMonthDayRect *m_CurrentRect; static qreal m_DevicePixelRatio; QRectF m_rect; QDate m_date; bool m_isCurrentMonth = false; }; #endif // MONTHBREFWIDGET_H dde-calendar-5.9.1/calendar-client/src/customWidget/scheduleRemindWidget.cpp000066400000000000000000000142021423264401600271270ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "scheduleRemindWidget.h" #include "constants.h" #include #include #include DGUI_USE_NAMESPACE ScheduleRemindWidget::ScheduleRemindWidget(QWidget *parent) : DArrowRectangle(DArrowRectangle::ArrowLeft, DArrowRectangle::FloatWindow, parent) , m_centerWidget(new CenterWidget(this)) { //如果dtk版本为5.3以上则使用新接口 #if (DTK_VERSION > DTK_VERSION_CHECK(5, 3, 0, 0)) //设置显示圆角 setRadiusArrowStyleEnable(true); //设置圆角 setRadius(DARROWRECT::DRADIUS); #endif m_centerWidget->setFixedWidth(207); m_centerWidget->setFixedHeight(57); setContent(m_centerWidget); this->resizeWithContent(); QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, m_centerWidget, &CenterWidget::setTheMe); m_centerWidget->setTheMe(DGuiApplicationHelper::instance()->themeType()); } ScheduleRemindWidget::~ScheduleRemindWidget() { } void ScheduleRemindWidget::setData(const ScheduleDataInfo &vScheduleInfo, const CSchedulesColor &gcolor) { m_centerWidget->setData(vScheduleInfo, gcolor); m_ScheduleInfo = vScheduleInfo; gdcolor = gcolor; this->setHeight(m_centerWidget->height() + 10); } /** * @brief ScheduleRemindWidget::setDirection 设置箭头方向 * @param value */ void ScheduleRemindWidget::setDirection(DArrowRectangle::ArrowDirection value) { //设置箭头方向 this->setArrowDirection(value); //设置内容窗口 this->setContent(m_centerWidget); } /** * @brief ScheduleRemindWidget::setTimeFormat 设置日期显示格式 * @param timeformat 日期格式 */ void ScheduleRemindWidget::setTimeFormat(QString timeformat) { m_centerWidget->setTimeFormat(timeformat); } CenterWidget::CenterWidget(DWidget *parent) : DFrame(parent) , textwidth(0) , textheight(0) { textfont.setWeight(QFont::Medium); } CenterWidget::~CenterWidget() { } void CenterWidget::setData(const ScheduleDataInfo &vScheduleInfo, const CSchedulesColor &gcolor) { m_ScheduleInfo = vScheduleInfo; gdcolor = gcolor; textfont.setPixelSize(DDECalendar::FontSizeTwelve); UpdateTextList(); update(); } void CenterWidget::setTheMe(const int type) { if (type == 2) { timeColor = QColor("#C0C6D4"); timeColor.setAlphaF(0.7); textColor = QColor("#C0C6D4"); textColor.setAlphaF(1); } else { timeColor = QColor("#414D68"); timeColor.setAlphaF(0.7); textColor = QColor("#414D68"); textColor.setAlphaF(1); } update(); } /** * @brief CenterWidget::setTimeFormat 设置日期显示格式 * @param timeFormat 日期格式 */ void CenterWidget::setTimeFormat(QString timeFormat) { m_timeFormat = timeFormat; update(); } void CenterWidget::UpdateTextList() { testList.clear(); QFontMetrics metrics(textfont); textwidth = metrics.width(m_ScheduleInfo.getTitleName()); textheight = metrics.height(); const int h_count = qCeil(textwidth / textRectWidth); QString text; if (h_count < 1) { testList.append(m_ScheduleInfo.getTitleName()); } else { const int text_Max_Height = 108; const int text_HeightMaxCount = qFloor(text_Max_Height / textheight); for (int i = 0; i < m_ScheduleInfo.getTitleName().count(); ++i) { text += m_ScheduleInfo.getTitleName().at(i); if (metrics.width(text) > textRectWidth) { text.remove(text.count() - 1, 1); testList.append(text); text = ""; if (testList.count() == (text_HeightMaxCount - 1)) { text = m_ScheduleInfo.getTitleName().right(m_ScheduleInfo.getTitleName().count() - i); testList.append(metrics.elidedText(text, Qt::ElideRight, textRectWidth)); break; } --i; } else { if (i + 1 == m_ScheduleInfo.getTitleName().count()) { testList.append(text); } } } } this->setFixedHeight(testList.count() * textheight + 30 + 8); } void CenterWidget::paintEvent(QPaintEvent *e) { Q_UNUSED(e); int diam = 8; int x = 40 - 13; QFont timeFont; timeFont.setPixelSize(DDECalendar::FontSizeTwelve); QPainter painter(this); //draw time QPen pen; pen.setColor(timeColor); painter.setPen(pen); painter.setFont(timeFont); QString timestr; QLocale locale; timestr = m_ScheduleInfo.getBeginDateTime().time().toString("AP " + m_timeFormat); QFontMetrics metrics(timeFont); if (m_ScheduleInfo.getAllDay()) timestr = tr("All Day"); int timewidth = metrics.width(timestr); int timeheight = metrics.height(); painter.drawText(QRect(x + 13, 7, timewidth, timeheight), Qt::AlignLeft | Qt::AlignTop, timestr); painter.setRenderHints(QPainter::Antialiasing); painter.setPen(Qt::NoPen); painter.setBrush(QBrush(gdcolor.orginalColor)); painter.drawEllipse(x, 7 + (timeheight - diam) / 2, diam, diam); pen.setColor(textColor); painter.setPen(pen); painter.setFont(textfont); for (int i = 0; i < testList.count(); i++) { painter.drawText( QRect(x, 30 + i * textheight, textRectWidth, textheight), Qt::AlignLeft, testList.at(i)); } } dde-calendar-5.9.1/calendar-client/src/customWidget/scheduleRemindWidget.h000066400000000000000000000044401423264401600265770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 ScheduleRemindWidget_H #define ScheduleRemindWidget_H #include "src/scheduledatainfo.h" #include "scheduledatamanage.h" #include #include #include DWIDGET_USE_NAMESPACE class CenterWidget; class ScheduleRemindWidget : public DArrowRectangle { Q_OBJECT Q_DISABLE_COPY(ScheduleRemindWidget) public: explicit ScheduleRemindWidget(QWidget *parent = nullptr); ~ScheduleRemindWidget() override; void setData(const ScheduleDataInfo &vScheduleInfo, const CSchedulesColor &gcolor); //设置箭头方向 void setDirection(ArrowDirection value); void setTimeFormat(QString timeformat); signals: public slots: private: CenterWidget *m_centerWidget = nullptr; ScheduleDataInfo m_ScheduleInfo; CSchedulesColor gdcolor; }; class CenterWidget : public DFrame { Q_OBJECT public: explicit CenterWidget(DWidget *parent = nullptr); ~CenterWidget() override; void setData(const ScheduleDataInfo &vScheduleInfo, const CSchedulesColor &gcolor); void setTheMe(const int type = 0); void setTimeFormat(QString timeFormat = "h:mm"); private: void UpdateTextList(); protected: void paintEvent(QPaintEvent *e) override; private: QStringList testList; QFont textfont; int textwidth; int textheight; const int textRectWidth = 165; ScheduleDataInfo m_ScheduleInfo; CSchedulesColor gdcolor; QColor textColor; QColor timeColor; QString m_timeFormat; }; #endif // ScheduleRemindWidget_H dde-calendar-5.9.1/calendar-client/src/customWidget/scheduleview.cpp000066400000000000000000000476601423264401600255350ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "scheduleview.h" #include "alldayeventview.h" #include "graphicsview.h" #include "scheduledlg.h" #include "schedulecoormanage.h" #include "scheduledatamanage.h" #include "constants.h" #include "calendarmanage.h" #include "calendarglobalenv.h" #include #include #include #include #include #include #include DGUI_USE_NAMESPACE static int hourTextWidth = 50; static int hourTextHeight = 20; CScheduleView::CScheduleView(QWidget *parent, ScheduleViewPos viewType) : DFrame(parent) , m_viewPos(viewType) , m_touchGesture(this) , m_timeFormat(CalendarManager::getInstance()->getCalendarDateDataManage()->getTimeFormat()) { initUI(); initConnection(); setLineWidth(0); setFocusPolicy(Qt::TabFocus); } CScheduleView::~CScheduleView() { } void CScheduleView::setviewMargin(int left, int top, int right, int bottom) { m_leftMargin = left; m_topMargin = top; m_rightMargin = right; m_layout->setContentsMargins(left, 0, 0, 0); m_graphicsView->setMargins(0, 0, right, bottom); m_alldaylist->setMargins(0, 0, 0, 0); } void CScheduleView::setRange(int w, int h, QDate begin, QDate end) { Q_UNUSED(h); if (!(w > 0)) { return; } m_beginDate = begin; m_endDate = end; m_TotalDay = begin.daysTo(end) + 1; m_graphicsView->setRange(w, scheduleViewHeight(), begin, end, m_rightMargin); m_alldaylist->setRange(w, 22, m_beginDate, m_endDate, m_rightMargin); if (m_viewPos == ScheduleViewPos::DayPos) m_currteDate = begin; update(); } void CScheduleView::setRange(QDate begin, QDate end) { m_TotalDay = begin.daysTo(end) + 1; m_graphicsView->setRange(begin, end); m_alldaylist->setRange(begin, end); m_beginDate = begin; m_endDate = end; updateSchedule(); } void CScheduleView::setTheMe(int type) { if (type == 0 || type == 1) { m_linecolor = "#000000"; m_linecolor.setAlphaF(0.1); m_ALLDayColor = "#303030"; m_timeColor = "#7D7D7D"; } else if (type == 2) { m_linecolor = "#000000"; m_linecolor.setAlphaF(0.1); m_ALLDayColor = "#7D7D7D"; m_timeColor = "#7D7D7D"; } DPalette _painte; //获取外框背景色 m_outerBorderColor = _painte.color(QPalette::Active, QPalette::Window); m_graphicsView->setTheMe(type); m_alldaylist->setTheMe(type); update(); } void CScheduleView::setLunarVisible(bool state) { Q_UNUSED(state); } void CScheduleView::setTime(QTime time) { m_graphicsView->setTime(time); } void CScheduleView::setSelectSchedule(const ScheduleDataInfo &scheduleInfo) { if (scheduleInfo.getAllDay()) { m_alldaylist->setSelectSearchSchedule(scheduleInfo); } else { m_graphicsView->setSelectSearchSchedule(scheduleInfo); } } void CScheduleView::updateHeight() { m_graphicsView->updateHeight(); m_alldaylist->updateHeight(); } bool CScheduleView::IsDragging() { return (m_graphicsView->getDragStatus() != 4) || (m_alldaylist->getDragStatus() != 4); } void CScheduleView::setCurrentDate(const QDateTime ¤tDate) { m_graphicsView->setCurrentDate(currentDate); } /** * @brief CScheduleView::setShowScheduleInfo 设置显示日程 * @param scheduleInfo */ void CScheduleView::setShowScheduleInfo(const QMap > &scheduleInfo) { m_showSchedule = scheduleInfo; updateSchedule(); } /** * @brief CScheduleView::setTimeFormat 设置日期显示格式 * @param timeformat 日期格式 */ void CScheduleView::setTimeFormat(QString timeformat) { m_timeFormat = timeformat; m_ScheduleRemindWidget->setTimeFormat(timeformat); } void CScheduleView::setDate(QDate date) { m_currteDate = date; updateAllday(); } void CScheduleView::slotupdateSchedule() { updateSchedule(); } void CScheduleView::slotPosHours(QVector vPos, QVector vHours, int currentTimeType) { m_vHours = vHours; m_vPos = vPos; m_currentTimeType = currentTimeType; update(); } void CScheduleView::paintEvent(QPaintEvent *event) { DFrame::paintEvent(event); QPainter painter(this); font.setWeight(QFont::Normal); font.setPixelSize(DDECalendar::FontSizeEleven); if (m_vPos.isEmpty()) return; QLocale locale; if (locale.language() == QLocale::Chinese) { QRect tinrect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[m_vPos.count() - 1], hourTextWidth, hourTextHeight); if (m_currentTimeType == 0) { painter.save(); painter.setFont(font); painter.setPen(m_timeColor); for (int i = 0; i < m_vPos.size(); i++) { if (m_vHours[i] == 0) continue; if (m_vHours[i] == 24) continue; if (m_topMargin - 8 + m_vPos[i] < m_topMargin) continue; painter.drawText( QRect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[i], hourTextWidth, hourTextHeight), Qt::AlignCenter, QTime(m_vHours[i], 0).toString("AP h 时")); } painter.restore(); } else { painter.save(); painter.setFont(font); painter.setPen(m_timeColor); for (int i = 0; i < m_vPos.size() - 1; i++) { if (m_vHours[i] == 0) continue; if (m_vHours[i] == 24) continue; if (m_topMargin - 8 + m_vPos[i] < m_topMargin) continue; QRect rr((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[i], hourTextWidth, hourTextHeight); if (rr.intersects(tinrect) && m_viewPos == ScheduleViewPos::DayPos && m_beginDate == QDate::currentDate()) { continue; } painter.drawText( QRect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[i], hourTextWidth, hourTextHeight), Qt::AlignCenter, QTime(m_vHours[i], 0).toString("AP h 时")); } painter.restore(); if (m_viewPos == ScheduleViewPos::DayPos && m_beginDate == QDate::currentDate()) { painter.save(); painter.setFont(font); painter.setPen(m_currenttimecolor); QString str = QTime::currentTime().toString("AP " + m_timeFormat); painter.drawText(QRect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[m_vPos.count() - 1], hourTextWidth, hourTextHeight), Qt::AlignCenter, str); painter.restore(); } } } else { if (m_currentTimeType == 0) { painter.save(); painter.setFont(font); painter.setPen(m_timeColor); for (int i = 0; i < m_vPos.size(); i++) { if (m_vHours[i] == 0) continue; if (m_vHours[i] == 24) continue; if (m_topMargin - 8 + m_vPos[i] < m_topMargin) continue; painter.drawText( QRect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[i], hourTextWidth + 2, hourTextHeight), Qt::AlignCenter, QTime(m_vHours[i], 0).toString(m_timeFormat)); } painter.restore(); } else { painter.save(); painter.setFont(font); painter.setPen(m_timeColor); QRect tinrect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[m_vPos.count() - 1], hourTextWidth + 2, hourTextHeight); for (int i = 0; i < m_vPos.size() - 1; i++) { if (m_vHours[i] == 0) continue; if (m_vHours[i] == 24) continue; if (m_topMargin - 8 + m_vPos[i] < m_topMargin) continue; QRect rr((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[i], hourTextWidth + 2, hourTextHeight); if (rr.intersects(tinrect) && m_viewPos == ScheduleViewPos::DayPos && m_beginDate == QDate::currentDate()) continue; painter.drawText( QRect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[i], hourTextWidth + 2, hourTextHeight), Qt::AlignCenter, QTime(m_vHours[i], 0).toString(m_timeFormat)); } painter.restore(); if (m_viewPos == ScheduleViewPos::DayPos && m_beginDate == QDate::currentDate()) { painter.save(); painter.setFont(font); painter.setPen(m_currenttimecolor); QString str = QTime::currentTime().toString(m_timeFormat); if (m_topMargin - 8 + m_vPos[m_vPos.count() - 1] >= m_topMargin) painter.drawText(QRect((m_leftMargin - hourTextWidth) / 2 - 5, m_topMargin - 8 + m_vPos[m_vPos.count() - 1], hourTextWidth + 2, hourTextHeight), Qt::AlignCenter, str); painter.restore(); } } } painter.save(); QFont alldayfont; alldayfont.setWeight(QFont::Medium); alldayfont.setPixelSize(DDECalendar::FontSizeFourteen); painter.setFont(alldayfont); painter.setPen(m_ALLDayColor); painter.drawText(QRect(0, 0, m_leftMargin - 2, m_topMargin - 2), Qt::AlignCenter, tr("ALL DAY")); painter.restore(); //绘制全天与非全天之间的直线 painter.save(); painter.setPen(Qt::NoPen); //分割线y坐标点 const int point_y = m_alldaylist->height() + m_alldaylist->y(); //设置间隔线颜色 painter.setBrush(m_linecolor); //绘制间隔线矩阵 painter.drawRect(QRectF(0, point_y, this->width() - m_rightMargin - 2, 1)); painter.restore(); if (m_viewPos == ScheduleViewPos::WeekPos) { //如果为周视图绘制右侧背景色(否则会有一个竖线的白色背景,不协调) painter.setPen(Qt::NoPen); painter.setBrush(m_outerBorderColor); painter.drawRect(QRectF(this->width() - 1, 0, this->width(), this->height())); } } void CScheduleView::resizeEvent(QResizeEvent *event) { if (m_viewPos == ScheduleViewPos::WeekPos) { m_sMaxNum = ((width() - m_leftMargin) / 7) / 27; if (m_sMaxNum < 4) { m_sMaxNum = 4; } } m_graphicsView->setMaxNum(m_sMaxNum); m_graphicsView->setRange(width() - m_leftMargin, scheduleViewHeight(), m_beginDate, m_endDate, m_rightMargin); m_alldaylist->setRange(width() - m_leftMargin, 22, m_beginDate, m_endDate, m_rightMargin); update(); QFrame::resizeEvent(event); updateAllday(); m_graphicsView->updateInfo(); m_graphicsView->keepCenterOnScene(); } void CScheduleView::wheelEvent(QWheelEvent *e) { if (e->orientation() == Qt::Orientation::Horizontal) { emit signalAngleDelta(e->angleDelta().x()); } } bool CScheduleView::event(QEvent *e) { if (m_touchGesture.event(e)) { //获取触摸状态 switch (m_touchGesture.getTouchState()) { case touchGestureOperation::T_SLIDE: { //在滑动状态如果可以更新数据则切换月份 if (m_touchGesture.isUpdate()) { m_touchGesture.setUpdate(false); switch (m_touchGesture.getMovingDir()) { case touchGestureOperation::T_LEFT: emit signalAngleDelta(-1); break; case touchGestureOperation::T_RIGHT: emit signalAngleDelta(1); break; default: break; } } break; } default: break; } return true; } else { return DFrame::event(e); } } void CScheduleView::initUI() { m_layout = new QVBoxLayout; m_layout->setSpacing(0); m_layout->setMargin(0); m_alldaylist = new CAllDayEventWeekView(this, m_viewPos); m_layout->addWidget(m_alldaylist); m_layout->addSpacing(1); m_graphicsView = new CGraphicsView(this, m_viewPos); const int miniHeight = m_viewPos == ScheduleViewPos::WeekPos ? 300 : 380; m_graphicsView->setMinimumHeight(miniHeight); connect(m_graphicsView, SIGNAL(signalsPosHours(QVector, QVector, int)), this, SLOT(slotPosHours(QVector, QVector, int))); m_layout->addWidget(m_graphicsView); setLayout(m_layout); m_graphicsView->scrollBarValueChangedSlot(); m_ScheduleRemindWidget = new ScheduleRemindWidget(this); // move focus to m_graphicsView setFocusProxy(m_graphicsView); } void CScheduleView::initConnection() { connect(m_graphicsView, &CGraphicsView::signalsUpdateSchedule, this, &CScheduleView::slotupdateSchedule); connect(m_alldaylist, &CAllDayEventWeekView::signalsUpdateSchedule, this, &CScheduleView::slotupdateSchedule); connect(m_graphicsView, &CGraphicsView::signalsCurrentScheduleDate, this, &CScheduleView::slotCurrentScheduleDate); connect(m_graphicsView, &CGraphicsView::signalGotoDayView, this, &CScheduleView::slotCurrentScheduleDate); //切换前后时间信号关联 connect(m_graphicsView, &CAllDayEventWeekView::signalAngleDelta, this, &CScheduleView::signalAngleDelta); connect(m_alldaylist, &CAllDayEventWeekView::signalAngleDelta, this, &CScheduleView::signalAngleDelta); connect(m_graphicsView, &CGraphicsView::signalScheduleShow, this, &CScheduleView::slotScheduleShow); connect(m_alldaylist, &CAllDayEventWeekView::signalScheduleShow, this, &CScheduleView::slotScheduleShow); connect(m_alldaylist, &CAllDayEventWeekView::signalUpdatePaint, this, &CScheduleView::slotUpdatePaint); connect(m_alldaylist, &CAllDayEventWeekView::signalSceneUpdate, this, &CScheduleView::slotUpdateScene); connect(m_graphicsView, &CGraphicsView::signalSceneUpdate, this, &CScheduleView::slotUpdateScene); connect(m_alldaylist, &CAllDayEventWeekView::signaleSwitchToView, this, &CScheduleView::slotSwitchView); connect(m_graphicsView, &CGraphicsView::signaleSwitchToView, this, &CScheduleView::slotSwitchView); connect(m_alldaylist, &CAllDayEventWeekView::signalViewFocusInit, m_graphicsView, &CGraphicsView::slotViewInit); connect(m_alldaylist, &CAllDayEventWeekView::signalSwitchPrePage, this, &CScheduleView::signalSwitchPrePage); connect(m_alldaylist, &CAllDayEventWeekView::signalSwitchNextPage, this, &CScheduleView::signalSwitchNextPage); connect(m_graphicsView, &CAllDayEventWeekView::signalSwitchPrePage, this, &CScheduleView::signalSwitchPrePage); connect(m_graphicsView, &CAllDayEventWeekView::signalSwitchNextPage, this, &CScheduleView::signalSwitchNextPage); } /** * @brief CScheduleView::slotDeleteitem 快捷键删除日程 */ void CScheduleView::slotDeleteitem() { //"delete"快捷键删除日程,因为只有一个点击选中日程所以全天或非全天只需要有一个删除就可以了 m_graphicsView->slotDeleteItem(); //因添加了对焦点选中item的快捷删除,添加对全天选中日程的删除 m_alldaylist->slotDeleteItem(); } void CScheduleView::slotCurrentScheduleDate(QDate date) { if (m_viewPos == ScheduleViewPos::DayPos) return; emit signalsCurrentScheduleDate(date); } void CScheduleView::slotScheduleShow(const bool isShow, const ScheduleDataInfo &out) { if (isShow) { QVariant variant; CalendarGlobalEnv::getGlobalEnv()->getValueByKey(DDECalendar::CursorPointKey, variant); QPoint pos22 = variant.value(); CSchedulesColor gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType( out.getType()); QDesktopWidget *w = QApplication::desktop(); m_ScheduleRemindWidget->setData(out, gdColor); if ((pos22.x() + m_ScheduleRemindWidget->width() + 15) > w->width()) { m_ScheduleRemindWidget->setDirection(DArrowRectangle::ArrowRight); m_ScheduleRemindWidget->show(pos22.x() - 15, pos22.y()); } else { m_ScheduleRemindWidget->setDirection(DArrowRectangle::ArrowLeft); m_ScheduleRemindWidget->show(pos22.x() + 15, pos22.y()); } } else { m_ScheduleRemindWidget->hide(); } } void CScheduleView::slotUpdatePaint(const int topM) { m_topMargin = topM; update(); } void CScheduleView::slotUpdateScene() { m_graphicsView->slotUpdateScene(); m_alldaylist->slotUpdateScene(); } /** * @brief CScheduleView::slotSwitchView 焦点切换到某个视图 * @param viewtype */ void CScheduleView::slotSwitchView(const QDate &focusDate, CWeekDayGraphicsview::ViewType viewtype, bool setItemFocus) { if (viewtype == CWeekDayGraphicsview::ALLDayView) { m_alldaylist->setCurrentFocusItem(focusDate, setItemFocus); m_alldaylist->setFocus(Qt::TabFocusReason); } else { m_graphicsView->setCurrentFocusItem(focusDate, setItemFocus); m_graphicsView->setFocus(Qt::TabFocusReason); } } /** * @brief CScheduleView::updateSchedule 更新日程显示 */ void CScheduleView::updateSchedule() { //获取一个月的日程信息 m_graphicsView->clearSchedule(); QVector allInfo; QVector nonAllInfo; QMap >::const_iterator _iterator = m_showSchedule.constBegin(); for (; _iterator != m_showSchedule.constEnd(); ++_iterator) { for (int i = 0; i < _iterator->size(); ++i) { if (_iterator.value().at(i).getAllDay()) { if (!allInfo.contains(_iterator.value().at(i))) { allInfo.append(_iterator.value().at(i)); } } else { if (!nonAllInfo.contains(_iterator.value().at(i))) { nonAllInfo.append(_iterator.value().at(i)); } } } } m_alldaylist->setInfo(allInfo); m_graphicsView->setInfo(nonAllInfo); updateAllday(); m_graphicsView->updateInfo(); m_graphicsView->update(); m_graphicsView->scene()->update(); } void CScheduleView::updateAllday() { m_alldaylist->updateInfo(); update(); m_graphicsView->resize(m_graphicsView->width(), this->height() - m_alldaylist->height()); } int CScheduleView::scheduleViewHeight() { qreal mHeight = 0; if (m_viewPos == ScheduleViewPos::DayPos) { mHeight = 24 * (0.0968 * height() + 0.5); } else { mHeight = 24 * (0.083 * height() + 0.5); } //现在最小高度为20; mHeight = mHeight < 500 ? 1035 : mHeight; int m_minTime = qRound((20.0 / mHeight) * 86400); m_graphicsView->setMinTime(m_minTime); return qRound(mHeight); } dde-calendar-5.9.1/calendar-client/src/customWidget/scheduleview.h000066400000000000000000000101371423264401600251670ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULEVIEW_H #define SCHEDULEVIEW_H #include "src/scheduledatainfo.h" #include "scheduleRemindWidget.h" #include "../widget/touchgestureoperation.h" #include "graphicsview.h" #include #include DWIDGET_USE_NAMESPACE #define ScheduleViewPos CWeekDayGraphicsview::ViewPosition class CAllDayEventWeekView; class QVBoxLayout; class CScheduleView : public DFrame { Q_OBJECT public: CScheduleView(QWidget *parent = nullptr, ScheduleViewPos viewType = ScheduleViewPos::WeekPos); ~CScheduleView() override; void setviewMargin(int left, int top, int right, int bottom); void setRange(int w, int h, QDate begin, QDate end); void setRange(QDate begin, QDate end); void setTheMe(int type = 0); void setLunarVisible(bool state); void setTime(QTime time); void setSelectSchedule(const ScheduleDataInfo &scheduleInfo); void updateHeight(); bool IsDragging(); void setCurrentDate(const QDateTime ¤tDate); //设置显示日程 void setShowScheduleInfo(const QMap > &scheduleInfo); void setTimeFormat(QString timeformat); signals: void signalsCurrentScheduleDate(QDate date); /** * @brief signalAngleDelta 发送滚动信号滚动相对量 * @param delta 滚动相对量 */ void signalAngleDelta(int delta); void signalSwitchPrePage(); void signalSwitchNextPage(); public slots: void slotPosHours(QVector vPos, QVector vHours, int currentTimeType = 0); void setDate(QDate date); void slotupdateSchedule(); //快捷键删除日程 void slotDeleteitem(); void slotCurrentScheduleDate(QDate date); void slotScheduleShow(const bool isShow, const ScheduleDataInfo &out = ScheduleDataInfo()); void slotUpdatePaint(const int topM); void slotUpdateScene(); //焦点切换到某个视图 void slotSwitchView(const QDate &focusDate, CWeekDayGraphicsview::ViewType viewtype, bool setItemFocus); protected: void paintEvent(QPaintEvent *event) override; void resizeEvent(QResizeEvent *event) override; void wheelEvent(QWheelEvent *e) override; bool event(QEvent *e) override; private: void initUI(); void initConnection(); void updateSchedule(); void updateAllday(); int scheduleViewHeight(); private: CGraphicsView *m_graphicsView = nullptr; QVector m_vPos; QVector m_vHours; CAllDayEventWeekView *m_alldaylist = nullptr; QMap > m_showSchedule{}; int m_leftMargin; int m_topMargin; int m_rightMargin = 0; qint64 m_TotalDay; QDate m_currteDate; QDate m_beginDate; QDate m_endDate; // 0: 周 1:日 // int m_viewType = 0; ScheduleViewPos m_viewPos; int m_sMaxNum = 4; QColor m_linecolor = Qt::lightGray; QColor m_ALLDayColor = "#303030"; QColor m_timeColor = "#7D7D7D"; QColor m_currenttimecolor = "#F74444"; int m_currentTimeType = 0; QVBoxLayout *m_layout = nullptr; ScheduleRemindWidget *m_ScheduleRemindWidget = nullptr; int m_minTime; //最小高度对应的最小时间 QFont font; const int m_radius = 8; /** * @brief m_touchGesture 触摸手势处理 */ touchGestureOperation m_touchGesture; QColor m_outerBorderColor; //外边框背景色 QString m_timeFormat; }; #endif // SCHEDULEVIEW_H dde-calendar-5.9.1/calendar-client/src/customWidget/timeedit.cpp000066400000000000000000000200601423264401600246330ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "timeedit.h" #include #include #include #include #include #include "calendarmanage.h" //视图容器最大高度 const int viewContainerMaxHeight = 305; CTimeEdit::CTimeEdit(QWidget *parent) : DComboBox(parent) , m_timeFormat(CalendarManager::getInstance()->getCalendarDateDataManage()->getTimeFormat()) , m_timeFormatValue( CalendarManager::getInstance()->getCalendarDateDataManage()->getTimeFormatValue()) , m_timeEdit(new CCustomTimeEdit()) , m_hasFocus(false) , m_miniTime(QTime(0, 0, 0)) { initUI(); initConnection(); } CTimeEdit::~CTimeEdit() { delete m_timeEdit; } void CTimeEdit::setMineTime(const QTime &mineTime) { m_miniTime = mineTime; } void CTimeEdit::setTime(const QTime &time) { m_time = time; setSelectItem(m_time); m_timeEdit->getLineEdit()->setText(time.toString(m_timeFormat)); } QTime CTimeEdit::getTime() { //获取显示的text QString timetext = m_timeEdit->getLineEdit()->displayText(); //将text转换为时间 m_time = QTime::fromString(timetext, m_timeFormat); return m_time; } void CTimeEdit::updateListItem(bool isShowTimeInterval) { m_isShowTimeInterval = isShowTimeInterval; QTime topTimer(m_miniTime); if (!m_isShowTimeInterval) { // 根据开始时间的分钟数设置结束时间下拉列表的分钟数,当前默认为0,故先注释 // int m = m_miniTime.minute() >= 30 ? m_miniTime.minute() - 30 : m_miniTime.minute(); int m = 0; topTimer = QTime(0, m); } //清除列表 clear(); for (int i = 0; i < 48; ++i) { qreal timeInterval = i * 0.5; QString timeIntervalStr; if (m_isShowTimeInterval) { if (timeInterval < 1) { timeIntervalStr = tr("(%1 mins)").arg(i * 30); } else if (qFuzzyCompare(timeInterval, 1)) { timeIntervalStr = tr("(%1 hour)").arg(timeInterval); } else { timeIntervalStr = tr("(%1 hours)").arg(timeInterval); } } else { timeIntervalStr = ""; } QString userData = topTimer.addSecs(i * 30 * 60).toString(m_timeFormat); QString showStr = userData + timeIntervalStr; addItem(showStr, userData); } } void CTimeEdit::setTimeFormat(int value) { //获取edit的当前时间 QTime editCurrentTime = getTime(); //根据value值,设置时间显示格式 if (value) { m_timeFormat = "hh:mm"; } else { m_timeFormat = "h:mm"; } //先更新列表信息,更新列表信息后再设置编辑框显示时间 updateListItem(m_isShowTimeInterval); m_timeEdit->setDisplayFormat(m_timeFormat); //设置改变格式后的时间 setTime(editCurrentTime); } void CTimeEdit::slotFocusDraw(bool showFocus) { m_hasFocus = showFocus; update(); } void CTimeEdit::setSelectItem(const QTime &time) { //若有则设置选中,若没有则取消选中设置定位到相近值附近 int similarNumber = -1; int diff = 24 * 60 * 60 * 1000; for (int i = 0 ; i < count(); ++i) { QVariant &&userData = itemData(i); QTime &&listTime = QTime::fromString(userData.toString(), m_timeFormat); int &&timeDiff = qAbs(listTime.msecsTo(time)); //获取时间差较小的值 //如果时间小于第一项的时间则不算统计, //比如 第一项时间位01:00 比对时间为00:59,时间差应该为23:59 而不是00:01,所以应该定位到最后一项 if (timeDiff < diff && (!(time < listTime && 0 == i))) { diff = timeDiff; similarNumber = i; } } if (diff == 0) { setCurrentIndex(similarNumber); } else { setCurrentIndex(-1); } scrollPosition = this->model()->index(similarNumber, 0); } void CTimeEdit::slotSetPlainText(const QString &arg) { QString userData = currentData().toString(); if (userData.isEmpty()) { this->lineEdit()->setText(arg); } else { this->lineEdit()->setText(userData); } } void CTimeEdit::slotActivated(const QString &arg) { slotSetPlainText(arg); emit signaleditingFinished(); } void CTimeEdit::slotEditingFinished() { setTime(m_timeEdit->time()); emit signaleditingFinished(); } void CTimeEdit::initUI() { //关闭自动补全 this->setAutoCompletion(false); //设置edit的宽度 m_timeEdit->getLineEdit()->setFixedWidth(100); m_timeEdit->setDisplayFormat(m_timeFormat); updateListItem(m_isShowTimeInterval); setLineEdit(m_timeEdit->getLineEdit()); m_timeEdit->setParent(this); setInsertPolicy(QComboBox::NoInsert); } void CTimeEdit::initConnection() { connect(CalendarManager::getInstance(), &CalendarManager::signalTimeFormatChanged, this, &CTimeEdit::setTimeFormat); connect(m_timeEdit, &CCustomTimeEdit::signalUpdateFocus, this, &CTimeEdit::slotFocusDraw); connect(m_timeEdit->getLineEdit(), &QLineEdit::editingFinished, this, &CTimeEdit::slotEditingFinished); connect(this, static_cast(&CTimeEdit::activated), this, &CTimeEdit::slotActivated); } void CTimeEdit::showPopup() { DComboBox::showPopup(); //获取下拉视图容器 QFrame *viewContainer = this->findChild(); if (viewContainer) { //移动前先隐藏 viewContainer->hide(); //如果显示视图容器则设置高度 viewContainer->setFixedHeight(viewContainerMaxHeight); //设置最大高度 viewContainer->setMaximumHeight(viewContainerMaxHeight + 1); //获取combobox底部坐标 QPoint showPoint = mapToGlobal(this->rect().bottomLeft()); //控制视图容器宽度 ,根据字体大小调整宽度 int maxLen = 0; QFontMetrics fontMet(view()->font()); for (int i = 0 ; i < count() ; ++i) { int &&itemWidth = fontMet.width(this->itemText(i)); maxLen = qMax(maxLen, itemWidth); } maxLen += 45; //选项前√占用的大小 //如果宽度小于box宽度则设置位box宽度 maxLen = qMax(maxLen, this->width()); viewContainer->setFixedWidth(maxLen); //将视图容器移动到combobox的底部 viewContainer->move(showPoint.x(), showPoint.y()); //显示 viewContainer->show(); } //因改变了容器的高度,所以需要重新定位当前位置 if (this->view()->currentIndex() == scrollPosition) { this->view()->scrollTo(scrollPosition, QAbstractItemView::PositionAtCenter); } else { this->view()->scrollTo(scrollPosition, QAbstractItemView::PositionAtTop); } } void CTimeEdit::focusInEvent(QFocusEvent *event) { DComboBox::focusInEvent(event); // 如果为tab焦点进入则选中时间 if (event->reason() == Qt::TabFocusReason) { lineEdit()->setFocus(Qt::TabFocusReason); } } void CTimeEdit::paintEvent(QPaintEvent *e) { DComboBox::paintEvent(e); //如果有焦点则设置焦点显示效果 if (m_hasFocus) { QPainter painter(this); QStyleOptionFocusRect option; option.initFrom(this); option.backgroundColor = palette().color(QPalette::Background); style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this); } } dde-calendar-5.9.1/calendar-client/src/customWidget/timeedit.h000066400000000000000000000054561423264401600243140ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "ccustomtimeedit.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class CTimeEdit : public DComboBox { Q_OBJECT public: explicit CTimeEdit(QWidget *parent = nullptr); ~CTimeEdit() override; /** * @brief setMineTime 设置下拉列表顶端时间 * @param mineTime */ void setMineTime(const QTime &mineTime); /** * @brief setTime 设置显示时间 * @param time */ void setTime(const QTime &time); /** * @brief getTime 获取时间 * @return */ QTime getTime(); /** * @brief updateListItem 更新列表项 * @param isShowTimeInterval 是否显示时间间隔 */ void updateListItem(bool isShowTimeInterval = false); /** * @brief setSelectItem 设置选中项目和scroll定位位置 * @param time */ void setSelectItem(const QTime &time); public slots: void setTimeFormat(int value); //焦点获取效果绘制 void slotFocusDraw(bool showFocus); /** * @brief slotSetPlainText 设置当前编辑框显示文本 * @param arg */ void slotSetPlainText(const QString &arg); /** * @brief slotActivated Combobox选择项处理槽 * @param arg */ void slotActivated(const QString &arg); /** * @brief slotEditingFinished 编辑框编辑结束时,处理槽 */ void slotEditingFinished(); signals: void signalFocusOut(); void signaleditingFinished(); private: void initUI(); void initConnection(); protected: void showPopup() override; void focusInEvent(QFocusEvent *event) override; void paintEvent(QPaintEvent *e) override; private: QString m_timeFormat = "hh:mm"; int m_timeFormatValue = 0; QTime m_time; CCustomTimeEdit *m_timeEdit = nullptr; bool m_hasFocus; QTime m_miniTime; bool m_isShowTimeInterval = false; QModelIndex scrollPosition; //下拉列表需要滚动到的位置 }; dde-calendar-5.9.1/calendar-client/src/customWidget/todaybutton.cpp000066400000000000000000000072711423264401600254140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "todaybutton.h" #include "constants.h" #include #include #include DGUI_USE_NAMESPACE CTodayButton::CTodayButton(QWidget *parent) : DPushButton(parent) { m_font.setWeight(QFont::Medium); m_font.setPixelSize(DDECalendar::FontSizeFourteen); } void CTodayButton::setBColor(QColor normalC, QColor hoverC, QColor pressc, QColor normalC1, QColor hoverC1, QColor pressc1) { m_bnormalColor = normalC; m_bhoverColor = hoverC; m_bPressColor = pressc; m_dbnormalColor = normalC1; m_dbhoverColor = hoverC1; m_dbPressColor = pressc1; m_shadowColor = m_bnormalColor; } void CTodayButton::setTColor(QColor normalC, QColor hoverC, QColor pressc) { m_tnormalColor = normalC; m_thoverColor = hoverC; m_tPressColor = pressc; } void CTodayButton::setshadowColor(QColor sc) { m_shadowColor = sc; } void CTodayButton::mousePressEvent(QMouseEvent *event) { DPalette todaypa = palette(); todaypa.setColor(DPalette::ButtonText, m_tPressColor); todaypa.setColor(DPalette::Dark, m_dbPressColor); todaypa.setColor(DPalette::Light, m_bPressColor); todaypa.setColor(DPalette::Shadow, m_shadowColor); setPalette(todaypa); DPushButton::mousePressEvent(event); } void CTodayButton::mouseReleaseEvent(QMouseEvent *event) { DPalette todaypa = palette(); todaypa.setColor(DPalette::ButtonText, m_tnormalColor); todaypa.setColor(DPalette::Dark, m_dbnormalColor); todaypa.setColor(DPalette::Light, m_bnormalColor); todaypa.setColor(DPalette::Shadow, m_shadowColor); setPalette(todaypa); DPushButton::mouseReleaseEvent(event); } void CTodayButton::focusOutEvent(QFocusEvent *event) { DPalette todaypa = palette(); todaypa.setColor(DPalette::ButtonText, m_tnormalColor); todaypa.setColor(DPalette::Dark, m_dbnormalColor); todaypa.setColor(DPalette::Light, m_bnormalColor); todaypa.setColor(DPalette::Shadow, m_shadowColor); setPalette(todaypa); DPushButton::focusOutEvent(event); } void CTodayButton::enterEvent(QEvent *event) { DPalette todaypa = palette(); todaypa.setColor(DPalette::ButtonText, m_thoverColor); todaypa.setColor(DPalette::Dark, m_dbhoverColor); todaypa.setColor(DPalette::Light, m_bhoverColor); todaypa.setColor(DPalette::Shadow, m_shadowColor); setPalette(todaypa); DPushButton::enterEvent(event); } void CTodayButton::leaveEvent(QEvent *event) { DPalette todaypa = palette(); todaypa.setColor(DPalette::ButtonText, m_tnormalColor); todaypa.setColor(DPalette::Dark, m_dbnormalColor); todaypa.setColor(DPalette::Light, m_bnormalColor); todaypa.setColor(DPalette::Shadow, m_shadowColor); setPalette(todaypa); DPushButton::leaveEvent(event); } void CTodayButton::keyPressEvent(QKeyEvent *event) { //添加回车点击效果处理 if (event->key() == Qt::Key_Return) { click(); } DPushButton::keyPressEvent(event); } dde-calendar-5.9.1/calendar-client/src/customWidget/todaybutton.h000066400000000000000000000043521423264401600250560ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 TODYBUTTON_H #define TODYBUTTON_H #include DWIDGET_USE_NAMESPACE class CTodayButton : public DPushButton { Q_OBJECT public: explicit CTodayButton(QWidget *parent = nullptr); void setBColor(QColor normalC, QColor hoverC, QColor pressc, QColor normalC1, QColor hoverC1, QColor pressc1); void setTColor(QColor normalC, QColor hoverC, QColor pressc); void setshadowColor(QColor sc); protected: void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void focusOutEvent(QFocusEvent *event) override; void enterEvent(QEvent *event) override; void leaveEvent(QEvent *event) override; void keyPressEvent(QKeyEvent *event) override; private: QColor m_bnormalColor = "#FFFFFF"; QColor m_bhoverColor = "#FFFFFF"; QColor m_bPressColor = "#FFFFFF"; QColor m_dbnormalColor = "#FFFFFF"; QColor m_dbhoverColor = "#FFFFFF"; QColor m_dbPressColor = "#FFFFFF"; QColor m_tnormalColor = "#000000"; QColor m_thoverColor = "#000000"; QColor m_tPressColor = "#000000"; QColor m_shadowColor = "#FFFFFF"; QFont m_font; bool m_pressstate = false; bool m_hovertate = false; }; #endif // TODYBUTTON_H dde-calendar-5.9.1/calendar-client/src/dataManage/000077500000000000000000000000001423264401600216715ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/dataManage/calendardatedatamanage.cpp000066400000000000000000000213511423264401600270110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "calendardatedatamanage.h" #include const int MonthMaxDay = 42; Qt::DayOfWeek CalendarDateDataManager::m_weekFirstDay = Qt::Sunday; /** * @brief CalendarDateDataManage 构造函数 * @param parent */ CalendarDateDataManager::CalendarDateDataManager() : m_currentDateTime(QDateTime::currentDateTime()) , m_selectDate(m_currentDateTime.date()) , m_weekDayFormat("ddd") { //设置显示年份,开始结束时间 setYearBeginAndEndDate(m_selectDate.year()); } /** * @brief setSelectDate 设置选择时间 * @param selectDate 选择时间 */ void CalendarDateDataManager::setSelectDate(const QDate &selectDate, const bool isSwitchYear) { m_selectDate = selectDate; if (isSwitchYear || m_showDateRange.startDate > m_selectDate || m_showDateRange.stopDate < m_selectDate) { //如果选择时间不在显示范围内则修改显示年份,开始和结束时间 setYearBeginAndEndDate(m_selectDate.year()); } } /** * @brief getSelectDate 获取选择时间 * @return 返回选择时间 */ QDate CalendarDateDataManager::getSelectDate() const { return m_selectDate; } /** * @brief setCurrentDateTime 设置当前时间 * @param currentDateTime 当前时间 */ void CalendarDateDataManager::setCurrentDateTime(const QDateTime ¤tDateTime) { m_currentDateTime = currentDateTime; } /** * @brief getCurrentDate 获取当前时间 * @return 返回当前时间 */ QDateTime CalendarDateDataManager::getCurrentDate() const { return m_currentDateTime; } /** * @brief getYearDate 获取全年的时间 * @param year 设置的年份 * @return 返回全年的时间,按照月份分组 */ QMap > CalendarDateDataManager::getYearDate() { QMap > _resultMap; for (int i = 1; i < 13; ++i) { _resultMap[i] = getMonthDate(m_showDateRange.showYear, i); } return _resultMap; } /** * @brief getMonthDate 获取月份的所有时间 * @param year 设置的年份 * @param month 设置的月份 * @return 返回当月全部时间 */ QVector CalendarDateDataManager::getMonthDate(const int &year, const int &month) { QVector _resultDate; //自然月的第一天 const QDate _monthFirstDay{year, month, 1}; //获取显示月的第一天 const QDate _firstShowDayOfMonth = getFirstDayOfWeek(_monthFirstDay); //获取该月所有显示时间 for (int i = 0; i < 42; ++i) { _resultDate.append(_firstShowDayOfMonth.addDays(i)); } return _resultDate; } /** * @brief getWeekDate 获取一周的所有时间 * @param date 设置的时间 * @return 返回这个周全部时间 */ QVector CalendarDateDataManager::getWeekDate(const QDate &date) { QVector _resultDate; //获取这个周的第一天日期 const QDate _firstDayofWeek = getFirstDayOfWeek(date); //获取该周所有显示时间 for (int i = 0; i < 7; ++i) { _resultDate.append(_firstDayofWeek.addDays(i)); } return _resultDate; } /** * @brief setWeekFirstDay 设置每周以周几作为每周第一天 * @param firstDay 每周第一天 */ void CalendarDateDataManager::setWeekFirstDay(const Qt::DayOfWeek &firstDay) { m_weekFirstDay = firstDay; setYearBeginAndEndDate(m_showDateRange.showYear); } /** * @brief getWeekFirstDay 获取每周以周几作为每周第一天 * @return 每周第一天 */ Qt::DayOfWeek CalendarDateDataManager::getWeekFirstDay() { return m_weekFirstDay; } /** * @brief setWeekDayFormatByID 设置周显示格式 * @param weekDayFormatID * 0 "dddd" * 1 "ddd" */ void CalendarDateDataManager::setWeekDayFormatByID(const int &weekDayFormatID) { switch (weekDayFormatID) { case 0: m_weekDayFormat = "dddd"; break; default: m_weekDayFormat = "ddd"; break; } } /** * @brief getWeekDayFormat 获取周显示格式 * @return 周显示格式 * "ddd" 周一 * "dddd" 星期一 */ QString CalendarDateDataManager::getWeekDayFormat() const { return m_weekDayFormat; } /** * @brief CalendarDateDataManager::getShowDateRange 获取显示年,开始结束时间 * @return */ ShowDateRange CalendarDateDataManager::getShowDateRange() const { return m_showDateRange; } /** * @brief getFirstDayOfWeek 根据日期获取当前周第一天的日期 * @param date 选择的日期 * @return 当前周第一天的日期 */ QDate CalendarDateDataManager::getFirstDayOfWeek(const QDate &date) { //根据选择时间周工作日和每周第一天的周工作日得到偏移量 int _offset = date.dayOfWeek() - m_weekFirstDay; //根据偏移量获取需要添加还有减去的偏移天数 const int _offsetDay = _offset < 0 ? _offset + 7 : _offset; //返回这周第一天的日期 return date.addDays(0 - _offsetDay); } /** * @brief getWeekNumOfYear 根据日期获取该日期处于该年第多少周 * @param date 选择的日期 * @return 处于当年第多少周 */ int CalendarDateDataManager::getWeekNumOfYear(const QDate &date) { int _weekNum {0}; //获取选择时间所在周的最后一天 const QDate _laseDateInWeekBySelectDate = getFirstDayOfWeek(date).addDays(6); //该年第一天 const QDate _firstDayOfYear{_laseDateInWeekBySelectDate.year(), 1, 1}; //该年显示的第一天日期 const QDate _firstShowDayOfYear = getFirstDayOfWeek(_firstDayOfYear); //处于该年显示第多少天,0为第一天 const qint64 _dayOfShowYear = _firstShowDayOfYear.daysTo(_firstDayOfYear) + _laseDateInWeekBySelectDate.dayOfYear() - 1; _weekNum = qFloor(_dayOfShowYear / 7) + 1; return _weekNum; } /** * @brief CalendarDateDataManager::setTimeFormatChanged 根据value设置短时间显示格式 * @param value */ void CalendarDateDataManager::setTimeFormatChanged(int value) { m_timeFormatValue = value; if (value) { m_timeFormat = "hh:mm"; } else { m_timeFormat = "h:mm"; } } /** * @brief CalendarDateDataManager::setDateFormatChanged 根据value设置短日期显示格式 * @param value */ void CalendarDateDataManager::setDateFormatChanged(int value) { switch (value) { case 0: { m_dateFormat = "yyyy/M/d"; } break; case 1: { m_dateFormat = "yyyy-M-d"; } break; case 2: { m_dateFormat = "yyyy.M.d"; } break; case 3: { m_dateFormat = "yyyy/MM/dd"; } break; case 4: { m_dateFormat = "yyyy-MM-dd"; } break; case 5: { m_dateFormat = "yyyy.MM.dd"; } break; case 6: { m_dateFormat = "yy/M/d"; } break; case 7: { m_dateFormat = "yy-M-d"; } break; case 8: { m_dateFormat = "yy.M.d"; } break; default: { m_dateFormat = "yyyy-MM-dd"; } break; } } /** * @brief CalendarDateDataManager::getTimeFormat 获取短时间格式 */ QString CalendarDateDataManager::getTimeFormat() const { return m_timeFormat; } /** * @brief CalendarDateDataManager::getTimeFormatValue 获取时间格式的value */ int CalendarDateDataManager::getTimeFormatValue() const { return m_timeFormatValue; } /** * @brief CalendarDateDataManager::getDateFormat 获取短日期格式 */ QString CalendarDateDataManager::getDateFormat() const { return m_dateFormat; } void CalendarDateDataManager::setYearBeginAndEndDate(const int year) { m_showDateRange.showYear = year; QDate _firstDayOfJan(year, 1, 1); m_showDateRange.startDate = getFirstDayOfWeek(_firstDayOfJan); QDate _firstDayOfDec(year, 12, 1); m_showDateRange.stopDate = getFirstDayOfWeek(_firstDayOfDec).addDays(MonthMaxDay - 1); } dde-calendar-5.9.1/calendar-client/src/dataManage/calendardatedatamanage.h000066400000000000000000000067401423264401600264630ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CALENDARDATEDATAMANAGE_H #define CALENDARDATEDATAMANAGE_H #include #include #include struct ShowDateRange { int showYear{0}; QDate startDate; QDate stopDate; }; /** * @brief The CalendarDateDataManager class * 日历时间管理类 */ class CalendarDateDataManager { public: explicit CalendarDateDataManager(); //设置选择时间 void setSelectDate(const QDate &selectDate, const bool isSwitchYear = false); //获取选择时间 QDate getSelectDate() const; //设置当前时间 void setCurrentDateTime(const QDateTime ¤tDateTime = QDateTime::currentDateTime()); //获取当前时间 QDateTime getCurrentDate() const; //获取全年的时间 QMap > getYearDate(); //获取月份的所有时间 static QVector getMonthDate(const int &year, const int &month); //获取一周的所有时间 static QVector getWeekDate(const QDate &date); //设置每周以周几作为每周第一天 void setWeekFirstDay(const Qt::DayOfWeek &firstDay); //获取每周以周几作为每周第一天 static Qt::DayOfWeek getWeekFirstDay(); //设置周显示格式 void setWeekDayFormatByID(const int &weekDayFormatID); //获取周显示格式 QString getWeekDayFormat() const; //返回显示的年份,开始和结束时间 ShowDateRange getShowDateRange() const; //根据日期获取当前周第一天的日期 static QDate getFirstDayOfWeek(const QDate &date); //根据日期获取该日期处于该年第多少周 static int getWeekNumOfYear(const QDate &date); void setTimeFormatChanged(int value); void setDateFormatChanged(int value); QString getTimeFormat() const; int getTimeFormatValue() const; QString getDateFormat() const; private: void setYearBeginAndEndDate(const int year); private: /** * @brief m_currentDateTime 当前时间 */ QDateTime m_currentDateTime; /** * @brief m_selectDate 设置选择时间 */ QDate m_selectDate; /** * @brief m_firstDay 每周第一天 * 1 周一 * 2 周二 * 3 周三 * 4 周四 * 5 周五 * 6 周六 * 7 周日 */ static Qt::DayOfWeek m_weekFirstDay; /** * @brief m_weekDayFormat 周显示格式 * ddd 周一 * dddd 星期一 */ QString m_weekDayFormat{"ddd"}; ShowDateRange m_showDateRange; QString m_timeFormat = "h:mm"; QString m_dateFormat = "yyyy-MM-dd"; int m_timeFormatValue = 0; }; #endif // CALENDARDATEDATAMANAGE_H dde-calendar-5.9.1/calendar-client/src/dataManage/schedulecoormanage.cpp000066400000000000000000000202261423264401600262270ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "schedulecoormanage.h" #include CScheduleCoorManage::CScheduleCoorManage() { } CScheduleCoorManage::~CScheduleCoorManage() { } void CScheduleCoorManage::setRange(int w, int h, QDate begindate, QDate enddate, int rightmagin) { m_width = w; m_height = h; m_rightmagin = rightmagin; m_begindate = begindate; m_enddate = enddate; m_totalDay = begindate.daysTo(enddate) + 1; } void CScheduleCoorManage::setDateRange(QDate begindate, QDate enddate) { m_begindate = begindate; m_enddate = enddate; m_totalDay = begindate.daysTo(enddate) + 1; } QRectF CScheduleCoorManage::getDrawRegion(QDateTime begintime, QDateTime endtime) { QRectF rect; QString bb = begintime.toString("yyyyMMddhhmmsszzz"); QString ee = endtime.toString("yyyyMMddhhmmsszzz"); if (begintime > endtime) return rect; QDate begindate = begintime.date(); QDate enddate = endtime.date(); QTime beginzero(0, 0, 0); QTime beginScheduleT = begintime.time(); QTime endScheduleT = endtime.time(); if (begindate < m_begindate || enddate > m_enddate) return rect; qint64 beginday = m_begindate.daysTo(begindate) + 1; qint64 day = begindate.daysTo(enddate) + 1; int ScheduleBT = beginzero.secsTo(beginScheduleT); int ScheduleET = beginzero.secsTo(endScheduleT); qreal rWidth = m_width * (1.0 * day / m_totalDay); qreal rHeight = m_height * ((ScheduleET - ScheduleBT) / 86400.0); qreal posX = m_width * (1.0 * (beginday - 1) / m_totalDay); qreal posY = m_height * (ScheduleBT / 86400.0); rect = QRectF(posX, posY, rWidth, rHeight); return rect; } QRectF CScheduleCoorManage::getDrawRegion(QDateTime begintime, QDateTime endtime, int index, int coount) { QRectF rect; QString bb = begintime.toString("yyyyMMddhhmmsszzz"); QString ee = endtime.toString("yyyyMMddhhmmsszzz"); if (begintime > endtime) return rect; QDate begindate = begintime.date(); QDate enddate = endtime.date(); QTime beginzero(0, 0, 0); QTime beginScheduleT = begintime.time(); QTime endScheduleT = endtime.time(); if (begindate < m_begindate || enddate > m_enddate) return rect; qint64 beginday = m_begindate.daysTo(begindate) + 1; qint64 day = begindate.daysTo(enddate) + 1; int ScheduleBT = beginzero.secsTo(beginScheduleT); int ScheduleET = beginzero.secsTo(endScheduleT); qreal rWidth = m_width * (1.0 * day / m_totalDay) / coount; qreal rHeight = m_height * ((ScheduleET - ScheduleBT) / 86400.0); qreal posX = m_width * (1.0 * (beginday - 1) / m_totalDay) + (index - 1) * rWidth; qreal posY = m_height * (ScheduleBT / 86400.0); rect = QRectF(posX, posY, rWidth, rHeight); return rect; } QRectF CScheduleCoorManage::getDrawRegion(QDate date, QDateTime begintime, QDateTime endtime, int index, int coount, int maxNum, int type) { QRectF rect; QString bb = begintime.toString("yyyyMMddhhmmsszzz"); QString ee = endtime.toString("yyyyMMddhhmmsszzz"); if (begintime > endtime) return rect; QDate begindate = begintime.date(); QDate enddate = endtime.date(); QTime beginzero(0, 0, 0); QTime beginScheduleT = begintime.time(); QTime endScheduleT = endtime.time(); if (begindate < date) { begindate = date; beginScheduleT = beginzero; } if (enddate > date) { enddate = date; endScheduleT = QTime(23, 59, 59); } qint64 beginday = m_begindate.daysTo(begindate) + 1; qint64 day = begindate.daysTo(enddate) + 1; int ScheduleBT = beginzero.secsTo(beginScheduleT); int ScheduleET = beginzero.secsTo(endScheduleT); qreal rWidth = m_width * (1.0 * day / m_totalDay) / coount; qreal rHeight = m_height * ((ScheduleET - ScheduleBT) / 86400.0); qreal posX = m_width * (1.0 * (beginday - 1) / m_totalDay) + (index - 1) * rWidth; qreal posY = m_height * (ScheduleBT / 86400.0); if (coount > maxNum && type == 0) { qreal sscale = 27.0 / (m_width * (1.0 * day / m_totalDay)); if (index < maxNum + 1) { rWidth = m_width * (1.0 * day / m_totalDay) * sscale + 0.5; posX = m_width * (1.0 * (beginday - 1) / m_totalDay) + (index - 1) * rWidth; } else { qreal trWidth = m_width * (1.0 * day / m_totalDay) * sscale + 0.5; rWidth = m_width * (1.0 * day / m_totalDay) - (index - 1) * trWidth; posX = m_width * (1.0 * (beginday - 1) / m_totalDay) + (index - 1) * trWidth; } } if (rHeight < 20) { if (posY + 20 > m_height) posY = m_height - 20; rHeight = 20; } if (posX < 1) { posX = 1; rWidth = rWidth - posX; } rect = QRectF(posX, posY, rWidth, rHeight); return rect; } QRectF CScheduleCoorManage::getDrawRegionF(QDateTime begintime, QDateTime endtime) { QRectF rectf; if (begintime > endtime) return rectf; QDate begindate = begintime.date(); QDate enddate = endtime.date(); QTime beginzero(0, 0, 0); QTime beginScheduleT = begintime.time(); QTime endScheduleT = endtime.time(); if (begindate < m_begindate || enddate > m_enddate) return rectf; qint64 beginday = m_begindate.daysTo(begindate) + 1; qint64 day = begindate.daysTo(enddate) + 1; int ScheduleBT = beginzero.secsTo(beginScheduleT); int ScheduleET = beginzero.secsTo(endScheduleT); qreal rWidth = m_width * (1.0 * day / m_totalDay); qreal rHeight = m_height * ((ScheduleET - ScheduleBT) / 86400.0); qreal posX = m_width * (1.0 * (beginday - 1) / m_totalDay); qreal posY = m_height * (ScheduleBT / 86400.0); rectf = QRectF(posX, posY, rWidth, rHeight); return rectf; } QRectF CScheduleCoorManage::getAllDayDrawRegion(QDate begin, QDate end) { QRectF rect; if (begin > end) return rect; QDate begindate = begin; QDate enddate = end; if (begindate < m_begindate) begindate = m_begindate; if (enddate > m_enddate) enddate = m_enddate; qint64 beginday = m_begindate.daysTo(begindate); qint64 day = begindate.daysTo(enddate) + 1; qreal rWidth = m_width * (1.0 * day / m_totalDay) - 12; qreal rHeight = m_height; qreal posX = m_width * (1.0 * beginday / m_totalDay); qreal posY = 0; rect = QRectF(posX + 6, posY, rWidth - m_rightmagin, rHeight); return rect; } QDateTime CScheduleCoorManage::getDate(QPointF pos) { QDateTime begintime; qint64 day = static_cast((1.0 * pos.x() / m_width) * m_totalDay); if (day < 0) { day = 0; } else if (day >= m_totalDay) { day = m_totalDay - 1; } int time = static_cast((1.0 * pos.y() / m_height) * 86400.0); int hours = time / 3600; int minutes = (time - 3600 * hours) / 60; int secss = time - 3600 * hours - 60 * minutes; QDate date = m_begindate.addDays(day); begintime.setDate(date); begintime.setTime(QTime(hours, minutes, secss)); return begintime; } QDate CScheduleCoorManage::getsDate(QPointF pos) { qint64 day = static_cast((1.0 * pos.x() / m_width) * m_totalDay); if (day < 0) { day = 0; } else if (day >= m_totalDay) { day = m_totalDay - 1; } QDate date = m_begindate.addDays(day); return date; } float CScheduleCoorManage::getHeight(const QTime &time) const { QTime beginzero(0, 0, 0); int ScheduleBT = beginzero.secsTo(time); float posY = static_cast(m_height * (ScheduleBT / 86400.0)); return posY; } dde-calendar-5.9.1/calendar-client/src/dataManage/schedulecoormanage.h000066400000000000000000000036151423264401600256770ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULECOORMANAGE_H #define SCHEDULECOORMANAGE_H #include #include #include class CScheduleCoorManage { public: CScheduleCoorManage(); ~CScheduleCoorManage(); void setRange(int w, int h, QDate begindate, QDate enddate, int rightmagin); void setDateRange(QDate begindate, QDate enddate); int getRightMagin() const { return m_rightmagin; } QRectF getDrawRegion(QDateTime begintime, QDateTime endtime); QRectF getDrawRegion(QDateTime begintime, QDateTime endtime, int index, int coount); QRectF getDrawRegion(QDate date, QDateTime begintime, QDateTime endtime, int index, int coount, int maxNum, int type = 0); QRectF getDrawRegionF(QDateTime begintime, QDateTime endtime); QRectF getAllDayDrawRegion(QDate begin, QDate end); QDateTime getDate(QPointF pos); QDate getsDate(QPointF pos); float getHeight(const QTime &time) const; QDate getBegindate() const { return m_begindate; } private: int m_width {0}; int m_height {0}; QDate m_begindate; QDate m_enddate; qint64 m_totalDay {0}; int m_rightmagin = 0; }; #endif // SCHEDULECOORMANAGE_H dde-calendar-5.9.1/calendar-client/src/dataManage/scheduledatamanage.cpp000066400000000000000000000142721423264401600262020ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "scheduledatamanage.h" #include "cscheduleoperation.h" #include #include CScheduleDataManage *CScheduleDataManage::m_vscheduleDataManage = new CScheduleDataManage; CSchedulesColor CScheduleDataManage::getScheduleColorByType(int type) { CSchedulesColor color; JobTypeColorInfo colorinfo; bool isOk = false; if (type != 4) { //如果不是节假日 JobTypeInfo typeInfo; //根据类型获取日程类型信息getJobTypeByNo isOk = JobTypeInfoManager::instance()->getJobTypeByNo(type, typeInfo); //根据类型关联的颜色编号获取对应的颜色 colorinfo = typeInfo.getColorInfo(); } else { //节假日 颜色变化为2 isOk = JobTypeInfoManager::instance()->getJobTypeColorByNo(2, colorinfo); } if (isOk) { color.orginalColor = QColor(colorinfo.getColorHex()); color.normalColor = color.orginalColor; color.normalColor.setAlphaF(0.2); color.pressColor = color.orginalColor; color.pressColor.setAlphaF(0.35); color.hoverColor = color.orginalColor; color.hoverColor.setAlphaF(0.3); color.hightColor = color.orginalColor; color.hightColor.setAlphaF(0.35); } else { //获取颜色失败 qWarning() << "get type color fail ,type:" << type; } return color; } QColor CScheduleDataManage::getSystemActiveColor() { return DGuiApplicationHelper::instance()->applicationPalette().highlight().color(); } QColor CScheduleDataManage::getTextColor() { return DGuiApplicationHelper::instance()->applicationPalette().text().color(); } void CScheduleDataManage::setTheMe(int type) { m_theme = type; } CScheduleDataManage *CScheduleDataManage::getScheduleDataManage() { return m_vscheduleDataManage; } CScheduleDataManage::CScheduleDataManage() { } CScheduleDataManage::~CScheduleDataManage() { } void JobTypeInfoManager::updateInfo() { CScheduleOperation so; so.getJobTypeList(this->m_lstJobType); so.getColorTypeList(this->m_lstJobTypeColor); for (auto k = noticeObjBill.begin(); k != noticeObjBill.end(); k++) { QMetaObject::invokeMethod(k.key(), k.value()); } return; } JobTypeInfoManager::JobTypeInfoManager() //私有静态构造函数 { } JobTypeInfoManager *JobTypeInfoManager::instance() { static JobTypeInfoManager instance; //局部静态变量 return &instance; } /** * @brief isSysJobTypeColor 是否是默认颜色 * @param colorTypeNo 颜色类型编号 * @return 是否是默认颜色 */ bool JobTypeInfoManager::isSysJobTypeColor(int colorTypeNo) { for (JobTypeColorInfo jobTypeColorInfo : m_lstJobTypeColor) { if ((jobTypeColorInfo.getTypeNo() == colorTypeNo) && (jobTypeColorInfo.getAuthority() == 1)) { //设定1为展示权限 return true; } } return false; } /** * @brief getSysJobTypeColor 获取指定编号的默认颜色 * @param colorTypeNo 颜色类型编号 * @param jobTypeColorInfo 颜色信息 * @return 操作结果 */ bool JobTypeInfoManager::getSysJobTypeColor(int colorTypeNo, JobTypeColorInfo &jobTypeColorInfo) { for (JobTypeColorInfo _jobTypeColorInfo : m_lstJobTypeColor) { if ((_jobTypeColorInfo.getTypeNo() == colorTypeNo) && (_jobTypeColorInfo.getAuthority() == 1)) { //设定1为展示权限 jobTypeColorInfo = _jobTypeColorInfo; return true; } } return false; } //查询日程类型 bool JobTypeInfoManager::getJobTypeByNo(int iNo, JobTypeInfo &jobType) { for (JobTypeInfo &jb : m_lstJobType) { if (jb.getJobTypeNo() == iNo) { jobType = jb; return true; } } return false; } //查询日程类型颜色 bool JobTypeInfoManager::getJobTypeColorByNo(int iNo, JobTypeColorInfo &jobType) { for (JobTypeColorInfo &color : m_lstJobTypeColor) { if (color.getTypeNo() == iNo) { jobType = color; return true; } } return false; } //查询日程类型名称是否重复 bool JobTypeInfoManager::isJobTypeNameUsed(QString strName) { for (JobTypeInfo &jb : m_lstJobType) { if (jb.getJobTypeName() == strName) { return true; } } return false; } bool JobTypeInfoManager::isJobTypeNameUsed(const JobTypeInfo &info) { for (JobTypeInfo &jb : m_lstJobType) { // if (jb.getJobTypeName() == info.getJobTypeName() && jb.getJobTypeNo() != info.getJobTypeNo()) { return true; } } return false; } //获取自定义日程类型下一个编号 int JobTypeInfoManager::getNextTypeNo() { int typeNo = 1; for (JobTypeInfo &job : m_lstJobType) { if (job.getJobTypeNo() >= typeNo) { typeNo = job.getJobTypeNo() + 1; } } if (4 == typeNo) { //节日类型占用 typeNo += 1; } return typeNo; } //获取自定义日程类型颜色下一个编号 int JobTypeInfoManager::getNextColorTypeNo() { int colorTypeNo = 1; for (JobTypeColorInfo &jobColor : m_lstJobTypeColor) { if (jobColor.getTypeNo() >= colorTypeNo) { colorTypeNo = jobColor.getTypeNo() + 1; } } return colorTypeNo; } void JobTypeInfoManager::addToNoticeBill(QObject *obj, const QByteArray &method) { noticeObjBill.insert(obj, method); } void JobTypeInfoManager::removeFromNoticeBill(QObject *obj) { noticeObjBill.remove(obj); } dde-calendar-5.9.1/calendar-client/src/dataManage/scheduledatamanage.h000066400000000000000000000070151423264401600256440ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULEDATAMANAGE_H #define SCHEDULEDATAMANAGE_H #include "src/scheduledatainfo.h" #include #include #include #include DGUI_USE_NAMESPACE struct CSchedulesColor { QColor normalColor; //正常状态颜色 QColor hoverColor; //鼠标悬浮颜色 QColor pressColor; //鼠标点击颜色 QColor hightColor; //高亮色 QColor orginalColor; //最初的颜色 }; class CScheduleDataManage { public: static CScheduleDataManage *getScheduleDataManage(); CSchedulesColor getScheduleColorByType(int type); static QColor getSystemActiveColor(); static QColor getTextColor(); void setTheMe(int type = 0); int getTheme() const { return m_theme; } private: CScheduleDataManage(); ~CScheduleDataManage(); private: int m_theme = 0; static CScheduleDataManage *m_vscheduleDataManage; }; class JobTypeInfoManager { private: JobTypeInfoManager(); public: static JobTypeInfoManager *instance(); /** * @brief updateInfo 更新信息 */ void updateInfo(); //查询列表、返回列表 QList getJobTypeList() { return m_lstJobType; } QList getJobTypeColorList() { return m_lstJobTypeColor; } /** * @brief isSysJobTypeColor 是否是默认颜色 * @param colorTypeNo 颜色类型编号 * @return 是否是默认颜色 */ bool isSysJobTypeColor(int colorTypeNo); /** * @brief getSysJobTypeColor 获取指定编号的默认颜色 * @param colorTypeNo 颜色类型编号 * @param jobTypeColorInfo 颜色信息 * @return 操作结果 */ bool getSysJobTypeColor(int colorTypeNo, JobTypeColorInfo &jobTypeColorInfo); //查询日程类型 bool getJobTypeByNo(int iNo, JobTypeInfo &jobType); //查询日程类型颜色 bool getJobTypeColorByNo(int iNo, JobTypeColorInfo &jobType); //查询日程类型名称是否重复 bool isJobTypeNameUsed(QString strName); //根据日程类型信息判断修改的日程类型名称是否与其它日程类型名称重复 bool isJobTypeNameUsed(const JobTypeInfo &info); //获取自定义日程类型下一个编号 int getNextTypeNo(); //获取自定义日程类型颜色下一个编号 int getNextColorTypeNo(); //通知单,添加回调函数 void addToNoticeBill(QObject *obj, const QByteArray &method); //通知单,移除回调函数 void removeFromNoticeBill(QObject *obj); private: QList m_lstJobType; QList m_lstJobTypeColor; QMap noticeObjBill;//当日程类型改变时,会触发notice对应的回调函数 }; #endif // SCHEDULEVIEW_H dde-calendar-5.9.1/calendar-client/src/dataManage/scheduledaterangeinfo.h000066400000000000000000000033511423264401600263670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 SCHEDULEDATERANGEINFO_H #define SCHEDULEDATERANGEINFO_H #include "src/scheduledatainfo.h" typedef struct _tagMScheduleDateRangeInfo { QDate bdate; QDate edate; bool state; int num; ScheduleDataInfo tData; bool operator <(const _tagMScheduleDateRangeInfo &info)const { if (bdate == info.bdate) { if (bdate.daysTo(edate) == info.bdate.daysTo(info.edate)) { return tData < info.tData; } else { return bdate.daysTo(edate) > info.bdate.daysTo(info.edate); } } else { return bdate < info.bdate; } } bool operator ==(const _tagMScheduleDateRangeInfo &info)const { return bdate == info.bdate && edate == info.edate && tData == info.tData && state == info.state && num == info.num; } } MScheduleDateRangeInfo; #endif // SCHEDULEDATERANGEINFO_H dde-calendar-5.9.1/calendar-client/src/dbus/000077500000000000000000000000001423264401600206045ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/dbus/dbuscalendar_adaptor.cpp000066400000000000000000000026531423264401600254570ustar00rootroot00000000000000/* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -a dbuscalendar_adaptor -c CalendarAdaptor com.deepin.Calendar.xml * * qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd. * * This is an auto-generated file. * Do not edit! All changes made to it will be lost. */ #include "dbuscalendar_adaptor.h" #include "calendarmainwindow.h" #include "scheduledatamanage.h" #include #include #include #include #include #include #include #include /* * Implementation of adaptor class CalendarAdaptor */ CalendarAdaptor::CalendarAdaptor(QObject *parent) : QDBusAbstractAdaptor(parent) { // constructor setAutoRelaySignals(true); } CalendarAdaptor::~CalendarAdaptor() { // destructor } void CalendarAdaptor::ActiveWindow() { // handle method call com.deepin.Calendar.RaiseWindow QMetaObject::invokeMethod(parent(), "ActiveWindow"); } void CalendarAdaptor::RaiseWindow() { QWidget *pp = qobject_cast(parent()); //取消最小化状态 pp->setWindowState(pp->windowState() & ~Qt::WindowState::WindowMinimized); pp->activateWindow(); pp->raise(); } void CalendarAdaptor::OpenSchedule(QString job) { //更新对应的槽函数 QMetaObject::invokeMethod(parent(), "slotOpenSchedule", Q_ARG(QString, job)); } dde-calendar-5.9.1/calendar-client/src/dbus/dbuscalendar_adaptor.h000077500000000000000000000030661423264401600251260ustar00rootroot00000000000000/* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -a dbuscalendar_adaptor -c CalendarAdaptor com.deepin.Calendar.xml * * qdbusxml2cpp is Copyright (C) 2015 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. */ #ifndef DBUSCALENDAR_ADAPTOR_H #define DBUSCALENDAR_ADAPTOR_H #include #include QT_BEGIN_NAMESPACE class QByteArray; template class QList; template class QMap; class QString; class QStringList; class QVariant; QT_END_NAMESPACE /* * Adaptor class for interface com.deepin.Calendar */ class CalendarAdaptor: public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "com.deepin.Calendar") Q_CLASSINFO("D-Bus Introspection", "" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "") public: explicit CalendarAdaptor(QObject *parent); virtual ~CalendarAdaptor(); public: // PROPERTIES public Q_SLOTS: // METHODS void ActiveWindow(); void RaiseWindow(); void OpenSchedule(QString job); Q_SIGNALS: // SIGNALS }; #endif dde-calendar-5.9.1/calendar-client/src/dbus/exportedinterface.cpp000066400000000000000000000075021423264401600250270ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "exportedinterface.h" #include "scheduledatamanage.h" #include "calendarmainwindow.h" #include "cscheduleoperation.h" #include #include #include #include ExportedInterface::ExportedInterface(QObject *parent) : Dtk::Core::DUtil::DExportedInterface(parent) { m_object = parent; } QVariant ExportedInterface::invoke(const QString &action, const QString ¶meters) const { ScheduleDataInfo info; Exportpara para; QString tstr = parameters; CScheduleOperation _scheduleOperation; if (!analysispara(tstr, info, para)) { return QVariant(false); } if (action == "CREATE") { // 创建日程 bool _createSucc = _scheduleOperation.createSchedule(info); //如果创建失败 if (!_createSucc) { return QVariant(false); } } else if (action == "VIEW") { dynamic_cast(m_object)->viewWindow(para.viewType); } else if (action == "QUERY") { // 对外接口查询日程 QString qstr = _scheduleOperation.queryScheduleStr(para.ADTitleName, para.ADStartTime, para.ADEndTime); return QVariant(qstr); } else if (action == "CANCEL") { //对外接口删除日程 QMap > out; // //口查询日程 if (_scheduleOperation.queryScheduleInfo(para.ADTitleName, para.ADStartTime, para.ADEndTime, out)) { //删除查询到的日程 QMap >::const_iterator _iterator = nullptr; for (_iterator = out.constBegin(); _iterator != out.constEnd(); ++_iterator) { for (int i = 0 ; i < _iterator.value().size(); ++i) { _scheduleOperation.deleteOnlyInfo(_iterator.value().at(i)); } } } else { return QVariant(false); } } return QVariant(true); } bool ExportedInterface::analysispara(QString ¶meters, ScheduleDataInfo &info, Exportpara ¶) const { QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(parameters.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonObject rootObj = jsonDoc.object(); info = ScheduleDataInfo::JsonToSchedule(rootObj); if (rootObj.contains("ViewName")) { para.viewType = rootObj.value("ViewName").toInt(); } if (rootObj.contains("ViewTime")) { para.viewTime = QDateTime::fromString(rootObj.value("ViewTime").toString(), "yyyy-MM-ddThh:mm:ss"); } if (rootObj.contains("ADTitleName")) { para.ADTitleName = rootObj.value("ADTitleName").toString(); } if (rootObj.contains("ADStartTime")) { para.ADStartTime = QDateTime::fromString(rootObj.value("ADStartTime").toString(), "yyyy-MM-ddThh:mm:ss"); } if (rootObj.contains("ADEndTime")) { para.ADEndTime = QDateTime::fromString(rootObj.value("ADEndTime").toString(), "yyyy-MM-ddThh:mm:ss"); } return true; } dde-calendar-5.9.1/calendar-client/src/dbus/exportedinterface.h000066400000000000000000000031321423264401600244670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 EXPORTEDINTERFACE_H #define EXPORTEDINTERFACE_H #include "src/scheduledatainfo.h" #include #include DCORE_USE_NAMESPACE struct Exportpara { int viewType; //视图名称:year,month,week,day对应年、月、周、日视图类型 QDateTime viewTime; //表示需要查看视图上某个时间 QString ADTitleName; QDateTime ADStartTime; QDateTime ADEndTime; }; class ExportedInterface : public Dtk::Core::DUtil::DExportedInterface { public: explicit ExportedInterface(QObject *parent = nullptr); QVariant invoke(const QString &action, const QString ¶meters) const override; private: bool analysispara(QString ¶meters, ScheduleDataInfo &info, Exportpara ¶) const; private: QObject *m_object = nullptr; }; #endif // EXPORTEDINTERFACE_H dde-calendar-5.9.1/calendar-client/src/dialog/000077500000000000000000000000001423264401600211065ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/dialog/dcalendarddialog.cpp000066400000000000000000000070771423264401600250660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "dcalendarddialog.h" #include "constants.h" #include "calendarmanage.h" #include "tabletconfig.h" #include DCalendarDDialog::DCalendarDDialog(QWidget *parent) : DDialog(parent) , m_timeFormat(CalendarManager::getInstance()->getCalendarDateDataManage()->getTimeFormat()) , m_dateFormat(CalendarManager::getInstance()->getCalendarDateDataManage()->getDateFormat()) { connect(CalendarManager::getInstance(), &CalendarManager::signalTimeFormatChanged, this, &DCalendarDDialog::setTimeFormat); connect(CalendarManager::getInstance(), &CalendarManager::signalDateFormatChanged, this, &DCalendarDDialog::setDateFormat); //获取ddialog的标题栏 DTitlebar *titlebar = findChild(); if (titlebar != nullptr) { //设置ddialog的焦点代理为标题栏 this->setFocusProxy(titlebar); } } void DCalendarDDialog::mouseMoveEvent(QMouseEvent *event) { //如果为平板模式使其不可移动 if (TabletConfig::isTablet()) { Q_UNUSED(event); } else { DDialog::mouseMoveEvent(event); } } void DCalendarDDialog::keyPressEvent(QKeyEvent *event) { //如果dtk版本在5.3.0以下调用QDialog 以上调用DDialog #if (DTK_VERSION < DTK_VERSION_CHECK(5, 3, 0, 0)) return QDialog::keyPressEvent(event); #else return DDialog::keyPressEvent(event); #endif } bool DCalendarDDialog::eventFilter(QObject *o, QEvent *e) { //如果dtk版本在5.3.0以下调用QDialog 以上调用DDialog #if (DTK_VERSION < DTK_VERSION_CHECK(5, 3, 0, 0)) return QDialog::eventFilter(o, e); #else return DDialog::eventFilter(o, e); #endif } void DCalendarDDialog::updateDateTimeFormat() { } /** * @brief DCalendarDDialog::setTimeFormat 设置短时间格式,并更新显示 */ void DCalendarDDialog::setTimeFormat(int value) { if (value) { m_timeFormat = "hh:mm"; } else { m_timeFormat = "h:mm"; } updateDateTimeFormat(); } /** * @brief DCalendarDDialog::setTimeFormat 设置短日期格式,并更新显示 */ void DCalendarDDialog::setDateFormat(int value) { switch (value) { case 0: { m_dateFormat = "yyyy/M/d"; } break; case 1: { m_dateFormat = "yyyy-M-d"; } break; case 2: { m_dateFormat = "yyyy.M.d"; } break; case 3: { m_dateFormat = "yyyy/MM/dd"; } break; case 4: { m_dateFormat = "yyyy-MM-dd"; } break; case 5: { m_dateFormat = "yyyy.MM.dd"; } break; case 6: { m_dateFormat = "yy/M/d"; } break; case 7: { m_dateFormat = "yy-M-d"; } break; case 8: { m_dateFormat = "yy.M.d"; } break; default: { m_dateFormat = "yyyy-MM-dd"; } break; } updateDateTimeFormat(); } dde-calendar-5.9.1/calendar-client/src/dialog/dcalendarddialog.h000066400000000000000000000027431423264401600245260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 DCALENDARDDIALOG_H #define DCALENDARDDIALOG_H #include DWIDGET_USE_NAMESPACE class DCalendarDDialog : public DDialog { Q_OBJECT public: explicit DCalendarDDialog(QWidget *parent = nullptr); protected: void mouseMoveEvent(QMouseEvent *event) override; void keyPressEvent(QKeyEvent *event) override; bool eventFilter(QObject *o, QEvent *e) override; virtual void updateDateTimeFormat(); signals: public slots: void setTimeFormat(int value); void setDateFormat(int value); protected: QString m_timeFormat = "hh:mm"; QString m_dateFormat = "yyyy-MM-dd"; }; #endif // DCALENDARDDIALOG_H dde-calendar-5.9.1/calendar-client/src/dialog/myscheduleview.cpp000066400000000000000000000252431423264401600246550ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "myscheduleview.h" #include "scheduledlg.h" #include "scheduledatamanage.h" #include "cdynamicicon.h" #include "constants.h" #include "cscheduleoperation.h" #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CMyScheduleView::CMyScheduleView(const ScheduleDataInfo &schduleInfo, QWidget *parent) : DCalendarDDialog(parent) { setContentsMargins(0, 0, 0, 0); m_scheduleInfo = schduleInfo; initUI(); initConnection(); //根据主题type设置颜色 setLabelTextColor(DGuiApplicationHelper::instance()->themeType()); setFixedSize(400, 160); //设置初始化弹窗内容 updateDateTimeFormat(); focusNextPrevChild(false); } /** * @brief CMyScheduleView::AutoFeed 字体改变更改界面显示 * @param text */ void CMyScheduleView::slotAutoFeed(const QFont &font) { Q_UNUSED(font) if (nullptr == m_timeLabel || nullptr == m_scheduleLabel) { return; } QString strText = m_scheduleInfo.getTitleName(); QString resultStr = nullptr; QFont labelF; labelF.setWeight(QFont::Medium); labelF = DFontSizeManager::instance()->get(DFontSizeManager::T6, labelF); QFontMetrics fm(labelF); int titlewidth = fm.width(strText); QStringList strList; QString str; int h = fm.height(); strList.clear(); if (titlewidth < 330) { strList.append(strText); resultStr += strText; } else { for (int i = 0; i < strText.count(); i++) { str += strText.at(i); if (fm.width(str) > 330) { str.remove(str.count() - 1, 1); strList.append(str); resultStr += str + "\n"; str.clear(); --i; } } strList.append(str); resultStr += str; } if (strList.count() * h > 100) { m_scheduleLabelH = 100; } else { int minH = 17; m_scheduleLabelH = strList.count() * h; m_scheduleLabelH = m_scheduleLabelH >= minH ? m_scheduleLabelH : minH; } //更新控件高度 area->setFixedHeight(m_scheduleLabelH); m_scheduleLabel->setText(resultStr); if (m_scheduleInfo.getIsLunar()) { QString timeName = m_timeLabel->text(); int index = timeName.indexOf("~"); //重新计算法字符串像素长度 if (index != -1) { timeName[index - 1] = ' '; QFontMetrics fm(m_timeLabel->font()); int textWidth = fm.width(m_timeLabel->text()); if (textWidth > m_timeLabel->width()) { timeName[index - 1] = '\n'; m_timeLabelH = 58; } else { m_timeLabelH = 26; } m_timeLabel->setText(timeName); } } else { m_timeLabelH = 26; } //更新控件高度 m_timeLabel->setFixedHeight(m_timeLabelH); //更新界面高度 setFixedHeight(m_defaultH + m_timeLabelH + m_scheduleLabelH); } /** * @brief setLabelTextColor 设置label文字颜色 * @param type 主题type */ void CMyScheduleView::setLabelTextColor(const int type) { //标题显示颜色 QColor titleColor; //日程显示颜色 QColor scheduleTitleColor; //时间显示颜色 QColor timeColor; if (type == 2) { titleColor = "#FFFFFF"; titleColor.setAlphaF(0.9); scheduleTitleColor = "#FFFFFF"; scheduleTitleColor.setAlphaF(0.8); timeColor = "#FFFFFF"; timeColor.setAlphaF(0.7); } else { titleColor = "#000000"; titleColor.setAlphaF(0.9); scheduleTitleColor = "#000000"; scheduleTitleColor.setAlphaF(0.7); timeColor = "#000000"; timeColor.setAlphaF(0.7); } //设置颜色 setPaletteTextColor(m_Title, titleColor); setPaletteTextColor(m_scheduleLabel, scheduleTitleColor); setPaletteTextColor(m_timeLabel, timeColor); } /** * @brief setPaletteTextColor 设置调色板颜色 * @param widget 需要设置的widget * @param textColor 显示颜色 */ void CMyScheduleView::setPaletteTextColor(QWidget *widget, QColor textColor) { //如果为空指针则退出 if (nullptr == widget) return; DPalette palette = widget->palette(); //设置文字显示颜色 palette.setColor(DPalette::WindowText, textColor); widget->setPalette(palette); } /** * @brief CMyScheduleView::updateDateTimeFormat 更新显示时间格式 */ void CMyScheduleView::updateDateTimeFormat() { if (m_scheduleInfo.getType() == DDECalendar::FestivalTypeID) { m_timeLabel->setText(m_scheduleInfo.getBeginDateTime().toString(m_dateFormat)); } else { QString beginName = getDataByFormat(m_scheduleInfo.getBeginDateTime().date(), m_dateFormat) + " " + m_scheduleInfo.getBeginDateTime().time().toString(m_timeFormat); QString endName = getDataByFormat(m_scheduleInfo.getEndDateTime().date(), m_dateFormat) + " " + m_scheduleInfo.getEndDateTime().time().toString(m_timeFormat); m_timeLabel->setText(beginName + " ~ " + endName); } slotAutoFeed(); } QString CMyScheduleView::getDataByFormat(const QDate &date, QString format) { QString name = date.toString(format); if (m_scheduleInfo.getIsLunar()) { //接入农历时间 name += CScheduleDBus::getInstance()->getHuangLiShortName(date); } return name; } /** * @brief CMyScheduleView::slotBtClick 按钮点击事件 * @param buttonIndex * @param buttonName */ void CMyScheduleView::slotBtClick(int buttonIndex, const QString &buttonName) { Q_UNUSED(buttonName); if (buttonIndex == 0) { //删除日程 CScheduleOperation _scheduleOpertion(this); if (_scheduleOpertion.deleteSchedule(m_scheduleInfo)) { accept(); }; return; } if (buttonIndex == 1) { //编辑日程 CScheduleDlg dlg(0, this); dlg.setData(m_scheduleInfo); if (dlg.exec() == DDialog::Accepted) { accept(); } return; } } /** * @brief CMyScheduleView::initUI 界面初始化 */ void CMyScheduleView::initUI() { //在点击任何对话框上的按钮后不关闭对话框,保证关闭子窗口时不被一起关掉 setOnButtonClickedClose(false); m_Title = new QLabel(this); m_Title->setFixedSize(108, 51); m_Title->setAlignment(Qt::AlignCenter); QFont titleFont; //设置字重 titleFont.setWeight(QFont::Bold); m_Title->setFont(titleFont); DFontSizeManager::instance()->bind(m_Title, DFontSizeManager::T5); //设置日期图标 QIcon t_icon(CDynamicIcon::getInstance()->getPixmap()); setIcon(t_icon); QFont labelTitle; labelTitle.setWeight(QFont::DemiBold); m_Title->setFont(labelTitle); m_Title->setText(tr("My Event")); m_Title->move(137, 0); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->setMargin(0); mainLayout->setSpacing(0); area = new QScrollArea(this); //设置日程显示区域不能选中 area->setFocusPolicy(Qt::FocusPolicy::NoFocus); area->setFrameShape(QFrame::NoFrame); area->setFixedWidth(363); area->setBackgroundRole(QPalette::Background); area->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); area->setWidgetResizable(true); area->setAlignment(Qt::AlignCenter); m_scheduleLabel = new QLabel(this); m_scheduleLabel->setTextFormat(Qt::PlainText); //纯文本格式 m_scheduleLabel->installEventFilter(this); m_scheduleLabel->setFixedWidth(330); m_scheduleLabel->setAlignment(Qt::AlignCenter); DFontSizeManager::instance()->bind(m_scheduleLabel, DFontSizeManager::T6); labelF.setWeight(QFont::Medium); m_scheduleLabel->setFont(labelF); area->setWidget(m_scheduleLabel); mainLayout->addWidget(area); m_timeLabel = new DLabel(this); m_timeLabel->setFixedHeight(26); m_timeLabel->setAlignment(Qt::AlignCenter); QFont timeFont; timeFont.setWeight(QFont::Normal); m_timeLabel->setFont(timeFont); m_timeLabel->setFixedWidth(363); mainLayout->addSpacing(5); mainLayout->addWidget(m_timeLabel); if (m_scheduleInfo.getType() == DDECalendar::FestivalTypeID) { addButton(tr("OK", "button"), false, DDialog::ButtonNormal); QAbstractButton *button_ok = getButton(0); button_ok->setFixedSize(360, 36); } else { addButton(tr("Delete", "button"), false, DDialog::ButtonNormal); addButton(tr("Edit", "button"), false, DDialog::ButtonRecommend); for (int i = 0; i < buttonCount(); i++) { QAbstractButton *button = getButton(i); button->setFixedSize(165, 36); } } //这种中心铺满的weiget,显示日程标题和时间的控件 DWidget *centerWidget = new DWidget(this); centerWidget->setLayout(mainLayout); //获取widget的调色板 DPalette centerWidgetPalette = centerWidget->palette(); //设置背景色为透明 centerWidgetPalette.setColor(DPalette::Background, Qt::transparent); centerWidget->setPalette(centerWidgetPalette); //添加窗口为剧中对齐 addContent(centerWidget, Qt::AlignCenter); } void CMyScheduleView::initConnection() { //关联主题改变事件 QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &CMyScheduleView::setLabelTextColor); if (m_scheduleInfo.getType() == DDECalendar::FestivalTypeID) { connect(this, &DDialog::buttonClicked, this, &CMyScheduleView::close); } else { connect(this, &DDialog::buttonClicked, this, &CMyScheduleView::slotBtClick); } QObject::connect(qGuiApp, &DApplication::fontChanged, this, &CMyScheduleView::slotAutoFeed); QShortcut *shortcut = new QShortcut(this); shortcut->setKey(QKeySequence(QLatin1String("ESC"))); connect(shortcut, SIGNAL(activated()), this, SLOT(close())); } dde-calendar-5.9.1/calendar-client/src/dialog/myscheduleview.h000066400000000000000000000046341423264401600243230ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 MYSCHEDULEVIEW_H #define MYSCHEDULEVIEW_H #include "src/scheduledatainfo.h" #include "dcalendarddialog.h" #include #include #include #include #include #include DWIDGET_USE_NAMESPACE /** * @brief The CMyScheduleView class * 日程概括对话框 */ class CMyScheduleView : public DCalendarDDialog { Q_OBJECT public: explicit CMyScheduleView(const ScheduleDataInfo &schduleInfo, QWidget *parent = nullptr); ScheduleDataInfo getSchedules() { return m_scheduleInfo; } signals: void signalsEditorDelete(int type = 0); public slots: //按钮点击事件 void slotBtClick(int buttonIndex, const QString &buttonName); void slotAutoFeed(const QFont &font = QFont()); private: //界面初始化 void initUI(); void initConnection(); //设置label文字颜色 void setLabelTextColor(const int type); //设置调色板颜色 void setPaletteTextColor(QWidget *widget, QColor textColor); protected: void updateDateTimeFormat() override; private: /** * @brief getDataByFormat * 获取格式化后的事件字符串 * @param format 格式化规则 * @return 格式化后的字符串 */ QString getDataByFormat(const QDate &, QString format); private: QLabel *m_scheduleLabel = nullptr; QLabel *m_timeLabel = nullptr; QLabel *m_Title = nullptr; ScheduleDataInfo m_scheduleInfo; //日程 QScrollArea *area = nullptr; QFont labelF; int m_defaultH = 117; //时间显示高度 int m_timeLabelH = 0; //时间显示高度 int m_scheduleLabelH = 0; //日程详情显示高度 }; #endif // MYSCHEDULEVIEW_H dde-calendar-5.9.1/calendar-client/src/dialog/schedulectrldlg.cpp000066400000000000000000000161711423264401600247700ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "schedulectrldlg.h" #include "scheduledlg.h" #include "scheduledatamanage.h" #include "cdynamicicon.h" #include "constants.h" #include #include #include #include #include #include DGUI_USE_NAMESPACE CScheduleCtrlDlg::CScheduleCtrlDlg(QWidget *parent) : DCalendarDDialog(parent) { setContentsMargins(0, 0, 0, 0); initUI(); initConnection(); setTheMe(DGuiApplicationHelper::instance()->themeType()); resize(380, 260); } void CScheduleCtrlDlg::initUI() { //在点击任何对话框上的按钮后不关闭对话框,保证关闭子窗口时不被一起关掉 setOnButtonClickedClose(false); QIcon t_icon(CDynamicIcon::getInstance()->getPixmap());// = QIcon::fromTheme("dde-calendar"); setIcon(t_icon); m_mainBoxLayout = new QVBoxLayout(); m_mainBoxLayout->setMargin(0); m_mainBoxLayout->setSpacing(0); m_firstLabel = new QLabel(); m_firstLabel->setAlignment(Qt::AlignCenter); m_firstLabel->setFixedWidth(350); m_firstLabel->setWordWrap(true); labelF.setWeight(QFont::DemiBold); DFontSizeManager::instance()->bind(m_firstLabel, DFontSizeManager::T6); m_firstLabel->setForegroundRole(DPalette::WindowText); m_firstLabel->setFont(labelF); m_mainBoxLayout->addWidget(m_firstLabel); m_seconLabel = new QLabel(); m_seconLabel->setFixedWidth(350); m_seconLabel->setAlignment(Qt::AlignCenter); DFontSizeManager::instance()->bind(m_seconLabel, DFontSizeManager::T6); m_seconLabel->setForegroundRole(DPalette::WindowText); //设置字重 labelT.setWeight(QFont::Normal); m_seconLabel->setFont(labelT); m_seconLabel->setWordWrap(true); m_mainBoxLayout->addSpacing(3); m_mainBoxLayout->addWidget(m_seconLabel); gwi = new DFrame(this); gwi->setContentsMargins(0, 0, 0, 0); gwi->setLayout(m_mainBoxLayout); DPalette anipa = gwi->palette(); QColor color = "#F8F8F8"; color.setAlphaF(0.0); anipa.setColor(DPalette::Background, color); gwi->setAutoFillBackground(true); gwi->setPalette(anipa); gwi->setBackgroundRole(DPalette::Background); addContent(gwi, Qt::AlignCenter); } void CScheduleCtrlDlg::initConnection() { //关联主题信号 QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &CScheduleCtrlDlg::setTheMe); connect(this, &DDialog::buttonClicked, this, &CScheduleCtrlDlg::buttonJudge); //连接信号和槽 } void CScheduleCtrlDlg::setTheMe(const int type) { //标题文字颜色 QColor titleColor; //提示内容文字颜色 QColor contentColor; if (type == 2) { titleColor = "#FFFFFF"; titleColor.setAlphaF(0.9); contentColor = "#FFFFFF"; contentColor.setAlphaF(0.7); } else { titleColor = "#000000"; titleColor.setAlphaF(0.9); contentColor = "#000000"; contentColor.setAlphaF(0.7); } setPaletteTextColor(m_firstLabel, titleColor); setPaletteTextColor(m_seconLabel, contentColor); } void CScheduleCtrlDlg::setPaletteTextColor(QWidget *widget, QColor textColor) { //如果为空指针则退出 if (nullptr == widget) return; DPalette palette = widget->palette(); //设置文字显示颜色 palette.setColor(DPalette::WindowText, textColor); widget->setPalette(palette); } void CScheduleCtrlDlg::changeEvent(QEvent *event) { Q_UNUSED(event) QFont font; QFontMetrics font_button(font); QFontMetrics font_firstLabel(font); QFontMetrics font_seconLabel(font); int height_firstLabel = (font_firstLabel.width(m_firstLabel->text()) / 300 + 1) * font_firstLabel.height(); int height_seconLabel = (font_seconLabel.width(m_seconLabel->text()) / 300 + 1) * font_seconLabel.height(); for (int i = 0; i < buttonCount(); i++) { QAbstractButton *button = getButton(i); QString str = str_btName.at(i); QString text_button = font_button.elidedText(str, Qt::ElideRight, 112); if (str.count() == 2) { button->setText(QString().append(str.at(0)).append(QChar::Nbsp).append(str.at(1))); } else { button->setText(text_button); } } setFixedHeight(36 + 48 + height_firstLabel + height_seconLabel + 30); gwi->setFixedHeight(height_firstLabel + height_seconLabel); } void CScheduleCtrlDlg::buttonJudge(int id) { m_id = id; accept(); } QAbstractButton *CScheduleCtrlDlg::addPushButton(QString btName, bool type) { addButton(btName, false, DDialog::ButtonNormal); int button_index = getButtonIndexByText(btName); QAbstractButton *button = getButton(button_index); if (type) { button->setFixedHeight(36); button->setFixedWidth(165); } else { button->setFixedHeight(36); button->setFixedWidth(129); } button->setToolTip(btName); str_btName.append(btName); return button; } QAbstractButton *CScheduleCtrlDlg::addsuggestButton(QString btName, bool type) { addButton(btName, false, DDialog::ButtonRecommend); int button_index = getButtonIndexByText(btName); QAbstractButton *suggestButton = getButton(button_index); if (type) { suggestButton->setFixedHeight(36); suggestButton->setFixedWidth(165); } else { suggestButton->setFixedHeight(36); suggestButton->setFixedWidth(129); } suggestButton->setToolTip(btName); str_btName.append(btName); return suggestButton; } QAbstractButton *CScheduleCtrlDlg::addWaringButton(QString btName, bool type) { addButton(btName, false, DDialog::ButtonWarning); int button_index = getButtonIndexByText(btName); QAbstractButton *suggestButton = getButton(button_index); if (type) { suggestButton->setFixedHeight(36); suggestButton->setFixedWidth(165); } else { suggestButton->setFixedHeight(36); suggestButton->setFixedWidth(129); } suggestButton->setToolTip(btName); str_btName.append(btName); return suggestButton; } void CScheduleCtrlDlg::setText(QString str) { m_firstLabel->setText(str); m_firstLabel->setToolTip(str); } void CScheduleCtrlDlg::setInformativeText(QString str) { m_seconLabel->setText(str); m_seconLabel->setToolTip(str); } int CScheduleCtrlDlg::clickButton() { if (m_id < 0 || m_id > buttonCount() - 1) return buttonCount(); return m_id; } dde-calendar-5.9.1/calendar-client/src/dialog/schedulectrldlg.h000066400000000000000000000043401423264401600244300ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 CSCHEDULECTRLDLG_H #define CSCHEDULECTRLDLG_H #include "dcalendarddialog.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class CScheduleCtrlDlg : public DCalendarDDialog { Q_OBJECT public: explicit CScheduleCtrlDlg(QWidget *parent = nullptr); QAbstractButton *addPushButton(QString btName, bool type = false); QAbstractButton *addsuggestButton(QString btName, bool type = false); QAbstractButton *addWaringButton(QString btName, bool type = false); void setText(QString str); void setInformativeText(QString str); int clickButton(); private: void initUI(); void initConnection(); /** * @brief setTheMe 根据主题type设置颜色 * @param type 主题type */ void setTheMe(const int type); /** * @brief setPaletteTextColor 设置调色板颜色 * @param widget 需要设置的widget * @param textColor 显示颜色 */ void setPaletteTextColor(QWidget *widget, QColor textColor); protected: void changeEvent(QEvent *event) override; private slots: void buttonJudge(int id); private: QLabel *m_firstLabel = nullptr; QLabel *m_seconLabel = nullptr; int m_id = -1; QVBoxLayout *m_mainBoxLayout = nullptr; DFrame *gwi = nullptr; QFont labelF; QFont labelT; QVector str_btName; }; #endif // CSCHEDULECTRLDLG_H dde-calendar-5.9.1/calendar-client/src/dialog/scheduledlg.cpp000066400000000000000000001566531423264401600241150ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "scheduledlg.h" #include "schedulectrldlg.h" #include "scheduledatamanage.h" #include "timeedit.h" #include "constants.h" #include "cscheduleoperation.h" #include "cdynamicicon.h" #include "configsettings.h" #include #include #include #include #include #include #include #include #include #include #include const int dialog_width = 468; //对话框宽度 DGUI_USE_NAMESPACE CScheduleDlg::CScheduleDlg(int type, QWidget *parent, const bool isAllDay) : DCalendarDDialog(parent) , m_createAllDay(isAllDay) { setContentsMargins(0, 0, 0, 0); m_type = type; initUI(); initConnection(); setTabFouseOrder(); initColor(); if (type == 1) { m_titleLabel->setText(tr("New Event")); m_beginDateEdit->setDate(QDate::currentDate()); int hours = QTime::currentTime().hour(); int minnutes = QTime::currentTime().minute() % DDECalendar::QuarterOfAnhourWithMinute; if (minnutes != 0) { minnutes = QTime::currentTime().minute() / DDECalendar::QuarterOfAnhourWithMinute * DDECalendar::QuarterOfAnhourWithMinute + DDECalendar::QuarterOfAnhourWithMinute; } m_beginTimeEdit->setTime(QTime(hours, minnutes)); m_endDateEdit->setDate(QDate::currentDate()); m_endTimeEdit->setTime(QTime(hours, minnutes).addSecs(3600)); } else { m_titleLabel->setText(tr("Edit Event")); } setFixedSize(dialog_width, 524); //焦点设置到输入框 m_textEdit->setFocus(); } CScheduleDlg::~CScheduleDlg() { } void CScheduleDlg::setData(const ScheduleDataInfo &info) { m_ScheduleDataInfo = info; m_typeComBox->setCurrentJobTypeNo(info.getType()); if (m_type == 1) { //如果为新建则设置为提示信息 m_textEdit->setPlaceholderText(info.getTitleName()); } else { //如果为编辑则显示 m_textEdit->setPlainText(info.getTitleName()); //光标移动到文末 m_textEdit->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); } m_beginDateEdit->setDate(info.getBeginDateTime().date()); m_beginTimeEdit->setTime(info.getBeginDateTime().time()); m_endDateEdit->setDate(info.getEndDateTime().date()); m_endTimeEdit->setTime(info.getEndDateTime().time()); m_allDayCheckbox->setChecked(info.getAllDay()); m_endRepeatDate->setMinimumDate(info.getBeginDateTime().date()); m_currentDate = info.getBeginDateTime(); m_EndDate = info.getEndDateTime(); updateEndTimeListAndTimeDiff(m_currentDate, m_EndDate); slotallDayStateChanged(info.getAllDay()); //根据是否为农历更新重复选项 updateRepeatCombox(info.getIsLunar()); initRmindRpeatUI(); setShowState(info.getIsLunar()); } void CScheduleDlg::setDate(const QDateTime &date) { m_currentDate = date; int hours = date.time().hour(); int minnutes = 0; //取15的整数倍 minnutes = date.time().minute() / DDECalendar::QuarterOfAnhourWithMinute * DDECalendar::QuarterOfAnhourWithMinute; //如果有余数则添加15分钟 minnutes = minnutes + (date.time().minute() % DDECalendar::QuarterOfAnhourWithMinute == 0 ? 0 : 15); if (minnutes == 60) { if (hours + 1 == 24) { m_currentDate.setTime(QTime(0, 0)); m_currentDate = m_currentDate.addDays(1); } else { m_currentDate.setTime(QTime(hours + 1, 0)); } } else { m_currentDate.setTime(QTime(hours, minnutes)); } m_beginDateEdit->setDate(m_currentDate.date()); m_beginTimeEdit->setTime(m_currentDate.time()); QDateTime datetime = m_currentDate.addSecs(3600); m_EndDate = datetime; m_endDateEdit->setDate(datetime.date()); m_endTimeEdit->setTime(m_EndDate.time()); m_endRepeatDate->setMinimumDate(date.date()); updateEndTimeListAndTimeDiff(m_currentDate, m_EndDate); setShowState(false); } void CScheduleDlg::setAllDay(bool flag) { m_allDayCheckbox->setChecked(flag); } /** * @brief CScheduleDlg::clickOkBtn 对话框确定按钮处理 * @return 返回true表示隐藏对话框 false表示不隐藏对话框 */ bool CScheduleDlg::clickOkBtn() { ScheduleDataInfo _newSchedule = m_ScheduleDataInfo; QDateTime beginDateTime, endDateTime; beginDateTime.setDate(m_beginDateEdit->date()); beginDateTime.setTime(m_beginTimeEdit->getTime()); endDateTime.setDate(m_endDateEdit->date()); endDateTime.setTime(m_endTimeEdit->getTime()); //设置是否为农历日程 switch (m_calendarCategoryRadioGroup->checkedId()) { case 1: //农历日程 _newSchedule.setIsLunar(true); break; default: //公历日程 _newSchedule.setIsLunar(false); break; } if (m_textEdit->toPlainText().isEmpty()) { _newSchedule.setTitleName(m_textEdit->placeholderText()); } else { _newSchedule.setTitleName(m_textEdit->toPlainText()); } if (_newSchedule.getTitleName().isEmpty()) { return false; } //如果类型选项不为负数则设置日程类型 if (m_typeComBox->isEditable()) { JobTypeInfo jobType(0, m_typeComBox->lineEdit()->text(), m_colorSeletorWideget->getSelectedColorInfo()); //创建日程类型 if (CScheduleOperation().createJobType(jobType)) { _newSchedule.setType(jobType.getJobTypeNo()); } } else if (m_typeComBox->currentIndex() >= 0) _newSchedule.setType(m_typeComBox->getCurrentJobTypeNo()); if (beginDateTime > endDateTime) { DCalendarDDialog *prompt = new DCalendarDDialog(this); prompt->setIcon(QIcon(":/resources/icon/warning.svg")); prompt->setMessage(tr("End time must be greater than start time")); prompt->addButton(tr("OK", "button"), true, DDialog::ButtonNormal); prompt->exec(); return false; } if (m_type == 1) _newSchedule.setID(0) ; _newSchedule.setAllDay(m_allDayCheckbox->isChecked()); RemindData _remindData; if (_newSchedule.getAllDay()) { _remindData.setRemindTime(QTime(9, 0)); switch (m_rmindCombox->currentIndex()) { case 1: _remindData.setRemindNum(DDECalendar::OnStartDay); break; case 2: _remindData.setRemindNum(DDECalendar::OneDayBeforeWithDay); break; case 3: _remindData.setRemindNum(DDECalendar::TwoDayBeforeWithDay); break; case 4: _remindData.setRemindNum(DDECalendar::OneWeekBeforeWithDay); break; default: break; } } else { switch (m_rmindCombox->currentIndex()) { case 1: _remindData.setRemindNum(DDECalendar::AtTimeOfEvent); break; case 2: _remindData.setRemindNum(DDECalendar::FifteenMinutesBefore); break; case 3: _remindData.setRemindNum(DDECalendar::ThirtyMinutesBefore); break; case 4: _remindData.setRemindNum(DDECalendar::OneHourBefore); break; case 5: _remindData.setRemindNum(DDECalendar::OneDayBeforeWithMinutes); break; case 6: _remindData.setRemindNum(DDECalendar::TwoDayBeforeWithMinutes); break; case 7: _remindData.setRemindNum(DDECalendar::OneWeekBeforeWithMinutes); break; default: break; } } _newSchedule.setRemindData(_remindData); RepetitionRule _repetitionRule; //根据是否为农历日程,设置对应的重复规则 RepetitionRule::RRuleID ruleID; if (_newSchedule.getIsLunar()) { switch (m_beginrepeatCombox->currentIndex()) { case 1: //每月 ruleID = RepetitionRule::RRule_EVEMONTH; break; case 2: { //每年 ruleID = RepetitionRule::RRule_EVEYEAR; } break; default: //默认不重复 ruleID = RepetitionRule::RRule_NONE; break; } } else { ruleID = static_cast(m_beginrepeatCombox->currentIndex()); } _repetitionRule.setRuleId(ruleID); if (_repetitionRule.getRuleId() > 0) { _repetitionRule.setRuleType(static_cast (m_endrepeatCombox->currentIndex())); if (m_endrepeatCombox->currentIndex() == 1) { if (m_endrepeattimes->text().isEmpty()) { return false; } _repetitionRule.setEndCount(m_endrepeattimes->text().toInt()); } else if (m_endrepeatCombox->currentIndex() == 2) { QDateTime endrpeattime = beginDateTime; endrpeattime.setDate(m_endRepeatDate->date()); if (beginDateTime > endrpeattime) { return false; } _repetitionRule.setEndDate(endrpeattime); } } _newSchedule.setRepetitionRule(_repetitionRule); _newSchedule.setBeginDateTime(beginDateTime); _newSchedule.setEndDateTime(endDateTime); CScheduleOperation _scheduleOperation(this); if (m_type == 1) { //创建日程 _scheduleOperation.createSchedule(_newSchedule); } else if (m_type == 0) { //修改日程,根据返回的参数判断是否关闭对话框 return _scheduleOperation.changeSchedule(_newSchedule, m_ScheduleDataInfo); } return true; } void CScheduleDlg::updateEndTimeListAndTimeDiff(const QDateTime &begin, const QDateTime &end) { //更新是否超过一天标识 updateIsOneMoreDay(begin, end); m_timeDiff = begin.msecsTo(end); updateEndTimeList(begin.time(), !m_isMoreThenOneDay); m_endTimeEdit->setTime(end.time()); m_endTimeEdit->setCurrentText(m_endTimeEdit->lineEdit()->text()); } void CScheduleDlg::updateEndTimeList(const QTime &begin, bool isShowTimeInterval) { m_endTimeEdit->setMineTime(begin); m_endTimeEdit->updateListItem(isShowTimeInterval); } void CScheduleDlg::slotBeginTimeChange() { if (m_currentDate.time() == m_beginTimeEdit->getTime()) return; //根据联动修改结束时间下拉列表内容和结束时间 m_currentDate.setTime(m_beginTimeEdit->getTime()); m_EndDate = m_currentDate.addMSecs(m_timeDiff); //开始时间改变需要更新是否超过一天标识,根据该标识判断结束时间下拉列表是否展示(xxx:xxx hours) //由于结束时间(endTimeEdit)自己不参加联动,所以该标识需要在开始时间中更新 updateIsOneMoreDay(m_currentDate, m_EndDate); updateEndTimeList(m_currentDate.time(), !m_isMoreThenOneDay); m_endTimeEdit->setTime(m_EndDate.time()); m_endDateEdit->setDate(m_EndDate.date()); } void CScheduleDlg::slotEndTimeChange() { if (m_EndDate.time() == m_endTimeEdit->getTime()) { return; } m_EndDate.setTime(m_endTimeEdit->getTime()); //根据结束时间修改联动时间和结束日期 //如果时间没有超过一天 if (!m_isMoreThenOneDay) { //如果时间小于一天则需要根据结束时间(time)是否大于开始时间判断计算结束日期 QTime endTime = m_endTimeEdit->getTime(); if (endTime < m_currentDate.time()) { m_EndDate.setDate(m_currentDate.date().addDays(1)); } else { m_EndDate.setDate(m_currentDate.date()); } m_endDateEdit->setDate(m_EndDate.date()); } m_timeDiff = m_currentDate.msecsTo(m_EndDate); } void CScheduleDlg::slotEndDateChange(const QDate &date) { if (m_EndDate.date() == date) return; //修改联动时间和结束时间下拉列表内容 m_EndDate.setDate(date); // 如果开始时间晚于结束时间,则将结束时间修改为开始时间 if (m_currentDate.msecsTo(m_EndDate) < 0) { m_EndDate = m_currentDate; } updateEndTimeListAndTimeDiff(m_currentDate, m_EndDate); } void CScheduleDlg::slotBtClick(int buttonIndex, const QString &buttonName) { Q_UNUSED(buttonName) //是否隐藏对话框 switch (buttonIndex) { case 0: { //取消 close(); break; } case 1: { //确定 //自动化测试会出现短时间内按钮click2次的情况。添加第一次触发后将保存按钮置灰的设置。 //若保存按钮不启用则不处理 if (getButton(1)->isEnabled()) { m_setAccept = clickOkBtn(); //若新建或编辑成功则将保存按钮置灰 getButton(1)->setEnabled(!m_setAccept); //如果确定创建(修改)成功则关闭对话框 if (m_setAccept) { close(); } else { setFocusProxy(getButton(1)); } } break; } default: break; } } void CScheduleDlg::slotTextChange() { QString textContent = m_textEdit->toPlainText(); int length = textContent.count(); QString tStitlename = textContent; int maxLength = 256; // 最大字符数 //去除回车字符 if (tStitlename.contains("\n")) { //设置纯文本显示原始内容 tStitlename.replace("\n", ""); m_textEdit->setPlainText(tStitlename); //将焦点移动到最后 m_textEdit->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); //因设置text会再次触发textchange信号,在此直接return return; } //如果长度大于最大长度则显示原来的字符 if (length > maxLength) { m_textEdit->setPlainText(m_context); //将焦点移动到最后 m_textEdit->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); return; } m_context = m_textEdit->toPlainText(); } void CScheduleDlg::slotendrepeatTextchange() { setOkBtnEnabled(); } void CScheduleDlg::slotBDateEidtInfo(const QDate &date) { m_endRepeatDate->setMinimumDate(date); m_endDateEdit->setMinimumDate(date); m_currentDate.setDate(m_beginDateEdit->date()); m_EndDate.setDate(m_endDateEdit->date()); if (m_EndDate < m_currentDate) { m_endTimeEdit->setTime(m_beginTimeEdit->getTime().addSecs(3600)); m_EndDate.setTime(m_endTimeEdit->getTime()); } //修改联动时间和结束时间下拉列表内容 updateEndTimeListAndTimeDiff(m_currentDate, m_EndDate); } void CScheduleDlg::slotallDayStateChanged(int state) { m_rmindCombox->clear(); if (!state) { m_rmindCombox->addItem(tr("Never")); m_rmindCombox->addItem(tr("At time of event")); m_rmindCombox->addItem(tr("15 minutes before")); m_rmindCombox->addItem(tr("30 minutes before")); m_rmindCombox->addItem(tr("1 hour before")); m_rmindCombox->addItem(tr("1 day before")); m_rmindCombox->addItem(tr("2 days before")); m_rmindCombox->addItem(tr("1 week before")); m_beginTimeEdit->setVisible(true); m_endTimeEdit->setVisible(true); if (m_type == 0) { m_beginDateEdit->setDate(m_ScheduleDataInfo.getBeginDateTime().date()); m_beginTimeEdit->setTime(m_ScheduleDataInfo.getBeginDateTime().time()); m_endDateEdit->setDate(m_ScheduleDataInfo.getEndDateTime().date()); m_endTimeEdit->setTime(m_ScheduleDataInfo.getEndDateTime().time()); } else { m_beginDateEdit->setDate(m_currentDate.date()); m_beginTimeEdit->setTime(m_currentDate.time()); m_endDateEdit->setDate(m_EndDate.date()); m_endTimeEdit->setTime(m_EndDate.time()); } } else { m_rmindCombox->addItem(tr("Never")); m_rmindCombox->addItem(tr("On start day (9:00 AM)")); m_rmindCombox->addItem(tr("1 day before")); m_rmindCombox->addItem(tr("2 days before")); m_rmindCombox->addItem(tr("1 week before")); m_beginTimeEdit->setVisible(false); m_endTimeEdit->setVisible(false); if (m_type == 0) { m_beginDateEdit->setDate(m_ScheduleDataInfo.getBeginDateTime().date()); m_beginTimeEdit->setTime(QTime(0, 0)); m_endDateEdit->setDate(m_ScheduleDataInfo.getEndDateTime().date()); m_endTimeEdit->setTime(QTime(23, 59)); } else { m_beginDateEdit->setDate(m_currentDate.date()); m_endDateEdit->setDate(m_EndDate.date()); m_beginTimeEdit->setTime(QTime(0, 0)); m_endTimeEdit->setTime(QTime(23, 59)); m_rmindCombox->setCurrentIndex(2); } } } void CScheduleDlg::slotbRpeatactivated(int index) { if (index > 0) { m_endrepeatWidget->setVisible(true); } else { m_endrepeatWidget->setVisible(false); } setOkBtnEnabled(); resize(); } void CScheduleDlg::sloteRpeatactivated(int index) { if (index == 0) { m_endrepeattimesWidget->setVisible(false); m_endRepeatDate->setVisible(false); } else if (index == 1) { m_endrepeattimesWidget->setVisible(true); m_endRepeatDate->setVisible(false); QFont mlabelF; mlabelF.setWeight(QFont::Medium); QFontMetrics fontWidth_endrepeattimesLabel(mlabelF); QString endrepeattimesStr = fontWidth_endrepeattimesLabel.elidedText(tr("time(s)"), Qt::ElideRight, m_endrepeattimesLabel->width()); m_endrepeattimesLabel->setText(endrepeattimesStr); } else { m_endrepeattimesWidget->setVisible(false); m_endRepeatDate->setVisible(true); } setOkBtnEnabled(); } void CScheduleDlg::slotJobComboBoxEditingFinished() { if (m_typeComBox->lineEdit()->text().isEmpty()) { //名称为空 m_typeComBox->showAlertMessage(tr("Enter a name please")); m_typeComBox->setAlert(true); } } void CScheduleDlg::slotTypeRpeatactivated(int index) { Q_UNUSED(index); if (m_typeComBox->isEditable()) { m_typeComBox->setIconSize(QSize(0, 0)); m_colorSeletorWideget->show(); } else { //若下拉选择隐藏提醒消息 m_typeComBox->hideAlertMessage(); m_typeComBox->setIconSize(QSize(16, 16)); m_typeEditStatus = false; m_colorSeletorWideget->hide(); } //设置保存按钮状态 setOkBtnEnabled(); resize(); } void CScheduleDlg::slotRadioBtnClicked(int btnId) { //与上一次选项一致不做重置处理 if (m_prevCheckRadioID == btnId) { return; } m_prevCheckRadioID = btnId; bool jobIsLunar = RadioLunarId == btnId; setShowState(jobIsLunar); //更新重复规则下拉显示和保存按钮的显示状态 updateRepeatCombox(jobIsLunar); } void CScheduleDlg::slotBtnAddItemClicked() { m_colorSeletorWideget->show(); m_typeEditStatus = true; //添加日程类型的时候需要判断保存按钮是否可用 setOkBtnEnabled(); resize(); } void CScheduleDlg::slotTypeEditTextChanged(const QString &text) { if (!m_typeEditStatus) { return; } QString tStitlename = text; //去除回车字符 if (tStitlename.contains("\n")) { //设置纯文本显示原始内容 tStitlename.replace("\n", ""); m_typeComBox->setEditText(tStitlename); return; } //最大限制20个字符,超出后过滤掉 if (tStitlename.length() > 20) { m_typeComBox->setEditText(m_TypeContext); return; } else { m_TypeContext = tStitlename; } //如果内容不为空且去除空格内容为空表示为全空格 if (!tStitlename.isEmpty() && tStitlename.trimmed().isEmpty()) { //名称为全空格,返回 m_typeComBox->showAlertMessage(tr("The name can not only contain whitespaces")); m_typeComBox->setAlert(true); } else if (JobTypeInfoManager::instance()->isJobTypeNameUsed(tStitlename)) { //重名,返回 m_typeComBox->showAlertMessage(tr("The name already exists")); m_typeComBox->setAlert(true); } else { //如果日程类型编辑框存在焦点(没有编辑结束)且有警告则取消警告和提示信息 if (m_typeComBox->hasFocus() && m_typeComBox->isAlert()) { m_typeComBox->hideAlertMessage(); m_typeComBox->setAlert(false); } } setOkBtnEnabled(); m_TypeContext = tStitlename; } bool CScheduleDlg::eventFilter(QObject *obj, QEvent *pEvent) { if (obj == m_textEdit) { if (pEvent->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = dynamic_cast(pEvent); if (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter) { return true; } if (keyEvent->key() == Qt::Key_Tab) { //如果为tab则切换到全天checkbox m_allDayCheckbox->setFocus(Qt::TabFocusReason); return true; } } } return DCalendarDDialog::eventFilter(obj, pEvent); } void CScheduleDlg::showEvent(QShowEvent *event) { DDialog::showEvent(event); //更新窗口大小 resize(); } void CScheduleDlg::closeEvent(QCloseEvent *event) { DDialog::closeEvent(event); //如果为true 这设置返回值为Accepted 否则设置为Rejected if (m_setAccept) { accept(); } else { reject(); } } void CScheduleDlg::changeEvent(QEvent *event) { Q_UNUSED(event); QFont mlabelF; mlabelF.setWeight(QFont::Medium); QFontMetrics fontWidth_typeLabel(mlabelF); QString str_typelabel = fontWidth_typeLabel.elidedText(tr("Type:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_typeLabel->setText(str_typelabel); QFontMetrics fontWidth_contentlabel(mlabelF); QString str_contentlabel = fontWidth_contentlabel.elidedText(tr("Description:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_contentLabel->setText(str_contentlabel); QFontMetrics fontWidth_allDayLabel(mlabelF); QString str_allDayLabel = fontWidth_allDayLabel.elidedText(tr("All Day:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_adllDayLabel->setText(str_allDayLabel); QFontMetrics fontWidth_beginTimeLabel(mlabelF); QString str_beginTimeLabel = fontWidth_beginTimeLabel.elidedText(tr("Starts:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_beginTimeLabel->setText(str_beginTimeLabel); QFontMetrics fontWidth_endTimeLabel(mlabelF); QString str_endTimeLabel = fontWidth_endTimeLabel.elidedText(tr("Ends:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_endTimeLabel->setText(str_endTimeLabel); QFontMetrics fontWidth_remindSetLabel(mlabelF); QString str_remindSetLabel = fontWidth_remindSetLabel.elidedText(tr("Remind Me:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_remindSetLabel->setText(str_remindSetLabel); QFontMetrics fontWidth_beginRepeatLabel(mlabelF); QString str_beginRepeatLabel = fontWidth_beginRepeatLabel.elidedText(tr("Repeat:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_beginrepeatLabel->setText(str_beginRepeatLabel); QFontMetrics fontWidth_endrepeatLabel(mlabelF); QString str_endrepeatLabel = fontWidth_endrepeatLabel.elidedText(tr("End Repeat:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_endrepeatLabel->setText(str_endrepeatLabel); if (m_endrepeattimesWidget->isVisible()) { //如果结束与次数显示,则根据label大小设置显示内容 QFontMetrics fontWidth_endrepeattimesLabel(mlabelF); QString endrepeattimesStr = fontWidth_endrepeattimesLabel.elidedText(tr("time(s)"), Qt::ElideRight, m_endrepeattimesLabel->width()); m_endrepeattimesLabel->setText(endrepeattimesStr); } } /** * @brief CScheduleDlg::updateDateTimeFormat 更新日期显示格式 */ void CScheduleDlg::updateDateTimeFormat() { m_beginDateEdit->setDisplayFormat(m_dateFormat); m_endDateEdit->setDisplayFormat(m_dateFormat); m_endRepeatDate->setDisplayFormat(m_dateFormat); } void CScheduleDlg::initUI() { const int label_Fixed_Width = 78; const int item_Fixed_Height = 36; //设置对象名称和辅助显示名称 this->setObjectName("ScheduleEditDialog"); this->setAccessibleName("ScheduleEditDialog"); //在点击任何对话框上的按钮后不关闭对话框,保证关闭子窗口时不被一起关掉 setOnButtonClickedClose(false); m_titleLabel = new QLabel(this); QFont titlelabelF; titlelabelF.setWeight(QFont::DemiBold); titlelabelF.setPixelSize(17); m_titleLabel->setFixedSize(148, 51); m_titleLabel->setAlignment(Qt::AlignCenter | Qt::AlignVCenter); m_titleLabel->move(145, 0); m_titleLabel->setFont(titlelabelF); setSpacing(0); QFont mlabelF; mlabelF.setWeight(QFont::Medium); QVBoxLayout *maintlayout = new QVBoxLayout; maintlayout->setMargin(0); maintlayout->setSpacing(10); //类型 { //使用网格布局 QGridLayout *typelayout = new QGridLayout; typelayout->setSpacing(0); typelayout->setMargin(0); m_typeLabel = new QLabel(); m_typeLabel->setToolTip(tr("Type")); DFontSizeManager::instance()->bind(m_typeLabel, DFontSizeManager::T6); QFontMetrics fontWidth_typeLabel(mlabelF); QString str_typelabel = fontWidth_typeLabel.elidedText(tr("Type:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_typeLabel->setText(str_typelabel); m_typeLabel->setFont(mlabelF); m_typeLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_typeLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); //m_typeComBox = new DComboBox(this); m_typeComBox = new JobTypeComboBox(this); //设置对象名称和辅助显示名称 m_typeComBox->setObjectName("ScheduleTypeCombobox"); m_typeComBox->setAccessibleName("ScheduleTypeCombobox"); m_typeComBox->setFixedSize(350, item_Fixed_Height); initJobTypeComboBox();//todo m_colorSeletorWideget = new ColorSeletorWidget(); m_colorSeletorWideget->hide(); typelayout->addWidget(m_typeLabel, 0, 0); typelayout->addWidget(m_typeComBox, 0, 1); typelayout->addWidget(m_colorSeletorWideget, 1, 1); //添加垂直间隔 typelayout->setVerticalSpacing(5); maintlayout->addLayout(typelayout); } //内容 { QHBoxLayout *contentLabellayout = new QHBoxLayout; contentLabellayout->setSpacing(0); contentLabellayout->setMargin(0); m_contentLabel = new QLabel(this); DFontSizeManager::instance()->bind(m_contentLabel, DFontSizeManager::T6); QFontMetrics fontWidth_contentlabel(mlabelF); QString str_contentlabel = fontWidth_contentlabel.elidedText(tr("Description:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_contentLabel->setText(str_contentlabel); m_contentLabel->setFont(mlabelF); m_contentLabel->setToolTip(tr("Description")); m_contentLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_contentLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_textEdit = new DTextEdit(this); //设置对象名称和辅助显示名称 m_textEdit->setObjectName("ScheduleTitleEdit"); m_textEdit->setAccessibleName("ScheduleTitleEdit"); m_textEdit->setFixedSize(350, 86); m_textEdit->setAcceptRichText(false); m_textEdit->setPlaceholderText(tr("New Event")); //设置关联控件,用于QTextEdit控件捕获MouseButtonPress等事件 QWidget *mpContentWidget = m_textEdit->viewport(); //设置事件过滤器 m_textEdit->installEventFilter(this); mpContentWidget->installEventFilter(this); contentLabellayout->addWidget(m_contentLabel, 0, Qt::AlignTop); contentLabellayout->addWidget(m_textEdit); contentLabellayout->addStretch(); maintlayout->addLayout(contentLabellayout); } //全天 { QHBoxLayout *alldayLabellayout = new QHBoxLayout; alldayLabellayout->setSpacing(0); alldayLabellayout->setMargin(0); m_adllDayLabel = new QLabel(this); m_adllDayLabel->setToolTip(tr("All Day")); DFontSizeManager::instance()->bind(m_adllDayLabel, DFontSizeManager::T6); QFontMetrics fontWidth_allDayLabel(mlabelF); QString str_allDayLabel = fontWidth_allDayLabel.elidedText(tr("All Day:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_adllDayLabel->setText(str_allDayLabel); m_adllDayLabel->setFont(mlabelF); m_adllDayLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_adllDayLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_allDayCheckbox = new DCheckBox(this); //设置对象名称和辅助显示名称 m_allDayCheckbox->setObjectName("AllDayCheckBox"); m_allDayCheckbox->setAccessibleName("AllDayCheckBox"); alldayLabellayout->addWidget(m_adllDayLabel); alldayLabellayout->addWidget(m_allDayCheckbox); maintlayout->addLayout(alldayLabellayout); } //时间 { DLabel *tLabel = new DLabel(tr("Time:")); tLabel->setToolTip(tr("Time")); DFontSizeManager::instance()->bind(tLabel, DFontSizeManager::T6); tLabel->setElideMode(Qt::ElideRight); tLabel->setFont(mlabelF); tLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); tLabel->setFixedSize(DDECalendar::NewScheduleLabelWidth, item_Fixed_Height); m_solarRadioBtn = new DRadioButton(tr("Solar")); m_lunarRadioBtn = new DRadioButton(tr("Lunar")); m_solarRadioBtn->setMinimumWidth(72); m_lunarRadioBtn->setMinimumWidth(72); m_calendarCategoryRadioGroup = new QButtonGroup(this); m_calendarCategoryRadioGroup->setExclusive(true); m_calendarCategoryRadioGroup->addButton(m_solarRadioBtn, RadioSolarId); m_calendarCategoryRadioGroup->addButton(m_lunarRadioBtn, RadioLunarId); QHBoxLayout *tLayout = new QHBoxLayout; tLayout->setSpacing(8); tLayout->setMargin(0); tLayout->addWidget(tLabel); tLayout->addWidget(m_solarRadioBtn); tLayout->addWidget(m_lunarRadioBtn); tLayout->addStretch(1); maintlayout->addLayout(tLayout); } //开始时间 { QHBoxLayout *beginLabellayout = new QHBoxLayout; beginLabellayout->setSpacing(0); beginLabellayout->setMargin(0); m_beginTimeLabel = new QLabel(this); m_beginTimeLabel->setToolTip(tr("Starts")); DFontSizeManager::instance()->bind(m_beginTimeLabel, DFontSizeManager::T6); QFontMetrics fontWidth_beginTimeLabel(mlabelF); QString str_beginTimeLabel = fontWidth_beginTimeLabel.elidedText(tr("Starts:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_beginTimeLabel->setText(str_beginTimeLabel); m_beginTimeLabel->setFont(mlabelF); m_beginTimeLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_beginTimeLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_beginDateEdit = new CDateEdit(this); m_beginDateEdit->setDisplayFormat(m_dateFormat); //设置对象名称和辅助显示名称 m_beginDateEdit->setObjectName("ScheduleBeginDateEdit"); m_beginDateEdit->setAccessibleName("ScheduleBeginDateEdit"); m_beginDateEdit->setFixedSize(200, item_Fixed_Height); m_beginDateEdit->setCalendarPopup(true); m_beginTimeEdit = new CTimeEdit(this); //设置对象名称和辅助显示名称 m_beginTimeEdit->setObjectName("ScheduleBeginTimeEdit"); m_beginTimeEdit->setAccessibleName("ScheduleBeginTimeEdit"); m_beginTimeEdit->setFixedSize(140, item_Fixed_Height); beginLabellayout->addWidget(m_beginTimeLabel); beginLabellayout->addWidget(m_beginDateEdit); beginLabellayout->addSpacing(8); beginLabellayout->addWidget(m_beginTimeEdit); beginLabellayout->addStretch(); maintlayout->addLayout(beginLabellayout); } //结束时间 { QHBoxLayout *enQLabellayout = new QHBoxLayout; enQLabellayout->setSpacing(0); enQLabellayout->setMargin(0); m_endTimeLabel = new QLabel(this); m_endTimeLabel->setToolTip(tr("Ends")); DFontSizeManager::instance()->bind(m_endTimeLabel, DFontSizeManager::T6); QFontMetrics fontWidth_endTimeLabel(mlabelF); QString str_endTimeLabel = fontWidth_endTimeLabel.elidedText(tr("Ends:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_endTimeLabel->setText(str_endTimeLabel); m_endTimeLabel->setFont(mlabelF); m_endTimeLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_endTimeLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_endDateEdit = new CDateEdit(this); m_endDateEdit->setDisplayFormat(m_dateFormat); //设置对象名称和辅助显示名称 m_endDateEdit->setObjectName("ScheduleEndDateEdit"); m_endDateEdit->setAccessibleName("ScheduleEndDateEdit"); m_endDateEdit->setFixedSize(200, item_Fixed_Height); m_endDateEdit->setCalendarPopup(true); m_endTimeEdit = new CTimeEdit(this); //设置对象名称和辅助显示名称 m_endTimeEdit->setObjectName("ScheduleEndTimeEdit"); m_endTimeEdit->setAccessibleName("ScheduleEndTimeEdit"); m_endTimeEdit->setFixedSize(140, item_Fixed_Height); enQLabellayout->addWidget(m_endTimeLabel); enQLabellayout->addWidget(m_endDateEdit); enQLabellayout->addSpacing(8); enQLabellayout->addWidget(m_endTimeEdit); enQLabellayout->addStretch(); maintlayout->addLayout(enQLabellayout); } //提醒 { QHBoxLayout *rminQLabellayout = new QHBoxLayout; rminQLabellayout->setSpacing(0); rminQLabellayout->setMargin(0); m_remindSetLabel = new QLabel(); DFontSizeManager::instance()->bind(m_remindSetLabel, DFontSizeManager::T6); QFontMetrics fontWidth_remindSetLabel(mlabelF); QString str_remindSetLabel = fontWidth_remindSetLabel.elidedText(tr("Remind Me:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_remindSetLabel->setToolTip(tr("Remind Me")); m_remindSetLabel->setText(str_remindSetLabel); m_remindSetLabel->setFont(mlabelF); m_remindSetLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_remindSetLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_rmindCombox = new DComboBox(this); //设置对象名称和辅助显示名称 m_rmindCombox->setObjectName("RmindComboBox"); m_rmindCombox->setAccessibleName("RmindComboBox"); m_rmindCombox->setFixedSize(200, item_Fixed_Height); m_rmindCombox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); rminQLabellayout->addWidget(m_remindSetLabel); rminQLabellayout->addWidget(m_rmindCombox); rminQLabellayout->addStretch(); maintlayout->addLayout(rminQLabellayout); } //重复 { QHBoxLayout *repeatLabellayout = new QHBoxLayout; repeatLabellayout->setSpacing(0); repeatLabellayout->setMargin(0); m_beginrepeatLabel = new QLabel(); m_beginrepeatLabel->setToolTip(tr("Repeat")); DFontSizeManager::instance()->bind(m_beginrepeatLabel, DFontSizeManager::T6); QFontMetrics fontWidth_beginRepeatLabel(mlabelF); QString str_beginRepeatLabel = fontWidth_beginRepeatLabel.elidedText(tr("Repeat:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_beginrepeatLabel->setText(str_beginRepeatLabel); m_beginrepeatLabel->setFont(mlabelF); m_beginrepeatLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_beginrepeatLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_beginrepeatCombox = new DComboBox(this); //设置对象名称和辅助显示名称 m_beginrepeatCombox->setObjectName("BeginRepeatComboBox"); m_beginrepeatCombox->setAccessibleName("BeginRepeatComboBox"); m_beginrepeatCombox->setFixedSize(200, item_Fixed_Height); m_beginrepeatCombox->addItem(tr("Never")); m_beginrepeatCombox->addItem(tr("Daily")); m_beginrepeatCombox->addItem(tr("Weekdays")); m_beginrepeatCombox->addItem(tr("Weekly")); m_beginrepeatCombox->addItem(tr("Monthly")); m_beginrepeatCombox->addItem(tr("Yearly")); repeatLabellayout->addWidget(m_beginrepeatLabel); repeatLabellayout->addWidget(m_beginrepeatCombox); repeatLabellayout->addStretch(); maintlayout->addLayout(repeatLabellayout); } //结束重复 { QHBoxLayout *endrepeatLabellayout = new QHBoxLayout; endrepeatLabellayout->setSpacing(0); endrepeatLabellayout->setMargin(0); m_endrepeatLabel = new QLabel(); DFontSizeManager::instance()->bind(m_endrepeatLabel, DFontSizeManager::T6); QFontMetrics fontWidth_endrepeatLabel(mlabelF); QString str_endrepeatLabel = fontWidth_endrepeatLabel.elidedText(tr("End Repeat:"), Qt::ElideRight, DDECalendar::NewScheduleLabelWidth); m_endrepeatLabel->setToolTip(tr("End Repeat")); m_endrepeatLabel->setText(str_endrepeatLabel); m_endrepeatLabel->setFont(mlabelF); m_endrepeatLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_endrepeatLabel->setFixedSize(label_Fixed_Width, item_Fixed_Height); m_endrepeatCombox = new DComboBox(this); //设置对象名称和辅助显示名称 m_endrepeatCombox->setObjectName("EndRepeatComboBox"); m_endrepeatCombox->setAccessibleName("EndRepeatComboBox"); m_endrepeatCombox->setFixedSize(200, item_Fixed_Height); m_endrepeatCombox->addItem(tr("Never")); m_endrepeatCombox->addItem(tr("After")); m_endrepeatCombox->addItem(tr("On")); endrepeatLabellayout->addWidget(m_endrepeatLabel); endrepeatLabellayout->addWidget(m_endrepeatCombox); endrepeatLabellayout->addSpacing(8); QHBoxLayout *endrepeattimeslayout = new QHBoxLayout; endrepeattimeslayout->setSpacing(0); endrepeattimeslayout->setMargin(0); endrepeattimeslayout->setContentsMargins(0, 0, 0, 0); m_endrepeattimes = new DLineEdit(this); //设置对象名称和辅助显示名称 m_endrepeattimes->setObjectName("EndRepeatTimeEidt"); m_endrepeattimes->setAccessibleName("EndRepeatTimeEidt"); m_endrepeattimes->setFixedSize(71, item_Fixed_Height); m_endrepeattimes->setText(QString::number(10)); m_endrepeattimes->setClearButtonEnabled(false); QRegExp rx("^[1-9]\\d{0,2}$"); QValidator *validator = new QRegExpValidator(rx, this); m_endrepeattimes->lineEdit()->setValidator(validator); m_endrepeattimesLabel = new QLabel(tr("time(s)")); m_endrepeattimesLabel->setToolTip(tr("time(s)")); m_endrepeattimesLabel->setFont(mlabelF); m_endrepeattimesLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); m_endrepeattimesLabel->setFixedHeight(item_Fixed_Height); endrepeattimeslayout->addWidget(m_endrepeattimes); endrepeattimeslayout->addWidget(m_endrepeattimesLabel); m_endrepeattimesWidget = new DWidget; //设置对象名称和辅助显示名称 m_endrepeattimesWidget->setObjectName("EndRepeatTimeWidget"); m_endrepeattimesWidget->setAccessibleName("EndRepeatTimeWidget"); m_endrepeattimesWidget->setLayout(endrepeattimeslayout); m_endrepeattimesWidget->setVisible(false); m_endrepeattimesWidget->setFixedSize(140, item_Fixed_Height); endrepeatLabellayout->addWidget(m_endrepeattimesWidget); m_endRepeatDate = new CDateEdit; //设置对象名称和辅助显示名称 m_endRepeatDate->setObjectName("EndRepeatDateEdit"); m_endRepeatDate->setAccessibleName("EndRepeatDateEdit"); m_endRepeatDate->setCalendarPopup(true); m_endRepeatDate->setFixedSize(140, item_Fixed_Height); m_endRepeatDate->setDate(QDate::currentDate()); m_endRepeatDate->setDisplayFormat(m_dateFormat); m_endRepeatDate->setCurrentSectionIndex(2); QFont enddatefont; enddatefont.setWeight(QFont::Medium); m_endRepeatDate->setFont(enddatefont); endrepeatLabellayout->addWidget(m_endRepeatDate); endrepeatLabellayout->addStretch(); m_endRepeatDate->setVisible(false); m_endrepeatWidget = new DWidget; //设置对象名称和辅助显示名称 m_endrepeatWidget->setObjectName("EndRepeatDateWidget"); m_endrepeatWidget->setAccessibleName("EndRepeatDateWidget"); m_endrepeatWidget->setLayout(endrepeatLabellayout); maintlayout->addWidget(m_endrepeatWidget); m_endrepeatWidget->setVisible(false); } m_gwi = new DFrame(this); m_gwi->setFrameShape(QFrame::NoFrame); m_gwi->setLayout(maintlayout); addContent(m_gwi, Qt::AlignCenter); initDateEdit(); if (m_type == 1) slotallDayStateChanged(0); //添加按钮 addButton(tr("Cancel", "button")); addButton(tr("Save", "button"), false, DDialog::ButtonRecommend); for (int i = 0; i < buttonCount(); i++) { QAbstractButton *button = getButton(i); button->setFixedSize(189, 36); } } void CScheduleDlg::initConnection() { QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &CScheduleDlg::setTheMe); connect(this, &DDialog::buttonClicked, this, &CScheduleDlg::slotBtClick); connect(m_textEdit, &DTextEdit::textChanged, this, &CScheduleDlg::slotTextChange); connect(m_endrepeattimes, &DLineEdit::textChanged, this, &CScheduleDlg::slotendrepeatTextchange); connect(m_allDayCheckbox, &DCheckBox::stateChanged, this, &CScheduleDlg::slotallDayStateChanged); connect(m_beginrepeatCombox, QOverload::of(&QComboBox::activated), this, &CScheduleDlg::slotbRpeatactivated); connect(m_endrepeatCombox, QOverload::of(&QComboBox::activated), this, &CScheduleDlg::sloteRpeatactivated); connect(m_typeComBox, QOverload::of(&QComboBox::activated), this, &CScheduleDlg::slotTypeRpeatactivated); connect(m_beginDateEdit, &DDateEdit::userDateChanged, this, &CScheduleDlg::slotBDateEidtInfo); QShortcut *shortcut = new QShortcut(this); shortcut->setKey(QKeySequence(QLatin1String("ESC"))); connect(shortcut, SIGNAL(activated()), this, SLOT(close())); connect(m_beginTimeEdit, &CTimeEdit::signaleditingFinished, this, &CScheduleDlg::slotBeginTimeChange); connect(m_endTimeEdit, &CTimeEdit::signaleditingFinished, this, &CScheduleDlg::slotEndTimeChange); connect(m_endDateEdit, &QDateEdit::userDateChanged, this, &CScheduleDlg::slotEndDateChange); connect(m_calendarCategoryRadioGroup, QOverload::of(&QButtonGroup::buttonClicked), this, &CScheduleDlg::slotRadioBtnClicked); connect(m_typeComBox, &JobTypeComboBox::signalAddTypeBtnClicked, this, &CScheduleDlg::slotBtnAddItemClicked); connect(m_typeComBox, &JobTypeComboBox::editTextChanged, this, &CScheduleDlg::slotTypeEditTextChanged); connect(m_typeComBox, &JobTypeComboBox::editingFinished, this, &CScheduleDlg::slotJobComboBoxEditingFinished); } void CScheduleDlg::initDateEdit() { m_beginDateEdit->setMinimumDate(QDate(DDECalendar::QueryEarliestYear, 1, 1)); // 0天 m_beginDateEdit->setMaximumDate(QDate(DDECalendar::QueryLatestYear, 12, 31)); m_endDateEdit->setMinimumDate(QDate(DDECalendar::QueryEarliestYear, 1, 1)); // 0天 m_endDateEdit->setMaximumDate(QDate(DDECalendar::QueryLatestYear, 12, 31)); return; } void CScheduleDlg::initJobTypeComboBox() { m_typeComBox->updateJobType(); } void CScheduleDlg::initRmindRpeatUI() { if (m_ScheduleDataInfo.getAllDay()) { if (m_ScheduleDataInfo.getRemindData().getRemindNum() > -1) { if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::OnStartDay) { m_rmindCombox->setCurrentIndex(1); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::OneDayBeforeWithDay) { m_rmindCombox->setCurrentIndex(2); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::TwoDayBeforeWithDay) { m_rmindCombox->setCurrentIndex(3); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::OneWeekBeforeWithDay) { m_rmindCombox->setCurrentIndex(4); } } else { m_rmindCombox->setCurrentIndex(0); } } else { if (m_ScheduleDataInfo.getRemindData().getRemindNum() > -1) { if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::AtTimeOfEvent) { m_rmindCombox->setCurrentIndex(1); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::FifteenMinutesBefore) { m_rmindCombox->setCurrentIndex(2); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::ThirtyMinutesBefore) { m_rmindCombox->setCurrentIndex(3); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::OneHourBefore) { m_rmindCombox->setCurrentIndex(4); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::OneDayBeforeWithMinutes) { m_rmindCombox->setCurrentIndex(5); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::TwoDayBeforeWithMinutes) { m_rmindCombox->setCurrentIndex(6); } else if (m_ScheduleDataInfo.getRemindData().getRemindNum() == DDECalendar::OneWeekBeforeWithMinutes) { m_rmindCombox->setCurrentIndex(7); } } else { m_rmindCombox->setCurrentIndex(0); } } slotbRpeatactivated(m_ScheduleDataInfo.getRepetitionRule().getRuleId()); RepetitionRule::RRuleID ruleID = m_ScheduleDataInfo.getRepetitionRule().getRuleId(); if (m_ScheduleDataInfo.getIsLunar()) { switch (ruleID) { case RepetitionRule::RRule_EVEYEAR: m_beginrepeatCombox->setCurrentIndex(2); break; case RepetitionRule::RRule_EVEMONTH: m_beginrepeatCombox->setCurrentIndex(1); break; default: m_beginrepeatCombox->setCurrentIndex(0); break; } } else { m_beginrepeatCombox->setCurrentIndex(ruleID); } if (m_ScheduleDataInfo.getRepetitionRule().getRuleId() != 0) { if (m_ScheduleDataInfo.getRepetitionRule().getRuleType() == 0) { m_endrepeatCombox->setCurrentIndex(0); } else if (m_ScheduleDataInfo.getRepetitionRule().getRuleType() == 1) { m_endrepeatCombox->setCurrentIndex(1); m_endrepeattimes->setText(QString::number(m_ScheduleDataInfo.getRepetitionRule().getEndCount())); } else if (m_ScheduleDataInfo.getRepetitionRule().getRuleType() == 2) { m_endrepeatCombox->setCurrentIndex(2); m_endRepeatDate->setDate(m_ScheduleDataInfo.getRepetitionRule().getEndDate().date()); } m_endrepeatWidget->show(); sloteRpeatactivated(m_ScheduleDataInfo.getRepetitionRule().getRuleType()); } else { m_endrepeatWidget->hide(); } } void CScheduleDlg::setTheMe(const int type) { //日程标题编辑框文字颜色 QColor titleColor; if (type == 2) { titleColor = "#C0C6D4"; } else { titleColor = "#414D68"; } DPalette pa = m_textEdit->palette(); //设置颜色 pa.setColor(DPalette::Text, titleColor); m_textEdit->setPalette(pa); } /** * @brief CScheduleDlg::setTabFouseOrder * 设置tab顺序 */ void CScheduleDlg::setTabFouseOrder() { setTabOrder(m_typeComBox, m_textEdit); setTabOrder(m_textEdit, m_allDayCheckbox); setTabOrder(m_allDayCheckbox, m_solarRadioBtn); setTabOrder(m_solarRadioBtn, m_lunarRadioBtn); setTabOrder(m_lunarRadioBtn, m_beginDateEdit); setTabOrder(m_beginDateEdit, m_beginTimeEdit); // setTabOrder(m_beginTimeEdit, m_endDateEdit); setTabOrder(m_endDateEdit, m_endTimeEdit); // setTabOrder(m_endTimeEdit, m_rmindCombox); setTabOrder(m_rmindCombox, m_beginrepeatCombox); setTabOrder(m_beginrepeatCombox, m_endrepeatCombox); //结束于次数,设置tab顺序 if (m_ScheduleDataInfo.getRepetitionRule().getRuleType() == RepetitionRule::RRuleEndType::RRuleType_FREQ) setTabOrder(m_endrepeatCombox, m_endrepeattimes); //结束于日期,设置tab顺序 if (m_ScheduleDataInfo.getRepetitionRule().getRuleType() == RepetitionRule::RRuleEndType::RRuleType_DATE) setTabOrder(m_endrepeatCombox, m_endRepeatDate); } void CScheduleDlg::updateIsOneMoreDay(const QDateTime &begin, const QDateTime &end) { // 一天毫秒数 static qint64 oneDayMses = 24 * 60 * 60 * 1000; m_isMoreThenOneDay = begin.msecsTo(end) >= oneDayMses; } void CScheduleDlg::updateRepeatCombox(bool isLunar) { if (nullptr == m_beginrepeatCombox) { return; } m_beginrepeatCombox->clear(); if (isLunar) { m_beginrepeatCombox->addItem(tr("Never")); m_beginrepeatCombox->addItem(tr("Monthly")); m_beginrepeatCombox->addItem(tr("Yearly")); } else { m_beginrepeatCombox->addItem(tr("Never")); m_beginrepeatCombox->addItem(tr("Daily")); m_beginrepeatCombox->addItem(tr("Weekdays")); m_beginrepeatCombox->addItem(tr("Weekly")); m_beginrepeatCombox->addItem(tr("Monthly")); m_beginrepeatCombox->addItem(tr("Yearly")); } //重置重复规则 m_beginrepeatCombox->setCurrentIndex(0); //默认选择第一个 slotbRpeatactivated(0); //更新“结束重复”状态 } /** * @brief CScheduleDlg::isShowLunar * 系统语言检查,根据语言类型更改控件状态和显示状态,规则如下 * 中文环境下所有功能正常显示 */ bool CScheduleDlg::isShowLunar() { return QLocale::system().name().startsWith("zh_"); } /** * @brief CScheduleDlg::setShowState * @param jobIsLunar * 非中文环境下若新建日程则不农历按钮置灰不可选 * 非中文环境下若编辑农历日程则仅公历按钮可选,其他的都置灰,当选择公历后,控件都可使用 */ void CScheduleDlg::setShowState(bool jobIsLunar) { //如果不显示农历 if (isShowLunar()) { m_lunarRadioBtn->setEnabled(true); m_beginDateEdit->setLunarCalendarStatus(jobIsLunar); m_endDateEdit->setLunarCalendarStatus(jobIsLunar); m_endRepeatDate->setLunarCalendarStatus(jobIsLunar); } else { //在不显示农历环境下,取消农历显示 m_beginDateEdit->setLunarCalendarStatus(false); m_endDateEdit->setLunarCalendarStatus(false); m_endRepeatDate->setLunarCalendarStatus(false); m_lunarRadioBtn->setEnabled(false); //在不显示农历情况下,需要根据编辑日程是否为农历日程来判断显示状态 setWidgetEnabled(!jobIsLunar); //只有在不显示农历情况下才会根据是否显示农历来设置按钮状态 //在不显示农历情况下是无法切换到农历的,所以只有在切换公历和编辑日程时才会设置 getButton(1)->setEnabled(!jobIsLunar); } if (jobIsLunar) { //为农历日程 m_lunarRadioBtn->setChecked(true); } else { //公历日程 m_solarRadioBtn->setChecked(true); } } void CScheduleDlg::setWidgetEnabled(bool isEnabled) { m_typeComBox->setEnabled(isEnabled); m_textEdit->setEnabled(isEnabled); m_allDayCheckbox->setEnabled(isEnabled); m_beginDateEdit->setEnabled(isEnabled); m_beginTimeEdit->setEnabled(isEnabled); m_endDateEdit->setEnabled(isEnabled); m_endTimeEdit->setEnabled(isEnabled); m_rmindCombox->setEnabled(isEnabled); m_beginrepeatCombox->setEnabled(isEnabled); m_endrepeatCombox->setEnabled(isEnabled); m_endrepeattimes->setEnabled(isEnabled); m_endRepeatDate->setEnabled(isEnabled); } void CScheduleDlg::initColor() { //将用户上一次选择的自定义颜色添加进去 QString colorName = CConfigSettings::getInstance()->value("LastUserColor", "").toString(); if (!colorName.isEmpty()) { m_colorSeletorWideget->setUserColor(JobTypeColorInfo(0, colorName, 7)); } //选中上一次选中的颜色 int colorId = CConfigSettings::getInstance()->value("LastSysColorTypeNo", -1).toInt(); if (colorId > 0) { m_colorSeletorWideget->setSelectedColorById(colorId); } } void CScheduleDlg::resize() { int h = 0; if (m_endrepeatWidget->isVisible()) { h += 36 + 10; } if (m_colorSeletorWideget->isVisible()) { h += 18 + 5; } //524: 默认界面高度, h: 新增控件高度 setFixedSize(dialog_width, 524 + h); } void CScheduleDlg::setOkBtnEnabled() { QAbstractButton *m_OkBt = getButton(1); //根据类型输入框的内容判断保存按钮是否有效 if (m_OkBt != nullptr && m_typeComBox->lineEdit() != nullptr) { const QString &typeStr = m_typeComBox->lineEdit()->text(); if (typeStr.isEmpty() || typeStr.trimmed().isEmpty() || JobTypeInfoManager::instance()->isJobTypeNameUsed(typeStr)) { m_OkBt->setEnabled(false); //若内容无效直接退出,不判断结束次数是否为空 return; } else { m_OkBt->setEnabled(true); } } //如果结束与次数为空,则保存按钮置灰 if (m_beginrepeatCombox->currentIndex() > 0 && m_endrepeatCombox->currentIndex() == 1) { m_OkBt->setEnabled(!m_endrepeattimes->text().isEmpty()); } else { //日期 //永不 m_OkBt->setEnabled(true); } } dde-calendar-5.9.1/calendar-client/src/dialog/scheduledlg.h000066400000000000000000000157651423264401600235600ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULEDLG_H #define SCHEDULEDLG_H //#include "src/scheduledatainfo.h" #include "dcalendarddialog.h" #include "cdateedit.h" #include "jobtypecombobox.h" #include "colorseletorwidget.h" #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class CTimeEdit; class CScheduleDlg : public DCalendarDDialog { Q_OBJECT public: enum ButtonId { RadioSolarId = 0, //公历选择按钮id RadioLunarId //农历选择按钮id }; CScheduleDlg(int type, QWidget *parent = nullptr, const bool isAllDay = true); ~CScheduleDlg() override; void setData(const ScheduleDataInfo &info); void setDate(const QDateTime &date); void setAllDay(bool flag); private: //确定按钮处理 bool clickOkBtn(); /** * @brief updateEndTimeListAndTimeDiff 更新结束时间(time),结束时间下拉列表和开始时间和结束时间差 * @param begin 开始时间(DateTime) * @param end 结束时间 (DateTime) */ void updateEndTimeListAndTimeDiff(const QDateTime &begin, const QDateTime &end); /** * @brief updateEndTimeList 更新结束时间下拉列表 * @param begin 开始时间(time) * @param isShowTimeInterval 是否显示时间偏移 */ void updateEndTimeList(const QTime &begin, bool isShowTimeInterval); signals: void signalScheduleUpdate(int id = 0); public slots: /** * @brief 开始时间改变 * */ void slotBeginTimeChange(); /** * @brief 结束时间改变 * */ void slotEndTimeChange(); /** * @brief 结束日期改变 * */ void slotEndDateChange(const QDate &date); /** * @brief slotRadioBtnClicked * 选择按钮控件点击时间 * @param btnId 控件id */ void slotRadioBtnClicked(int btnId); /** * @brief slotBtnAddItemClicked * 添加类型事件 */ void slotBtnAddItemClicked(); /** * @brief slotTypeEditTextChanged * 类型下拉选择框文本改变事件 */ void slotTypeEditTextChanged(const QString &); void slotTypeRpeatactivated(int index); //对话框按钮点击处理 void slotBtClick(int buttonIndex, const QString &buttonName); void slotTextChange(); void slotendrepeatTextchange(); void slotBDateEidtInfo(const QDate &date); void slotallDayStateChanged(int state); void slotbRpeatactivated(int index); void sloteRpeatactivated(int index); void slotJobComboBoxEditingFinished(); protected: bool eventFilter(QObject *obj, QEvent *pEvent) override; void showEvent(QShowEvent *event) override; void closeEvent(QCloseEvent *event) override; void changeEvent(QEvent *event) override; void updateDateTimeFormat() override; private: void initUI(); void initColor(); void initConnection(); void initDateEdit(); void initJobTypeComboBox(); void initRmindRpeatUI(); /** * @brief setTheMe 根据主题type设置颜色 * @param type 主题type */ void setTheMe(const int type); //设置tab顺序 void setTabFouseOrder(); /** * @brief updateIsOneMoreDay 更新开始时间与结束时间标识是否超过一天 * @param begin 开始时间(datetime) * @param end 结束时间(datetime) */ void updateIsOneMoreDay(const QDateTime &begin, const QDateTime &end); /** * @brief updateRepeatCombox * 更新重复下拉列表 * @param isLunar 是否是农历 true:是 false:不是 */ void updateRepeatCombox(bool isLunar = false); /** * @brief isShowLunar * 系统语言检查,根据语言类型判断是否显示农历信息 */ bool isShowLunar(); /** * @brief setShowState 设置显示状态 * @param jobIsLunar 日程是否为农历 */ void setShowState(bool jobIsLunar); void setWidgetEnabled(bool isEnabled); void resize(); /** * @brief setOkBtnEnabled 根据选项设置保存按钮是否有效 */ void setOkBtnEnabled(); private: QLabel *m_typeLabel = nullptr; //DComboBox *m_typeComBox = nullptr; JobTypeComboBox *m_typeComBox = nullptr; ColorSeletorWidget *m_colorSeletorWideget = nullptr; //颜色选择器 QLabel *m_contentLabel = nullptr; DTextEdit *m_textEdit = nullptr; QLabel *m_beginTimeLabel = nullptr; CDateEdit *m_beginDateEdit = nullptr; CTimeEdit *m_beginTimeEdit = nullptr; QLabel *m_endTimeLabel = nullptr; CDateEdit *m_endDateEdit = nullptr; CTimeEdit *m_endTimeEdit = nullptr; QLabel *m_adllDayLabel = nullptr; DCheckBox *m_allDayCheckbox = nullptr; QLabel *m_remindSetLabel = nullptr; DComboBox *m_rmindCombox = nullptr; QLabel *m_beginrepeatLabel = nullptr; DComboBox *m_beginrepeatCombox = nullptr; QLabel *m_endrepeatLabel = nullptr; DComboBox *m_endrepeatCombox = nullptr; DLineEdit *m_endrepeattimes = nullptr; QLabel *m_endrepeattimesLabel = nullptr; DWidget *m_endrepeattimesWidget; CDateEdit *m_endRepeatDate = nullptr; DWidget *m_endrepeatWidget = nullptr; DFrame *m_gwi = nullptr; QLabel *m_titleLabel = nullptr; QButtonGroup *m_calendarCategoryRadioGroup = nullptr; //日历类别选择控件组 DRadioButton *m_solarRadioBtn = nullptr; //公历选择按钮 DRadioButton *m_lunarRadioBtn = nullptr; //农历选择按钮 QString m_context; QString m_TypeContext; //类型输入框上一次输入后的字符 const bool m_createAllDay; bool m_setAccept {false}; //是否设置返回代码为Rejected qint64 m_timeDiff = 0; //开始时间和结束时间差,不算日期 bool m_isMoreThenOneDay = false; private: //日程 ScheduleDataInfo m_ScheduleDataInfo; QList m_lstJobType; int m_type; // 1新建 0 编辑日程 QDateTime m_currentDate; QDateTime m_EndDate; bool m_typeEditStatus = false; //日程类型编辑状态 int m_prevCheckRadioID = -1; //上一次点击Radio的id编号 }; #endif // SCHEDULEDLG_H dde-calendar-5.9.1/calendar-client/src/dialog/scheduletypeeditdlg.cpp000066400000000000000000000170241423264401600256510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "scheduletypeeditdlg.h" #include "scheduledatamanage.h" #include "cscheduleoperation.h" #include "configsettings.h" #include #include #include #include #include ScheduleTypeEditDlg::ScheduleTypeEditDlg(QWidget *parent) : DDialog(parent) , m_title(tr("New event type")) , m_dialogType(DialogNewType) { init(); } ScheduleTypeEditDlg::ScheduleTypeEditDlg(const JobTypeInfo &jobTypeOld, QWidget *parent) : DDialog(parent) , m_jobTypeOld(jobTypeOld) , m_jobTypeNew(jobTypeOld) , m_title(tr("Edit event type")) , m_dialogType(DialogEditType) { init(); } void ScheduleTypeEditDlg::init() { initView(); initData(); //默认焦点在日程名称输入框中 m_lineEdit->setFocus(); //先初始化数据再关联信号,初始状态下不提示 connect(m_lineEdit, &DLineEdit::textChanged, this, &ScheduleTypeEditDlg::slotEditTextChanged); connect(m_lineEdit, &DLineEdit::focusChanged, this, &ScheduleTypeEditDlg::slotFocusChanged); connect(m_lineEdit, &DLineEdit::editingFinished, this, &ScheduleTypeEditDlg::slotEditingFinished); } void ScheduleTypeEditDlg::initView() { setFixedSize(QSize(400, 220)); m_titleLabel = new QLabel(this); QFont titlelabelF; titlelabelF.setWeight(QFont::DemiBold); titlelabelF.setPixelSize(17); m_titleLabel->setFixedSize(400, 25); m_titleLabel->setAlignment(Qt::AlignCenter); m_titleLabel->move(0, 19); m_titleLabel->setFont(titlelabelF); QVBoxLayout *maintlayout = new QVBoxLayout; maintlayout->setMargin(0); maintlayout->setSpacing(10); QHBoxLayout *eLayout = new QHBoxLayout; QLabel *eName = new QLabel(tr("Name:")); eName->setFixedWidth(42); m_lineEdit = new DLineEdit(); m_lineEdit->setClearButtonEnabled(false); //不显示按钮 eLayout->addWidget(eName); eLayout->addWidget(m_lineEdit, 1); QHBoxLayout *cLayout = new QHBoxLayout; QLabel *cName = new QLabel(tr("Color:")); cName->setFixedWidth(42); m_colorSeletor = new ColorSeletorWidget(); cLayout->addWidget(cName); cLayout->addWidget(m_colorSeletor); cLayout->addStretch(1); maintlayout->addLayout(eLayout); maintlayout->addLayout(cLayout); eLayout->setSpacing(10); eLayout->setMargin(0); cLayout->setSpacing(10); cLayout->setMargin(0); maintlayout->setSpacing(20); maintlayout->setContentsMargins(0, 10, 0, 0); DFrame *gwi = new DFrame(this); gwi->setFrameShape(QFrame::NoFrame); gwi->setLayout(maintlayout); gwi->setMinimumWidth(360); addContent(gwi, Qt::AlignCenter); //添加按钮 addButton(tr("Cancel", "button")); addButton(tr("Save", "button"), false, DDialog::ButtonRecommend); for (int i = 0; i < buttonCount(); i++) { QAbstractButton *button = getButton(i); button->setFixedSize(170, 36); } connect(this->getButton(0), &QPushButton::clicked, this, &ScheduleTypeEditDlg::slotBtnCancel); connect(this->getButton(1), &QPushButton::clicked, this, &ScheduleTypeEditDlg::slotBtnNext); } void ScheduleTypeEditDlg::initData() { m_titleLabel->setText(m_title); m_lineEdit->setText(m_jobTypeOld.getJobTypeName()); m_typeText = m_jobTypeOld.getJobTypeName();//编辑时要初始化数据 this->getButton(1)->setEnabled(!m_jobTypeOld.getJobTypeName().isEmpty());//如果是新增,则保存按钮默认不可用 //将用户上一次选择的自定义颜色添加进去 QString colorName = CConfigSettings::getInstance()->value("LastUserColor", "").toString(); if (!colorName.isEmpty()) { m_colorSeletor->setUserColor(JobTypeColorInfo(0, colorName, 7)); } switch (m_dialogType) { case DialogEditType: { //编辑日程类型 m_colorSeletor->setSelectedColor(m_jobTypeOld.getColorInfo()); } break; default: { //默认新建日程,选中上一次选中的颜色 int colorId = CConfigSettings::getInstance()->value("LastSysColorTypeNo", -1).toInt(); if (colorId > 0) { m_colorSeletor->setSelectedColorById(colorId); } } break; } } void ScheduleTypeEditDlg::slotEditTextChanged(const QString &strName) { QString tStitlename = strName; //去除回车字符 if (tStitlename.contains("\n")) { //设置纯文本显示原始内容 tStitlename.replace("\n", ""); m_lineEdit->setText(tStitlename); return; } //最大限制20个字符,超出后过滤掉 if (tStitlename.length() > 20) { m_lineEdit->setText(m_typeText); return; } else { m_typeText = tStitlename; } //文本编辑框中文本改变事件 //1不能为空,2不能全空格,3不能重名 if (m_lineEdit->text().isEmpty()) { //名称为空,返回 //内容清空时,消除警告色和提示信息 m_lineEdit->setAlert(false); m_lineEdit->hideAlertMessage(); this->getButton(1)->setEnabled(false); return; } if (tStitlename.trimmed().isEmpty()) { //名称为全空格,返回 m_lineEdit->showAlertMessage(tr("The name can not only contain whitespaces")); m_lineEdit->setAlert(true); this->getButton(1)->setEnabled(false); return; } m_jobTypeNew.setJobTypeName(tStitlename); //在编辑日程状态下不对编辑的日程类型名做重名处理 bool isUsed = m_dialogType == DialogEditType ? JobTypeInfoManager::instance()->isJobTypeNameUsed(m_jobTypeNew) : JobTypeInfoManager::instance()->isJobTypeNameUsed(tStitlename); if (isUsed) { //重名,返回 m_lineEdit->showAlertMessage(tr("The name already exists")); m_lineEdit->setAlert(true); this->getButton(1)->setEnabled(false); return; } m_lineEdit->setAlert(false); m_lineEdit->hideAlertMessage(); this->getButton(1)->setEnabled(true); return; } void ScheduleTypeEditDlg::slotFocusChanged(bool onFocus) { //如果焦点移出,且输入内容为空 if (!onFocus && m_lineEdit->text().isEmpty()) { emit m_lineEdit->textChanged(""); } } void ScheduleTypeEditDlg::slotBtnCancel() { this->close(); } void ScheduleTypeEditDlg::slotBtnNext() { //先修改颜色 m_jobTypeNew.setColorInfo(m_colorSeletor->getSelectedColorInfo()); CScheduleOperation so; //更新或创建日程类型 so.updateJobType(m_jobTypeOld, m_jobTypeNew); } void ScheduleTypeEditDlg::slotEditingFinished() { //如果编辑结束后内容为空则提示 if (m_lineEdit->text().isEmpty()) { //名称为空,返回 m_lineEdit->showAlertMessage(tr("Enter a name please")); m_lineEdit->setAlert(true); this->getButton(1)->setEnabled(false); } } dde-calendar-5.9.1/calendar-client/src/dialog/scheduletypeeditdlg.h000066400000000000000000000051061423264401600253140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2019 UnionTech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 SCHEDULETYPEEDITDLG_H #define SCHEDULETYPEEDITDLG_H #include "colorseletorwidget.h" #include "src/scheduledatainfo.h" #include #include DWIDGET_USE_NAMESPACE class ScheduleTypeEditDlg : public DDialog { Q_OBJECT public: //新增 explicit ScheduleTypeEditDlg(QWidget *parent = nullptr); //iJobTypeNo==0 ? 新增 or 修改 explicit ScheduleTypeEditDlg(const JobTypeInfo &jobTypeOld, QWidget *parent = nullptr); private: enum DialogType { //对话框类型 DialogNewType, //新建日程类型 DialogEditType //编辑日程类型 }; signals: /** * @brief refreshInfo:刷新信息信号 */ void signalRefreshScheduleType(); public slots: //编辑器文本改变事件 void slotEditTextChanged(const QString &); /** * @brief slotFocusChanged 输入框焦点改变处理 * @param onFocus */ void slotFocusChanged(bool onFocus); /** * @brief slotBtnCancel 取消按钮 */ void slotBtnCancel(); /** * @brief slotBtnNext 保存按钮,检查输入,保存、更新日程类型信息 */ void slotBtnNext(); /** * @brief slotEditingFinished 编辑框编辑结束后处理 */ void slotEditingFinished(); private: void init(); void initView(); void initData(); private: JobTypeInfo m_jobTypeOld; //被修改的日程类型 JobTypeInfo m_jobTypeNew; //修改后的日程类型 QString m_title = ""; //弹窗名 DLineEdit *m_lineEdit = nullptr; //编辑器 QLabel *m_titleLabel = nullptr; //弹窗名控件 ColorSeletorWidget *m_colorSeletor = nullptr; //颜色选择器 DialogType m_dialogType; QString m_typeText; //输入框上一次输入后的文本 }; #endif // SCHEDULETYPEEDITDLG_H dde-calendar-5.9.1/calendar-client/src/main.cpp000066400000000000000000000107071423264401600213040ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "environments.h" #include "calendarmainwindow.h" #include "exportedinterface.h" #include "configsettings.h" #include "accessible/accessible.h" #include "src/DebugTimeManager.h" #include "tabletconfig.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE int main(int argc, char *argv[]) { //在root下或者非deepin/uos环境下运行不会发生异常,需要加上XDG_CURRENT_DESKTOP=Deepin环境变量; if (!QString(qgetenv("XDG_CURRENT_DESKTOP")).toLower().startsWith("deepin")) { setenv("XDG_CURRENT_DESKTOP", "Deepin", 1); } PERF_PRINT_BEGIN("POINT-01", ""); QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //适配deepin-turbo启动加速 DApplication *app = nullptr; #if(DTK_VERSION < DTK_VERSION_CHECK(5,4,0,0)) app = new DApplication(argc, argv); #else app = DApplication::globalApplication(argc, argv); #endif app->setAutoActivateWindows(true); //如果dtk版本为5.2.0.1以上则使用新的dtk接口 #if (DTK_VERSION > DTK_VERSION_CHECK(5, 2, 0, 1)) //设置为-1将永久等待 DGuiApplicationHelper::setSingleInstanceInterval(-1); #endif if (DGuiApplicationHelper::setSingleInstance(app->applicationName(), DGuiApplicationHelper::UserScope)) { app->setOrganizationName("deepin"); app->setApplicationName("dde-calendar"); app->loadTranslator(); app->setApplicationVersion(VERSION); // meta information that necessary to create the about dialog. app->setProductName(QApplication::translate("CalendarWindow", "Calendar")); QIcon t_icon = QIcon::fromTheme("dde-calendar"); app->setProductIcon(t_icon); app->setApplicationDescription(QApplication::translate("CalendarWindow", "Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. ")); app->setApplicationAcknowledgementPage("https://www.deepin.org/acknowledgments/dde-calendar"); //命令行参数 QCommandLineParser _commandLine; //建立命令行解析 _commandLine.addHelpOption(); //增加-h/-help解析命令 _commandLine.addVersionOption(); //增加-v 解析命令 _commandLine.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); _commandLine.process(*app); app->setAutoActivateWindows(true); bool isOk = false; int viewtype = CConfigSettings::getInstance()->value("base.view").toInt(&isOk); if (!isOk) viewtype = 2; DLogManager::registerConsoleAppender(); DLogManager::registerFileAppender(); //获取应用配置 DApplicationSettings applicationset(app); //为了与老版本配置兼容 Calendarmainwindow ww(viewtype - 1); ExportedInterface einterface(&ww); einterface.registerAction("CREATE", "create a new schedule"); einterface.registerAction("VIEW", "check a date on calendar"); einterface.registerAction("QUERY", "find a schedule information"); einterface.registerAction("CANCEL", "cancel a schedule"); QDBusConnection dbus = QDBusConnection::sessionBus(); //如果注册失败打印出失败信息 if (!dbus.registerService("com.deepin.Calendar")) { qWarning() << "registerService Error:" << dbus.lastError(); } if (!dbus.registerObject("/com/deepin/Calendar", &ww)) { qWarning() << "registerObject Error:" << dbus.lastError(); } ww.slotTheme(DGuiApplicationHelper::instance()->themeType()); ww.show(); PERF_PRINT_END("POINT-01"); return app->exec(); } PERF_PRINT_END("POINT-01"); return 0; } dde-calendar-5.9.1/calendar-client/src/scheduleTask/000077500000000000000000000000001423264401600222665ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/scheduleTask/calendarmanage.cpp000066400000000000000000000211301423264401600257110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "calendarmanage.h" #include "cschedulebasewidget.h" #include "scheduledatamanage.h" #include const QString DBus_TimeDate_Name = "com.deepin.daemon.Timedate"; const QString DBus_TimeDate_Path = "/com/deepin/daemon/Timedate"; CalendarManager *CalendarManager::m_scheduleManager = nullptr; CalendarManager *CalendarManager::getInstance() { ScheduleDataInfo::registerMetaType(); CaHuangLiDayInfo::registerMetaType(); if (m_scheduleManager == nullptr) { m_scheduleManager = new CalendarManager; qRegisterMetaType > >("QMap >"); qRegisterMetaType>("QMap"); qRegisterMetaType >("QMap"); qRegisterMetaType>("QMap"); } return m_scheduleManager; } void CalendarManager::releaseInstance() { if (m_scheduleManager != nullptr) { delete m_scheduleManager; m_scheduleManager = nullptr; } } /** * @brief CalendarManager::addShowWidget 添加显示界面 * @param showWidget */ void CalendarManager::addShowWidget(CScheduleBaseWidget *showWidget) { m_showWidget.append(showWidget); } /** * @brief CalendarManager::removeShowWidget 移除显示界面 * @param showWidget */ void CalendarManager::removeShowWidget(CScheduleBaseWidget *showWidget) { m_showWidget.removeOne(showWidget); } /** * @brief CalendarManager::getShowWidget 根据编号获取显示界面 * @param index * @return */ CScheduleBaseWidget *CalendarManager::getShowWidget(const int index) { if (index < 0 || index >= m_showWidget.size()) { return nullptr; } return m_showWidget.at(index); } /** * @brief CalendarManager::getShowWidgetSize 获取显示窗口的数目 * @return */ int CalendarManager::getShowWidgetSize() { return m_showWidget.size(); } /** * @brief CalendarManager::getCalendarDateDataManage 获取日历时间数据管理 * @return */ CalendarDateDataManager *CalendarManager::getCalendarDateDataManage() const { return m_dateManage; } /** * @brief CalendarManager::getScheduleTask 获取日程任务 * @return */ CScheduleTask *CalendarManager::getScheduleTask() const { return m_scheduleTask; } /** * @brief CalendarManager::getShowLunar 获取农历信息 * @return */ bool CalendarManager::getShowLunar() const { return m_showLunar; } CalendarManager::CalendarManager(QObject *parent) : QObject(parent) , m_dateManage(new CalendarDateDataManager) , m_timeDateDbus(new DaemonTimeDate(DBus_TimeDate_Name, DBus_TimeDate_Path, QDBusConnection::sessionBus(), this)) , m_scheduleTask(new CScheduleTask(this)) { initData(); initConnection(); //更新日程类型和颜色 updateJobTypeColor(); } CalendarManager::~CalendarManager() { delete m_dateManage; } /** * @brief CalendarManager::initData 初始化数据 */ void CalendarManager::initData() { //获取本地语言判断是否为中文 m_showLunar = QLocale::system().language() == QLocale::Chinese; //获取每周第一天 const int _weekFirstDay = m_timeDateDbus->weekBegins(); //获取时间日期格式 const int _timeFormat = m_timeDateDbus->shortTimeFormat(); const int _dateFormat = m_timeDateDbus->shortDateFormat(); //设置时间日期格式 m_dateManage->setTimeFormatChanged(_timeFormat); m_dateManage->setDateFormatChanged(_dateFormat); setWeekBegins(_weekFirstDay); } /** * @brief CalendarManager::initConnection 初始化关联 */ void CalendarManager::initConnection() { connect(m_timeDateDbus, &DaemonTimeDate::WeekBeginsChanged, this, &CalendarManager::WeekBeginsChanged); connect(m_timeDateDbus, &DaemonTimeDate::ShortTimeFormatChanged, this, &CalendarManager::slotTimeFormatChanged); connect(m_timeDateDbus, &DaemonTimeDate::ShortTimeFormatChanged, this, &CalendarManager::signalTimeFormatChanged); connect(m_timeDateDbus, &DaemonTimeDate::ShortDateFormatChanged, this, &CalendarManager::slotDateFormatChanged); connect(m_timeDateDbus, &DaemonTimeDate::ShortDateFormatChanged, this, &CalendarManager::signalDateFormatChanged); connect(m_scheduleTask, &CScheduleTask::signalUpdateScheduleShow, this, &CalendarManager::slotGetScheduleSuccess); connect(m_scheduleTask, &CScheduleTask::signalLunarGetSuccess, this, &CalendarManager::slotGetLunarSuccess); connect(m_scheduleTask, &CScheduleTask::jobsUpdate, this, &CalendarManager::slotJobsUpdated); connect(m_scheduleTask, &CScheduleTask::jobsTypeOrColorUpdate, this, &CalendarManager::slotUpdateJobTypeColor); connect(m_scheduleTask, &CScheduleTask::signalUpdateSearchSchedule, this, &CalendarManager::slotUpdateSearchSchedule); } /** * @brief CalendarManager::setWeekBegins 设置每周首日 * @param value */ void CalendarManager::setWeekBegins(const int value) { //将从TimeDate DBus获取到的数字与周对应 QMap WeekBeginMap{ {0, Qt::DayOfWeek::Monday}, {1, Qt::DayOfWeek::Tuesday}, {2, Qt::DayOfWeek::Wednesday}, {3, Qt::DayOfWeek::Thursday}, {4, Qt::DayOfWeek::Friday}, {5, Qt::DayOfWeek::Saturday}, {6, Qt::DayOfWeek::Sunday} }; if (value >= 0 && value < 7) { //设置每周第一天 m_dateManage->setWeekFirstDay(WeekBeginMap[value]); } else { qWarning() << "setWeekBegins err ,set value:" << value; } } /** * @brief CalendarManager::updateJobs 更新日程信息 */ void CalendarManager::updateJobs() { //更新dbus数据 ShowDateRange _showDateRange = m_dateManage->getShowDateRange(); //获取显示年份前后一个月数据 m_scheduleTask->updateInfo(_showDateRange.startDate.addDays(-42), _showDateRange.stopDate.addDays(42), m_showLunar); } void CalendarManager::updateJobTypeColor() { JobTypeInfoManager::instance()->updateInfo(); } /** * @brief CalendarManager::WeekBeginsChanged 关联dbus信号,每周首日改变事触发 * @param value */ void CalendarManager::WeekBeginsChanged(int value) { //设置每周首日 setWeekBegins(value); //更新显示界面 for (int i = 0; i < m_showWidget.size(); ++i) { m_showWidget.at(i)->updateData(); } //更新dbus数据 updateJobs(); } /** * @brief CalendarManager::slotGetScheduleSuccess 日程更新成功刷新界面 */ void CalendarManager::slotGetScheduleSuccess() { //更新显示界面 for (int i = 0; i < m_showWidget.size(); ++i) { m_showWidget.at(i)->updateShowSchedule(); } } /** * @brief CalendarManager::slotGetLunarSuccess 农历更新成功刷新界面 */ void CalendarManager::slotGetLunarSuccess() { //更新显示界面 for (int i = 0; i < m_showWidget.size(); ++i) { m_showWidget.at(i)->updateShowLunar(); } } /** * @brief CalendarManager::slotJobsUpdated 接收dbus信号更新日程日程信息 * @param Ids */ void CalendarManager::slotJobsUpdated() { updateJobs(); } void CalendarManager::slotUpdateSearchSchedule() { //更新显示界面 for (int i = 0; i < m_showWidget.size(); ++i) { m_showWidget.at(i)->updateSearchScheduleInfo(); } } void CalendarManager::slotUpdateJobTypeColor() { updateJobTypeColor(); } /** * @brief CalendarManager::slotTimeFormatChanged 更新时间显示格式 * @param value */ void CalendarManager::slotTimeFormatChanged(int value) { QString timeFormat; m_dateManage->setTimeFormatChanged(value); //更新显示界面 for (int i = 0; i < m_showWidget.size(); ++i) { m_showWidget.at(i)->updateData(); } } /** * @brief CalendarManager::slotDateFormatChanged 更新日期显示格式 * @param value */ void CalendarManager::slotDateFormatChanged(int value) { m_dateManage->setDateFormatChanged(value); } dde-calendar-5.9.1/calendar-client/src/scheduleTask/calendarmanage.h000066400000000000000000000061211423264401600253610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCHEDULEMANAGE_H #define CSCHEDULEMANAGE_H #include "calendardatedatamanage.h" #include "scheduletask.h" #include #include typedef com::deepin::daemon::Timedate DaemonTimeDate; class CScheduleBaseWidget; /** * @brief The CalendarManage class * 日历数据管理类 */ class CalendarManager : public QObject { Q_OBJECT public: static CalendarManager *getInstance(); static void releaseInstance(); //添加显示界面 void addShowWidget(CScheduleBaseWidget *showWidget); //移除显示界面 void removeShowWidget(CScheduleBaseWidget *showWidget); //根据编号获取显示界面 CScheduleBaseWidget *getShowWidget(const int index); //获取显示窗口的数目 int getShowWidgetSize(); //获取日历时间数据管理 CalendarDateDataManager *getCalendarDateDataManage() const; //获取日程任务 CScheduleTask *getScheduleTask() const; //获取是否显示农历信息 bool getShowLunar() const; signals: void signalTimeFormatChanged(int value); void signalDateFormatChanged(int value); private: explicit CalendarManager(QObject *parent = nullptr); ~CalendarManager(); private: //初始化数据 void initData(); //初始化关联 void initConnection(); //设置每周首日 void setWeekBegins(const int value); //更新日程信息 void updateJobs(); //更新日程类型颜色 void updateJobTypeColor(); public slots: //关联dbus信号,每周首日改变事触发 void WeekBeginsChanged(int value); //日程更新成功刷新界面 void slotGetScheduleSuccess(); //农历更新成功刷新界面 void slotGetLunarSuccess(); //接收dbus信号更新日程日程信息 void slotJobsUpdated(); // void slotUpdateSearchSchedule(); //更新日程类型颜色 void slotUpdateJobTypeColor(); void slotTimeFormatChanged(int value); void slotDateFormatChanged(int value); private: static CalendarManager *m_scheduleManager; CalendarDateDataManager *m_dateManage; DaemonTimeDate *m_timeDateDbus; CScheduleTask *m_scheduleTask; QList m_showWidget; bool m_showLunar; }; #endif // CSCHEDULEMANAGE_H dde-calendar-5.9.1/calendar-client/src/scheduleTask/cscheduledbus.cpp000066400000000000000000000416221423264401600256140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cscheduledbus.h" #include #include #include CScheduleDBus *CScheduleDBus::m_scheduleDBus = nullptr; CScheduleDBus::CScheduleDBus(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { //关联后端dbus触发信号 if (!QDBusConnection::sessionBus().connect(this->service(), this->path(), staticInterfaceName(), "", this, SLOT(propertyChanged(QDBusMessage)))) { qWarning() << "the connection was fail!"; }; } CScheduleDBus *CScheduleDBus::getInstance() { if (m_scheduleDBus == nullptr) { m_scheduleDBus = new CScheduleDBus(DBUS_NAME, DBUS_PATH, QDBusConnection::sessionBus()); } return m_scheduleDBus; } void CScheduleDBus::releaseInstance() { delete m_scheduleDBus; m_scheduleDBus = nullptr; } CScheduleDBus::~CScheduleDBus() { } /** * @brief CScheduleDBus::CreateJob 创建日程 * @param info 日程信息 * @return -1表示失败, 创建日程ID */ qint64 CScheduleDBus::CreateJob(const ScheduleDataInfo &info) { if (!info.isValid()) { qWarning() << "this is not a valid info :" << info << " createJob Err"; return -1; } QList argumentList; argumentList << QVariant::fromValue(info.ScheduleToJsonStr(info)); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("CreateJob"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "createJob err ," << reply; return -1; } QDBusReply id = reply; return id.value(); } /** * @brief CScheduleDBus::GetJobs 获取日程信息 * @param startDate 开始时间 * @param endDate 结束时间 * @return */ bool CScheduleDBus::GetJobs(const QDate &startDate, const QDate &endDate, QMap > &info) { QList argumentList; argumentList << QVariant::fromValue(static_cast(startDate.year())) << QVariant::fromValue(static_cast(startDate.month())) << QVariant::fromValue(static_cast(startDate.day())); argumentList << QVariant::fromValue(static_cast(endDate.year())) << QVariant::fromValue(static_cast(endDate.month())) << QVariant::fromValue(static_cast(endDate.day())); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("GetJobs"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetJobs err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; info = ScheduleDataInfo::StrJsonToRangeInfo(jobs.value()); return true; } /** * @brief CScheduleDBus::GetJob 根据日程id获取对应日程 * @param jobId 日程id * @param out 获取到的日程信息 * @return */ bool CScheduleDBus::GetJob(qint64 jobId, ScheduleDataInfo &out) { QList argumentList; argumentList << QVariant::fromValue(jobId); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("GetJob"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetJob err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; out = ScheduleDataInfo::JsonStrToSchedule(jobs.value()); return true; } /** * @brief CScheduleDBus::UpdateJob 更新日程 * @param info 需要更新的日程信息 * @return */ bool CScheduleDBus::UpdateJob(const ScheduleDataInfo &info) { QList argumentList; argumentList << QVariant::fromValue(ScheduleDataInfo::ScheduleToJsonStr(info)); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("UpdateJob"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "UpdateJob err ," << reply; return false; } return true; } /** * @brief CScheduleDBus::DeleteJob 根据日程id删除日程 * @param jobId 需要删除的日程id * @return */ bool CScheduleDBus::DeleteJob(qint64 jobId) { QList argumentList; argumentList << QVariant::fromValue(jobId); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("DeleteJob"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "DeleteJob err ," << reply; return false; } return true; } /** * @brief CScheduleDBus::QueryJobs 查询一段时间内某日程 * @param key 需要查询日程的关键字 * @param starttime 开始时间 * @param endtime 结束时间 * @param out 查询到的日程 * @return */ bool CScheduleDBus::QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QMap > &out) { //若时间无效则退出查询 if (starttime.isNull() || endtime.isNull()) { qWarning() << "starttime or endtime is not Valid"; return false; } QJsonObject qjson; qjson.insert("Key", key); qjson.insert("Start", ScheduleDataInfo::DateTimeToStringDate(starttime)); qjson.insert("End", ScheduleDataInfo::DateTimeToStringDate(endtime)); // 构建 JSON 文档 QJsonDocument qdocument; qdocument.setObject(qjson); QByteArray qbyteArray = qdocument.toJson(QJsonDocument::Compact); QString strJson(qbyteArray); QList argumentList; argumentList << QVariant::fromValue(strJson); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("QueryJobs"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "QueryJobs err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; out = ScheduleDataInfo::StrJsonToRangeInfo(jobs.value()); return true; } /** * @brief CScheduleDBus::QueryJobs 查询日程 * @param key * @param starttime * @param endtime * @param outStr * @return */ bool CScheduleDBus::QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QString &outStr) { outStr = ""; //若时间无效则退出查询 if (starttime.isNull() || endtime.isNull()) { qWarning() << "starttime or endtime is not Valid"; return false; } QJsonObject qjson; qjson.insert("Key", key); qjson.insert("Start", ScheduleDataInfo::DateTimeToStringDate(starttime)); qjson.insert("End", ScheduleDataInfo::DateTimeToStringDate(endtime)); // 构建 JSON 文档 QJsonDocument qdocument; qdocument.setObject(qjson); QByteArray qbyteArray = qdocument.toJson(QJsonDocument::Compact); QString strJson(qbyteArray); QList argumentList; argumentList << QVariant::fromValue(strJson); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("QueryJobs"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "QueryJobs err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; outStr = jobs.value(); return true; } /** * @brief CScheduleDBus::GetFestivalMonth 获取班休信息 * @param year 年 * @param month 月 * @return */ bool CScheduleDBus::GetFestivalMonth(quint32 year, quint32 month, QVector &out) { QList argumentList; argumentList << QVariant::fromValue(year) << QVariant::fromValue(month) ; QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("GetFestivalMonth"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetFestivalMonth err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonArray rootarry = jsonDoc.array(); for (int i = 0; i < rootarry.size(); i++) { QJsonObject subObj = rootarry.at(i).toObject(); FestivalInfo festivalInfoday; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (subObj.contains("id")) { festivalInfoday.ID = subObj.value("id").toString(); } if (subObj.contains("name")) { festivalInfoday.FestivalName = subObj.value("name").toString(); } if (subObj.contains("description")) { festivalInfoday.description = subObj.value("description").toString(); } if (subObj.contains("rest")) { festivalInfoday.Rest = subObj.value("rest").toString(); } if (subObj.contains("month")) { festivalInfoday.month = subObj.value("month").toInt(); } if (subObj.contains("list")) { QJsonArray sublistArray = subObj.value("list").toArray(); for (int j = 0; j < sublistArray.size(); j++) { QJsonObject hsubObj = sublistArray.at(j).toObject(); HolidayInfo dayinfo; if (hsubObj.contains("status")) { dayinfo.status = static_cast(hsubObj.value("status").toInt()); } if (hsubObj.contains("date")) { dayinfo.date = QDate::fromString(hsubObj.value("date").toString(), "yyyy-M-d"); } festivalInfoday.listHoliday.append(dayinfo); } } festivalInfoday.year = static_cast(year); out.append(festivalInfoday); } return true; } /** * @brief CScheduleDBus::GetHuangLiDay 获取某天的农历信息 * @param getDay * @param out * @return */ bool CScheduleDBus::GetHuangLiDay(const QDate &getDay, CaHuangLiDayInfo &out) { QList argumentList; argumentList << QVariant::fromValue(static_cast(getDay.year())) << QVariant::fromValue(static_cast(getDay.month())) << QVariant::fromValue(static_cast(getDay.day())); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("GetHuangLiDay"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetHuangLiDay err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; bool _isVoild; out.strJsonToInfo(jobs.value(), _isVoild); return _isVoild; } /** * @brief CScheduleDBus::GetHuangLiMonth 获取某月的农历信息 * @param year * @param month * @param fill * @return */ bool CScheduleDBus::GetHuangLiMonth(const quint32 year, const quint32 month, bool &fill, CaHuangLiMonthInfo &out) { QList argumentList; argumentList << QVariant::fromValue(year) << QVariant::fromValue(month) << QVariant::fromValue(fill); QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("GetHuangLiMonth"), argumentList); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetHuangLiMonth err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; bool _infoIsVaild; out.strJsonToInfo(jobs.value(), _infoIsVaild); return _infoIsVaild; } QString CScheduleDBus::getHuangLiShortName(const QDate &date) { CaHuangLiDayInfo info; if (GetHuangLiDay(date, info)) { return info.mLunarMonthName + info.mLunarDayName; } return ""; } void CScheduleDBus::propertyChanged(const QDBusMessage &msg) { if (msg.type() == QDBusMessage::SignalMessage && msg.path() == this->path() && msg.interface() == this->interface()) { if (msg.member() == "JobsUpdated") { //日程更新信号 emit jobsUpdate(); } if (msg.member() == "JobTypeOrColorUpdated") { //日程类型或颜色更新 emit jobsTypeOrColorUpdate(); } } } //获取日程类型信息列表 bool CScheduleDBus::GetJobTypeList(QString &strJson) { QDBusPendingCall pCall = asyncCall(QStringLiteral("GetJobTypeList")); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetJobTypeList err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; strJson = jobs.value(); return true; } //新增日程类型信息 bool CScheduleDBus::AddJobType(QString strJson) { QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("CreateJobType"), {QVariant(strJson)}); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "AddJobType err ," << reply << " strJson:" << strJson; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; return jobs.value(); } //更新日程类型信息 bool CScheduleDBus::UpdateJobType(QString strJson) { QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("UpdateJobType"), {QVariant(strJson)}); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "UpdateJobType err ," << reply << " strJson:" << strJson; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; return jobs.value(); } //删除日程类型信息 bool CScheduleDBus::DeleteJobType(int jobTypeNo) { QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("DeleteJobType"), {QVariant(jobTypeNo)}); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "DeleteJobType err ," << reply << " jobTypeNo:" << jobTypeNo; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; return jobs.value(); } /** * @brief isJobTypeUsed 获取日程类型是否被使用 * return bool 返回是否被使用 */ bool CScheduleDBus::isJobTypeUsed(int jobTypeNo) { QDBusPendingCall pCall = asyncCallWithArgumentList(QStringLiteral("isJobTypeUsed"), {QVariant(jobTypeNo)}); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "isJobTypeUsed err ," << reply << " jobTypeNo:" << jobTypeNo; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; return jobs.value(); } //获取颜色信息列表 bool CScheduleDBus::GetJobTypeColorList(QString &strJson) { QDBusPendingCall pCall = asyncCall(QStringLiteral("GetColorTypeList")); pCall.waitForFinished(); QDBusMessage reply = pCall.reply(); if (reply.type() != QDBusMessage::ReplyMessage) { qWarning() << "GetColorTypeList err ," << reply; return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; strJson = jobs.value(); return true; } dde-calendar-5.9.1/calendar-client/src/scheduleTask/cscheduledbus.h000066400000000000000000000066171423264401600252660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCHEDULEDBUS_H #define CSCHEDULEDBUS_H #include "src/scheduledatainfo.h" #include "src/dbusdatastruct.h" #include "src/lunardatastruct.h" #include #include #include #define DBUS_INTEERFACENAME "com.deepin.dataserver.Calendar" #define DBUS_NAME "com.deepin.dataserver.Calendar" #define DBUS_PATH "/com/deepin/dataserver/Calendar" class CScheduleDBus : public QDBusAbstractInterface { Q_OBJECT public: static CScheduleDBus *getInstance(); static void releaseInstance(); ~CScheduleDBus(); public: static inline const char *staticInterfaceName() { return DBUS_INTEERFACENAME; } public: //创建日程 qint64 CreateJob(const ScheduleDataInfo &info); //根据开始结束日期获取日程 bool GetJobs(const QDate &startDate, const QDate &endDate, QMap > &info); //根据日程id 获取日程 bool GetJob(qint64 jobId, ScheduleDataInfo &out); //更新日程信息 bool UpdateJob(const ScheduleDataInfo &info); //删除日程 bool DeleteJob(qint64 jobId); //查询日程 bool QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QMap > &out); //查询日程 bool QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QString &outStr); //获取节假日班休信息 bool GetFestivalMonth(quint32 year, quint32 month, QVector &out); //按天获取农历信息 bool GetHuangLiDay(const QDate &getDay, CaHuangLiDayInfo &out); //按月获取农历信息 bool GetHuangLiMonth(const quint32 year, const quint32 month, bool &fill, CaHuangLiMonthInfo &out); //获取当天的农历月日期和日日期名 QString getHuangLiShortName(const QDate &date); //获取日程类型信息列表 bool GetJobTypeList(QString &strJson); //新增日程类型信息 bool AddJobType(QString strJson); //更新日程类型信息 bool UpdateJobType(QString strJson); //删除日程类型信息 bool DeleteJobType(int jobTypeNo); //获取日程类型是否被使用 bool isJobTypeUsed(int jobTypeNo); //获取颜色信息列表 bool GetJobTypeColorList(QString &strJson); signals: void jobsUpdate(); //日程类型或颜色更新 void jobsTypeOrColorUpdate(); public slots: void propertyChanged(const QDBusMessage &msg); private: explicit CScheduleDBus(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr); static CScheduleDBus *m_scheduleDBus; }; #endif // CSCHEDULEDBUS_H dde-calendar-5.9.1/calendar-client/src/scheduleTask/cscheduleoperation.cpp000066400000000000000000000532011423264401600266530ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cscheduleoperation.h" #include "cscheduledbus.h" #include "schedulectrldlg.h" #include "configsettings.h" #include "dcalendarddialog.h" #include "cdynamicicon.h" CScheduleOperation::CScheduleOperation(QWidget *parent) : QObject(parent) , m_DBusManager(CScheduleDBus::getInstance()) , m_widget(parent) { } /** * @brief CScheduleOperation::createSchedule 创建日程 * @param scheduleInfo */ bool CScheduleOperation::createSchedule(const ScheduleDataInfo &scheduleInfo) { //如果为农历且重复类型为每年 if (scheduleInfo.getIsLunar() && RepetitionRule::RRule_EVEYEAR == scheduleInfo.getRepetitionRule().getRuleId()) { lunarMessageDialogShow(scheduleInfo); } return m_DBusManager->CreateJob(scheduleInfo); } /** * @brief CScheduleOperation::changeSchedule 修改日程 * @param newInfo * @param oldInfo */ bool CScheduleOperation::changeSchedule(const ScheduleDataInfo &newInfo, const ScheduleDataInfo &oldInfo) { bool _result {false}; if (newInfo.getRepetitionRule().getRuleId() == 0 && newInfo.getRepetitionRule().getRuleId() == oldInfo.getRepetitionRule().getRuleId()) { //如果为普通日程且没有修改重复类型则更新日程 _result = m_DBusManager->UpdateJob(newInfo); } else { //如果切换了全天状态则提醒是否修改全部 if (newInfo.getAllDay() != oldInfo.getAllDay()) { CScheduleCtrlDlg msgBox(m_widget); msgBox.setText( tr("All occurrences of a repeating event must have the same all-day status.")); msgBox.setInformativeText(tr("Do you want to change all occurrences?")); msgBox.addPushButton(tr("Cancel", "button"), true); msgBox.addWaringButton(tr("Change All"), true); msgBox.exec(); if (msgBox.clickButton() == 0) { _result = false; } else if (msgBox.clickButton() == 1) { //更新日程 showLunarMessageDialog(newInfo, oldInfo); _result = m_DBusManager->UpdateJob(newInfo); } } else if (oldInfo.getRepetitionRule().getRuleId() != newInfo.getRepetitionRule().getRuleId()) { //修改重复规则 CScheduleCtrlDlg msgBox(m_widget); msgBox.setText(tr("You are changing the repeating rule of this event.")); msgBox.setInformativeText(tr("Do you want to change all occurrences?")); msgBox.addPushButton(tr("Cancel", "button"), true); msgBox.addWaringButton(tr("Change All"), true); msgBox.exec(); if (msgBox.clickButton() == 0) { _result = false; } else if (msgBox.clickButton() == 1) { //更新日程 showLunarMessageDialog(newInfo, oldInfo); _result = m_DBusManager->UpdateJob(newInfo); } } else { _result = changeRecurInfo(newInfo, oldInfo); } } return _result; } /** * @brief CScheduleOperation::deleteSchedule 删除日程 * @param scheduleInfo */ bool CScheduleOperation::deleteSchedule(const ScheduleDataInfo &scheduleInfo) { bool _restuleBool {false}; //如果为普通日程 if (scheduleInfo.getRepetitionRule().getRuleId() == 0) { CScheduleCtrlDlg msgBox(m_widget); msgBox.setText(tr("You are deleting an event.")); msgBox.setInformativeText(tr("Are you sure you want to delete this event?")); msgBox.addPushButton(tr("Cancel", "button"), true); msgBox.addWaringButton(tr("Delete", "button"), true); msgBox.exec(); if (msgBox.clickButton() == 0) { return false; } else if (msgBox.clickButton() == 1) { m_DBusManager->DeleteJob(scheduleInfo.getID()); _restuleBool = true; } } else { //如果为重复日程的第一个 if (scheduleInfo.getRecurID() == 0) { CScheduleCtrlDlg msgBox(m_widget); msgBox.setText(tr("You are deleting an event.")); msgBox.setInformativeText(tr("Do you want to delete all occurrences of this event, or only the selected occurrence?")); msgBox.addPushButton(tr("Cancel", "button")); msgBox.addPushButton(tr("Delete All")); msgBox.addWaringButton(tr("Delete Only This Event")); msgBox.exec(); if (msgBox.clickButton() == 0) { return false; } else if (msgBox.clickButton() == 1) { //删除所有日程 m_DBusManager->DeleteJob(scheduleInfo.getID()); _restuleBool = true; } else if (msgBox.clickButton() == 2) { //仅删除此日程 ScheduleDataInfo newschedule; m_DBusManager->GetJob(scheduleInfo.getID(), newschedule); newschedule.getIgnoreTime().append(scheduleInfo.getBeginDateTime()); m_DBusManager->UpdateJob(newschedule); _restuleBool = true; } } else { CScheduleCtrlDlg msgBox(m_widget); msgBox.setText(tr("You are deleting an event.")); msgBox.setInformativeText(tr("Do you want to delete this and all future occurrences of this event, or only the selected occurrence?")); msgBox.addPushButton(tr("Cancel", "button")); msgBox.addPushButton(tr("Delete All Future Events")); msgBox.addWaringButton(tr("Delete Only This Event")); msgBox.exec(); if (msgBox.clickButton() == 0) { return false; } else if (msgBox.clickButton() == 1) { //删除选中日程及之后的日程 ScheduleDataInfo newschedule; //获取原始日程信息 m_DBusManager->GetJob(scheduleInfo.getID(), newschedule); //修改重复规则 changeRepetitionRule(newschedule, scheduleInfo); //如果修改后的日程为普通日程且忽略列表内包含日程开始时间则删除该日程 if (newschedule.getRepetitionRule().getRuleId() == RepetitionRule::RRule_NONE && newschedule.getIgnoreTime().contains(newschedule.getBeginDateTime())) { //删除日程 m_DBusManager->DeleteJob(newschedule.getID()); } else { //更新日程 m_DBusManager->UpdateJob(newschedule); } _restuleBool = true; } else if (msgBox.clickButton() == 2) { ScheduleDataInfo newschedule; m_DBusManager->GetJob(scheduleInfo.getID(), newschedule); newschedule.getIgnoreTime().append(scheduleInfo.getBeginDateTime()); m_DBusManager->UpdateJob(newschedule); _restuleBool = true; } } } return _restuleBool; } QString CScheduleOperation::queryScheduleStr(const QString &key, const QDateTime &startTime, const QDateTime &endTime) { QString _resultStr; m_DBusManager->QueryJobs(key, startTime, endTime, _resultStr); return _resultStr; } bool CScheduleOperation::queryScheduleInfo(const QString &key, const QDateTime &startTime, const QDateTime &endTime, QMap > &info) { return m_DBusManager->QueryJobs(key, startTime, endTime, info); } /** * @brief CScheduleOperation::deleteOnlyInfo 删除日程 仅删除此日程 不弹框提醒 * @param scheduleInfo */ void CScheduleOperation::deleteOnlyInfo(const ScheduleDataInfo &scheduleInfo) { //如果为纪念日或节日则不处理 if (scheduleInfo.getType() == 4) return; //如果为普通日程则删除 if (scheduleInfo.getRepetitionRule().getRuleId() == RepetitionRule::RRule_NONE) { m_DBusManager->DeleteJob(scheduleInfo.getID()); } else { //仅删除此日程 ScheduleDataInfo newschedule; m_DBusManager->GetJob(scheduleInfo.getID(), newschedule); newschedule.getIgnoreTime().append(scheduleInfo.getBeginDateTime()); m_DBusManager->UpdateJob(newschedule); } } /** * @brief CScheduleOperation::ChangeRecurInfo 修改重复日程 * @param newinfo * @param oldinfo */ bool CScheduleOperation::changeRecurInfo(const ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo) { bool _result{false}; //如果为重复类型第一个 if (newinfo.getRecurID() == 0) { CScheduleCtrlDlg msgBox(m_widget); msgBox.setText(tr("You are changing a repeating event.")); msgBox.setInformativeText( tr("Do you want to change only this occurrence of the event, or all " "occurrences?")); msgBox.addPushButton(tr("Cancel", "button")); msgBox.addPushButton(tr("All")); msgBox.addsuggestButton(tr("Only This Event")); msgBox.exec(); if (msgBox.clickButton() == 0) { _result = false; } else if (msgBox.clickButton() == 1) { //修改所有日程 ScheduleDataInfo _scheduleDataInfo = newinfo; RepetitionRule _rule = _scheduleDataInfo.getRepetitionRule(); //如果此重复日程只有它一个则将修改为普通日程 if ((_rule.getRuleType() == 1 && _rule.getEndCount() < 1) || (_rule.getRuleType() == 2 && _scheduleDataInfo.getBeginDateTime().daysTo(_rule.getEndDate()) < 0)) { _rule.setRuleId(RepetitionRule::RRuleID::RRule_NONE); _rule.setRuleType(RepetitionRule::RRuleEndType::RRuleType_NEVER); } _scheduleDataInfo.setRepetitionRule(_rule); //TODO 清空忽略日程 _scheduleDataInfo.getIgnoreTime().clear(); //更新日程 showLunarMessageDialog(_scheduleDataInfo, oldinfo); _result = m_DBusManager->UpdateJob(_scheduleDataInfo); } else if (msgBox.clickButton() == 2) { //仅修改此日程 _result = changeOnlyInfo(newinfo, oldinfo); } } else { CScheduleCtrlDlg msgBox(m_widget); msgBox.setText(tr("You are changing a repeating event.")); msgBox.setInformativeText( tr("Do you want to change only this occurrence of the event, or this and " "all future occurrences?")); msgBox.addPushButton(tr("Cancel", "button")); msgBox.addPushButton(tr("All Future Events")); msgBox.addsuggestButton(tr("Only This Event")); msgBox.exec(); if (msgBox.clickButton() == 0) { _result = false; } else if (msgBox.clickButton() == 1) { // 根据id获取日程并修改 ScheduleDataInfo updatescheduleData; // 获取原始数据 m_DBusManager->GetJob(oldinfo.getID(), updatescheduleData); //修改重复规则 changeRepetitionRule(updatescheduleData, newinfo); //如果修改后的日程为普通日程且忽略列表内包含日程开始时间则删除该日程 if (updatescheduleData.getRepetitionRule().getRuleId() == RepetitionRule::RRule_NONE && updatescheduleData.getIgnoreTime().contains(updatescheduleData.getBeginDateTime())) { //删除日程 m_DBusManager->DeleteJob(updatescheduleData.getID()); } else { //更新日程 m_DBusManager->UpdateJob(updatescheduleData); } //创建日程 ScheduleDataInfo newschedule = newinfo; //获取重复规则 RepetitionRule _rule = newschedule.getRepetitionRule(); if (_rule.getRuleType() == 1) { //更新重复规则 _rule.setEndCount(qAbs(_rule.getEndCount() - newschedule.getRecurID())); if (_rule.getEndCount() < 1) { _rule.setRuleId(RepetitionRule::RRuleID::RRule_NONE); _rule.setRuleType(RepetitionRule::RRuleEndType::RRuleType_NEVER); } } newschedule.setRecurID(0); newschedule.setID(0); newschedule.setRepetitionRule(_rule); //创建新日程 //如果为农历且重复类型为每年 if (newschedule.getIsLunar() && RepetitionRule::RRule_EVEYEAR == newschedule.getRepetitionRule().getRuleId()) { lunarMessageDialogShow(newschedule); } _result = m_DBusManager->CreateJob(newschedule); } else if (msgBox.clickButton() == 2) { _result = changeOnlyInfo(newinfo, oldinfo); } } return _result; } /** * @brief CScheduleOperation::ChangeOnlyInfo 修改重复日程,仅修改此日程 * @param newinfo * @param oldinfo */ bool CScheduleOperation::changeOnlyInfo(const ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo) { ScheduleDataInfo newschedule = newinfo; newschedule.getRepetitionRule().clear(); newschedule.setRecurID(0); newschedule.setID(0); newschedule.getIgnoreTime().clear(); //创建日程 m_DBusManager->CreateJob(newschedule); ScheduleDataInfo updatescheduleData; //获取原始信息 m_DBusManager->GetJob(oldinfo.getID(), updatescheduleData); updatescheduleData.getIgnoreTime().append(oldinfo.getBeginDateTime()); //更新原始信息 return m_DBusManager->UpdateJob(updatescheduleData); } /** * @brief CScheduleOperation::changeRepetitionRule 修改日程重复规则 * @param newinfo * @param oldinfo */ void CScheduleOperation::changeRepetitionRule(ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo) { switch (newinfo.getRepetitionRule().getRuleType()) { case RepetitionRule::RRuleType_FREQ: { //如果为结束与次数则修改结束次数 newinfo.getRepetitionRule().setEndCount(oldinfo.getRecurID() - 1); //结束次数为0表示不重复,设置为普通日程 if (newinfo.getRepetitionRule().getEndCount() < 1) { newinfo.getRepetitionRule().setRuleId(RepetitionRule::RRuleID::RRule_NONE); newinfo.getRepetitionRule().setRuleType(RepetitionRule::RRuleEndType::RRuleType_NEVER); } break; } default: { //如果该日程结束类型为永不和结束于日期则修改结束日期 newinfo.getRepetitionRule().setRuleType(RepetitionRule::RRuleType_DATE); //设置结束日期,默认为0点 QDateTime endDate(QDate(oldinfo.getBeginDateTime().date().addDays(-1)), QTime()); newinfo.getRepetitionRule().setEndDate(endDate); break; } } } /** * @brief CScheduleOperation::createJobType 创建日程类型 * @param newinfo * @param oldinfo */ bool CScheduleOperation::createJobType(JobTypeInfo &jobTypeInfo)//新增时,颜色可能是:自定义/默认类型。以“自定义颜色编码默认为0”来区分. { //创建日程 QString strJson = ""; int colorTypeNo = jobTypeInfo.getColorInfo().getTypeNo(); //以“自定义颜色编码默认为0”来区分. if (0 == colorTypeNo) { colorTypeNo = JobTypeInfoManager::instance()->getNextColorTypeNo(); jobTypeInfo.getColorInfo().setTypeNo(colorTypeNo); //保存新选择的颜色值 CConfigSettings::getInstance()->setOption("LastUserColor", jobTypeInfo.getColorInfo().getColorHex()); } //保存选择的颜色编号,只记录系统默认颜色的编号 if (jobTypeInfo.getColorInfo().getTypeNo() < 10) CConfigSettings::getInstance()->setOption("LastSysColorTypeNo", jobTypeInfo.getColorInfo().getTypeNo()); if (0 == jobTypeInfo.getJobTypeNo()) { jobTypeInfo.setJobTypeNo(JobTypeInfoManager::instance()->getNextTypeNo()); jobTypeInfo.getColorInfo().setTypeNo(colorTypeNo); } jobTypeInfo.setAuthority(7);//自定义日程类型默认权限为7 JobTypeInfo::jobTypeInfoToJsonStr(jobTypeInfo, strJson); return m_DBusManager->AddJobType(strJson);// no:10,hex:#123 } /** * @brief CScheduleOperation::updateJobType 修改日程类型 * @param oldJobTypeInfo * @param newJobTypeInfo * 只能更新名称和颜色 * 颜色可能是:自定义-自定义、自定义-默认类型、默认类型-默认类型 */ bool CScheduleOperation::updateJobType(JobTypeInfo &oldJobTypeInfo, JobTypeInfo &newJobTypeInfo) { //如果oldJobTypeInfo中typeno为0,则是新增 if (0 == oldJobTypeInfo.getJobTypeNo()) { return createJobType(newJobTypeInfo); } bool bRet = true; //如果修改的日程类型没有改变则不处理 if (oldJobTypeInfo == newJobTypeInfo) { return bRet; } //更新日程类型 newJobTypeInfo.setJobTypeNo(oldJobTypeInfo.getJobTypeNo()); //以“自定义颜色编码默认为0”来区分. if (0 == newJobTypeInfo.getColorTypeNo()) { //配置新颜色编号 if (oldJobTypeInfo.getColorTypeNo() > 9) { newJobTypeInfo.getColorInfo().setTypeNo(oldJobTypeInfo.getColorTypeNo()); } else { newJobTypeInfo.getColorInfo().setTypeNo(JobTypeInfoManager::instance()->getNextColorTypeNo()); } //保存新选择的颜色值 CConfigSettings::getInstance()->setOption("LastUserColor", newJobTypeInfo.getColorInfo().getColorHex()); } bRet = updateJobType(newJobTypeInfo); //如果更新成功,且是系统默认颜色,缓存编号,只记录系统默认颜色的编号 if (bRet && newJobTypeInfo.getColorInfo().getTypeNo() < 10) { CConfigSettings::getInstance()->setOption("LastSysColorTypeNo", newJobTypeInfo.getColorInfo().getTypeNo()); } return bRet; } /** * @brief CScheduleOperation::updateJobType 修改日程类型 * @param jobTypeInfo * 只能更新名称和颜色编号 */ bool CScheduleOperation::updateJobType(const JobTypeInfo &jobTypeInfo) { //修改日程 QString strJson = ""; JobTypeInfo::jobTypeInfoToJsonStr(jobTypeInfo, strJson); return m_DBusManager->UpdateJobType(strJson); } void CScheduleOperation::lunarMessageDialogShow(const ScheduleDataInfo &newinfo) { //如果该日程为闰月日程,因为对应的闰月需要间隔好多年,所以添加对应的提示信息 CaHuangLiDayInfo huangLiInfo; CScheduleDBus::getInstance()->GetHuangLiDay(newinfo.getBeginDateTime().date(), huangLiInfo); if (huangLiInfo.mLunarMonthName.contains("闰")) { DCalendarDDialog prompt(m_widget); prompt.setIcon(QIcon(CDynamicIcon::getInstance()->getPixmap())); prompt.setDisplayPosition(DAbstractDialog::Center); prompt.setMessage(tr("You have selected a leap month, and will be reminded according to the rules of the lunar calendar.")); prompt.addButton(tr("OK", "button"), true, DDialog::ButtonNormal); if (m_widget) { //获取父窗口的中心坐标 const QPoint global = m_widget->mapToGlobal(m_widget->rect().center()); //相对父窗口居中显示 prompt.move(global.x() - prompt.width() / 2, global.y() - prompt.height() / 2); } prompt.exec(); } } void CScheduleOperation::showLunarMessageDialog(const ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo) { //在阴历每年重复情况下如果修改了开始时间或重复规则 if (newinfo.getIsLunar() && RepetitionRule::RRule_EVEYEAR == newinfo.getRepetitionRule().getRuleId()) { if (oldinfo.getBeginDateTime().date() != newinfo.getBeginDateTime().date() || oldinfo.getRepetitionRule().getRuleId() != newinfo.getRepetitionRule().getRuleId() || oldinfo.getIsLunar() != newinfo.getIsLunar()) { //判断是否为闰月 lunarMessageDialogShow(newinfo); } } } /** * @brief CScheduleOperation::getJobTypeList 获取日程类型列表 * @param lstJobTypeInfo * @return 操作结果 */ bool CScheduleOperation::getJobTypeList(QList &lstJobTypeInfo) { QString strJson; if (!m_DBusManager->GetJobTypeList(strJson)) { return false; } JobTypeInfo::jsonStrToJobTypeInfoList(strJson, lstJobTypeInfo); return true; } /** * @brief CScheduleOperation::deleteJobType 删除日程类型 * @param iJobTypeNo * @return 操作结果 */ bool CScheduleOperation::deleteJobType(const int iJobTypeNo) { //删除日程类型 return m_DBusManager->DeleteJobType(iJobTypeNo); } /** * @brief CScheduleOperation::isJobTypeUsed 获取日程类型是否被使用 * @param iJobTypeNo * @return 操作结果 */ bool CScheduleOperation::isJobTypeUsed(const int iJobTypeNo) { //获取日程类型是否被使用 return m_DBusManager->isJobTypeUsed(iJobTypeNo); } /** * @brief CScheduleOperation::getColorTypeList 获取颜色类型列表 * @param lstColorTypeInfo * @return 操作结果 */ bool CScheduleOperation::getColorTypeList(QList &lstColorTypeInfo) { QString strJson; if (!m_DBusManager->GetJobTypeColorList(strJson)) { return false; } return JobTypeInfo::jsonStrToColorTypeInfoList(strJson, lstColorTypeInfo); } dde-calendar-5.9.1/calendar-client/src/scheduleTask/cscheduleoperation.h000066400000000000000000000071371423264401600263270ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCHEDULEOPERATION_H #define CSCHEDULEOPERATION_H #include "scheduledatamanage.h" #include #include class CScheduleDBus; /** * @brief The CScheduleOperation class * 日程操作类,创建,修改和删除日程 */ class CScheduleOperation : public QObject { Q_OBJECT public: explicit CScheduleOperation(QWidget *parent = nullptr); //创建日程 bool createSchedule(const ScheduleDataInfo &scheduleInfo); //修改日程 bool changeSchedule(const ScheduleDataInfo &newInfo, const ScheduleDataInfo &oldInfo); //删除日程 false :取消删除 true: 确定删除 bool deleteSchedule(const ScheduleDataInfo &scheduleInfo); //查询日程 QString queryScheduleStr(const QString &key, const QDateTime &startTime, const QDateTime &endTime); //获取查询日程 bool queryScheduleInfo(const QString &key, const QDateTime &startTime, const QDateTime &endTime, QMap > &info); //删除日程 仅删除此日程 不弹框提醒 void deleteOnlyInfo(const ScheduleDataInfo &scheduleInfo); //创建日程类型 bool createJobType(JobTypeInfo &jobTypeInfo);//新增时,颜色可能是:自定义/默认类型。以“自定义颜色编码默认为0”来区分. //更新日程类型 //更新名称和颜色,颜色可能是:自定义-自定义、自定义-默认类型、默认类型-默认类型 bool updateJobType(JobTypeInfo &oldJobTypeInfo, JobTypeInfo &newJobTypeInfo); //获取日程类型列表 bool getJobTypeList(QList &lstJobTypeInfo); //删除日程类型 bool deleteJobType(const int iJobTypeNo); //获取日程类型是否被使用 bool isJobTypeUsed(const int iJobTypeNo); //获取颜色类型列表 bool getColorTypeList(QList &lstColorTypeInfo); private: //修改重复日程 bool changeRecurInfo(const ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo); //修改重复日程,仅修改此日程 bool changeOnlyInfo(const ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo); //修改重复规则 void changeRepetitionRule(ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo); //更新日程类型(这里的接口是私有的,供updateJobType同名接口调用,在另一接口中做修改的逻辑,这里实现功能) bool updateJobType(const JobTypeInfo &jobTypeInfo); //农历每年闰月提示信息 void lunarMessageDialogShow(const ScheduleDataInfo &newinfo); //根据新旧日程信息判断是否提示 void showLunarMessageDialog(const ScheduleDataInfo &newinfo, const ScheduleDataInfo &oldinfo); signals: public slots: private: CScheduleDBus *m_DBusManager = nullptr; QWidget *m_widget; }; #endif // CSCHEDULEOPERATION_H dde-calendar-5.9.1/calendar-client/src/scheduleTask/scheduletask.cpp000066400000000000000000000263101423264401600254530ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "scheduletask.h" #include CScheduleTask::CScheduleTask(QObject *parent) : QObject(parent) { m_DBusManager = CScheduleDBus::getInstance(); m_work = new DataGetWork(m_DBusManager); connect(m_work, &DataGetWork::signalGetSchedule, this, &CScheduleTask::slotGetSchedule); connect(m_work, &DataGetWork::signalGetLunar, this, &CScheduleTask::slotGetLunar); connect(m_DBusManager, &CScheduleDBus::jobsUpdate, this, &CScheduleTask::jobsUpdate); connect(m_DBusManager, &CScheduleDBus::jobsTypeOrColorUpdate, this, &CScheduleTask::jobsTypeOrColorUpdate); } CScheduleTask::~CScheduleTask() { delete m_work; CScheduleDBus::releaseInstance(); } /** * @brief CScheduleTask::updateInfo 更新缓存信息 * @param startDate 开始时间 * @param stopDate 结束时间 */ void CScheduleTask::updateInfo(const QDate &startDate, const QDate &stopDate, const bool isGetLunar) { m_queryScheduleInfo.clear(); m_fullInfo.clear(); if (isGetLunar) { m_huangLiInfo.clear(); m_festivalInfo.clear(); } addQueryRange(startDate, stopDate, isGetLunar); } /** * @brief CScheduleTask::hasScheduleInfo 判断是否含有日程信息 * @param startDate 开始时间 * @param stopDate 结束时间 * @return */ bool CScheduleTask::hasScheduleInfo(const QDate &startDate, const QDate &stopDate) { return m_queryScheduleInfo.contains(startDate) && m_queryScheduleInfo.contains(stopDate); } /** * @brief CScheduleTask::getScheduleInfo 获取缓存中日程信息 * @param startDate 开始时间 * @param stopDate 结束时间 * @return */ QMap > CScheduleTask::getScheduleInfo(const QDate &startDate, const QDate &stopDate) { QMap > _resultInfo{}; qint64 _offsetDay = startDate.daysTo(stopDate); QDate _infoDate = startDate; for (int i = 0; i <= _offsetDay; ++i) { _infoDate = startDate.addDays(i); if (m_queryScheduleInfo.contains(_infoDate)) { _resultInfo[_infoDate] = m_queryScheduleInfo[_infoDate]; } } return _resultInfo; } /** * @brief CScheduleTask::getDateHasSchedule 获取日期是否含有日程标志 * @return */ QMap CScheduleTask::getDateHasSchedule() const { return m_fullInfo; } /** * @brief CScheduleTask::getHuangLiInfo 获取缓存中农历信息 * @param startDate * @param stopDate * @return */ QMap CScheduleTask::getHuangLiInfo(const QDate &startDate, const QDate &stopDate) { QMap _resultInfo{}; qint64 _offsetDay = startDate.daysTo(stopDate); QDate _infoDate = startDate; for (int i = 0; i <= _offsetDay; ++i) { _infoDate = startDate.addDays(i); if (m_huangLiInfo.contains(_infoDate)) { _resultInfo[_infoDate] = m_huangLiInfo[_infoDate]; } } return _resultInfo; } /** * @brief CScheduleTask::getFestivalInfo 获取缓存中班休信息 * @param startDate * @param stopDate * @return */ QMap CScheduleTask::getFestivalInfo(const QDate &startDate, const QDate &stopDate) { QMap _resultInfo{}; qint64 _offsetDay = startDate.daysTo(stopDate); QDate _infoDate = startDate; for (int i = 0; i <= _offsetDay; ++i) { _infoDate = startDate.addDays(i); if (m_festivalInfo.contains(_infoDate)) { _resultInfo[_infoDate] = m_festivalInfo[_infoDate]; } } return _resultInfo; } /** * @brief CScheduleTask::getSearchScheduleInfo 搜索日程 * @param key 关键字 * @param startTime 开始时间 * @param endTime 结束时间 * @return */ QMap > CScheduleTask::getSearchScheduleInfo(const QString &key, const QDateTime &startTime, const QDateTime &endTime) { m_searchScheduleInfo.clear(); m_searchScheduleInfoVector.clear(); m_DBusManager->QueryJobs(key, startTime, endTime, m_searchScheduleInfo); //获取搜索到的日程信息 QMap >::const_iterator _iterator = nullptr; for (_iterator = m_searchScheduleInfo.constBegin(); _iterator != m_searchScheduleInfo.constEnd(); ++_iterator) { for (int i = 0; i < _iterator->size(); ++i) { if (!m_searchScheduleInfoVector.contains(_iterator.value().at(i))) { m_searchScheduleInfoVector.append(_iterator.value().at(i)); } } } //更新界面显示 emit signalUpdateSearchSchedule(); return m_searchScheduleInfo; } /** * @brief CScheduleTask::getSearchScheduleInfo 获取缓存中搜索结果 * @return */ QMap > CScheduleTask::getSearchScheduleInfo() const { return m_searchScheduleInfo; } /** * @brief CScheduleTask::getSearchScheduleInfoVector 获取缓存搜到的日程 * @return */ QVector CScheduleTask::getSearchScheduleInfoVector() const { return m_searchScheduleInfoVector; } /** * @brief CScheduleTask::clearSearchScheduleInfo 清空搜索日程信息 */ void CScheduleTask::clearSearchScheduleInfo() { m_searchScheduleInfo.clear(); m_searchScheduleInfoVector.clear(); //更新界面显示 emit signalUpdateSearchSchedule(); } /** * @brief CScheduleTask::addQueryRange 添加需要查询日程的时间范围 * @param startDate 开始时间 * @param stopDate 结束时间 */ void CScheduleTask::addQueryRange(const QDate &startDate, const QDate &stopDate, const bool isGetLunar) { m_work->addQueryRange(startDate, stopDate, isGetLunar); } /** * @brief CScheduleTask::slotGetSchedule 接收查询的日程信息 * @param scheduleInfo * @param hasSchedule */ void CScheduleTask::slotGetSchedule(const QMap > &scheduleInfo, const QMap &hasSchedule) { m_queryScheduleInfo = scheduleInfo; m_fullInfo = hasSchedule; emit signalUpdateScheduleShow(); } void CScheduleTask::slotGetLunar(const QMap &lunarInfo, const QMap &festivalInfo) { m_huangLiInfo = lunarInfo; m_festivalInfo = festivalInfo; emit signalLunarGetSuccess(); } DataGetWork::DataGetWork(CScheduleDBus *_DataManage) : m_DataManage(_DataManage) { } DataGetWork::~DataGetWork() { } /** * @brief DataGetWork::addQueryRange 添加查询范围 * @param startDate 开始时间 * @param stopDate 结束时间 */ void DataGetWork::addQueryRange(const QDate &startDate, const QDate &stopDate, const bool isGetLunar) { QueryRange _queryRange{startDate, stopDate}; m_isGetLunar = isGetLunar; //添加查询 m_queryScheduleRange.append(_queryRange); startQuery(); } /** * @brief DataGetWork::startQuery 开始查询 */ void DataGetWork::startQuery() { //如果需要查询日期的缓存不为空则开始查询 if (m_queryScheduleRange.size() > 0) { QueryRange _queryRange; //获取最后一个 _queryRange = m_queryScheduleRange.last(); //清空 m_queryScheduleRange.clear(); //是否获取农历信息 if (m_isGetLunar) { queryLunarInfo(_queryRange); } queryScheduleInfo(_queryRange); } } /** * @brief DataGetWork::queryScheduleInfo 查询日程信息 */ void DataGetWork::queryScheduleInfo(const QueryRange &queryRange) { QMap > _queryScheduleInfo{}; QMap _dateHasSchedule{}; //查询日程数据 m_DataManage->GetJobs(queryRange._startDate, queryRange._stopDate, _queryScheduleInfo); QMap >::const_iterator _infoIter = _queryScheduleInfo.constBegin(); //遍历确认这些日期是否包含日程 for (; _infoIter != _queryScheduleInfo.constEnd(); ++_infoIter) { _queryScheduleInfo[_infoIter.key()] = _infoIter.value(); _dateHasSchedule[_infoIter.key()] = _infoIter.value().size() > 0 ? true : false; } //如果缓存为空则更新 if (m_queryScheduleRange.size() == 0) emit signalGetSchedule(_queryScheduleInfo, _dateHasSchedule); } void DataGetWork::queryLunarInfo(const QueryRange &queryRange) { bool _fill = false; CaHuangLiMonthInfo _monthInfo; QMap _huangLiYear {}; QMap _festivalYear{}; quint32 _year ; quint32 _month ; QDate _beginDate; QVector _festivallist{}; //获取开始时间和结束时间相差多少个月 const int _offsetMonth = (queryRange._stopDate.year() - queryRange._startDate.year()) * 12 + queryRange._stopDate.month() - queryRange._startDate.month(); //获取开始时间至结束时间所在月的农历和节假日信息 for (int i = 0; i <= _offsetMonth; ++i) { _monthInfo.clear(); _beginDate = queryRange._startDate.addMonths(i); _year = static_cast(_beginDate.year()); _month = static_cast(_beginDate.month()); m_DataManage->GetFestivalMonth(_year, _month, _festivallist); m_DataManage->GetHuangLiMonth(_year, _month, _fill, _monthInfo); QDate _getDate(_beginDate.year(), _beginDate.month(), 1); Q_ASSERT(_monthInfo.mDays == _monthInfo.mCaLunarDayInfo.size()); for (int j = 0; j < _monthInfo.mDays; ++j) { _huangLiYear[_getDate.addDays(j)] = _monthInfo.mCaLunarDayInfo.at(j); } } QDate _queryDate; //获取全年的班休信息 for (int i = 0; i <= queryRange._startDate.daysTo(queryRange._stopDate); ++i) { _queryDate = queryRange._startDate.addDays(i); _festivalYear[_queryDate] = getFestivalInfoByDate(_queryDate, _festivallist); } emit signalGetLunar(_huangLiYear, _festivalYear); } char DataGetWork::getFestivalInfoByDate(const QDate &date, const QVector &festivalInfo) { for (int i = 0; i < festivalInfo.count(); i++) { for (int j = 0; j < festivalInfo[i].listHoliday.count(); j++) { if (festivalInfo[i].listHoliday[j].date == date) { return festivalInfo[i].listHoliday[j].status; } } } return 0; } dde-calendar-5.9.1/calendar-client/src/scheduleTask/scheduletask.h000066400000000000000000000115521423264401600251220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 SCHEDULETASK_H #define SCHEDULETASK_H #include "cscheduledbus.h" #include "src/scheduledatainfo.h" #include "src/calendardatastruct.h" #include #include #include #include struct QueryRange { QDate _startDate; //开始日期 QDate _stopDate; //结束日期 }; class DataGetWork; class CScheduleTask : public QObject { Q_OBJECT public: explicit CScheduleTask(QObject *parent = nullptr); ~CScheduleTask(); public: //更新缓存信息 void updateInfo(const QDate &startDate, const QDate &stopDate, const bool isGetLunar = false); //判断是否含有这个时间段的日程信息 bool hasScheduleInfo(const QDate &startDate, const QDate &stopDate); //获取缓存中日程信息 QMap > getScheduleInfo(const QDate &startDate, const QDate &stopDate); //获取日期是否含有日程标志 QMap getDateHasSchedule() const; //获取缓存中农历信息 QMap getHuangLiInfo(const QDate &startDate, const QDate &stopDate); //获取缓存中班休信息 QMap getFestivalInfo(const QDate &startDate, const QDate &stopDate); //获取搜索信息 QMap > getSearchScheduleInfo(const QString &key, const QDateTime &startTime, const QDateTime &endTime); //获取缓存中搜索结果 QMap > getSearchScheduleInfo() const; //获取缓存搜到的日程 QVector getSearchScheduleInfoVector() const; //清空搜索日程 void clearSearchScheduleInfo(); private: //添加查询时间范围 void addQueryRange(const QDate &startDate, const QDate &stopDate, const bool isGetLunar); signals: //日程获取成功信号 void signalUpdateScheduleShow(); //搜索日程更新 void signalUpdateSearchSchedule(); //农历信息获取成功信号 void signalLunarGetSuccess(); //日程更新信号 void jobsUpdate(); void jobsTypeOrColorUpdate(); public slots: //接收查询的日程信息 void slotGetSchedule(const QMap > &scheduleInfo, const QMap &hasSchedule); //接收农历信息 void slotGetLunar(const QMap &lunarInfo, const QMap &festivalInfo); private: QThread m_workerThread; CScheduleDBus *m_DBusManager = nullptr; DataGetWork *m_work = nullptr; //一年的日程信息 QMap > m_queryScheduleInfo{}; //一年是否含有日程 QMap m_fullInfo{}; //一年的黄历信息 QMap m_huangLiInfo {}; //一年的班休信息 QMap m_festivalInfo{}; //搜索的日程信息 QMap > m_searchScheduleInfo{}; QVector m_searchScheduleInfoVector{}; }; class DataGetWork : public QObject { Q_OBJECT public: explicit DataGetWork(CScheduleDBus *_DataManage); ~DataGetWork(); public: //添加查询时间范围 void addQueryRange(const QDate &startDate, const QDate &stopDate, const bool isGetLunar); private: //查询日程信息 void queryScheduleInfo(const QueryRange &queryRange); //查询农历信息 void queryLunarInfo(const QueryRange &queryRange); //根据时间获取班休信息 char getFestivalInfoByDate(const QDate &date, const QVector &festivalInfo); signals: void signalGetSchedule(const QMap > &scheduleInfo, const QMap &hasSchedule); void signalGetLunar(const QMap &lunarInfo, const QMap &festivalInfo); public slots: // 开始查询 void startQuery(); private: CScheduleDBus *m_DataManage = nullptr; QVector m_queryScheduleRange{}; bool m_isGetLunar{false}; }; #endif // SCHEDULETASK_H dde-calendar-5.9.1/calendar-client/src/settingstranslation.cpp000066400000000000000000000003401423264401600244670ustar00rootroot00000000000000#include void GenerateSettingTranslate() { auto manage_calendar = QObject::tr("Manage calendar"); auto event_type = QObject::tr("Event types"); Q_UNUSED(manage_calendar); Q_UNUSED(event_type); } dde-calendar-5.9.1/calendar-client/src/shortcut.cpp000066400000000000000000000041501423264401600222260ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Maintainer: Peng Hui * * 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 "shortcut.h" Shortcut::Shortcut(QObject *parent) : QObject(parent) { ShortcutGroup group1; ShortcutGroup group2; ShortcutGroup group3; ShortcutGroup group4; group1.groupName = ""; group1.groupItems << ShortcutItem(tr("Help"), "F1") << ShortcutItem(tr("Delete event"), "Delete"); group2.groupName = ""; group2.groupItems << ShortcutItem(tr("Copy"), "Ctrl+C") << ShortcutItem(tr("Cut"), "Ctrl+X") << ShortcutItem(tr("Paste"), "Ctrl+V") ; group3.groupName = ""; group3.groupItems << ShortcutItem(tr("Delete"), "Delete") << ShortcutItem(tr("Select all"), "Ctrl+A"); m_shortcutGroups << group1 << group2 << group3; //convert to json object QJsonArray jsonGroups; for (auto scg : m_shortcutGroups) { QJsonObject jsonGroup; QJsonArray jsonGroupItems; for (auto sci : scg.groupItems) { QJsonObject jsonItem; jsonItem.insert("name", sci.name); jsonItem.insert("value", sci.value); jsonGroupItems.append(jsonItem); } jsonGroup.insert("groupItems", jsonGroupItems); jsonGroups.append(jsonGroup); } m_shortcutObj.insert("shortcut", jsonGroups); } QString Shortcut::toStr() { QJsonDocument doc(m_shortcutObj); return doc.toJson().data(); } dde-calendar-5.9.1/calendar-client/src/shortcut.h000066400000000000000000000024401423264401600216730ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Maintainer: Peng Hui * * 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 SHORTCUT_H #define SHORTCUT_H #include #include #include #include struct ShortcutItem { QString name; QString value; ShortcutItem(QString n, QString v): name(n), value(v) {} }; struct ShortcutGroup { QString groupName; QList groupItems; }; class Shortcut : public QObject { Q_OBJECT public: explicit Shortcut(QObject *parent = 0); QString toStr(); private: QJsonObject m_shortcutObj; QList m_shortcutGroups; }; #endif // SHORTCUT_H dde-calendar-5.9.1/calendar-client/src/singleton.h000066400000000000000000000023071423264401600220240ustar00rootroot00000000000000/* * 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 using namespace std; namespace DCalendar { template class DSingleton { public: static inline T *instance() { static T *_instance = new T; return _instance; } protected: DSingleton(void) {} ~DSingleton(void) {} DSingleton(const DSingleton &) {} DSingleton &operator= (const DSingleton &) { return *this; } }; } // namespace DCalendar dde-calendar-5.9.1/calendar-client/src/tabletconfig.cpp000066400000000000000000000021211423264401600230100ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "tabletconfig.h" //默认不为平板模式 bool TabletConfig::m_isTablet = false; TabletConfig::TabletConfig(QObject *parent) : QObject(parent) { } bool TabletConfig::isTablet() { return m_isTablet; } void TabletConfig::setIsTablet(bool isTablet) { m_isTablet = isTablet; } dde-calendar-5.9.1/calendar-client/src/tabletconfig.h000066400000000000000000000023221423264401600224600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TABLETCONFIG_H #define TABLETCONFIG_H #include /** * @brief The TabletConfig class * 平板配置类 */ class TabletConfig : public QObject { Q_OBJECT public: explicit TabletConfig(QObject *parent = nullptr); static bool isTablet(); static void setIsTablet(bool isTablet); signals: public slots: private: static bool m_isTablet; //是否为平板模式 }; #endif // TABLETCONFIG_H dde-calendar-5.9.1/calendar-client/src/view/000077500000000000000000000000001423264401600206215ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/view/alldayeventview.cpp000066400000000000000000000314671423264401600245430ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "alldayeventview.h" #include "schedulecoormanage.h" #include "schedulectrldlg.h" #include "scheduledlg.h" #include "myscheduleview.h" #include "scheduledatamanage.h" #include "constants.h" #include "scheduledaterangeinfo.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE DWIDGET_USE_NAMESPACE void CAllDayEventWeekView::setTheMe(int type) { CWeekDayGraphicsview::setTheMe(type); } void CAllDayEventWeekView::changeEvent(QEvent *event) { if (event->type() == QEvent::FontChange) { updateItemHeightByFontSize(); updateInfo(); } } bool CAllDayEventWeekView::MeetCreationConditions(const QDateTime &date) { return qAbs(date.daysTo(m_PressDate) < 7); } void CAllDayEventWeekView::slotCreate(const QDateTime &date) { CScheduleDlg dlg(1, this); dlg.setDate(date); dlg.setAllDay(true); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); } } bool CAllDayEventWeekView::IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) { return timeFirst.date() == timeSecond.date(); } bool CAllDayEventWeekView::JudgeIsCreate(const QPointF &pos) { return qAbs(pos.x() - m_PressPos.x()) > 20 || qAbs(m_PressDate.date().daysTo(m_coorManage->getsDate(mapFrom(this, pos.toPoint())))) > 0; } void CAllDayEventWeekView::RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) { Q_UNUSED(listItem); m_rightMenu->clear(); m_rightMenu->addAction(m_createAction); m_createDate.setDate(m_coorManage->getsDate(mapFrom(this, pos))); m_createDate.setTime(QTime::currentTime()); m_rightMenu->exec(QCursor::pos()); } void CAllDayEventWeekView::MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) { Q_UNUSED(pos); if (info.getAllDay()) { qint64 offset = m_PressDate.daysTo(m_MoveDate); info.setBeginDateTime(info.getBeginDateTime().addDays(offset)); info.setEndDateTime(info.getEndDateTime().addDays(offset)); } else { qint64 offset = info.getBeginDateTime().daysTo(info.getEndDateTime()); info.setAllDay(true); // info.remind = true; info.getRemindData().setRemindTime(QTime(9, 0)); info.getRemindData().setRemindNum(1); m_DragScheduleInfo.setBeginDateTime(QDateTime(m_MoveDate.date(), QTime(0, 0, 0))); m_DragScheduleInfo.setEndDateTime(QDateTime(m_MoveDate.addDays(offset).date(), QTime(23, 59, 59))); } upDateInfoShow(ChangeWhole, info); } QDateTime CAllDayEventWeekView::getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) { return moveDateTime.daysTo(m_InfoEndTime) < 0 ? QDateTime(m_InfoEndTime.date(), QTime(0, 0, 0)) : QDateTime(moveDateTime.date(), QTime(0, 0, 0)); } QDateTime CAllDayEventWeekView::getDragScheduleInfoEndTime(const QDateTime &moveDateTime) { return m_InfoBeginTime.daysTo(m_MoveDate) < 0 ? QDateTime(m_InfoBeginTime.date(), QTime(23, 59, 0)) : QDateTime(moveDateTime.date(), QTime(23, 59, 0)); } void CAllDayEventWeekView::updateHeight() { for (int i = 0; i < m_baseShowItem.count(); i++) { m_baseShowItem.at(i)->update(); } } /** * @brief CAllDayEventWeekView::setSelectSearchSchedule 设置搜索选中日程 * @param info */ void CAllDayEventWeekView::setSelectSearchSchedule(const ScheduleDataInfo &info) { DragInfoGraphicsView::setSelectSearchSchedule(info); for (int i = 0; i < m_baseShowItem.size(); ++i) { CAllDayScheduleItem *item = m_baseShowItem.at(i); if (item->hasSelectSchedule(info)) { QRectF rect = item->rect(); centerOn(0, rect.y()); setTransformationAnchor(QGraphicsView::AnchorViewCenter); item->setStartValue(0); item->setEndValue(4); item->startAnimation(); } } } void CAllDayEventWeekView::setMargins(int left, int top, int right, int bottom) { setViewportMargins(QMargins(left, top, right, bottom)); } /** * @brief CAllDayEventWeekView::updateInfo 更新日程显示 */ void CAllDayEventWeekView::updateInfo() { DragInfoGraphicsView::updateInfo(); switch (m_DragStatus) { case IsCreate: upDateInfoShow(IsCreate, m_DragScheduleInfo); break; default: upDateInfoShow(); break; } } void CAllDayEventWeekView::upDateInfoShow(const DragStatus &status, const ScheduleDataInfo &info) { QVector vListData; vListData = m_scheduleInfo; switch (status) { case NONE: Q_UNUSED(info); break; case ChangeBegin: case ChangeEnd: { int index = vListData.indexOf(info); if (index >= 0) vListData[index] = info; } break; case ChangeWhole: vListData.append(info); break; case IsCreate: vListData.append(info); break; } std::sort(vListData.begin(), vListData.end()); QVector vMDaySchedule; for (int i = 0; i < vListData.count(); i++) { QDate tbegindate = vListData.at(i).getBeginDateTime().date(); QDate tenddate = vListData.at(i).getEndDateTime().date(); if (tbegindate < m_beginDate) tbegindate = m_beginDate; if (tenddate > m_endDate) tenddate = m_endDate; MScheduleDateRangeInfo sinfo; sinfo.bdate = tbegindate; sinfo.edate = tenddate; sinfo.tData = vListData.at(i); sinfo.state = false; vMDaySchedule.append(sinfo); } QVector> vCfillSchedule; vCfillSchedule.resize(vListData.count()); int tNum = static_cast(m_beginDate.daysTo(m_endDate) + 1); for (int i = 0; i < vListData.count(); i++) { vCfillSchedule[i].resize(tNum); vCfillSchedule[i].fill(-1); } //首先填充跨天日程 for (int i = 0; i < vMDaySchedule.count(); i++) { if (vMDaySchedule[i].state) continue; int bindex = static_cast(m_beginDate.daysTo(vMDaySchedule[i].bdate)); int eindex = static_cast(m_beginDate.daysTo(vMDaySchedule[i].edate)); int c = -1; for (int k = 0; k < vListData.count(); k++) { int t = 0; for (t = bindex; t <= eindex; t++) { if (vCfillSchedule[k][t] != -1) { break; } } if (t == eindex + 1) { c = k; break; } } if (c == -1) continue; bool flag = false; for (int sd = bindex; sd <= eindex; sd++) { if (vCfillSchedule[c][sd] != -1) continue; vCfillSchedule[c][sd] = i; flag = true; } if (flag) vMDaySchedule[i].state = true; } QVector> vResultData; for (int i = 0; i < vListData.count(); i++) { QVector vId; for (int j = 0; j < tNum; j++) { if (vCfillSchedule[i][j] != -1) { int k = 0; for (; k < vId.count(); k++) { if (vId[k] == vCfillSchedule[i][j]) break; } if (k == vId.count()) vId.append(vCfillSchedule[i][j]); } } QVector tData; for (int j = 0; j < vId.count(); j++) { tData.append(vMDaySchedule[vId[j]].tData); } if (!tData.isEmpty()) vResultData.append(tData); } int m_topMagin; if (vResultData.count() < 2) { m_topMagin = 32; } else if (vResultData.count() < 6) { m_topMagin = 31 + (vResultData.count() - 1) * (itemHeight + 1); } else { m_topMagin = 123; } setFixedHeight(m_topMagin - 3); setDayData(vResultData); update(); emit signalUpdatePaint(m_topMagin); } CAllDayEventWeekView::CAllDayEventWeekView(QWidget *parent, ViewPosition type) : CWeekDayGraphicsview(parent, type, ViewType::ALLDayView) { updateItemHeightByFontSize(); } CAllDayEventWeekView::~CAllDayEventWeekView() { } void CAllDayEventWeekView::setDayData(const QVector> &vlistData) { m_vlistData = vlistData; updateDateShow(); } void CAllDayEventWeekView::setInfo(const QVector &info) { m_scheduleInfo = info; } void CAllDayEventWeekView::slotDoubleEvent() { m_updateDflag = true; emit signalsUpdateSchedule(); } void CAllDayEventWeekView::mouseDoubleClickEvent(QMouseEvent *event) { if (event->button() == Qt::RightButton) { return; } emit signalScheduleShow(false); DGraphicsView::mouseDoubleClickEvent(event); CAllDayScheduleItem *item = dynamic_cast(itemAt(event->pos())); if (item == nullptr) { m_createDate.setDate(m_coorManage->getsDate(mapFrom(this, event->pos()))); m_createDate.setTime(QTime::currentTime()); slotCreate(m_createDate); } else { m_updateDflag = false; CMyScheduleView dlg(item->getData(), this); connect(&dlg, &CMyScheduleView::signalsEditorDelete, this, &CAllDayEventWeekView::slotDoubleEvent); dlg.exec(); disconnect(&dlg, &CMyScheduleView::signalsEditorDelete, this, &CAllDayEventWeekView::slotDoubleEvent); } } void CAllDayEventWeekView::wheelEvent(QWheelEvent *event) { //若滚轮事件为左右方向则退出 if (event->orientation() == Qt::Orientation::Horizontal) { return; } emit signalScheduleShow(false); DGraphicsView::wheelEvent(event); } void CAllDayEventWeekView::updateDateShow() { qreal sceneHeight; qreal itemsHeight = (itemHeight + 1) * m_vlistData.size(); if (itemsHeight < 32) { sceneHeight = 29; } else { sceneHeight = itemsHeight + 6; } //如果设置场景的高度小于viewport的高度则设置场景的高度为viewport的高度 sceneHeight = sceneHeight < viewport()->height() ? viewport()->height() : sceneHeight; setSceneRect(0, 0, m_Scene->width(), sceneHeight); for (int i = 0; i < m_baseShowItem.count(); i++) { delete m_baseShowItem[i]; } m_baseShowItem.clear(); for (int i = 0; i < m_vlistData.size(); ++i) { createItemWidget(i); } //更新每个背景上的日程标签 updateBackgroundShowItem(); } void CAllDayEventWeekView::createItemWidget(int index, bool average) { Q_UNUSED(average) for (int i = 0; i < m_vlistData[index].size(); ++i) { const ScheduleDataInfo &info = m_vlistData[index].at(i); QRectF drawrect = m_coorManage->getAllDayDrawRegion(info.getBeginDateTime().date(), info.getEndDateTime().date()); drawrect.setY(2 + (itemHeight + 1) * index); drawrect.setHeight(itemHeight); CAllDayScheduleItem *gwi = new CAllDayScheduleItem(drawrect, nullptr); gwi->setData(m_vlistData[index].at(i)); m_Scene->addItem(gwi); m_baseShowItem.append(gwi); } } void CAllDayEventWeekView::updateItemHeightByFontSize() { QFont font; DFontSizeManager::instance()->setFontGenericPixelSize( static_cast(DFontSizeManager::instance()->fontPixelSize(qGuiApp->font()))); font = DFontSizeManager::instance()->t8(font); QFontMetrics fm(font); int h = fm.height(); if (itemHeight != h) { itemHeight = h; } } CAllDayEventWeekView::PosInItem CAllDayEventWeekView::getPosInItem(const QPoint &p, const QRectF &itemRect) { QPointF scenePos = this->mapToScene(p); QPointF itemPos = QPointF(scenePos.x() - itemRect.x(), scenePos.y() - itemRect.y()); double bottomy = itemRect.width() - itemPos.x(); if (itemPos.x() < 5) { return LEFT; } if (bottomy < 5) { return RIGHT; } return MIDDLE; } QDateTime CAllDayEventWeekView::getPosDate(const QPoint &p) { return QDateTime(m_coorManage->getsDate(mapFrom(this, p)), QTime(0, 0, 0)); } void CAllDayEventWeekView::slotUpdateScene() { pressScheduleInit(); this->scene()->update(); } dde-calendar-5.9.1/calendar-client/src/view/alldayeventview.h000077500000000000000000000065501423264401600242060ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 ALLDAYEVENTVIEW_H #define ALLDAYEVENTVIEW_H #include "graphicsItem/calldayscheduleitem.h" #include "graphicsItem/cweekdaybackgrounditem.h" #include "cweekdaygraphicsview.h" #include #include #include DWIDGET_USE_NAMESPACE class CScheduleCoorManage; class CAllDayEventWeekView : public CWeekDayGraphicsview { Q_OBJECT public: CAllDayEventWeekView(QWidget *parent = nullptr, ViewPosition type = WeekPos); ~CAllDayEventWeekView() override; void setDayData(const QVector> &vlistData); void setInfo(const QVector &info); QVector> &getListData() { return m_vlistData; } void updateHeight(); //获取搜索选中日程 void setSelectSearchSchedule(const ScheduleDataInfo &info) override; void setMargins(int left, int top, int right, int bottom); //更新日程显示 void updateInfo() override; signals: void signalUpdatePaint(const int topM); void signalSceneUpdate(); public slots: void slotUpdateScene(); private slots: void slotDoubleEvent(); public: void setTheMe(int type = 0) override; private: void changeEvent(QEvent *event) override; bool MeetCreationConditions(const QDateTime &date) override; void slotCreate(const QDateTime &date) override; //判断时间是否相等 bool IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) override; //根据鼠标移动的距离判断是否创建日程 bool JudgeIsCreate(const QPointF &pos) override; void RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) override; void MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) override; QDateTime getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) override; QDateTime getDragScheduleInfoEndTime(const QDateTime &moveDateTime) override; PosInItem getPosInItem(const QPoint &p, const QRectF &itemRect) override; QDateTime getPosDate(const QPoint &p) override; void upDateInfoShow(const DragStatus &status = NONE, const ScheduleDataInfo &info = ScheduleDataInfo()) override; protected: void mouseDoubleClickEvent(QMouseEvent *event) override; void wheelEvent(QWheelEvent *event) override; private: void updateDateShow(); void createItemWidget(int index, bool average = false); void updateItemHeightByFontSize(); private: int itemHeight = 22; QVector> m_vlistData; QVector m_scheduleInfo; QVector m_baseShowItem; bool m_updateDflag = false; }; #endif // CSCHEDULEDAYVIEW_H dde-calendar-5.9.1/calendar-client/src/view/cgraphicsscene.cpp000066400000000000000000000151221423264401600243070ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cgraphicsscene.h" #include "graphicsItem/cscenebackgrounditem.h" #include #include #include #include CGraphicsScene::CGraphicsScene(QObject *parent) : QGraphicsScene(parent) , firstfocusItem(nullptr) , currentFocusItem(nullptr) , m_keyPrxy(nullptr) , m_activeSwitching(false) , m_isContextMenu(false) , m_isShowCurrentItem(false) { } CGraphicsScene::~CGraphicsScene() { if (m_keyPrxy != nullptr) delete m_keyPrxy; } void CGraphicsScene::setFirstFocusItem(QGraphicsItem *item) { firstfocusItem = item; } QGraphicsItem *CGraphicsScene::getFirstFocusItem() const { return firstfocusItem; } void CGraphicsScene::setCurrentFocusItem(QGraphicsItem *item) { currentFocusItem = item; } QGraphicsItem *CGraphicsScene::getCurrentFocusItem() const { return currentFocusItem; } void CGraphicsScene::setKeyPressPrxy(CKeyPressPrxy *keyPrxy) { m_keyPrxy = keyPrxy; } void CGraphicsScene::currentFocusItemUpdate() { if (currentFocusItem != nullptr) { CFocusItem *item = dynamic_cast(currentFocusItem); item->setItemFocus(true); } } /** * @brief CGraphicsScene::setPrePage 切换上一页 * @param focusDate 切换焦点时间 * @param isSwitchView 是否切换视图 */ void CGraphicsScene::setPrePage(const QDate &focusDate, bool isSwitchView) { emit signalSwitchPrePage(focusDate, isSwitchView); } /** * @brief CGraphicsScene::setPrePage 切换下一页 * @param focusDate 切换焦点时间 * @param isSwitchView 是否切换视图 */ void CGraphicsScene::setNextPage(const QDate &focusDate, bool isSwitchView) { emit signalSwitchNextPage(focusDate, isSwitchView); } bool CGraphicsScene::event(QEvent *event) { bool dealResult = false; if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = dynamic_cast(event); if (m_keyPrxy != nullptr && m_keyPrxy->keyPressDeal(keyEvent->key())) { dealResult = true; } //如果为左右键处理则设置为true if (dealResult == false && (keyEvent->key() == Qt::Key_Left || keyEvent->key() == Qt::Key_Right)) { dealResult = true; } if (keyEvent->modifiers() == Qt::ALT && keyEvent->key() == Qt::Key_M) { CSceneBackgroundItem *item = dynamic_cast(currentFocusItem); if (item != nullptr && item->getFocusItem()->getItemType() == CFocusItem::CITEM) { dealResult = true; emit signalContextMenu(item->getFocusItem()); } } } if (event->type() == QEvent::FocusIn) { dealResult = focusInDeal(event); } if (event->type() == QEvent::FocusOut) { dealResult = focusOutDeal(event); } return dealResult ? true : QGraphicsScene::event(event); } bool CGraphicsScene::focusInDeal(QEvent *event) { bool dealResult = true; QFocusEvent *focusEvent = dynamic_cast(event); if (firstfocusItem != nullptr && (Qt::TabFocusReason == focusEvent->reason() || Qt::BacktabFocusReason == focusEvent->reason())) { if (m_isShowCurrentItem || currentFocusItem == nullptr) { if (currentFocusItem == nullptr) { currentFocusItem = firstfocusItem; } CFocusItem *item = dynamic_cast(currentFocusItem); item->setItemFocus(true); } else { dealResult = m_keyPrxy->keyPressDeal(Qt::Key_Tab); //如果切换过来需要设置下一个item焦点,但是已经没有下一个item时,发送焦点切换信号 if (currentFocusItem == nullptr) { emit signalsetNextFocus(); } } } if (currentFocusItem != nullptr && Qt::ActiveWindowFocusReason == focusEvent->reason()) { CFocusItem *item = dynamic_cast(currentFocusItem); item->setItemFocus(true); } return dealResult; } bool CGraphicsScene::focusOutDeal(QEvent *event) { QFocusEvent *focusEvent = dynamic_cast(event); if (currentFocusItem != nullptr) { CSceneBackgroundItem *item = dynamic_cast(currentFocusItem); if (Qt::ActiveWindowFocusReason == focusEvent->reason()) { item->setItemFocus(false); } else { //如果为右击菜单则更新焦点显示效果 if (m_isContextMenu) { item->setItemFocus(false); } else { item->initState(); //如果为被动切换焦点则初始化当前焦点item if (getActiveSwitching() == false) { currentFocusItem = nullptr; //通知另外一个视图初始化状态,因为全天和非全天之间tab切换保存了当前item信息 emit signalViewFocusInit(); } else { setActiveSwitching(false); } } } } return true; } void CGraphicsScene::setIsContextMenu(bool isContextMenu) { m_isContextMenu = isContextMenu; } void CGraphicsScene::setIsShowCurrentItem(bool isShowCurrentItem) { m_isShowCurrentItem = isShowCurrentItem; } void CGraphicsScene::currentItemInit() { if (currentFocusItem != nullptr) { CSceneBackgroundItem *item = dynamic_cast(currentFocusItem); if (item != nullptr) { item->initState(); } currentFocusItem = nullptr; } } bool CGraphicsScene::getActiveSwitching() const { return m_activeSwitching; } void CGraphicsScene::setActiveSwitching(bool activeSwitching) { m_activeSwitching = activeSwitching; } dde-calendar-5.9.1/calendar-client/src/view/cgraphicsscene.h000066400000000000000000000062111423264401600237530ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CGRAPHICSSCENE_H #define CGRAPHICSSCENE_H #include "ckeypressprxy.h" #include /** * @brief The CGraphicsScene class * */ class CFocusItem; class CGraphicsScene : public QGraphicsScene { Q_OBJECT public: explicit CGraphicsScene(QObject *parent = nullptr); ~CGraphicsScene() override; //设置Scene的第一个focus item void setFirstFocusItem(QGraphicsItem *item); //获取Scene的第一个focus item QGraphicsItem *getFirstFocusItem() const; //设置Scene当前focus item void setCurrentFocusItem(QGraphicsItem *item); //获取Scene当前focus item QGraphicsItem *getCurrentFocusItem() const; //设置keypress处理 void setKeyPressPrxy(CKeyPressPrxy *keyPrxy); //更新当前item焦点效果显示 void currentFocusItemUpdate(); //设置上一页时间 void setPrePage(const QDate &focusDate, bool isSwitchView = false); //设置下一页时间 void setNextPage(const QDate &focusDate, bool isSwitchView = false); //获取是否为主动切换 bool getActiveSwitching() const; //设置是否为主动切换 void setActiveSwitching(bool activeSwitching); void currentItemInit(); void setIsShowCurrentItem(bool isShowCurrentItem); void setIsContextMenu(bool isContextMenu); protected: bool event(QEvent *event) override; private: bool focusInDeal(QEvent *event); bool focusOutDeal(QEvent *event); signals: void signalSwitchPrePage(const QDate &focusDate, bool isSwitchView = false); void signalSwitchNextPage(const QDate &focusDate, bool isSwitchView = false); void signalSwitchView(const QDate &focusDate, bool setItemFocus = false); //通知另一个视图初始化 void signalViewFocusInit(); //切换到日视图 void signalGotoDayView(const QDate &date); //快捷键触发右击 void signalContextMenu(CFocusItem *item); //切换焦点到下一个widget void signalsetNextFocus(); private: QGraphicsItem *firstfocusItem; QGraphicsItem *currentFocusItem; CKeyPressPrxy *m_keyPrxy; bool m_activeSwitching; //是否为主动切换焦点 bool m_isContextMenu; //是否为右击菜单切换焦点 bool m_isShowCurrentItem; //true 当前item获取焦点 false 当前item的下一个item获取焦点 }; #endif // CGRAPHICSSCENE_H dde-calendar-5.9.1/calendar-client/src/view/cweekdaygraphicsview.cpp000066400000000000000000000171331423264401600255420ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cweekdaygraphicsview.h" #include "constants.h" #include "schedulecoormanage.h" #include "cweekdayscenetabkeydeal.h" #include "ckeyenabledeal.h" #include "ckeyleftdeal.h" #include "ckeyrightdeal.h" #include "calldaykeyleftdeal.h" #include "calldaykeyrightdeal.h" #include CWeekDayGraphicsview::CWeekDayGraphicsview(QWidget *parent, ViewPosition viewPos, ViewType viewtype) : DragInfoGraphicsView(parent) , m_viewPos(viewPos) , m_viewType(viewtype) , m_coorManage(new CScheduleCoorManage) , m_rightmagin(0) { createBackgroundItem(); m_Scene->setFirstFocusItem(m_backgroundItem.first()); //添加键盘事件处理 CKeyPressPrxy *m_keyPrxy = new CKeyPressPrxy(); m_keyPrxy->addkeyPressDeal(new CWeekDaySceneTabKeyDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyEnableDeal(m_Scene)); if (m_viewType == ALLDayView) { m_keyPrxy->addkeyPressDeal(new CAllDayKeyLeftDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CAllDayKeyRightDeal(m_Scene)); } else { m_keyPrxy->addkeyPressDeal(new CKeyLeftDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyRightDeal(m_Scene)); } m_Scene->setKeyPressPrxy(m_keyPrxy); connect(m_Scene, &CGraphicsScene::signalSwitchView, this, &CWeekDayGraphicsview::slotSwitchView); connect(m_Scene, &CGraphicsScene::signalViewFocusInit, this, &CWeekDayGraphicsview::signalViewFocusInit); } CWeekDayGraphicsview::~CWeekDayGraphicsview() { delete m_coorManage; m_coorManage = nullptr; } void CWeekDayGraphicsview::setRange(int w, int h, QDate begindate, QDate enddate, int rightmagin) { m_MoveDate.setDate(begindate.addMonths(-2)); m_beginDate = begindate; m_endDate = enddate; //如果为全天区域 if (m_viewType == ALLDayView) { w -= 2; } else { w = w - rightmagin - 2; } setBackgroundDate(); m_coorManage->setRange(w, h, begindate, enddate, rightmagin); setSceneRect(0, 0, w, h); m_rightmagin = rightmagin; } void CWeekDayGraphicsview::setRange(QDate begin, QDate end) { m_MoveDate.setDate(begin.addMonths(-2)); m_beginDate = begin; m_endDate = end; setBackgroundDate(); getCoorManage()->setDateRange(begin, end); this->scene()->update(); } void CWeekDayGraphicsview::setTheMe(int type) { for (int i = 0; i < m_backgroundItem.size(); ++i) { m_backgroundItem.at(i)->setTheMe(type); } DragInfoGraphicsView::setTheMe(type); this->viewport()->update(); } CScheduleCoorManage *CWeekDayGraphicsview::getCoorManage() const { return m_coorManage; } void CWeekDayGraphicsview::setCurrentFocusItem(const QDate &focusDate, bool setItemFocus) { qint64 offset = m_backgroundItem.first()->getDate().daysTo(focusDate); if (offset >= 0 && offset < m_backgroundItem.size()) { m_Scene->setCurrentFocusItem(m_backgroundItem.at(static_cast(offset))); m_Scene->setIsShowCurrentItem(setItemFocus); } else { qWarning() << "set CurrentFocusItem Error,offset:" << offset << ",focusDate:" << focusDate << ",firstDate:" << m_backgroundItem.first()->getDate(); } } void CWeekDayGraphicsview::setSceneRect(qreal x, qreal y, qreal w, qreal h) { m_Scene->setSceneRect(x, y, w, h); const qreal backgroundItemHeight = h; const qreal backgroundItemWidth = w / m_backgroundItem.size(); for (int i = 0; i < m_backgroundItem.size(); ++i) { m_backgroundItem.at(i)->setDate(m_beginDate.addDays(i)); m_backgroundItem.at(i)->setRect(x + backgroundItemWidth * i, 0, backgroundItemWidth, backgroundItemHeight); } } void CWeekDayGraphicsview::createBackgroundItem() { if (m_viewPos == DayPos) { //日视图 CWeekDayBackgroundItem *backgroundItem = new CWeekDayBackgroundItem(); connect(backgroundItem, &CWeekDayBackgroundItem::signalPosOnView, this, &CWeekDayGraphicsview::slotPosOnView); backgroundItem->setZValue(-1); m_backgroundItem.append(backgroundItem); m_Scene->addItem(backgroundItem); //如果为非全天则设置背景焦点获取显示 if (m_viewType == PartTimeView) { backgroundItem->setShowFocus(true); } //设置编号 backgroundItem->setBackgroundNum(0); } else { //周视图 for (int i = 0; i < DDEWeekCalendar::AFewDaysofWeek; ++i) { CWeekDayBackgroundItem *item = new CWeekDayBackgroundItem(); connect(item, &CWeekDayBackgroundItem::signalPosOnView, this, &CWeekDayGraphicsview::slotPosOnView); item->setZValue(-1); if (m_backgroundItem.size() > 0) { //设置对应左右和下一个 关系 m_backgroundItem.last()->setNextFocusItem(item); m_backgroundItem.last()->setRightItem(item); item->setLeftItem(m_backgroundItem.last()); } //设置背景直接分隔符 item->setDrawDividingLine(true); //如果为非全天则设置背景焦点获取显示 if (m_viewType == PartTimeView) { item->setShowFocus(true); } //设置编号 item->setBackgroundNum(i); m_backgroundItem.append(item); m_Scene->addItem(item); } } } void CWeekDayGraphicsview::setSceneCurrentItemFocus(const QDate &focusDate) { int offset = static_cast(m_backgroundItem.first()->getDate().daysTo(focusDate)); if (offset >= 0 && offset < m_backgroundItem.size()) { m_Scene->setCurrentFocusItem(m_backgroundItem.at(offset)); m_Scene->currentFocusItemUpdate(); } else { qWarning() << "Switching time range error! focusDate:" << focusDate << " first item date:" << m_backgroundItem.first()->getDate(); } } /** * @brief CWeekDayGraphicsview::updateBackgroundShowItem 更新背景上显示的item */ void CWeekDayGraphicsview::updateBackgroundShowItem() { for (int i = 0; i < m_backgroundItem.size(); ++i) { m_backgroundItem.at(i)->updateShowItem(); } } /** * @brief CWeekDayGraphicsview::setBackgroundDate 设置背景时间 */ void CWeekDayGraphicsview::setBackgroundDate() { for (int i = 0; i < m_backgroundItem.size(); ++i) { m_backgroundItem.at(i)->setDate(m_beginDate.addDays(i)); } } void CWeekDayGraphicsview::slotSwitchView(const QDate &focusDate, bool setItemFocus) { if (m_viewType == ALLDayView) { emit signaleSwitchToView(focusDate, PartTimeView, setItemFocus); } else { emit signaleSwitchToView(focusDate, ALLDayView, setItemFocus); } } void CWeekDayGraphicsview::slotViewInit() { m_Scene->currentItemInit(); } void CWeekDayGraphicsview::slotPosOnView(const qreal y) { //定位到当前焦点的item QPointF point(m_Scene->width() / 2, y); centerOn(point); } dde-calendar-5.9.1/calendar-client/src/view/cweekdaygraphicsview.h000066400000000000000000000053711423264401600252100ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CWEEKDAYGRAPHICSVIEW_H #define CWEEKDAYGRAPHICSVIEW_H #include "draginfographicsview.h" #include "graphicsItem/cweekdaybackgrounditem.h" /** * @brief The CWeekDayGraphicsview class * 周/日全天和非全天视图 */ class CScheduleCoorManage; class CWeekDayGraphicsview : public DragInfoGraphicsView { Q_OBJECT public: enum ViewPosition { WeekPos //周视图 , DayPos //日视图 }; enum ViewType { ALLDayView //全天 , PartTimeView //非全天 }; public: explicit CWeekDayGraphicsview(QWidget *parent = nullptr, ViewPosition viewPos = WeekPos, ViewType viewtype = ALLDayView); ~CWeekDayGraphicsview() override; void setRange(int w, int h, QDate begindate, QDate enddate, int rightmagin); void setRange(QDate begin, QDate end); void setTheMe(int type = 0) override; CScheduleCoorManage *getCoorManage() const; //设置当前焦点背景item void setCurrentFocusItem(const QDate &focusDate, bool setItemFocus = false); protected: //设置场景的矩阵 void setSceneRect(qreal x, qreal y, qreal w, qreal h); //创建背景显示项 void createBackgroundItem(); void setSceneCurrentItemFocus(const QDate &focusDate) override; //更新背景上显示的item void updateBackgroundShowItem() override; private: //设置背景时间 void setBackgroundDate(); signals: void signaleSwitchToView(const QDate &focusDate, ViewType type, bool setItemFocus); void signalViewFocusInit(); public slots: void slotSwitchView(const QDate &focusDate, bool setItemFocus); void slotViewInit(); void slotPosOnView(const qreal y); protected: ViewPosition m_viewPos; ViewType m_viewType; QDate m_beginDate; QDate m_endDate; CScheduleCoorManage *m_coorManage; int m_rightmagin; QVector m_backgroundItem; }; #endif // CWEEKDAYGRAPHICSVIEW_H dde-calendar-5.9.1/calendar-client/src/view/draginfographicsview.cpp000066400000000000000000000730461423264401600255440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "draginfographicsview.h" #include "scheduledlg.h" #include "schedulectrldlg.h" #include "myscheduleview.h" #include "constants.h" #include "cscheduleoperation.h" #include "graphicsItem/cscenebackgrounditem.h" #include "calendarglobalenv.h" #include "scheduledatamanage.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //定义拖拽日程 ScheduleDataInfo DragInfoGraphicsView::m_DragScheduleInfo; bool DragInfoGraphicsView::m_hasUpdateMark = false; DragInfoGraphicsView::DragInfoGraphicsView(DWidget *parent) : DGraphicsView(parent) , m_Scene(new CGraphicsScene(this)) , m_rightMenu(new DMenu(this)) , m_MoveDate(QDateTime::currentDateTime()) { setFrameShape(QFrame::NoFrame); setScene(m_Scene); setContentsMargins(0, 0, 0, 0); m_editAction = new QAction(tr("Edit"), this); m_deleteAction = new QAction(tr("Delete"), this); m_createAction = new QAction(tr("New event"), this); connect(m_createAction, &QAction::triggered, this, static_cast(&DragInfoGraphicsView::slotCreate)); this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->setViewportMargins(0, 0, 0, 0); setMouseTracking(true); viewport()->setMouseTracking(true); setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); setAlignment(Qt::AlignLeft | Qt::AlignTop); setViewportUpdateMode(QGraphicsView::FullViewportUpdate); m_Drag = new QDrag(this); //设置接受触摸事件 setAttribute(Qt::WA_AcceptTouchEvents); grabGesture(Qt::TapAndHoldGesture); grabGesture(Qt::PanGesture); grabGesture(Qt::TapGesture); grabGesture(Qt::SwipeGesture); m_touchAnimation = new QPropertyAnimation(this, "touchSlidePos", this); //设置动画时间 m_touchAnimation->setDuration(1000); //设置动画曲线 m_touchAnimation->setEasingCurve(QEasingCurve::OutQuart); connect(m_Scene, &CGraphicsScene::signalSwitchPrePage, this, &DragInfoGraphicsView::slotSwitchPrePage); connect(m_Scene, &CGraphicsScene::signalSwitchNextPage, this, &DragInfoGraphicsView::slotSwitchNextPage); connect(m_Scene, &CGraphicsScene::signalGotoDayView, this, &DragInfoGraphicsView::signalGotoDayView); connect(m_Scene, &CGraphicsScene::signalContextMenu, this, &DragInfoGraphicsView::slotContextMenu); connect(m_Scene, &CGraphicsScene::signalsetNextFocus, this, &DragInfoGraphicsView::slotsetNextFocus); setFocusPolicy(Qt::StrongFocus); //日程类型发生改变,刷新界面 JobTypeInfoManager::instance()->addToNoticeBill(this->viewport(), "update"); } DragInfoGraphicsView::~DragInfoGraphicsView() { JobTypeInfoManager::instance()->removeFromNoticeBill(this->viewport()); } void DragInfoGraphicsView::mousePressEvent(QMouseEvent *event) { if (event->button() != Qt::LeftButton) { return; } stopTouchAnimation(); if (event->source() == Qt::MouseEventSynthesizedByQt) { //如果为触摸点击则记录相关状态并改变触摸状态 DGraphicsView::mousePressEvent(event); m_TouchBeginPoint = event->pos(); m_TouchBeginTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); m_touchState = TS_PRESS; return; } mousePress(event->pos()); m_Scene->currentItemInit(); //更新其它view中item状态显示 emit signalSceneUpdate(); } void DragInfoGraphicsView::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::RightButton) { return; } if (event->source() == Qt::MouseEventSynthesizedByQt) { //如果为触摸点击状态则调用左击事件处理 if (m_touchState == TS_PRESS) { mousePress(m_TouchBeginPoint.toPoint()); } if (m_touchState == TS_SLIDE) { stopTouchAnimation(); const qint64 timeOffset = QDateTime::currentDateTime().toMSecsSinceEpoch() - m_TouchBeginTime; //如果为快速滑动则开启滑动动画效果 if (timeOffset < 150) { m_touchAnimation->setStartValue(verticalScrollBar()->sliderPosition()); m_touchAnimation->setEndValue(verticalScrollBar()->minimum()); switch (m_touchMovingDir) { case touchGestureOperation::T_TOP: { //如果手势往上 m_touchAnimation->setStartValue(verticalScrollBar()->sliderPosition()); m_touchAnimation->setEndValue(verticalScrollBar()->maximum()); m_touchAnimation->start(); break; } case touchGestureOperation::T_BOTTOM: { //如果手势往下 m_touchAnimation->setStartValue(verticalScrollBar()->sliderPosition()); m_touchAnimation->setEndValue(verticalScrollBar()->minimum()); m_touchAnimation->start(); break; } default: break; } } } } m_touchState = TS_NONE; mouseReleaseScheduleUpdate(); //update scene this->scene()->update(); } void DragInfoGraphicsView::mouseMoveEvent(QMouseEvent *event) { //移动偏移 const int lengthOffset = 5; if (event->source() == Qt::MouseEventSynthesizedByQt) { m_touchMovingDir = touchGestureOperation::T_MOVE_NONE; switch (m_touchState) { case TS_NONE: { break; } case TS_PRESS: { //1 点击 qint64 currentTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); qint64 timeOffset = currentTime - m_TouchBeginTime; //获取移动距离 qreal movingLength = QLineF(m_TouchBeginPoint, event->pos()).length(); //如果移动距离小于5且点击时间大于250毫秒小于900毫秒则为拖拽移动状态 if (movingLength < lengthOffset && (timeOffset > 250 && timeOffset < 900)) { m_touchState = TS_DRAG_MOVE; m_touchDragMoveState = 1; } //如果移动距离大于5则为滑动状态 if (movingLength > lengthOffset) { m_touchState = TS_SLIDE; } break; } case TS_DRAG_MOVE: { //2 拖拽移动 qint64 currentTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); qint64 timeOffset = currentTime - m_TouchBeginTime; qreal movingLength = QLineF(m_TouchBeginPoint, event->pos()).length(); //如果移动距离小于5且点击时间大于900毫秒则为长按状态 if (movingLength < lengthOffset && (timeOffset > 900)) { m_touchState = TS_LONG_PRESS; } if (movingLength > lengthOffset) { if (m_touchDragMoveState == 1) { mousePress(m_TouchBeginPoint.toPoint()); } m_touchDragMoveState = 2; } break; } case TS_SLIDE: { //3 滑动 QPointF _currentPoint = event->pos(); slideEvent(m_TouchBeginPoint, _currentPoint); break; } default: break; } } if (m_press) { emit signalScheduleShow(false); m_press = false; DragInfoItem::setPressFlag(false); } DragInfoItem *item = dynamic_cast(itemAt(event->pos())); if (item != nullptr) { if (item->getData().getType() != DDECalendar::FestivalTypeID) { if (m_DragStatus == NONE) { switch (getPosInItem(event->pos(), item->rect())) { case LEFT: case RIGHT: setCursor(Qt::SplitHCursor); break; case TOP: case BOTTOM: setCursor(Qt::SplitVCursor); break; default: setCursor(Qt::ArrowCursor); break; } } } } else { if (m_DragStatus == NONE) { setCursor(Qt::ArrowCursor); } } QDateTime gDate = getPosDate(event->pos()); switch (m_DragStatus) { case IsCreate: m_isCreate = JudgeIsCreate(event->pos()); if (m_isCreate) { if (!IsEqualtime(m_MoveDate, gDate)) { m_MoveDate = gDate; m_DragScheduleInfo = getScheduleInfo(m_PressDate, m_MoveDate); upDateInfoShow(IsCreate, m_DragScheduleInfo); //更新背景上显示的item updateBackgroundShowItem(); setPressSelectInfo(m_DragScheduleInfo); } } break; case ChangeBegin: if (!IsEqualtime(m_MoveDate, gDate)) { m_MoveDate = gDate; //获取日程开始时间 QDateTime _beginTime = getDragScheduleInfoBeginTime(m_MoveDate); m_DragScheduleInfo.setBeginDateTime(_beginTime); m_DragScheduleInfo.setEndDateTime(m_InfoEndTime); upDateInfoShow(ChangeBegin, m_DragScheduleInfo); } break; case ChangeEnd: if (!IsEqualtime(m_MoveDate, gDate)) { m_MoveDate = gDate; m_DragScheduleInfo.setBeginDateTime(m_InfoBeginTime); //获取结束时间 QDateTime _endTime = getDragScheduleInfoEndTime(m_MoveDate); m_DragScheduleInfo.setEndDateTime(_endTime); upDateInfoShow(ChangeEnd, m_DragScheduleInfo); } break; case ChangeWhole: { if (!m_PressRect.contains(event->pos())) { //拖拽前设置是否已经更新日程界面标志为否 m_hasUpdateMark = false; m_Drag->exec(Qt::MoveAction); m_Drag = nullptr; m_DragStatus = NONE; setCursor(Qt::ArrowCursor); //如果拖拽结束后没有修改日程则更新下界面日程显示 if (!m_hasUpdateMark) { updateInfo(); } } } break; default: break; } DGraphicsView::mouseMoveEvent(event); } void DragInfoGraphicsView::wheelEvent(QWheelEvent *event) { stopTouchAnimation(); DGraphicsView::wheelEvent(event); } void DragInfoGraphicsView::contextMenuEvent(QContextMenuEvent *event) { DGraphicsView::contextMenuEvent(event); //如果不为默认状态则不执行右击事件 if (m_DragStatus != NONE) { return; } emit signalScheduleShow(false); m_press = false; m_DragStatus = NONE; //触摸状态恢复为默认状态 m_touchState = TS_NONE; QGraphicsItem *listItem = itemAt(event->pos()); DragInfoItem *infoitem = dynamic_cast(listItem); if (infoitem != nullptr) { if (infoitem->getData().getType() != DDECalendar::FestivalTypeID) { m_rightMenu->clear(); m_rightMenu->addAction(m_editAction); m_rightMenu->addAction(m_deleteAction); QAction *action_t = m_rightMenu->exec(QCursor::pos()); if (action_t == m_editAction) { CScheduleDlg dlg(0, this); dlg.setData(infoitem->getData()); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); } } else if (action_t == m_deleteAction) { DeleteItem(infoitem->getData()); } } else { CMyScheduleView dlg(infoitem->getData(), this); dlg.exec(); } } else { RightClickToCreate(listItem, event->pos()); } } void DragInfoGraphicsView::dragEnterEvent(QDragEnterEvent *event) { if (event->mimeData()->hasFormat("Info")) { QJsonParseError json_error; QString str = event->mimeData()->data("Info"); QJsonDocument jsonDoc(QJsonDocument::fromJson(str.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { event->ignore(); } QJsonObject rootobj = jsonDoc.object(); ScheduleDataInfo info = ScheduleDataInfo::JsonToSchedule(rootobj); if ((event->source() != this && info.getRepetitionRule().getRuleId() > 0) || info.getType() == DDECalendar::FestivalTypeID) { event->ignore(); } else { event->accept(); //设置被修改的日程原始信息 m_PressScheduleInfo = info; } } else { event->ignore(); } } void DragInfoGraphicsView::dragLeaveEvent(QDragLeaveEvent *event) { Q_UNUSED(event); upDateInfoShow(); m_MoveDate = m_MoveDate.addMonths(-2); } void DragInfoGraphicsView::dragMoveEvent(QDragMoveEvent *event) { QString str = event->mimeData()->data("Info"); QDateTime gDate = getPosDate(event->pos()); QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(str.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return; } if (!IsEqualtime(m_MoveDate, gDate)) { m_MoveDate = gDate; QJsonObject rootobj = jsonDoc.object(); m_DragScheduleInfo = ScheduleDataInfo::JsonToSchedule(rootobj); m_DragScheduleInfo.setIsMoveInfo(true); MoveInfoProcess(m_DragScheduleInfo, event->posF()); DragInfoItem::setPressSchedule(m_DragScheduleInfo); } } void DragInfoGraphicsView::dropEvent(QDropEvent *event) { if (event->mimeData()->hasFormat("Info")) { if (event->source() != this || m_MoveDate != m_PressDate) { updateScheduleInfo(m_DragScheduleInfo); } else { emit signalsUpdateSchedule(); } m_DragStatus = NONE; m_MoveDate = m_MoveDate.addMonths(-2); } } bool DragInfoGraphicsView::event(QEvent *e) { if (e->type() == QEvent::Leave) { if (m_DragStatus == IsCreate || m_DragStatus == ChangeBegin || m_DragStatus == ChangeEnd) mouseReleaseScheduleUpdate(); } return DGraphicsView::event(e); } void DragInfoGraphicsView::keyPressEvent(QKeyEvent *event) { DGraphicsView::keyPressEvent(event); } void DragInfoGraphicsView::paintEvent(QPaintEvent *event) { DGraphicsView::paintEvent(event); //绘制圆角效果 QPainter painter(viewport()); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::NoPen); painter.setBrush(m_outerBorderColor); //左下角绘制圆角补角,颜色与外框背景色一致 if (m_leftShowRadius) { QPainterPath _leftPath; _leftPath.moveTo(0, this->height() - m_radius); _leftPath.arcTo(0, this->height() - m_radius * 2, m_radius * 2, m_radius * 2, 180, 90); _leftPath.lineTo(0, this->height()); _leftPath.lineTo(0, this->height() - m_radius); painter.drawPath(_leftPath); } //右下角绘制圆角补角 if (m_rightShowRadius) { QPainterPath _rightPath; _rightPath.moveTo(this->width() - m_radius, this->height()); _rightPath.arcTo(this->width() - m_radius * 2, this->height() - m_radius * 2, m_radius * 2, m_radius * 2, 270, 90); _rightPath.lineTo(this->width(), this->height()); _rightPath.lineTo(this->width() - m_radius, this->height()); painter.drawPath(_rightPath); painter.end(); } } void DragInfoGraphicsView::showEvent(QShowEvent *event) { //显示时重置大小 resize(this->width(), this->height()); DGraphicsView::showEvent(event); } void DragInfoGraphicsView::slotCreate() { slotCreate(m_createDate); } /** * @brief DragInfoGraphicsView::setPressSelectInfo 设置点击选中日程 * @param info */ void DragInfoGraphicsView::setPressSelectInfo(const ScheduleDataInfo &info) { DragInfoItem::setPressSchedule(info); } /** * @brief DragInfoGraphicsView::updateScheduleInfo 拖拽更新日程信息 * @param info */ void DragInfoGraphicsView::updateScheduleInfo(const ScheduleDataInfo &info) { QVariant variant; //获取主窗口指针 CalendarGlobalEnv::getGlobalEnv()->getValueByKey("MainWindow", variant); QObject *parent = static_cast(variant.value()); //设置父类为主窗口 CScheduleOperation _scheduleOperation(qobject_cast(parent)); if (_scheduleOperation.changeSchedule(info, m_PressScheduleInfo)) { //如果日程修改成功则更新更新标志 m_hasUpdateMark = true; } else { //如果取消更新则主动更新显示 updateInfo(); } } void DragInfoGraphicsView::DragPressEvent(const QPoint &pos, DragInfoItem *item) { m_PressPos = pos; m_PressDate = getPosDate(pos); m_MoveDate = m_PressDate.addMonths(-2); CalendarGlobalEnv::getGlobalEnv()->reviseValue(DDECalendar::CursorPointKey, mapToGlobal(pos)); if (item != nullptr) { PosInItem mpressstatus = getPosInItem(pos, item->boundingRect()); if (mpressstatus != MIDDLE && item->getData().getType() == 4) { return; } m_DragScheduleInfo = item->getData(); m_PressScheduleInfo = item->getData(); m_InfoBeginTime = m_DragScheduleInfo.getBeginDateTime(); m_InfoEndTime = m_DragScheduleInfo.getEndDateTime(); switch (mpressstatus) { case TOP: m_DragStatus = ChangeBegin; setCursor(Qt::SplitVCursor); break; case BOTTOM: m_DragStatus = ChangeEnd; setCursor(Qt::SplitVCursor); break; case LEFT: m_DragStatus = ChangeBegin; setCursor(Qt::SplitHCursor); break; case RIGHT: m_DragStatus = ChangeEnd; setCursor(Qt::SplitHCursor); break; default: ShowSchedule(item); m_DragStatus = ChangeWhole; QMimeData *mimeData = new QMimeData(); mimeData->setText(m_DragScheduleInfo.getTitleName()); mimeData->setData("Info", ScheduleDataInfo::ScheduleToJsonStr(m_DragScheduleInfo).toUtf8()); if (m_Drag == nullptr) { m_Drag = new QDrag(this); } m_Drag->setMimeData(mimeData); QPointF itemPos = QPointF(pos.x() - item->boundingRect().x(), pos.y() - item->boundingRect().y()); m_Drag->setHotSpot(itemPos.toPoint()); setDragPixmap(m_Drag, item); break; } } else { m_DragStatus = IsCreate; m_isCreate = false; } } /** * @brief DragInfoGraphicsView::mouseReleaseScheduleUpdate 鼠标左击释放数据处理 */ void DragInfoGraphicsView::mouseReleaseScheduleUpdate() { setCursor(Qt::ArrowCursor); m_press = false; DragInfoItem::setPressFlag(false); switch (m_DragStatus) { case IsCreate: if (MeetCreationConditions(m_MoveDate)) { //如果不添加会进入leaveEvent事件内的条件 m_DragStatus = NONE; CScheduleDlg dlg(1, this); dlg.setData(m_DragScheduleInfo); //如果取消新建则主动刷新日程信息 dlg.exec(); //因dtk override了exec函数,这里使用result判断返回值类型,如果不为Accepted则刷新界面 if (dlg.result() != DDialog::Accepted) { updateInfo(); } //设置选中日程为无效日程 setPressSelectInfo(ScheduleDataInfo()); } break; case ChangeBegin: if (!IsEqualtime(m_MoveDate, m_InfoBeginTime)) { //如果不添加会进入leaveEvent事件内的条件 m_DragStatus = NONE; updateScheduleInfo(m_DragScheduleInfo); } break; case ChangeEnd: if (!IsEqualtime(m_MoveDate, m_InfoEndTime)) { //如果不添加会进入leaveEvent事件内的条件 m_DragStatus = NONE; updateScheduleInfo(m_DragScheduleInfo); } break; default: break; } m_DragStatus = NONE; update(); } void DragInfoGraphicsView::mousePress(const QPoint &point) { setPressSelectInfo(ScheduleDataInfo()); //设置拖拽日程为无效日程 m_DragScheduleInfo = ScheduleDataInfo(); pressScheduleInit(); QGraphicsItem *listItem = itemAt(point); DragInfoItem *infoitem = dynamic_cast(listItem); if (infoitem != nullptr) { setPressSelectInfo(infoitem->getData()); m_press = true; DragInfoItem::setPressFlag(true); } else { emit signalScheduleShow(false); } DragPressEvent(point, infoitem); this->scene()->update(); update(); } int DragInfoGraphicsView::getSlidePos() const { return m_touchSlidePos; } void DragInfoGraphicsView::setSlidePos(int pos) { m_touchSlidePos = pos; verticalScrollBar()->setValue(m_touchSlidePos); } void DragInfoGraphicsView::stopTouchAnimation() { m_touchAnimation->stop(); } /** * @brief DragInfoGraphicsView::DeleteItem 删除日程 * @param info */ void DragInfoGraphicsView::DeleteItem(const ScheduleDataInfo &info) { //删除日程 CScheduleOperation _scheduleOperation(this); _scheduleOperation.deleteSchedule(info); } /** * @brief DragInfoGraphicsView::setSelectSearchSchedule 设置选中搜索日程 * @param scheduleInfo */ void DragInfoGraphicsView::setSelectSearchSchedule(const ScheduleDataInfo &scheduleInfo) { setPressSelectInfo(scheduleInfo); } void DragInfoGraphicsView::setDragPixmap(QDrag *drag, DragInfoItem *item) { Q_UNUSED(item); //设置一个1*1的透明图片,要不然关闭窗口特效会有一个小黑点 QPixmap pixmap(1, 1); pixmap.fill(Qt::transparent); drag->setPixmap(pixmap); //设置图标位置为鼠标位置 drag->setHotSpot(QPoint(0, 0)); } void DragInfoGraphicsView::slotCreate(const QDateTime &date) { CScheduleDlg dlg(1, this); QDateTime tDatatime; tDatatime.setDate(date.date()); if (date.date() == QDate::currentDate()) { tDatatime.setTime(QTime::currentTime()); } else { tDatatime.setTime(QTime(8, 0)); } dlg.setDate(tDatatime); dlg.setAllDay(true); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); } } ScheduleDataInfo DragInfoGraphicsView::getScheduleInfo(const QDateTime &beginDate, const QDateTime &endDate) { ScheduleDataInfo info; if (beginDate.daysTo(endDate) > 0) { info.setBeginDateTime(QDateTime(beginDate.date(), QTime(0, 0, 0))); info.setEndDateTime(QDateTime(endDate.date(), QTime(23, 59, 59))); } else { info.setBeginDateTime(QDateTime(endDate.date(), QTime(0, 0, 0))); info.setEndDateTime(QDateTime(beginDate.date(), QTime(23, 59, 00))); } info.setTitleName(tr("New Event")); info.setAllDay(true); info.setRemindData(RemindData(1, QTime(9, 0))); info.setID(0); info.setRecurID(0); return info; } void DragInfoGraphicsView::ShowSchedule(DragInfoItem *infoitem) { if (infoitem == nullptr) return; emit signalScheduleShow(true, infoitem->getData()); } void DragInfoGraphicsView::setTheMe(int type) { Q_UNUSED(type); DPalette _painte; //获取外框背景色 m_outerBorderColor = _painte.color(QPalette::Active, QPalette::Window); } void DragInfoGraphicsView::slideEvent(QPointF &startPoint, QPointF &stopPort) { qreal _movingLine {0}; //获取滑动方向 touchGestureOperation::TouchMovingDirection _touchMovingDir = touchGestureOperation::getTouchMovingDir(startPoint, stopPort, _movingLine); m_touchMovingDir = _touchMovingDir; //切换标志 0 不切换 1 下一页 -1 上一页 int delta {0}; //移动偏移 25则切换 const int moveOffset = 25; switch (_touchMovingDir) { case touchGestureOperation::T_TOP: case touchGestureOperation::T_BOTTOM: { const int pos_Diff_Y = qFloor(stopPort.y() - startPoint.y()); verticalScrollBar()->setValue(verticalScrollBar()->sliderPosition() - pos_Diff_Y); startPoint = stopPort; break; } case touchGestureOperation::T_LEFT: { if (_movingLine > moveOffset) { delta = 1; startPoint = stopPort; } break; } case touchGestureOperation::T_RIGHT: { if (_movingLine > moveOffset) { delta = -1; startPoint = stopPort; } break; } default: break; } if (delta != 0) { emit signalAngleDelta(delta); } } /** * @brief DragInfoGraphicsView::updateInfo 更新日程数据显示 */ void DragInfoGraphicsView::updateInfo() { //如果拖拽日程有效则更新为不是移动日程 if (m_DragScheduleInfo.isValid() && m_DragScheduleInfo.getID() != 0) { m_DragScheduleInfo.setIsMoveInfo(false); //设置选择日程状态 setPressSelectInfo(m_DragScheduleInfo); } } int DragInfoGraphicsView::getDragStatus() const { return m_DragStatus; } void DragInfoGraphicsView::setShowRadius(bool leftShow, bool rightShow) { m_leftShowRadius = leftShow; m_rightShowRadius = rightShow; } /** * @brief DragInfoGraphicsView::slotDeleteItem 删除日程 */ void DragInfoGraphicsView::slotDeleteItem() { //获取选中日程 ScheduleDataInfo _pressSchedule = DragInfoItem::getPressSchedule(); //根据焦点状态获取当前焦点的item CSceneBackgroundItem *backgroundItem = dynamic_cast(m_Scene->getCurrentFocusItem()); if (backgroundItem != nullptr) { DragInfoItem *dFocusItem = dynamic_cast(backgroundItem->getFocusItem()); if (dFocusItem != nullptr && dFocusItem->getItemType() == CFocusItem::CITEM) { if (dFocusItem->getItemFocus()) { _pressSchedule = dFocusItem->getData(); } } } //判断是否有效,如果为有效日程且日程类型不为节日或纪念日则删除 if (_pressSchedule.isValid() && _pressSchedule.getType() != 4) { CScheduleOperation _scheduleOperation(this); _scheduleOperation.deleteSchedule(_pressSchedule); //设置选择日程为无效日程 setPressSelectInfo(ScheduleDataInfo()); //设置拖拽日程为无效日程 m_DragScheduleInfo = DragInfoItem::getPressSchedule(); } } void DragInfoGraphicsView::slotSwitchPrePage(const QDate &focusDate, bool isSwitchView) { emit signalSwitchPrePage(); if (isSwitchView) { m_Scene->signalSwitchView(focusDate, true); } else { setSceneCurrentItemFocus(focusDate); } } void DragInfoGraphicsView::slotSwitchNextPage(const QDate &focusDate, bool isSwitchView) { emit signalSwitchNextPage(); //如果需要切换视图则 if (isSwitchView) { m_Scene->signalSwitchView(focusDate, true); } else { setSceneCurrentItemFocus(focusDate); } } void DragInfoGraphicsView::slotContextMenu(CFocusItem *item) { DragInfoItem *infoitem = dynamic_cast(item); if (infoitem != nullptr) { //如果为节假日则退出不展示右击菜单 if (infoitem->getData().getType() == 4) return; //快捷键调出右击菜单 m_Scene->setIsContextMenu(true); m_rightMenu->clear(); m_rightMenu->addAction(m_editAction); m_rightMenu->addAction(m_deleteAction); QPointF itemPos = QPointF(infoitem->rect().x() + infoitem->rect().width() / 2, infoitem->rect().y() + infoitem->rect().height() / 2); QPointF scene_pos = infoitem->mapToScene(itemPos); QPointF view_pos = mapFromScene(scene_pos); QPoint screen_pos = mapToGlobal(view_pos.toPoint()); QAction *action_t = m_rightMenu->exec(screen_pos); if (action_t == m_editAction) { CScheduleDlg dlg(0, this); dlg.setData(infoitem->getData()); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); } } else if (action_t == m_deleteAction) { DeleteItem(infoitem->getData()); } m_Scene->setIsContextMenu(false); m_Scene->currentFocusItemUpdate(); } } /** * @brief DragInfoGraphicsView::slotsetNextFocus 切换到下一个焦点 */ void DragInfoGraphicsView::slotsetNextFocus() { focusNextPrevChild(true); } void DragInfoGraphicsView::setSceneCurrentItemFocus(const QDate &focusDate) { Q_UNUSED(focusDate); } /** * @brief DragInfoGraphicsView::pressScheduleInit 初始化点击日程 */ void DragInfoGraphicsView::pressScheduleInit() { m_PressScheduleInfo = ScheduleDataInfo(); } QDate DragInfoGraphicsView::getCurrentDate() const { return m_currentDate; } void DragInfoGraphicsView::setCurrentDate(const QDate ¤tDate) { m_currentDate = currentDate; } dde-calendar-5.9.1/calendar-client/src/view/draginfographicsview.h000066400000000000000000000224001423264401600251750ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 DRAGINFOGRAPHICSVIEW_H #define DRAGINFOGRAPHICSVIEW_H #include "graphicsItem/draginfoitem.h" #include "../widget/touchgestureoperation.h" #include "src/scheduledatainfo.h" #include "cgraphicsscene.h" #include #include #include #include DWIDGET_USE_NAMESPACE class CScheduleDataManage; class QPropertyAnimation; class DragInfoGraphicsView : public DGraphicsView { Q_OBJECT Q_PROPERTY(int touchSlidePos READ getSlidePos WRITE setSlidePos) public: explicit DragInfoGraphicsView(DWidget *parent = nullptr); ~DragInfoGraphicsView() override; public: //鼠标位置 enum PosInItem {LEFT, MIDDLE, RIGHT, TOP, BOTTOM}; //鼠标移动状态 enum DragStatus {IsCreate = 0, ChangeBegin = 1, ChangeEnd = 2, ChangeWhole = 3, NONE = 4}; /** * @brief The TouchState enum 触摸状态 */ enum TouchState { TS_NONE //默认状态 , TS_PRESS //点击 , TS_DRAG_MOVE //拖拽移动 , TS_SLIDE //滑动 , TS_LONG_PRESS //长按 }; int getDragStatus() const; void setShowRadius(bool leftShow = false, bool rightShow = false); protected: void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void wheelEvent(QWheelEvent *event) override; void contextMenuEvent(QContextMenuEvent *event) override; void dragEnterEvent(QDragEnterEvent *event) override; void dragLeaveEvent(QDragLeaveEvent *event) override; void dragMoveEvent(QDragMoveEvent *event) override; void dropEvent(QDropEvent *event) override; bool event(QEvent *e) override; void keyPressEvent(QKeyEvent *event) override; void paintEvent(QPaintEvent *event) override; void showEvent(QShowEvent *event) override; private: void slotCreate(); //设置点击选中日程 void setPressSelectInfo(const ScheduleDataInfo &info); //拖拽更新日程信息 void updateScheduleInfo(const ScheduleDataInfo &info); void DragPressEvent(const QPoint &pos, DragInfoItem *item); //鼠标左击释放数据处理 void mouseReleaseScheduleUpdate(); /** * @brief mousePress 鼠标左击事件处理 * @param point 左击坐标 */ void mousePress(const QPoint &point); /** * @brief getSlidePos 获取滑动位置 * @return */ int getSlidePos() const; /** * @brief setSlidePos 设置滑动位置 * @param pos */ void setSlidePos(int pos); /** * @brief stopTouchAnimation 停止触摸滑动动画效果 */ void stopTouchAnimation(); protected: //删除日程 void DeleteItem(const ScheduleDataInfo &info); public: //设置搜索选中日程 virtual void setSelectSearchSchedule(const ScheduleDataInfo &scheduleInfo); //初始化点击日程 void pressScheduleInit(); QDate getCurrentDate() const; void setCurrentDate(const QDate ¤tDate); protected: virtual void setDragPixmap(QDrag *drag, DragInfoItem *item); virtual void slotCreate(const QDateTime &date); //符合创建条件 virtual bool MeetCreationConditions(const QDateTime &date) = 0; virtual void upDateInfoShow(const DragStatus &status = NONE, const ScheduleDataInfo &info = ScheduleDataInfo()) = 0; virtual QDateTime getPosDate(const QPoint &p) = 0; virtual void MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) = 0; virtual PosInItem getPosInItem(const QPoint &p, const QRectF &itemRect) = 0; virtual ScheduleDataInfo getScheduleInfo(const QDateTime &beginDate, const QDateTime &endDate); virtual void ShowSchedule(DragInfoItem *infoitem); //设置主题 virtual void setTheMe(int type = 0); //判断时间是否相等 virtual bool IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) = 0; //根据鼠标移动的距离判断是否创建日程 virtual bool JudgeIsCreate(const QPointF &pos) = 0; virtual void RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) = 0; /** * @brief getDragScheduleInfoBeginTime 获取拖拽日程开始时间 * @param moveDateTime 当前鼠标移动坐标对应的时间 * @return */ virtual QDateTime getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) = 0; /** * @brief getDragScheduleInfoEndTime 获取拖拽日程结束时间 * @param moveDateTime 当前鼠标移动坐标对应的时间 * @return */ virtual QDateTime getDragScheduleInfoEndTime(const QDateTime &moveDateTime) = 0; /** * @brief slideEvent 触摸滑动事件处理 * @param startPoint 触摸开始坐标 * @param stopPort 触摸结束坐标 */ virtual void slideEvent(QPointF &startPoint, QPointF &stopPort); //更新日程显示 virtual void updateInfo(); //更新背景上显示的item virtual void updateBackgroundShowItem() = 0; signals: /** * @brief signalAngleDelta 发送滚动信号滚动相对量 * @param delta 滚动相对量 */ void signalAngleDelta(int delta); //更新获取日程信息 void signalsUpdateSchedule(); /** * @brief signalScheduleShow 发送日程提示框信号 * @param isShow 是否显示 * @param out 显示的日程信息 */ void signalScheduleShow(const bool isShow, const ScheduleDataInfo &out = ScheduleDataInfo()); //scene更新 void signalSceneUpdate(); void signalSwitchPrePage(); void signalSwitchNextPage(); void signalGotoDayView(const QDate &date); public slots: //删除日程 void slotDeleteItem(); void slotSwitchPrePage(const QDate &focusDate, bool isSwitchView = false); void slotSwitchNextPage(const QDate &focusDate, bool isSwitchView = false); void slotContextMenu(CFocusItem *item); //切换焦点到下一个 void slotsetNextFocus(); protected: //设置场景数据切换后当前item焦点 virtual void setSceneCurrentItemFocus(const QDate &focusDate); protected: int m_themetype = 0; CGraphicsScene *m_Scene = nullptr; bool m_press = false; QAction *m_createAction = nullptr; // 创建日程 QAction *m_editAction = nullptr; QAction *m_deleteAction = nullptr; DMenu *m_rightMenu = nullptr; QDateTime m_createDate; DragStatus m_DragStatus = NONE; bool m_isCreate; QDateTime m_PressDate; QDateTime m_MoveDate; QPoint m_PressPos; //保证月,周/日全天和非全天的拖拽日程为同一个 static ScheduleDataInfo m_DragScheduleInfo; static bool m_hasUpdateMark; //拖拽后是否需要更新显示标志 QDateTime m_InfoBeginTime; QDateTime m_InfoEndTime; QDrag *m_Drag = nullptr; //点击的原始info ScheduleDataInfo m_PressScheduleInfo; QRectF m_PressRect; /** * @brief m_TouchBeginPoint 触摸开始坐标 */ QPointF m_TouchBeginPoint; /** * @brief m_TouchBeginTime 触摸点击屏幕的事件 */ qint64 m_TouchBeginTime; /** * @brief m_touchState 触摸状态 */ TouchState m_touchState = TS_NONE; /** * @brief m_touchDragMoveState 触摸拖拽移动状态 * 0 原始状态 * 1 拖拽确认,移动的时候触发点击事件 * 2 拖拽移动 */ int m_touchDragMoveState; /** * @brief m_touchState 触摸滑动位置 */ int m_touchSlidePos {0}; /** * @brief m_touchAnimation 触摸滑动动画 */ QPropertyAnimation *m_touchAnimation; /** * @brief m_touchMovingDir 记录快速滑动方向 */ touchGestureOperation::TouchMovingDirection m_touchMovingDir {touchGestureOperation::T_MOVE_NONE}; qreal m_radius{16}; //圆角半径 bool m_leftShowRadius{false}; //左下角显示圆角 bool m_rightShowRadius{false}; //右下角显示圆角 QColor m_outerBorderColor; //外边框背景色 QDate m_currentDate; }; #endif // DRAGINFOGRAPHICSVIEW_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/000077500000000000000000000000001423264401600232405ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/calldayscheduleitem.cpp000066400000000000000000000117451423264401600277610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "calldayscheduleitem.h" #include CAllDayScheduleItem::CAllDayScheduleItem(QRectF rect, QGraphicsItem *parent) : DragInfoItem(rect, parent) { } bool CAllDayScheduleItem::hasSelectSchedule(const ScheduleDataInfo &info) { return info == m_vScheduleInfo; } void CAllDayScheduleItem::paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap) { Q_UNUSED(isPixMap); m_font = DFontSizeManager::instance()->get(m_sizeType, m_font); painter->setRenderHints(QPainter::Antialiasing); CSchedulesColor gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(m_vScheduleInfo.getType()); QRectF drawrect = rect; QColor textcolor = CScheduleDataManage::getScheduleDataManage()->getTextColor(); //判断是否为选中日程 if (m_vScheduleInfo == m_pressInfo) { //判断当前日程是否为拖拽移动日程 if (m_vScheduleInfo.getIsMoveInfo() == m_pressInfo.getIsMoveInfo()) { m_vHighflag = true; } else { painter->setOpacity(0.4); textcolor.setAlphaF(0.4); } m_vSelectflag = m_press; } int themetype = CScheduleDataManage::getScheduleDataManage()->getTheme(); QColor brushColor = gdColor.normalColor; if (m_vHoverflag) { brushColor = gdColor.hoverColor; } else if (m_vHighflag) { brushColor = gdColor.pressColor; } else if (m_vSelectflag) { brushColor = gdColor.pressColor; textcolor.setAlphaF(0.4); } QRectF fillRect = QRectF(drawrect.x(), drawrect.y(), drawrect.width(), drawrect.height() - 2); //将直线开始点设为0,终点设为1,然后分段设置颜色 painter->setBrush(brushColor); if (getItemFocus() && isPixMap == false) { QPen framePen; framePen.setWidth(2); framePen.setColor(getSystemActiveColor()); painter->setPen(framePen); } else { painter->setPen(Qt::NoPen); } painter->drawRoundedRect(fillRect, rect.height() / 3, rect.height() / 3); painter->setFont(m_font); painter->setPen(textcolor); QFontMetrics fm = painter->fontMetrics(); QString tSTitleName = m_vScheduleInfo.getTitleName(); tSTitleName.replace("\n", ""); QString str = tSTitleName; QString tStr; int _rightOffset = fm.width("..."); //显示宽度 左侧偏移13右侧偏移8 qreal _showWidth = fillRect.width() - 13 - 8 - m_offset * 2; //如果标题总长度大于显示长度则显示长度须减去"..."的长度 if (fm.width(str) > _showWidth) { _showWidth -= _rightOffset; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); int widthT = fm.width(tStr); //如果宽度大于显示长度则去除最后添加的字符 if (widthT > _showWidth) { tStr.chop(1); break; } } if (tStr != str) { tStr = tStr + "..."; } } else { tStr = str; } painter->drawText(QRectF(fillRect.topLeft().x() + 13, fillRect.y(), fillRect.width(), fillRect.height()), Qt::AlignLeft | Qt::AlignVCenter, tStr); if (m_vHoverflag && !m_vSelectflag) { QRectF tRect = QRectF(fillRect.x() + 0.5, fillRect.y() + 0.5, fillRect.width() - 1, fillRect.height() - 1); painter->save(); QPen pen; QColor selcolor; if (themetype == 2) { selcolor = "#FFFFFF"; } else { selcolor = "#000000"; } selcolor.setAlphaF(0.08); pen.setColor(selcolor); pen.setWidthF(1); pen.setStyle(Qt::SolidLine); painter->setBrush(Qt::NoBrush); painter->setPen(pen); painter->drawRoundedRect(tRect, rect.height() / 3, rect.height() / 3); painter->restore(); } if (m_vSelectflag) { QColor selcolor = "#000000"; selcolor.setAlphaF(0.05); painter->setBrush(selcolor); painter->setPen(Qt::NoPen); painter->drawRoundedRect(fillRect, rect.height() / 3, rect.height() / 3); } } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/calldayscheduleitem.h000066400000000000000000000024351423264401600274220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CALLDAYSCHEDULEITEM_H #define CALLDAYSCHEDULEITEM_H #include "draginfoitem.h" class CAllDayScheduleItem : public DragInfoItem { Q_OBJECT public: explicit CAllDayScheduleItem(QRectF rect, QGraphicsItem *parent = nullptr); bool hasSelectSchedule(const ScheduleDataInfo &info); protected: void paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap = false) override; }; #endif // CALLDAYSCHEDULEITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cfocusitem.cpp000066400000000000000000000050631423264401600261110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cfocusitem.h" #include "scheduledatamanage.h" #include #include CFocusItem::CFocusItem(QGraphicsItem *parent) : QGraphicsRectItem(parent) , m_NextFocusItem(nullptr) , m_itemType(CITEM) , m_isFocus(false) { } /** * @brief CFocusItem::setNextFocusItem 设置下一个FocusItem * @param nextFocusItem */ void CFocusItem::setNextFocusItem(CFocusItem *nextFocusItem) { m_NextFocusItem = nextFocusItem; } /** * @brief CFocusItem::setItemFocus 设置item是否获取focus * @param isFocus */ void CFocusItem::setItemFocus(bool isFocus) { m_isFocus = isFocus; this->scene()->update(); } /** * @brief CFocusItem::getItemFocus 获取该item是否focus * @return */ bool CFocusItem::getItemFocus() const { return m_isFocus; } /** * @brief CFocusItem::setItemType 设置item类型 * @param itemType */ void CFocusItem::setItemType(CFocusItem::CItemType itemType) { m_itemType = itemType; } /** * @brief CFocusItem::getItemType 获取item类型 * @return */ CFocusItem::CItemType CFocusItem::getItemType() const { return m_itemType; } /** * @brief CFocusItem::setNextItemFocusAndGetNextItem 设置下一个item focus状态并获取下一个Item * @return */ CFocusItem *CFocusItem::setNextItemFocusAndGetNextItem() { if (m_NextFocusItem != nullptr) { m_isFocus = false; m_NextFocusItem->setItemFocus(true); } return m_NextFocusItem; } /** * @brief CFocusItem::getSystemActiveColor 获取系统活动色 * @return */ QColor CFocusItem::getSystemActiveColor() { return CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); } void CFocusItem::setDate(const QDate &date) { m_Date = date; } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cfocusitem.h000066400000000000000000000037661423264401600255660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CFOCUSITEM_H #define CFOCUSITEM_H #include #include #include #include class CFocusItem : public QObject , public QGraphicsRectItem { Q_OBJECT public: enum CItemType { CBACK, CITEM, COTHER }; public: explicit CFocusItem(QGraphicsItem *parent = nullptr); //设置下一个FocusItem void setNextFocusItem(CFocusItem *nextFocusItem); //设置item是否获取focus virtual void setItemFocus(bool isFocus); //获取该item是否focus bool getItemFocus() const; //设置item类型 void setItemType(CItemType itemType); //获取item类型 CItemType getItemType() const; //设置下一个item focus状态并获取下一个Item virtual CFocusItem *setNextItemFocusAndGetNextItem(); //获取系统活动色 QColor getSystemActiveColor(); //设置显示日期 void setDate(const QDate &date); //获取显示日期 QDate getDate() const { return m_Date; } protected: QDate m_Date; private: CFocusItem *m_NextFocusItem; CItemType m_itemType; bool m_isFocus; }; #endif // CFOCUSITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cmonthdayitem.cpp000066400000000000000000000177471423264401600266310ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cmonthdayitem.h" #include "constants.h" #include "scheduledatamanage.h" #include #include #include DWIDGET_USE_NAMESPACE bool CMonthDayItem::m_LunarVisible = false; CMonthDayItem::CMonthDayItem(QGraphicsItem *parent) : CSceneBackgroundItem(CSceneBackgroundItem::OnMonthView, parent) , m_DayLunar("") , m_DayStatus(H_NONE) { //设置字体 m_dayNumFont.setPixelSize(DDECalendar::FontSizeTwentyfour); m_dayNumFont.setWeight(QFont::Light); m_LunerFont.setPixelSize(DDECalendar::FontSizeTwelve); m_LunerFont.setWeight(QFont::Normal); } CMonthDayItem::~CMonthDayItem() { } /** * @brief CMonthDayItem::setLunar 设置农历信息 * @param lunar */ void CMonthDayItem::setLunar(const QString &lunar) { m_DayLunar = lunar; } /** * @brief CMonthDayItem::setStatus 设置班休状态 * @param status */ void CMonthDayItem::setStatus(const CMonthDayItem::HolidayStatus &status) { m_DayStatus = status; } /** * @brief CMonthDayItem::setTheMe 设置主题 * @param type */ void CMonthDayItem::setTheMe(int type) { m_themetype = type; if (type == 0 || type == 1) { m_dayNumColor = "#000000"; m_dayNumCurrentColor = "#FFFFFF"; m_LunerColor = "#5E5E5E"; m_LunerColor.setAlphaF(0.5); m_fillColor = Qt::white; m_banColor = "#FF7171"; m_banColor.setAlphaF(0.1); m_xiuColor = "#ADFF71"; m_xiuColor.setAlphaF(0.1); m_BorderColor = "#000000"; m_BorderColor.setAlphaF(0.05); } else if (type == 2) { m_dayNumColor = "#C0C6D4"; m_dayNumCurrentColor = "#B8D3FF"; m_LunerColor = "#ABDAFF"; m_LunerColor.setAlphaF(0.5); m_fillColor = "#000000"; m_fillColor.setAlphaF(0.05); m_banColor = "#FF7171"; m_banColor.setAlphaF(0.1); m_xiuColor = "#ADFF71"; m_xiuColor.setAlphaF(0.1); m_BorderColor = "#000000"; m_BorderColor.setAlphaF(0.05); } update(); } void CMonthDayItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) const int hh = 36; m_currentColor = getSystemActiveColor(); painter->setRenderHints(QPainter::Antialiasing); //绘制背景 if (m_LunarVisible) { switch (m_DayStatus) { case H_WORK: painter->setBrush(QBrush(m_banColor)); break; case H_REST: painter->setBrush(QBrush(m_xiuColor)); break; default: painter->setBrush(QBrush(m_fillColor)); break; } } else { painter->setBrush(QBrush(m_fillColor)); } if (!m_IsCurrentMonth) { painter->setOpacity(0.4); } QPen pen; pen.setWidth(1); pen.setColor(m_BorderColor); painter->setPen(pen); painter->drawRect(this->rect()); painter->save(); //绘制日期 painter->setFont(m_dayNumFont); QRectF fillRect; if (m_LunarVisible) { fillRect.setRect(this->rect().x() + 3, this->rect().y() + 4, hh, hh); } else { fillRect.setRect(this->rect().x(), this->rect().y() + 4, this->rect().width(), hh); } //如果为当前时间 if (m_Date == QDate::currentDate()) { //设置不透明度为1 painter->setOpacity(1); QFont tFont = m_dayNumFont; tFont.setPixelSize(DDECalendar::FontSizeTwenty); painter->setFont(tFont); painter->setPen(m_dayNumCurrentColor); painter->save(); painter->setBrush(QBrush(m_currentColor)); painter->setPen(Qt::NoPen); if (m_LunarVisible) painter->drawEllipse(QRectF(this->rect().x() + 6, this->rect().y() + 4, hh - 8, hh - 8)); else painter->drawEllipse(QRectF((this->rect().width() - hh + 8) / 2 + this->rect().x(), this->rect().y() + 4, hh - 8, hh - 8)); painter->restore(); } else { painter->setPen(m_dayNumColor); } fillRect.setY(fillRect.y() - 10); fillRect.setX(fillRect.x() - 1); painter->drawText(fillRect, Qt::AlignCenter, QString::number(m_Date.day())); painter->restore(); //绘制农历 if (m_LunarVisible) { QFontMetrics metrics(m_LunerFont); int Lunarwidth = metrics.width(m_DayLunar); qreal filleRectX = this->rect().width() - 12 - 3 - (58 + Lunarwidth) / 2; QRectF fillRectT(this->rect().x() + filleRectX, this->rect().y() + 9, 12, 12); if (filleRectX > hh) { painter->setRenderHint(QPainter::Antialiasing); switch (m_DayStatus) { case H_WORK: { QPixmap pixmap = DHiDPIHelper::loadNxPixmap(":/resources/icon/ban.svg"); painter->drawPixmap(fillRectT.toRect(), pixmap); } break; case H_REST: { QPixmap pixmap = DHiDPIHelper::loadNxPixmap(":/resources/icon/xiu.svg"); painter->drawPixmap(fillRectT.toRect(), pixmap); } break; default: break; } } painter->setFont(m_LunerFont); painter->setPen(m_LunerColor); painter->drawText(QRectF(this->rect().x() + this->rect().width() - 58, this->rect().y() + 6, 58, 18), Qt::AlignCenter, m_DayLunar); } //如果有焦点则绘制焦点效果 if (getItemFocus()) { const int offset = 1; //获取tab图形 QRectF drawRect(rect().x() + offset, rect().y() + offset, rect().width() - offset * 2, rect().height() - offset * 2); QPen framePen; //设置边框宽度 framePen.setWidth(2); //设置边框颜色 framePen.setColor(m_currentColor); painter->setPen(framePen); painter->setBrush(Qt::NoBrush); painter->setOpacity(1); //半径 qreal radius = 16; //直径 qreal diameter = radius * 2; //绘制的路径 QPainterPath path; path.moveTo(drawRect.x(), drawRect.y()); //如果为左下角则绘制圆角 if (this->getBackgroundNum() == 35) { path.lineTo(drawRect.x(), drawRect.y() + drawRect.height() - radius); QRectF arcRect(drawRect.x(), drawRect.y() + drawRect.height() - diameter, diameter, diameter); path.arcTo(arcRect, 180, 90); } else { path.lineTo(drawRect.x(), drawRect.y() + drawRect.height()); } //如果为右下角则绘制圆角 if (this->getBackgroundNum() == 41) { path.lineTo(drawRect.x() + drawRect.width() - radius, drawRect.y() + drawRect.height()); QRectF arcRect(drawRect.x() + drawRect.width() - diameter, drawRect.y() + drawRect.height() - diameter, diameter, diameter); path.arcTo(arcRect, 270, 90); } else { path.lineTo(drawRect.x() + drawRect.width(), drawRect.y() + drawRect.height()); } path.lineTo(drawRect.x() + drawRect.width(), drawRect.y()); path.lineTo(drawRect.x(), drawRect.y()); painter->drawPath(path); } } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cmonthdayitem.h000066400000000000000000000043711423264401600262630ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CMONTHDAYITEM_H #define CMONTHDAYITEM_H #include "cscenebackgrounditem.h" #include #include /** * @brief The CMonthDayItem class * 月视图绘制天item */ class CMonthDayItem : public CSceneBackgroundItem { Q_OBJECT public: enum HolidayStatus { H_NONE = 0x00, H_REST = 0x01, H_WORK = 0x02 }; explicit CMonthDayItem(QGraphicsItem *parent = nullptr); ~CMonthDayItem() override; //设置农历信息 void setLunar(const QString &lunar); //设置班休状态 void setStatus(const HolidayStatus &status); //设置是否为当前选择月份 void setCurrentMonth(bool isCurrent) { m_IsCurrentMonth = isCurrent; } //设置主题 void setTheMe(int type = 0); protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; private: QString m_DayLunar; HolidayStatus m_DayStatus; QFont m_dayNumFont; QColor m_dayNumColor; QColor m_dayNumCurrentColor; QFont m_LunerFont; QColor m_LunerColor; QColor m_BorderColor; bool m_IsCurrentMonth = false; QColor m_fillColor = Qt::white; QColor m_banColor = "#FBE9B7"; QColor m_xiuColor = "#D4FFB3"; int m_themetype = 0; QColor m_currentColor; const int m_radius = 18; public: static bool m_LunarVisible; }; #endif // CMONTHDAYITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cmonthscheduleitem.cpp000066400000000000000000000130171423264401600276320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cmonthscheduleitem.h" #include CMonthScheduleItem::CMonthScheduleItem(QRect rect, QGraphicsItem *parent, int edittype) : DragInfoItem(rect, parent) , m_pos(13, 5) { Q_UNUSED(edittype); } CMonthScheduleItem::~CMonthScheduleItem() { } QPixmap CMonthScheduleItem::getPixmap() { QPixmap pixmap(this->rect().size().toSize()); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); paintBackground(&painter, pixmap.rect(), true); return pixmap; } void CMonthScheduleItem::paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap) { qreal labelwidth = rect.width(); qreal labelheight = rect.height(); m_font = DFontSizeManager::instance()->get(m_sizeType, m_font); int themetype = CScheduleDataManage::getScheduleDataManage()->getTheme(); CSchedulesColor gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(m_vScheduleInfo.getType()); QColor brushColor = gdColor.normalColor; QColor textcolor = CScheduleDataManage::getScheduleDataManage()->getTextColor(); //判断是否为选中日程 if (m_vScheduleInfo == m_pressInfo) { //判断当前日程是否为拖拽移动日程 if (m_vScheduleInfo.getIsMoveInfo() == m_pressInfo.getIsMoveInfo()) { m_vHighflag = true; } else { painter->setOpacity(0.4); textcolor.setAlphaF(0.4); } m_vSelectflag = m_press; } if (isPixMap) { painter->setOpacity(0.6); textcolor.setAlphaF(0.8); } if (m_vSelectflag) { brushColor = gdColor.pressColor; textcolor.setAlphaF(0.4); } else if (m_vHoverflag) { brushColor = gdColor.hoverColor; } else if (m_vHighflag) { brushColor = gdColor.pressColor; } QRectF fillRect = QRectF(rect.x() + 2, rect.y() + 2, labelwidth - 2, labelheight - 2); painter->save(); //将直线开始点设为0,终点设为1,然后分段设置颜色 painter->setBrush(brushColor); if (getItemFocus() && isPixMap == false) { QPen framePen; framePen.setWidth(2); framePen.setColor(getSystemActiveColor()); painter->setPen(framePen); } else { painter->setPen(Qt::NoPen); } painter->drawRoundedRect(fillRect, rect.height() / 3, rect.height() / 3); painter->restore(); painter->setFont(m_font); painter->setPen(textcolor); QFontMetrics fm = painter->fontMetrics(); QString tSTitleName = m_vScheduleInfo.getTitleName(); tSTitleName.replace("\n", ""); QString str = tSTitleName; //右侧偏移8 qreal textWidth = labelwidth - m_pos.x() - m_offset * 2 - 8; QString tStr; int _rightOffset = fm.width("..."); //显示宽度 左侧偏移13右侧偏移8 qreal _showWidth = textWidth; //如果标题总长度大于显示长度则显示长度须减去"..."的长度 if (fm.width(str) > _showWidth) { _showWidth -= _rightOffset; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); int widthT = fm.width(tStr); //如果宽度大于显示长度则去除最后添加的字符 if (widthT > _showWidth) { tStr.chop(1); break; } } if (tStr != str) { tStr = tStr + "..."; } } else { tStr = str; } painter->drawText(QRectF(rect.x() + m_pos.x(), rect.y() + 1, textWidth, labelheight - m_pos.y() + 3), Qt::AlignLeft | Qt::AlignVCenter, tStr); if (m_vHoverflag && !m_vSelectflag) { QRectF tRect = QRectF(rect.x() + 2.5, rect.y() + 2.5, labelwidth - 3, labelheight - 3); painter->save(); painter->setRenderHints(QPainter::Antialiasing); QPen pen; QColor selcolor; if (themetype == 2) { selcolor = "#FFFFFF"; } else { selcolor = "#000000"; } selcolor.setAlphaF(0.08); pen.setColor(selcolor); pen.setWidthF(1); pen.setStyle(Qt::SolidLine); painter->setBrush(Qt::NoBrush); painter->setPen(pen); painter->drawRoundedRect(tRect, rect.height() / 3, rect.height() / 3); painter->restore(); } if (m_vSelectflag) { QColor selcolor = "#000000"; selcolor.setAlphaF(0.05); painter->setBrush(selcolor); painter->setPen(Qt::NoPen); painter->drawRoundedRect(fillRect, rect.height() / 3, rect.height() / 3); } } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cmonthscheduleitem.h000077500000000000000000000026161423264401600273050ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CMONTHSCHEDULEITEM_H #define CMONTHSCHEDULEITEM_H #include "draginfoitem.h" /** * @brief The CMonthScheduleItem class * 月视图日程标签 */ class CMonthScheduleItem : public DragInfoItem { Q_OBJECT public: explicit CMonthScheduleItem(QRect rect, QGraphicsItem *parent = nullptr, int edittype = 0); ~CMonthScheduleItem() override; QPixmap getPixmap(); private: void paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap = false) override; private: QPoint m_pos; }; #endif // CMONTHSCHEDULEITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cmonthschedulenumitem.cpp000066400000000000000000000064431423264401600303570ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cmonthschedulenumitem.h" #include CMonthScheduleNumItem::CMonthScheduleNumItem(QGraphicsItem *parent) : CFocusItem(parent) , m_num(0) { setItemType(COTHER); } CMonthScheduleNumItem::~CMonthScheduleNumItem() { } /** * @brief CMonthScheduleNumItem::setColor 设置背景色 * @param color1 * @param color2 */ void CMonthScheduleNumItem::setColor(QColor color1, QColor color2) { m_color1 = color1; m_color2 = color2; } /** * @brief CMonthScheduleNumItem::setText 这是字体颜色 * @param tColor * @param font */ void CMonthScheduleNumItem::setText(QColor tColor, QFont font) { m_textcolor = tColor; m_font = font; } /** * @brief CMonthScheduleNumItem::setSizeType 设置字体大小 * @param sizeType */ void CMonthScheduleNumItem::setSizeType(DFontSizeManager::SizeType sizeType) { m_SizeType = sizeType; } void CMonthScheduleNumItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); qreal labelwidth = this->rect().width(); qreal labelheight = this->rect().height() - 6; qreal rectX = this->rect().x(); qreal rectY = this->rect().y(); //绘制背景 m_font = DFontSizeManager::instance()->get(m_SizeType, m_font); //将直线开始点设为0,终点设为1,然后分段设置颜色 QLinearGradient linearGradient(0, 0, labelwidth, 0); linearGradient.setColorAt(0, m_color1); linearGradient.setColorAt(1, m_color2); painter->setRenderHints(QPainter::Antialiasing); painter->setBrush(linearGradient); if (getItemFocus()) { QPen framePen; framePen.setWidth(2); framePen.setColor(getSystemActiveColor()); painter->setPen(framePen); } else { painter->setPen(Qt::NoPen); } painter->drawRoundedRect(rect(), rect().height() / 3, rect().height() / 3); //绘制文字 painter->setFont(m_font); painter->setPen(m_textcolor); QString str = QString(tr("%1 more")).arg(m_num) + "..."; QFontMetrics fm = painter->fontMetrics(); QString tStr; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); int widthT = fm.width(tStr) + 5; if (widthT >= labelwidth) { tStr.chop(2); break; } } if (tStr != str) { tStr = tStr + "..."; } painter->drawText(QRectF(rectX, rectY, labelwidth, labelheight + 4), Qt::AlignCenter, tStr); } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cmonthschedulenumitem.h000066400000000000000000000036641423264401600300260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CMONTHSCHEDULENUMITEM_H #define CMONTHSCHEDULENUMITEM_H #include "cfocusitem.h" #include "src/scheduledatainfo.h" #include "scheduledaterangeinfo.h" #include DWIDGET_USE_NAMESPACE /** * @brief The CMonthScheduleNumItem class * 月视图 还有N项 标签 */ class CMonthScheduleNumItem : public CFocusItem { Q_OBJECT public: explicit CMonthScheduleNumItem(QGraphicsItem *parent = nullptr); ~CMonthScheduleNumItem() override; //背景色 void setColor(QColor color1, QColor color2); //设置字体颜色 void setText(QColor tColor, QFont font); //设置字体大小 void setSizeType(DFontSizeManager::SizeType sizeType); //设置显示多少项 void setData(int num) { m_num = num; } protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; private: QColor m_color1; QColor m_color2; QColor m_textcolor; QFont m_font; int m_num; DFontSizeManager::SizeType m_SizeType = DFontSizeManager::T8; }; #endif // CMONTHSCHEDULENUMITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cscenebackgrounditem.cpp000066400000000000000000000146621423264401600301340ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cscenebackgrounditem.h" #include #include #include CSceneBackgroundItem::CSceneBackgroundItem(ItemOnView view, QGraphicsItem *parent) : CFocusItem(parent) , m_backgroundNum(0) , m_leftItem(nullptr) , m_rightItem(nullptr) , m_upItem(nullptr) , m_downItem(nullptr) , m_showItemIndex(-1) , m_itemOfView(view) { //设置item类型为背景显示 setItemType(CBACK); } /** * @brief CSceneBackgroundItem::setNextItemFocusAndGetNextItem 设置下一个item focus状态并获取下一个Item * @return */ CFocusItem *CSceneBackgroundItem::setNextItemFocusAndGetNextItem() { CFocusItem *NextFocus = this; //若该区域没有item if (m_showItemIndex < 0 && m_item.size() == 0) { NextFocus = CFocusItem::setNextItemFocusAndGetNextItem(); } else if (m_showItemIndex == m_item.size() - 1) { //若切换到最后一个item m_item.at(m_showItemIndex)->setItemFocus(false); m_showItemIndex = -1; NextFocus = CFocusItem::setNextItemFocusAndGetNextItem(); } else { //若该背景上有显示的item //若显示的item未设置focus则取消背景focus效果 if (m_showItemIndex == -1 && getItemFocus()) { this->setItemFocus(false); } //若显示的item有设置focus则取消该item focus效果 if (m_showItemIndex >= 0) { m_item.at(m_showItemIndex)->setItemFocus(false); } //当前显示的item编号+1并这是focus效果 ++m_showItemIndex; m_item.at(m_showItemIndex)->setItemFocus(true); } return NextFocus; } /** * @brief compareItemData 对现实的日程标签进行排序 * @param itemfirst * @param itemsecond * @return */ bool compareItemData(const CFocusItem *itemfirst, const CFocusItem *itemsecond) { if (itemfirst->rect() == itemsecond->rect()) { return false; } //根据从上倒下从左至右的规则对矩阵的x,y坐标进行对比排序 if (qAbs(itemfirst->rect().y() - itemsecond->rect().y()) < 0.01) { if (itemfirst->rect().x() < itemsecond->rect().x()) { return true; } else { return false; } } else if (itemfirst->rect().y() < itemsecond->rect().y()) { return true; } else { return false; } } /** * @brief CSceneBackgroundItem::updateShowItem 更新在此背景上显示的item */ void CSceneBackgroundItem::updateShowItem() { m_item.clear(); //缩小背景矩阵,防止获取到其他背景上的item QRectF offsetRect = this->rect().marginsRemoved(QMarginsF(1, 1, 1, 1)); QList mlistitem = this->scene()->items(offsetRect); for (int i = 0; i < mlistitem.count(); ++i) { CFocusItem *item = dynamic_cast(mlistitem.at(i)); if (item != nullptr && item->getItemType() != CBACK) { m_item.append(item); } } qSort(m_item.begin(), m_item.end(), compareItemData); updateCurrentItemShow(); } int CSceneBackgroundItem::getShowItemCount() { return m_item.size(); } /** * @brief CSceneBackgroundItem::setBackgroundNum 设置背景编号 * @param num */ void CSceneBackgroundItem::setBackgroundNum(int num) { m_backgroundNum = num; } /** * @brief CSceneBackgroundItem::getBackgroundNum 获取背景编号 * @return */ int CSceneBackgroundItem::getBackgroundNum() const { return m_backgroundNum; } /** * @brief CSceneBackgroundItem::setItemFocus 设置item是否获取focus * @param isFocus */ void CSceneBackgroundItem::setItemFocus(bool isFocus) { if (m_showItemIndex < 0) { CFocusItem::setItemFocus(isFocus); } else { if (m_showItemIndex < m_item.size()) { m_item.at(m_showItemIndex)->setItemFocus(isFocus); } } } /** * @brief CSceneBackgroundItem::initState 恢复初始状态 */ void CSceneBackgroundItem::initState() { if (getItemFocus()) { setItemFocus(false); } if (m_showItemIndex > -1 && m_showItemIndex < m_item.size()) { m_item.at(m_showItemIndex)->setItemFocus(false); } m_showItemIndex = -1; } /** * @brief CSceneBackgroundItem::getFocusItem 获取当前焦点的item * @return */ CFocusItem *CSceneBackgroundItem::getFocusItem() { if (m_showItemIndex < 0) { return this; } else { return m_item.at(m_showItemIndex); } } CSceneBackgroundItem *CSceneBackgroundItem::getLeftItem() const { return m_leftItem; } void CSceneBackgroundItem::setLeftItem(CSceneBackgroundItem *leftItem) { m_leftItem = leftItem; } CSceneBackgroundItem *CSceneBackgroundItem::getRightItem() const { return m_rightItem; } void CSceneBackgroundItem::setRightItem(CSceneBackgroundItem *rightItem) { m_rightItem = rightItem; } CSceneBackgroundItem *CSceneBackgroundItem::getUpItem() const { return m_upItem; } void CSceneBackgroundItem::setUpItem(CSceneBackgroundItem *upItem) { m_upItem = upItem; } CSceneBackgroundItem *CSceneBackgroundItem::getDownItem() const { return m_downItem; } void CSceneBackgroundItem::setDownItem(CSceneBackgroundItem *downItem) { m_downItem = downItem; } void CSceneBackgroundItem::updateCurrentItemShow() { if (m_showItemIndex >= 0) { if (m_item.size() > 0) { m_showItemIndex = m_showItemIndex < m_item.size() ? m_showItemIndex : 0; m_item.at(m_showItemIndex)->setItemFocus(true); } else { m_showItemIndex = -1; setItemFocus(true); } } } CSceneBackgroundItem::ItemOnView CSceneBackgroundItem::getItemOfView() const { return m_itemOfView; } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cscenebackgrounditem.h000066400000000000000000000052441423264401600275750ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCENEBACKGROUNDITEM_H #define CSCENEBACKGROUNDITEM_H #include "cfocusitem.h" #include class CSceneBackgroundItem : public CFocusItem { Q_OBJECT public: //属于哪个视图的背景 enum ItemOnView { OnMonthView, OnWeekView, OnDayView }; public: explicit CSceneBackgroundItem(ItemOnView view, QGraphicsItem *parent = nullptr); //设置下一个item focus状态并获取下一个Item CFocusItem *setNextItemFocusAndGetNextItem() override; //更新在此背景上显示的item void updateShowItem(); //获取在此背景上显示item的数目 int getShowItemCount(); //设置背景编号 void setBackgroundNum(int num); //获取背景编号 int getBackgroundNum() const; //设置item是否获取focus void setItemFocus(bool isFocus) override; //恢复初始状态 void initState(); //获取当前焦点的item CFocusItem *getFocusItem(); CSceneBackgroundItem *getLeftItem() const; void setLeftItem(CSceneBackgroundItem *leftItem); CSceneBackgroundItem *getRightItem() const; void setRightItem(CSceneBackgroundItem *rightItem); CSceneBackgroundItem *getUpItem() const; void setUpItem(CSceneBackgroundItem *upItem); CSceneBackgroundItem *getDownItem() const; void setDownItem(CSceneBackgroundItem *downItem); //获取该背景属于哪个视图 ItemOnView getItemOfView() const; protected: virtual void updateCurrentItemShow(); signals: void setChangeFocus(); private: int m_backgroundNum; CSceneBackgroundItem *m_leftItem; CSceneBackgroundItem *m_rightItem; CSceneBackgroundItem *m_upItem; CSceneBackgroundItem *m_downItem; protected: QVector m_item {}; int m_showItemIndex; ItemOnView m_itemOfView; }; #endif // CSCENEBACKGROUNDITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cweekdaybackgrounditem.cpp000066400000000000000000000101541423264401600304600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cweekdaybackgrounditem.h" #include #include #include CWeekDayBackgroundItem::CWeekDayBackgroundItem(QGraphicsItem *parent) : CSceneBackgroundItem(CSceneBackgroundItem::OnWeekView, parent) , m_drawDividingLine(false) , m_showFocus(false) { } void CWeekDayBackgroundItem::setTheMe(int type) { if (type == 0 || type == 1) { m_weekColor = "#00429A"; m_weekColor.setAlphaF(0.05); } else { m_weekColor = "#4F9BFF"; m_weekColor.setAlphaF(0.1); } } void CWeekDayBackgroundItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) painter->setRenderHint(QPainter::Antialiasing); if (m_drawDividingLine) { //绘制分割线 if (this->getBackgroundNum() != 6) { // 分割线颜色 QColor m_linecolor = "#000000"; m_linecolor.setAlphaF(0.05); painter->setPen(Qt::SolidLine); painter->setPen(m_linecolor); painter->drawLine(this->rect().topRight(), this->rect().bottomRight()); } //绘制周六周日背景 if (m_Date.dayOfWeek() > 5) { painter->setBrush(m_weekColor); painter->setPen(Qt::NoPen); painter->drawRect(this->rect()); } } if (m_showFocus && getItemFocus()) { QPen framePen; //设置边框宽度 framePen.setWidth(2); //设置边框颜色 framePen.setColor(getSystemActiveColor()); painter->setPen(framePen); painter->setBrush(Qt::NoBrush); QRectF drawrect = this->rect().marginsRemoved(QMarginsF(1, 1, 1, 1)); painter->drawRect(drawrect); } } void CWeekDayBackgroundItem::updateCurrentItemShow() { if (m_showItemIndex >= 0) { if (m_item.size() > 0) { m_showItemIndex = m_showItemIndex < m_item.size() ? m_showItemIndex : 0; m_item.at(m_showItemIndex)->setItemFocus(true); //定位到当前焦点item emit signalPosOnView(m_item.at(m_showItemIndex)->rect().y()); } else { m_showItemIndex = -1; setItemFocus(true); } } } bool CWeekDayBackgroundItem::showFocus() const { return m_showFocus; } void CWeekDayBackgroundItem::setShowFocus(bool showFocus) { m_showFocus = showFocus; } void CWeekDayBackgroundItem::setItemFocus(bool isFocus) { //如果改背景不接受焦点切第一次设置进入该背景则设置该背景上第一个item接收focus if (m_showFocus == false && m_showItemIndex < 0) { if (hasNextSubItem()) { ++m_showItemIndex; m_item.at(m_showItemIndex)->setItemFocus(isFocus); } } else { CSceneBackgroundItem::setItemFocus(isFocus); } } bool CWeekDayBackgroundItem::hasNextSubItem() { bool result = true; if (m_showItemIndex < 0 && getShowItemCount() == 0) { return false; } if (m_showItemIndex == getShowItemCount() - 1) { return false; } return result; } bool CWeekDayBackgroundItem::drawDividingLine() const { return m_drawDividingLine; } void CWeekDayBackgroundItem::setDrawDividingLine(bool drawDividingLine) { m_drawDividingLine = drawDividingLine; } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/cweekdaybackgrounditem.h000066400000000000000000000042111423264401600301220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CWEEKDAYBACKGROUNDITEM_H #define CWEEKDAYBACKGROUNDITEM_H #include "cscenebackgrounditem.h" #include /** * @brief The CWeekDayBackgroundItem class * 周和天的全天/非全天背景绘制 */ class CWeekDayBackgroundItem : public CSceneBackgroundItem { Q_OBJECT public: explicit CWeekDayBackgroundItem(QGraphicsItem *parent = nullptr); //设置主题 void setTheMe(int type = 0); //是否绘制分割线 bool drawDividingLine() const; //设置是否绘制分割线 void setDrawDividingLine(bool drawDividingLine); //获取改背景是否焦点显示 bool showFocus() const; //设置该背景是否焦点显示 void setShowFocus(bool showFocus); //设置item是否获取focus void setItemFocus(bool isFocus) override; //在该背景上是否还有下一个需要焦点切换的item bool hasNextSubItem(); protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; void updateCurrentItemShow() override; signals: void signalPosOnView(const qreal y); public slots: private: bool m_drawDividingLine; //是否绘制分割线 bool m_showFocus; //背景是否显示焦点效果 QColor m_weekColor; //周六周日背景色 }; #endif // CWEEKDAYBACKGROUNDITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/draginfoitem.cpp000077500000000000000000000107251423264401600264240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "draginfoitem.h" #include #include #include bool DragInfoItem::m_press = false; ScheduleDataInfo DragInfoItem::m_HoverInfo; ScheduleDataInfo DragInfoItem::m_pressInfo; QVector DragInfoItem::m_searchScheduleInfo; DragInfoItem::DragInfoItem(QRectF rect, QGraphicsItem *parent) : CFocusItem(parent) , m_rect(rect) { setRect(m_rect); setAcceptHoverEvents(true); const int duration = 200; m_properAnimationFirst = new QPropertyAnimation(this, "offset", this); m_properAnimationFirst->setObjectName("First"); m_properAnimationSecond = new QPropertyAnimation(this, "offset", this); m_properAnimationSecond->setObjectName("Second"); m_properAnimationFirst->setDuration(duration); m_properAnimationSecond->setDuration(duration); m_properAnimationFirst->setEasingCurve(QEasingCurve::InOutQuad); m_properAnimationSecond->setEasingCurve(QEasingCurve::InOutQuad); m_Group = new QSequentialAnimationGroup(this); m_Group->addAnimation(m_properAnimationFirst); m_Group->addAnimation(m_properAnimationSecond); connect(m_Group , &QPropertyAnimation::finished , this , &DragInfoItem::animationFinished); setItemType(CITEM); } DragInfoItem::~DragInfoItem() { } void DragInfoItem::setData(const ScheduleDataInfo &vScheduleInfo) { m_vScheduleInfo = vScheduleInfo; } ScheduleDataInfo DragInfoItem::getData() const { return m_vScheduleInfo; } void DragInfoItem::setPressFlag(const bool flag) { m_press = flag; } /** * @brief DragInfoItem::setPressSchedule 记录选中日程 * @param pressSchedule */ void DragInfoItem::setPressSchedule(const ScheduleDataInfo &pressSchedule) { m_pressInfo = pressSchedule; } /** * @brief DragInfoItem::getPressSchedule 获取选中日程 * @return */ ScheduleDataInfo DragInfoItem::getPressSchedule() { return m_pressInfo; } /** * @brief DragInfoItem::setSearchScheduleInfo 设置搜索日程新 * @param searchScheduleInfo */ void DragInfoItem::setSearchScheduleInfo(const QVector &searchScheduleInfo) { m_searchScheduleInfo = searchScheduleInfo; } void DragInfoItem::setFont(DFontSizeManager::SizeType type) { m_sizeType = type; } void DragInfoItem::setOffset(const int &offset) { m_offset = offset; setRect(QRectF(m_rect.x() - offset, m_rect.y() - offset / 2, m_rect.width() + offset * 2, m_rect.height() + offset)); setZValue(offset); } void DragInfoItem::setStartValue(const int value) { m_properAnimationFirst->setStartValue(value); m_properAnimationSecond->setEndValue(value); } void DragInfoItem::setEndValue(const int value) { m_properAnimationFirst->setEndValue(value); m_properAnimationSecond->setStartValue(value); } void DragInfoItem::startAnimation() { if (m_Group->state() != QAnimationGroup::Running) { m_Group->start(); } } void DragInfoItem::animationFinished() { m_isAnimation = false; } void DragInfoItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event); m_HoverInfo = m_vScheduleInfo; update(); } void DragInfoItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event); m_HoverInfo = ScheduleDataInfo(); update(); } void DragInfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option); Q_UNUSED(widget); m_vHoverflag = m_HoverInfo == m_vScheduleInfo; m_vHighflag = false; m_vSelectflag = false; m_vHighflag = m_searchScheduleInfo.contains(m_vScheduleInfo); paintBackground(painter, this->rect()); } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/draginfoitem.h000066400000000000000000000066341423264401600260720ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 DRAGINFOITEM_H #define DRAGINFOITEM_H #include "scheduledatamanage.h" #include "src/scheduledatainfo.h" #include "cfocusitem.h" #include DWIDGET_USE_NAMESPACE class QPropertyAnimation; class QSequentialAnimationGroup; /** * @brief The DragInfoItem class * 显示项 支持拖拽 */ class DragInfoItem : public CFocusItem { Q_OBJECT Q_PROPERTY(int offset READ readOffset WRITE setOffset) public: explicit DragInfoItem(QRectF rect, QGraphicsItem *parent = nullptr); ~DragInfoItem() override; void setData(const ScheduleDataInfo &vScheduleInfo); ScheduleDataInfo getData() const; void setFont(DFontSizeManager::SizeType type); void setOffset(const int &offset); int readOffset() const { return m_offset; } void setStartValue(const int value); void setEndValue(const int value); void startAnimation(); bool isRunning()const { return m_isAnimation; } public: static void setPressFlag(const bool flag); //设置选中日程 static void setPressSchedule(const ScheduleDataInfo &pressSchedule); //获取选中日程 static ScheduleDataInfo getPressSchedule(); //设置搜索日程 static void setSearchScheduleInfo(const QVector &searchScheduleInfo); public slots: void animationFinished(); protected: void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; protected: virtual void paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap = false) = 0; protected: ScheduleDataInfo m_vScheduleInfo; QFont m_font; bool m_vSelectflag = false; bool m_vHoverflag = false; bool m_vHighflag = false; QRectF m_rect; bool m_isAnimation = false; int m_offset = 0; DFontSizeManager::SizeType m_sizeType = DFontSizeManager::T8; QPropertyAnimation *m_properAnimationFirst = nullptr; QPropertyAnimation *m_properAnimationSecond = nullptr; QSequentialAnimationGroup *m_Group = nullptr; static bool m_press; static ScheduleDataInfo m_HoverInfo; static ScheduleDataInfo m_pressInfo; static QVector m_searchScheduleInfo; }; #endif // DRAGINFOITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/scheduleitem.cpp000077500000000000000000000255251423264401600264330ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "scheduleitem.h" #include "schedulecoormanage.h" #include "scheduledatamanage.h" #include "calendarmanage.h" #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE CScheduleItem::CScheduleItem(QRectF rect, QGraphicsItem *parent, int type) : DragInfoItem(rect, parent) , m_type(type) , m_totalNum(0) , m_transparentcolor("#000000") , m_timeFormat(CalendarManager::getInstance()->getCalendarDateDataManage()->getTimeFormat()) { m_transparentcolor.setAlphaF(0.05); connect(CalendarManager::getInstance(), &CalendarManager::signalTimeFormatChanged, this, &CScheduleItem::timeFormatChanged); } CScheduleItem::~CScheduleItem() { } /** * @brief CScheduleItem::setData 设置显示数据 * @param info * @param date * @param totalNum */ void CScheduleItem::setData(const ScheduleDataInfo &info, QDate date, int totalNum) { m_vScheduleInfo = info; m_totalNum = totalNum; setDate(date); update(); } /** * @brief CScheduleItem::hasSelectSchedule 是否含有选中日程 * @param info * @return */ bool CScheduleItem::hasSelectSchedule(const ScheduleDataInfo &info) { return info == m_vScheduleInfo; } /** * @brief CScheduleItem::splitText 根据字体大小,宽度和高度将标题切换为多行 * @param font * @param w * @param h * @param str * @param listStr * @param fontM */ void CScheduleItem::splitText(QFont font, int w, int h, QString str, QStringList &listStr, QFontMetrics &fontM) { if (str.isEmpty()) return; QFontMetrics fontMetrics(font); int heightT = fontM.height(); QString tStr; QStringList tListStr; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); int widthT = fontMetrics.width(tStr) + 5; if (widthT >= w) { tStr.chop(1); if (tStr.isEmpty()) break; tListStr.append(tStr); tStr.clear(); i--; } } tListStr.append(tStr); if (w < 30) { QFontMetrics fm_s(fontM); QFontMetrics f_st(font); QString s = tListStr.at(0) + "..."; if (h < 23) { tListStr.append(""); } else { if (tListStr.isEmpty()) { listStr.append(""); } else { QString c = str.at(0); QString str = c + "..."; QFontMetrics fm(font); while (f_st.width(str) > w && f_st.width(str) > 24) { str.chop(1); } listStr.append(str); } } } else { for (int i = 0; i < tListStr.count(); i++) { if ((i + 1) * heightT <= h - 1) { listStr.append(tListStr.at(i)); } else { if (i == 0) { break; } else { QString s; QFontMetrics fm_str(fontM); if (i == tListStr.count()) s = fontM.elidedText(tListStr.at(i - 1), Qt::ElideRight, w); else { s = fontM.elidedText(tListStr.at(i - 1) + "...", Qt::ElideRight, w); } listStr.removeAt(i - 1); listStr.append(s); break; } } } } } /** * @brief CScheduleItem::timeFormatChanged 更新时间显示格式 */ void CScheduleItem::timeFormatChanged(int value) { if (value) { m_timeFormat = "hh:mm"; } else { m_timeFormat = "h:mm"; } update(); } /** * @brief CScheduleItem::paintBackground 绘制item显示效果 * @param painter * @param rect * @param isPixMap */ void CScheduleItem::paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap) { Q_UNUSED(isPixMap); CSchedulesColor gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(m_vScheduleInfo.getType()); QColor textPenColor = CScheduleDataManage::getScheduleDataManage()->getTextColor(); //判断是否为选中日程 if (m_vScheduleInfo == m_pressInfo) { //判断当前日程是否为拖拽移动日程 if (m_vScheduleInfo.getIsMoveInfo() == m_pressInfo.getIsMoveInfo()) { m_vHighflag = true; } else { painter->setOpacity(0.4); textPenColor.setAlphaF(0.4); gdColor.orginalColor.setAlphaF(0.4); m_vHighflag = false; } m_vSelectflag = m_press; } int themetype = CScheduleDataManage::getScheduleDataManage()->getTheme(); QColor bColor = gdColor.normalColor; QFontMetrics fm = painter->fontMetrics(); int h = fm.height(); if (m_vHoverflag) { bColor = gdColor.hoverColor; } else if (m_vHighflag) { bColor = gdColor.hightColor; } else if (m_vSelectflag) { bColor = gdColor.pressColor; } painter->setBrush(bColor); painter->setPen(Qt::NoPen); painter->drawRect(rect); if (m_vHoverflag && !m_vSelectflag) { painter->save(); QRectF tRect = QRectF(rect.x() + 0.5, rect.y() + 0.5, rect.width() - 1, rect.height() - 1); QPen tPen; QColor cc = "#FFFFFF"; if (themetype == 2) { cc = "#FFFFFF"; } else { cc = "#000000"; } cc.setAlphaF(0.08); tPen.setColor(cc); tPen.setWidthF(1); tPen.setStyle(Qt::SolidLine); painter->setBrush(Qt::NoBrush); painter->setPen(tPen); painter->drawRect(tRect); painter->restore(); } if (m_vSelectflag) { if (themetype == 0 || themetype == 1) { textPenColor.setAlphaF(0.4); gdColor.orginalColor.setAlphaF(0.4); } else if (themetype == 2) { textPenColor.setAlphaF(0.6); gdColor.orginalColor.setAlphaF(0.6); } } painter->save(); QPen pen(gdColor.orginalColor); pen.setWidth(2); painter->setPen(pen); //左侧绘制竖线 QPointF top(rect.topLeft().x(), rect.topLeft().y() + 1); QPointF bottom(rect.bottomLeft().x(), rect.bottomLeft().y() - 1); painter->drawLine(top, bottom); painter->restore(); int tMargin = 10; if (m_totalNum > 1) tMargin = 5; if (m_type == 0) { int timeTextHight = 0; QFont font; font.setWeight(QFont::Normal); font = DFontSizeManager::instance()->get(DFontSizeManager::T8, font); //绘制日程起始时间 if (m_vScheduleInfo.getBeginDateTime().date() == getDate()) { painter->save(); painter->setFont(font); painter->setPen(gdColor.orginalColor); QTime stime = m_vScheduleInfo.getBeginDateTime().time(); QString str = stime.toString("AP " + m_timeFormat); QFontMetrics fontMetrics(font); qreal drawTextWidth = rect.width() - m_offset * 2; if (fm.width(str) > drawTextWidth - 5) { QString tStr; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); int widthT = fm.width(tStr) - 5; if (widthT >= drawTextWidth) { if (i < 1) { tStr.chop(1); } else { tStr.chop(2); } tStr = tStr + "..."; break; } } QString tStrs = fontMetrics.elidedText(str, Qt::ElideRight, qRound(drawTextWidth - 5)); painter->drawText( QRectF(rect.topLeft().x() + tMargin, rect.topLeft().y() + 3, drawTextWidth - 5, h), Qt::AlignLeft, tStrs); } else { painter->drawText( QRectF(rect.topLeft().x() + tMargin, rect.topLeft().y() + 3, drawTextWidth - 5, h), Qt::AlignLeft, str); } painter->restore(); } else { timeTextHight = -20; } painter->save(); //绘制日程标题 font = DFontSizeManager::instance()->get(DFontSizeManager::T6, font); font.setLetterSpacing(QFont::PercentageSpacing, 105); painter->setFont(font); painter->setPen(textPenColor); QStringList liststr; QRect textRect = rect.toRect(); textRect.setWidth(textRect.width() - m_offset * 2); splitText(font, textRect.width() - tMargin - 8, textRect.height() - 20, m_vScheduleInfo.getTitleName(), liststr, fm); for (int i = 0; i < liststr.count(); i++) { if ((20 + timeTextHight + (i + 1) * (h - 3)) > rect.height()) return; painter->drawText( QRect(textRect.topLeft().x() + tMargin, textRect.topLeft().y() + 20 + timeTextHight + i * (h - 3), textRect.width() - 2, h), Qt::AlignLeft, liststr.at(i)); } painter->restore(); } else { painter->save(); QFont font; font.setWeight(QFont::Normal); font = DFontSizeManager::instance()->get(DFontSizeManager::T8, font); painter->setFont(font); painter->setPen(textPenColor); painter->drawText(rect, Qt::AlignCenter | Qt::AlignVCenter, "..."); painter->restore(); } if (m_vSelectflag) { QColor selcolor = m_transparentcolor; selcolor.setAlphaF(0.05); painter->setBrush(selcolor); painter->setPen(Qt::NoPen); painter->drawRect(rect); } if (getItemFocus()) { //获取tab图形 QRectF drawRect = rect.marginsRemoved(QMarginsF(1, 1, 1, 1)); painter->setBrush(Qt::NoBrush); QPen framePen; framePen.setWidth(2); framePen.setColor(getSystemActiveColor()); painter->setPen(framePen); painter->drawRect(drawRect); } } dde-calendar-5.9.1/calendar-client/src/view/graphicsItem/scheduleitem.h000066400000000000000000000036751423264401600260770ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULEITEM_H #define SCHEDULEITEM_H #include "src/scheduledatainfo.h" #include "draginfoitem.h" #include #include #include #include class CScheduleCoorManage; class CScheduleItem : public DragInfoItem { Q_OBJECT public: CScheduleItem(QRectF rect, QGraphicsItem *parent = nullptr, int type = 0); ~CScheduleItem() override; //设置显示数据 void setData(const ScheduleDataInfo &info, QDate date, int totalNum); //是否含有选中日程 bool hasSelectSchedule(const ScheduleDataInfo &info); int getType() { return m_type; } ScheduleDataInfo getData() const { return m_vScheduleInfo; } private: //根据字体大小,宽度和高度将标题切换为多行 void splitText(QFont font, int w, int h, QString str, QStringList &listStr, QFontMetrics &fontM); private slots: void timeFormatChanged(int value); private: //绘制item显示效果 void paintBackground(QPainter *painter, const QRectF &rect, const bool isPixMap = false) override; private: int m_type = 0; int m_totalNum; QColor m_transparentcolor; QString m_timeFormat = "h:mm"; }; #endif // SCHEDULEITEM_H dde-calendar-5.9.1/calendar-client/src/view/graphicsview.cpp000066400000000000000000000564531423264401600240350ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "graphicsview.h" #include "graphicsItem/scheduleitem.h" #include "schedulecoormanage.h" #include "scheduledlg.h" #include "scheduledatamanage.h" #include "schedulectrldlg.h" #include "myscheduleview.h" #include "constants.h" #include #include #include #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CGraphicsView::CGraphicsView(QWidget *parent, ViewPosition Type) : CWeekDayGraphicsview(parent, Type, ViewType::PartTimeView) { setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_timeInterval = height() / 24.0; setSceneRect(0, 0, width(), height()); m_LRPen.setColor(QColor(255, 255, 255)); m_LRPen.setStyle(Qt::SolidLine); m_TBPen.setColor(QColor(255, 255, 255)); m_TBPen.setStyle(Qt::SolidLine); m_LRFlag = true; m_TBFlag = true; m_margins = QMargins(0, 0, 0, 0); setLineWidth(0); //TODO 界面刷新? m_timer = new QTimer(this); connect(m_timer, SIGNAL(timeout()), this, SLOT(scrollBarValueChangedSlot())); m_timer->start(60000); setViewportUpdateMode(QGraphicsView::FullViewportUpdate); connect(this->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(scrollBarValueChangedSlot())); connect(this->verticalScrollBar(), &QScrollBar::sliderPressed, this, &CGraphicsView::slotScrollBar); //如果为周视图 if (m_viewType == 0) { //设置显示右下角圆角 setShowRadius(false, true); } } CGraphicsView::~CGraphicsView() { m_timer->stop(); m_timer->deleteLater(); clearSchedule(); } void CGraphicsView::setMargins(int left, int top, int right, int bottom) { Q_UNUSED(top) m_margins = QMargins(left, 0, right, bottom); setViewportMargins(m_margins); } void CGraphicsView::setTheMe(int type) { if (type == 0 || type == 1) { m_weekcolor = "#00429A"; m_weekcolor.setAlphaF(0.05); QColor linecolor = "#000000"; //ui图透明度为5% linecolor.setAlphaF(0.05); m_LRPen.setColor(linecolor); m_TBPen.setColor(linecolor); m_LRPen.setStyle(Qt::SolidLine); m_TBPen.setStyle(Qt::SolidLine); } else if (type == 2) { m_weekcolor = "#4F9BFF"; m_weekcolor.setAlphaF(0.1); QColor linecolor = "#000000"; //ui图透明度为5% linecolor.setAlphaF(0.05); m_LRPen.setColor(linecolor); m_TBPen.setColor(linecolor); } CWeekDayGraphicsview::setTheMe(type); } void CGraphicsView::slotCreate(const QDateTime &date) { CScheduleDlg dlg(1, this); dlg.setDate(date); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); } } bool CGraphicsView::MeetCreationConditions(const QDateTime &date) { return qAbs(date.daysTo(m_PressDate) < 7); } void CGraphicsView::updateHeight() { scene()->update(); update(); } void CGraphicsView::setCurrentDate(const QDateTime ¤tDate) { m_currentDateTime = currentDate; scrollBarValueChangedSlot(); } void CGraphicsView::setInfo(const QVector &info) { m_scheduleInfo = info; } bool MScheduleTimeThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2) { if (s1.getBeginDateTime().date().daysTo(s1.getEndDateTime().date()) == s2.getBeginDateTime().date().daysTo(s2.getEndDateTime().date())) { if (s1.getBeginDateTime() == s2.getBeginDateTime()) { return s1.getBeginDateTime().secsTo(s1.getEndDateTime()) > s2.getBeginDateTime().secsTo(s2.getEndDateTime()); } else { return s1.getBeginDateTime() < s2.getBeginDateTime(); } } else { return s1.getBeginDateTime().date().daysTo(s1.getEndDateTime().date()) > s2.getBeginDateTime().date().daysTo(s2.getEndDateTime().date()); } } void CGraphicsView::upDateInfoShow(const CGraphicsView::DragStatus &status, const ScheduleDataInfo &info) { clearSchedule(); QVector vListData; vListData = m_scheduleInfo; switch (status) { case NONE: Q_UNUSED(info); break; case ChangeBegin: case ChangeEnd: { int index = vListData.indexOf(info); if (index >= 0) vListData[index] = info; } break; case ChangeWhole: vListData.append(info); break; case IsCreate: vListData.append(info); break; } QMap> m_InfoMap; QDate currentDate; qint64 count = m_beginDate.daysTo(m_endDate); qint64 beginoffset = 0, endoffset = 0; QVector currentInfo; for (int i = 0; i <= count; ++i) { currentDate = m_beginDate.addDays(i); currentInfo.clear(); for (int j = 0; j < vListData.size(); ++j) { beginoffset = vListData.at(j).getBeginDateTime().date().daysTo(currentDate); endoffset = currentDate.daysTo(vListData.at(j).getEndDateTime().date()); if (beginoffset < 0 || endoffset < 0) { continue; } if (vListData.at(j).getEndDateTime().date() == currentDate && vListData.at(j).getBeginDateTime().daysTo(vListData.at(j).getEndDateTime()) > 0 && vListData.at(j).getEndDateTime().time() == QTime(0, 0, 0)) { continue; } currentInfo.append(vListData.at(j)); } std::sort(currentInfo.begin(), currentInfo.end(), MScheduleTimeThan); if (currentInfo.size() > 0) { m_InfoMap[currentDate] = currentInfo; QList info; scheduleClassificationType(currentInfo, info); for (int m = 0; m < info.count(); m++) { int tNum = info.at(m).vData.count(); //如果为周视图则要显示一个位置显示日程的数目 if (m_viewPos == WeekPos) { if (tNum > m_sMaxNum) { tNum = m_sMaxNum; for (int n = 0; n < tNum - 1; n++) { addScheduleItem(info.at(m).vData.at(n), currentDate, n + 1, tNum, 0, m_viewType, m_sMaxNum); } //添加“...”item int index = tNum - 2; if (index < 0) { qWarning() << "week view create error,tNum -2 :" << index; index = 1; } ScheduleDataInfo tdetaliinfo = info.at(m).vData.at(index); tdetaliinfo.setTitleName("..."); tdetaliinfo.setType(3); addScheduleItem(tdetaliinfo, currentDate, tNum, tNum, 1, m_viewType, m_sMaxNum); } else { for (int n = 0; n < tNum; n++) { addScheduleItem(info.at(m).vData.at(n), currentDate, n + 1, tNum, 0, m_viewType, m_sMaxNum); } } } else { for (int n = 0; n < tNum; n++) { addScheduleItem(info.at(m).vData.at(n), currentDate, n + 1, tNum, 0, m_viewType, m_sMaxNum); } } } } } //更新每个背景上的日程标签 updateBackgroundShowItem(); } QDateTime CGraphicsView::getPosDate(const QPoint &p) { return TimeRounding(m_coorManage->getDate(mapToScene(p))); } void CGraphicsView::ShowSchedule(DragInfoItem *infoitem) { CScheduleItem *scheduleitem = dynamic_cast(infoitem); if (scheduleitem->getType() == 1) return; DragInfoGraphicsView::ShowSchedule(infoitem); } void CGraphicsView::MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) { Q_UNUSED(pos); if (!info.getAllDay()) { qint64 offset = m_PressDate.secsTo(m_MoveDate); info.getBeginDateTime() = info.getBeginDateTime().addSecs(offset); info.getEndDateTime() = info.getEndDateTime().addSecs(offset); } else { info.setAllDay(false); info.setRemindData(RemindData()); info.getBeginDateTime() = m_MoveDate; info.getEndDateTime() = m_MoveDate.addSecs(3600); } upDateInfoShow(ChangeWhole, info); } void CGraphicsView::addScheduleItem(const ScheduleDataInfo &info, QDate date, int index, int totalNum, int type, int viewtype, int maxnum) { CScheduleItem *item = new CScheduleItem( m_coorManage->getDrawRegion(date, info.getBeginDateTime(), info.getEndDateTime(), index, totalNum, maxnum, viewtype), nullptr, type); if (type == 1) { item->setItemType(CFocusItem::COTHER); } m_Scene->addItem(item); item->setData(info, date, totalNum); m_vScheduleItem.append(item); } /** * @brief CGraphicsView::setSelectSearchSchedule 设置搜索选中日程 * @param info */ void CGraphicsView::setSelectSearchSchedule(const ScheduleDataInfo &info) { DragInfoGraphicsView::setSelectSearchSchedule(info); setTime(info.getBeginDateTime().time()); for (int i = 0; i < m_vScheduleItem.size(); ++i) { if (m_vScheduleItem.at(i)->getType() == 1) continue; //判断是否为选中日程 if (m_vScheduleItem.at(i)->hasSelectSchedule(info)) { m_vScheduleItem.at(i)->setStartValue(0); m_vScheduleItem.at(i)->setEndValue(10); m_vScheduleItem.at(i)->startAnimation(); } } } void CGraphicsView::clearSchedule() { for (int i = 0; i < m_vScheduleItem.size(); i++) { m_Scene->removeItem(m_vScheduleItem.at(i)); delete m_vScheduleItem[i]; m_vScheduleItem[i] = nullptr; } m_vScheduleItem.clear(); m_updateDflag = true; } void CGraphicsView::scheduleClassificationType(QVector &scheduleInfolist, QList &info) { QVector schedulelist = scheduleInfolist; if (schedulelist.isEmpty()) return; info.clear(); std::sort(schedulelist.begin(), schedulelist.end(), MScheduleTimeThan); QVector containIndex; for (int k = 0; k < schedulelist.count(); k++) { QDateTime endTime = schedulelist.at(k).getEndDateTime(); QDateTime begTime = schedulelist.at(k).getBeginDateTime(); if (begTime.date().daysTo(endTime.date()) == 0 && begTime.time().secsTo(endTime.time()) < m_minTime) { endTime = begTime.addSecs(m_minTime); } if (endTime.time().hour() == 0 && endTime.time().second() == 0) { endTime = endTime.addSecs(-1); } containIndex.clear(); for (int i = 0; i < info.count(); i++) { if ((schedulelist.at(k).getBeginDateTime() >= info.at(i).begindate && schedulelist.at(k).getBeginDateTime() <= info.at(i).enddate) || (endTime >= info.at(i).begindate && endTime <= info.at(i).enddate)) { containIndex.append(i); } } if (containIndex.count() == 0) { ScheduleclassificationInfo firstschedule; firstschedule.begindate = schedulelist.at(k).getBeginDateTime(); firstschedule.enddate = endTime; firstschedule.vData.append(schedulelist.at(k)); info.append(firstschedule); } else { ScheduleclassificationInfo &scheduleInfo = info[containIndex.at(0)]; int index = 0; for (int i = 1; i < containIndex.count(); ++i) { index = containIndex.at(i); if (info.at(index).begindate < scheduleInfo.begindate) scheduleInfo.begindate = info.at(index).begindate; if (info.at(index).enddate > scheduleInfo.enddate) scheduleInfo.enddate = info.at(index).enddate; scheduleInfo.vData.append(info.at(index).vData); } for (int i = containIndex.count() - 1; i > 0; --i) { info.removeAt(containIndex.at(i)); } if (schedulelist.at(k).getBeginDateTime() < scheduleInfo.begindate) scheduleInfo.begindate = schedulelist.at(k).getBeginDateTime(); if (endTime > scheduleInfo.enddate) scheduleInfo.enddate = endTime; scheduleInfo.vData.append(schedulelist.at(k)); } } } void CGraphicsView::mouseDoubleClickEvent(QMouseEvent *event) { emit signalScheduleShow(false); DGraphicsView::mouseDoubleClickEvent(event); CScheduleItem *item = dynamic_cast(itemAt(event->pos())); if (item == nullptr) { QPointF scenePoss = mapToScene(event->pos()); CScheduleDlg dlg(1, this); QDateTime tDatatime = m_coorManage->getDate(scenePoss); dlg.setDate(tDatatime); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); } return; } if (item->getType() == 1) { emit signalsCurrentScheduleDate(item->getDate()); return; } m_updateDflag = false; CMyScheduleView dlg(item->getData(), this); connect(&dlg, &CMyScheduleView::signalsEditorDelete, this, &CGraphicsView::slotDoubleEvent); dlg.exec(); disconnect(&dlg, &CMyScheduleView::signalsEditorDelete, this, &CGraphicsView::slotDoubleEvent); } void CGraphicsView::mousePressEvent(QMouseEvent *event) { CScheduleItem *item = dynamic_cast(itemAt(event->pos())); if (item != nullptr && item->getType() == 1) { emit signalScheduleShow(false); return; } DragInfoGraphicsView::mousePressEvent(event); } void CGraphicsView::mouseMoveEvent(QMouseEvent *event) { CScheduleItem *item = dynamic_cast(itemAt(event->pos())); if (item != nullptr && item->getType() == 1) { setCursor(Qt::ArrowCursor); DGraphicsView::mouseMoveEvent(event); return; } DragInfoGraphicsView::mouseMoveEvent(event); } void CGraphicsView::slotDoubleEvent(int type) { Q_UNUSED(type); m_updateDflag = true; emit signalsUpdateSchedule(); } void CGraphicsView::slotScrollBar() { emit signalScheduleShow(false); } void CGraphicsView::slotUpdateScene() { pressScheduleInit(); this->scene()->update(); } #ifndef QT_NO_WHEELEVENT /************************************************************************ Function: wheelEvent() Description: 鼠标滚轮事件 Input: event 滚轮事件 Output: 无 Return: 无 Others: 无 ************************************************************************/ void CGraphicsView::wheelEvent(QWheelEvent *event) { emit signalScheduleShow(false); //非全天部分如果滚动为左右则退出 if (event->orientation() == Qt::Orientation::Horizontal) { return; } int test = event->delta(); int viewWidth = viewport()->width(); int viewHeight = viewport()->height(); QPoint newCenter(viewWidth / 2, viewHeight / 2 - test); QPointF centerpos = mapToScene(newCenter); centerOnScene(centerpos); } #endif /************************************************************************ Function: resizeEvent() Description: 窗口大小改变事件 Input: event 窗口大小改变事件 Output: 无 Return: 无 Others: 无 ************************************************************************/ void CGraphicsView::resizeEvent(QResizeEvent *event) { scrollBarValueChangedSlot(); QGraphicsView::resizeEvent(event); viewport()->update(); update(); } /************************************************************************ Function: paintEvent() Description: 绘制事件 Input: event 事件 Output: 无 Return: 无 Others: 无 ************************************************************************/ void CGraphicsView::paintEvent(QPaintEvent *event) { QPainter t_painter(viewport()); int t_width = viewport()->width() + 2; //绘制水平线 if (m_LRFlag) { if (m_currentTimeType == 0) { t_painter.save(); t_painter.setPen(m_LRPen); for (int i = 0; i < m_vLRLarge.size(); ++i) t_painter.drawLine(QPoint(0, m_vLRLarge[i] - 1), QPoint(t_width, m_vLRLarge[i] - 1)); t_painter.restore(); } else { t_painter.save(); t_painter.setPen(m_LRPen); for (int i = 0; i < m_vLRLarge.size() - 1; ++i) t_painter.drawLine(QPoint(0, m_vLRLarge[i] - 1), QPoint(t_width, m_vLRLarge[i] - 1)); t_painter.restore(); if (m_viewType == 1 && m_coorManage->getBegindate() == m_currentDateTime.date()) { t_painter.save(); QPen pen = m_LRPen; pen.setColor(m_currenttimecolor); t_painter.setPen(pen); int index = m_vLRLarge.count() - 1; t_painter.drawLine(QPoint(0, m_vLRLarge[index] - 1), QPoint(t_width, m_vLRLarge[index] - 1)); t_painter.restore(); } } } DragInfoGraphicsView::paintEvent(event); } void CGraphicsView::scrollBarValueChangedSlot() { QMutexLocker locker(&m_Mutex); int viewHeight = viewport()->height(); m_vLRLarge.clear(); QPointF leftToprealPos = mapToScene(QPoint(0, 0)); QPointF leftbottomrealPos = mapToScene(QPoint(0, viewHeight)); m_timeInterval = m_Scene->height() / 24.0; qreal beginpos = static_cast(qFloor(leftToprealPos.y() / m_timeInterval) * m_timeInterval); if (beginpos < leftToprealPos.y()) { beginpos = (beginpos / m_timeInterval + 1) * m_timeInterval; } QVector vHours; for (qreal i = beginpos; i < leftbottomrealPos.y(); i = i + m_timeInterval) { QPoint point = mapFromScene(leftbottomrealPos.x(), i); m_vLRLarge.append(point.y()); vHours.append(qFloor(i / m_timeInterval + 0.5)); } qreal currentTime = static_cast(m_coorManage->getHeight(m_currentDateTime.time())); if (currentTime > beginpos && currentTime < leftbottomrealPos.y()) { m_currentTimeType = 1; QPoint point = mapFromScene(leftbottomrealPos.x(), currentTime); m_vLRLarge.append(point.y()); vHours.append(qFloor(currentTime / m_timeInterval + 0.5)); emit signalsPosHours(m_vLRLarge, vHours, m_currentTimeType); } else { m_currentTimeType = 0; emit signalsPosHours(m_vLRLarge, vHours, m_currentTimeType); } scene()->update(); update(); } CGraphicsView::PosInItem CGraphicsView::getPosInItem(const QPoint &p, const QRectF &itemRect) { QPointF scenePos = this->mapToScene(p); QPointF itemPos = QPointF(scenePos.x() - itemRect.x(), scenePos.y() - itemRect.y()); qreal bottomY = itemRect.height() - itemPos.y(); if (itemPos.y() < 5) { return TOP; } if (bottomY < 5) { return BOTTOM; } return MIDDLE; } ScheduleDataInfo CGraphicsView::getScheduleInfo(const QDateTime &beginDate, const QDateTime &endDate) { ScheduleDataInfo info; if (beginDate.secsTo(endDate) > 0) { info.getBeginDateTime() = beginDate; if (beginDate.secsTo(endDate) < DDECalendar::ThirtyMinutesWithSec) { info.getEndDateTime() = beginDate.addSecs(DDECalendar::ThirtyMinutesWithSec); } else { info.getEndDateTime() = endDate; } } else { if (endDate.secsTo(beginDate) < DDECalendar::ThirtyMinutesWithSec) { info.getBeginDateTime() = beginDate.addSecs(-DDECalendar::ThirtyMinutesWithSec); } else { info.getBeginDateTime() = endDate; } info.getEndDateTime() = beginDate; } info.setTitleName(tr("New Event")); info.setAllDay(false); info.setRemindData(RemindData(1, QTime(9, 0))); return info; } bool CGraphicsView::IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) { return !(qAbs(timeFirst.secsTo(timeSecond)) > 100); } bool CGraphicsView::JudgeIsCreate(const QPointF &pos) { return qAbs(pos.x() - m_PressPos.x()) > 20 || qAbs(m_PressDate.secsTo(m_coorManage->getDate(mapToScene(pos.toPoint())))) > 300; } void CGraphicsView::RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) { Q_UNUSED(listItem); m_rightMenu->clear(); m_rightMenu->addAction(m_createAction); QPointF scenePoss = mapToScene(pos); m_createDate = m_coorManage->getDate(scenePoss); m_rightMenu->exec(QCursor::pos()); } QDateTime CGraphicsView::getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) { return moveDateTime.secsTo(m_InfoEndTime) < DDECalendar::ThirtyMinutesWithSec ? m_InfoEndTime.addSecs(-DDECalendar::ThirtyMinutesWithSec) : moveDateTime; } QDateTime CGraphicsView::getDragScheduleInfoEndTime(const QDateTime &moveDateTime) { return m_InfoBeginTime.secsTo(moveDateTime) < DDECalendar::ThirtyMinutesWithSec ? m_InfoBeginTime.addSecs(DDECalendar::ThirtyMinutesWithSec) : moveDateTime; } QDateTime CGraphicsView::TimeRounding(const QDateTime &time) { int hours = time.time().hour(); int minnutes = 0; minnutes = time.time().minute() / 15; return QDateTime(time.date(), QTime(hours, minnutes * 15, 0)); } void CGraphicsView::centerOnScene(const QPointF &pos) { // view 根据鼠标下的点作为锚点来定位 scene setTransformationAnchor(QGraphicsView::AnchorUnderMouse); centerOn(pos); // scene 在 view 的中心点作为锚点 setTransformationAnchor(QGraphicsView::AnchorViewCenter); scrollBarValueChangedSlot(); setSceneHeightScale(pos); } void CGraphicsView::setSceneHeightScale(const QPointF &pos) { m_sceneHeightScale = pos.y() / this->scene()->height(); } void CGraphicsView::keepCenterOnScene() { QPointF pos; pos.setX(this->viewport()->width() / 2); pos.setY(this->scene()->height() * m_sceneHeightScale); centerOnScene(pos); } void CGraphicsView::setTime(QTime time) { int viewWidth = viewport()->width(); int viewHeight = viewport()->height(); QPoint newCenter(viewWidth / 2, viewHeight / 2); QPointF centerpos = mapToScene(newCenter); centerpos = QPointF(centerpos.x(), static_cast(m_coorManage->getHeight(time))); centerOnScene(centerpos); } /** * @brief CGraphicsView::updateInfo 更新日程数据显示 */ void CGraphicsView::updateInfo() { //更新选择日程状态 DragInfoGraphicsView::updateInfo(); switch (m_DragStatus) { case IsCreate: upDateInfoShow(IsCreate, m_DragScheduleInfo); break; default: upDateInfoShow(); break; } } dde-calendar-5.9.1/calendar-client/src/view/graphicsview.h000066400000000000000000000115621423264401600234720ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 GRAPHICSVIEW_H #define GRAPHICSVIEW_H #include "src/scheduledatainfo.h" #include "draginfographicsview.h" #include "graphicsItem/cweekdaybackgrounditem.h" #include "cweekdaygraphicsview.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE typedef struct _tagScheduleclassificationInfo { QDateTime begindate; QDateTime enddate; QVector vData; } ScheduleclassificationInfo; class CScheduleCoorManage; class CScheduleItem; class CGraphicsView : public CWeekDayGraphicsview { Q_OBJECT public: explicit CGraphicsView(QWidget *parent, ViewPosition Type = WeekPos); ~CGraphicsView() override; void setMargins(int left, int top, int right, int bottom); QMargins getMargins() { return m_margins; } void updateHeight(); void setCurrentDate(const QDateTime ¤tDate); void setInfo(const QVector &info); void addScheduleItem(const ScheduleDataInfo &info, QDate date, int index, int totalNum, int type, int viewtype, int maxnum); //设置搜索选中日程 void setSelectSearchSchedule(const ScheduleDataInfo &info) override; void clearSchedule(); void setMinTime(const int &minTime) { m_minTime = minTime; } void setMaxNum(const int maxnum) { m_sMaxNum = maxnum; } void keepCenterOnScene(); void scheduleClassificationType(QVector &scheduleInfolist, QList &info); void mouseDoubleClickEvent(QMouseEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; #ifndef QT_NO_WHEELEVENT void wheelEvent(QWheelEvent *event) override; #endif void resizeEvent(QResizeEvent *event) override; void setTime(QTime time); void updateInfo() override; protected: void paintEvent(QPaintEvent *event) override; public slots: void scrollBarValueChangedSlot(); void slotDoubleEvent(int type); void slotScrollBar(); void slotUpdateScene(); signals: void signalsPosHours(QVector vPos, QVector vHours, int currentTimeType = 0); void signalsCurrentScheduleDate(QDate date); private: void TimeRound(QDateTime &dtime); QDateTime TimeRounding(const QDateTime &time); void centerOnScene(const QPointF &pos); void setSceneHeightScale(const QPointF &pos); public: void setTheMe(int type = 0) override; protected: void slotCreate(const QDateTime &date) override; bool MeetCreationConditions(const QDateTime &date) override; void upDateInfoShow(const DragStatus &status = NONE, const ScheduleDataInfo &info = ScheduleDataInfo()) override; QDateTime getPosDate(const QPoint &p) override; void ShowSchedule(DragInfoItem *infoitem) override; void MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) override; PosInItem getPosInItem(const QPoint &p, const QRectF &itemRect) override; ScheduleDataInfo getScheduleInfo(const QDateTime &beginDate, const QDateTime &endDate) override; bool IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) override; bool JudgeIsCreate(const QPointF &pos) override; void RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) override; QDateTime getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) override; QDateTime getDragScheduleInfoEndTime(const QDateTime &moveDateTime) override; private: QVector m_vScheduleItem; QMargins m_margins; //四周空白 bool m_LRFlag; //水平线 QPen m_LRPen; //水平线画笔 bool m_TBFlag; //垂直线 QPen m_TBPen; //垂直线画笔 QVector m_vLRLarge; //大刻度像素位置 qreal m_timeInterval; qreal m_sceneHeightScale = 0; QColor m_weekcolor = "#4F9BFF"; QColor m_currenttimecolor = "#F74444"; int m_currentTimeType = 0; QTimer *m_timer = nullptr; QMutex m_Mutex; bool m_updateDflag = false; QVector m_scheduleInfo; QDateTime m_currentDateTime; int m_minTime; //最小高度对应的最小时间 int m_sMaxNum = 4; }; #endif // GRAPHICSVIEW_H dde-calendar-5.9.1/calendar-client/src/view/monthgraphiview.cpp000066400000000000000000000415221423264401600245440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "monthgraphiview.h" #include "../widget/monthWidget/monthscheduleview.h" #include "../dialog/scheduledlg.h" #include "../dialog/myscheduleview.h" #include "../widget/touchgestureoperation.h" #include "constants.h" #include "graphicsItem/cmonthschedulenumitem.h" #include "cscenetabkeydeal.h" #include "ckeyenabledeal.h" #include "ckeyleftdeal.h" #include "ckeyrightdeal.h" #include "ckeyupdeal.h" #include "ckeydowndeal.h" #include #include CMonthGraphicsview::CMonthGraphicsview(QWidget *parent) : DragInfoGraphicsView(parent) { //设置显示左右下角圆角 setShowRadius(true, true); m_MonthScheduleView = new CMonthScheduleView(this, m_Scene); connect(this, &CMonthGraphicsview::signalFontChange, m_MonthScheduleView, &CMonthScheduleView::slotFontChange); for (int i = 0; i < DDEMonthCalendar::ItemSizeOfMonthDay; ++i) { CMonthDayItem *item = new CMonthDayItem(); item->setZValue(-1); if (m_DayItem.size() > 0) { //设置对应左右和下一个 关系 m_DayItem.last()->setNextFocusItem(item); m_DayItem.last()->setRightItem(item); item->setLeftItem(m_DayItem.last()); } int upNum = i - 7; //如果对应的上一排编号大于零则设置对应的上下关系 if (upNum >= 0) { m_DayItem.at(upNum)->setDownItem(item); item->setUpItem(m_DayItem.at(upNum)); } //设置编号 item->setBackgroundNum(i); m_DayItem.append(item); m_Scene->addItem(item); } updateSize(); m_Scene->setFirstFocusItem(m_DayItem.first()); //添加键盘事件处理 CKeyPressPrxy *m_keyPrxy = new CKeyPressPrxy(); m_keyPrxy->addkeyPressDeal(new CSceneTabKeyDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyEnableDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyLeftDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyRightDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyUpDeal(m_Scene)); m_keyPrxy->addkeyPressDeal(new CKeyDownDeal(m_Scene)); m_Scene->setKeyPressPrxy(m_keyPrxy); } CMonthGraphicsview::~CMonthGraphicsview() { m_DayItem.clear(); } void CMonthGraphicsview::setTheMe(int type) { m_themetype = type; DragInfoGraphicsView::setTheMe(type); for (int i = 0; i < m_DayItem.size(); ++i) { m_DayItem.at(i)->setTheMe(type); } } void CMonthGraphicsview::setDate(const QVector &showDate) { Q_ASSERT(showDate.size() == 42); if (showDate.at(0).day() != 1) { m_currentMonth = showDate.at(0).addMonths(1).month(); } else { m_currentMonth = showDate.at(0).month(); } //根据当前时间设置当前场景的第一个焦点item int currentIndex = 0; for (int i = 0; i < m_DayItem.size(); ++i) { m_DayItem.at(i)->setDate(showDate.at(i)); m_DayItem.at(i)->setCurrentMonth(showDate.at(i).month() == m_currentMonth); if (showDate.at(i) == getCurrentDate()) { currentIndex = i; } } m_Scene->setFirstFocusItem(m_DayItem.at(currentIndex)); m_schedulelistdata.clear(); this->scene()->update(); } void CMonthGraphicsview::setFestival(const QMap &festivalInfo) { m_festivallist = festivalInfo; for (int i = 0; i < m_DayItem.size(); ++i) { m_DayItem.at(i)->setStatus(static_cast(m_festivallist[m_DayItem.at(i)->getDate()])); } this->scene()->update(); } void CMonthGraphicsview::setLunarInfo(const QMap &lunarCache) { m_lunarCache = lunarCache; updateLunar(); } void CMonthGraphicsview::setLunarVisible(bool visible) { CMonthDayItem::m_LunarVisible = visible; } /** * @brief CMonthGraphicsview::setScheduleInfo 设置日程信息 * @param info */ void CMonthGraphicsview::setScheduleInfo(const QMap> &info) { m_schedulelistdata = info; updateInfo(); } /** * @brief CMonthGraphicsview::setSelectSearchSchedule 设置选择搜索日程 * @param scheduleInfo */ void CMonthGraphicsview::setSelectSearchSchedule(const ScheduleDataInfo &scheduleInfo) { DragInfoGraphicsView::setSelectSearchSchedule(scheduleInfo); //获取所有的日程item QVector mScheduleShowBtn = m_MonthScheduleView->getScheduleShowItem(); for (int i = 0; i < mScheduleShowBtn.size(); ++i) { CMonthScheduleItem *item = dynamic_cast(mScheduleShowBtn.at(i)); if (item == nullptr) continue; if (scheduleInfo == item->getData()) { item->setStartValue(0); item->setEndValue(4); item->startAnimation(); } } } /** * @brief CMonthGraphicsview::setSearchScheduleInfo 设置搜索日程信息 * @param searchScheduleInfo */ void CMonthGraphicsview::setSearchScheduleInfo(const QVector &searchScheduleInfo) { DragInfoItem::setSearchScheduleInfo(searchScheduleInfo); this->scene()->update(); } void CMonthGraphicsview::updateSize() { //场景的大小和位置 QRectF sceneRect(0, 0, viewport()->rect().width(), viewport()->rect().height()); m_Scene->setSceneRect(sceneRect); qreal w = m_Scene->width() / DDEMonthCalendar::AFewDaysOfWeek; qreal h = m_Scene->height() / DDEMonthCalendar::LinesNumOfMonth; QRectF rect ; int w_offset = 0; int h_offset = 0; for (int i = 0 ; i < m_DayItem.size(); ++i) { h_offset = i / DDEMonthCalendar::AFewDaysOfWeek; w_offset = i % DDEMonthCalendar::AFewDaysOfWeek; rect.setRect(w * w_offset, h * h_offset, w, h); m_DayItem.at(i)->setRect(rect); } } void CMonthGraphicsview::updateLunar() { QDate date; CaHuangLiDayInfo info; QString lunarStr(""); for (int i = 0 ; i < m_DayItem.size(); ++i) { date = m_DayItem.at(i)->getDate(); if (m_lunarCache.contains(date)) { info = m_lunarCache.value(date); if (info.mLunarDayName == "初一") { //如果为闰月只显示月份不显示天 if (info.mLunarMonthName.contains("闰")) { info.mLunarDayName = info.mLunarMonthName; } else { info.mLunarDayName = info.mLunarMonthName + info.mLunarDayName; } } if (info.mTerm.isEmpty()) { lunarStr = info.mLunarDayName; } else { lunarStr = info.mTerm; } } else { lunarStr = ""; } m_DayItem.at(i)->setLunar(lunarStr); } } /** * @brief CMonthGraphicsview::updateInfo 更新日程数据显示 */ void CMonthGraphicsview::updateInfo() { DragInfoGraphicsView::updateInfo(); int h = m_MonthScheduleView->getScheduleHeight(); m_MonthScheduleView->setallsize(this->viewport()->width(), this->viewport()->height(), 0, 0, 0, h); m_MonthScheduleView->setData(m_schedulelistdata, 1); switch (m_DragStatus) { case IsCreate: upDateInfoShow(IsCreate, m_DragScheduleInfo); break; case ChangeWhole: upDateInfoShow(ChangeWhole, m_DragScheduleInfo); break; default: break; } viewport()->update(); update(); //更新背景上显示的item updateBackgroundShowItem(); } QPointF CMonthGraphicsview::getItemPos(const QPoint &p, const QRectF &itemRect) { QPointF scenePos = this->mapToScene(p); return QPointF(scenePos.x() - itemRect.x(), scenePos.y() - itemRect.y()); } CMonthGraphicsview::PosInItem CMonthGraphicsview::getPosInItem(const QPoint &p, const QRectF &itemRect) { QPointF scenePos = this->mapToScene(p); QPointF itemPos = QPointF(scenePos.x() - itemRect.x(), scenePos.y() - itemRect.y()); qreal bottomY = itemRect.width() - itemPos.x(); if (itemPos.x() < 5) { return LEFT; } if (bottomY < 5) { return RIGHT; } return MIDDLE; } QDateTime CMonthGraphicsview::getPosDate(const QPoint &p) { if (!this->sceneRect().contains(p)) return m_MoveDate; QRectF rect = this->sceneRect(); qreal x = 0; qreal y = 0; if (p.x() < 0) { x = 0; } else if (p.x() > (rect.width() - 10)) { x = rect.width() - 10; } else { x = p.x(); } if (p.y() < 0) { y = 0; } else if (p.y() > (rect.height() - 10)) { y = rect.height() - 10; } else { y = p.y(); } int xoffset = qFloor(x / (rect.width() / DDEMonthCalendar::AFewDaysOfWeek)) % DDEMonthCalendar::AFewDaysOfWeek; int yoffset = qFloor(y / (rect.height() / DDEMonthCalendar::LinesNumOfMonth)) % DDEMonthCalendar::LinesNumOfMonth; return QDateTime(m_DayItem[xoffset + yoffset * 7]->getDate(), QTime(0, 0, 0)); } void CMonthGraphicsview::upDateInfoShow(const CMonthGraphicsview::DragStatus &status, const ScheduleDataInfo &info) { switch (status) { case NONE: Q_UNUSED(info); break; case ChangeBegin: case ChangeEnd: { m_MonthScheduleView->changeDate(info); } break; case ChangeWhole: { } break; case IsCreate: m_MonthScheduleView->updateDate(info); break; } } void CMonthGraphicsview::slideEvent(QPointF &startPoint, QPointF &stopPort) { qreal _movingLine {0}; touchGestureOperation::TouchMovingDirection _touchMovingDir = touchGestureOperation::getTouchMovingDir(startPoint, stopPort, _movingLine); //切换月份 0 不切换 1 下一个 -1 上个月 int delta {0}; //移动偏移 25则切换月份 const int moveOffset = 25; switch (_touchMovingDir) { case touchGestureOperation::T_TOP: { if (_movingLine > moveOffset) { delta = -1; startPoint = stopPort; } break; } case touchGestureOperation::T_BOTTOM: { if (_movingLine > moveOffset) { delta = 1; startPoint = stopPort; } break; } default: break; } if (delta != 0) { emit signalAngleDelta(delta); } } void CMonthGraphicsview::mouseDoubleClickEvent(QMouseEvent *event) { if (event->button() != Qt::LeftButton) { return; } QGraphicsItem *listItem = itemAt(event->pos()); CMonthScheduleNumItem *item = dynamic_cast(listItem); if (item != nullptr) { //双击切换视图 if (item->getDate().year() > DDECalendar::QueryEarliestYear) { emit signalsViewSelectDate(item->getDate()); } return; } CMonthScheduleItem *infoitem = dynamic_cast(listItem); if (infoitem != nullptr) { CMyScheduleView dlg(infoitem->getData(), this); connect(&dlg, &CMyScheduleView::signalsEditorDelete, this, &CMonthGraphicsview::signalsUpdateSchedule); dlg.exec(); return; } CMonthDayItem *Dayitem = dynamic_cast(listItem); if (Dayitem != nullptr) { QPointF point = getItemPos(event->pos(), Dayitem->rect()); if (point.y() < 38) { //双击切换视图 if (Dayitem->getDate().year() > DDECalendar::QueryEarliestYear) { emit signalsViewSelectDate(Dayitem->getDate()); } } else { //双击新建日程 slotCreate(QDateTime(Dayitem->getDate(), QTime(0, 0, 0))); } } } void CMonthGraphicsview::resizeEvent(QResizeEvent *event) { DragInfoGraphicsView::resizeEvent(event); updateSize(); updateInfo(); } void CMonthGraphicsview::changeEvent(QEvent *event) { if (event->type() == QEvent::FontChange) { emit signalFontChange(); } } void CMonthGraphicsview::wheelEvent(QWheelEvent *e) { //如果滚动为上下则发送信号 if (e->orientation() == Qt::Orientation::Vertical) { emit signalAngleDelta(e->angleDelta().y()); } } /** * @brief CMonthGraphicsview::updateBackgroundShowItem 更新背景上显示的item */ void CMonthGraphicsview::updateBackgroundShowItem() { for (int i = 0; i < m_DayItem.size(); ++i) { m_DayItem.at(i)->updateShowItem(); } } void CMonthGraphicsview::setSceneCurrentItemFocus(const QDate &focusDate) { int offset = static_cast(m_DayItem.first()->getDate().daysTo(focusDate)); if (offset >= 0 && offset < m_DayItem.size()) { m_Scene->setCurrentFocusItem(m_DayItem.at(offset)); m_Scene->currentFocusItemUpdate(); } else { qWarning() << "Switching time range error! focusDate:" << focusDate << " first item date:" << m_DayItem.first()->getDate(); } } void CMonthGraphicsview::setDragPixmap(QDrag *drag, DragInfoItem *item) { CMonthScheduleItem *infoitem = dynamic_cast(item); drag->setPixmap(infoitem->getPixmap()); } bool CMonthGraphicsview::MeetCreationConditions(const QDateTime &date) { return qAbs(date.daysTo(m_PressDate) < 43); } bool CMonthGraphicsview::IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) { return timeFirst.date() == timeSecond.date(); } bool CMonthGraphicsview::JudgeIsCreate(const QPointF &pos) { return qAbs(pos.x() - m_PressPos.x()) > 20 || qAbs(m_PressDate.daysTo(getPosDate(pos.toPoint()))) > 0; } void CMonthGraphicsview::RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) { Q_UNUSED(pos); CMonthDayItem *Dayitem = dynamic_cast(listItem); if (Dayitem != nullptr) { m_rightMenu->clear(); m_rightMenu->addAction(m_createAction); m_createDate.setDate(Dayitem->getDate()); m_rightMenu->exec(QCursor::pos()); } } void CMonthGraphicsview::MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) { qint64 offset = m_PressDate.daysTo(m_MoveDate); info.setBeginDateTime(info.getBeginDateTime().addDays(offset)); info.setEndDateTime(info.getEndDateTime().addDays(offset)); qreal y = 0; QRectF rect = this->sceneRect(); if (pos.y() < 0) { y = 0; } else if (pos.y() > rect.height()) { y = rect.height(); } else { y = pos.y(); } int yoffset = qFloor(y / (rect.height() / DDEMonthCalendar::LinesNumOfMonth)) % DDEMonthCalendar::LinesNumOfMonth; m_MonthScheduleView->updateDate(yoffset, info); } /** * @brief CMonthGraphicsview::getDragScheduleInfoBeginTime 获取移动开始时间 * @param moveDateTime * @return */ QDateTime CMonthGraphicsview::getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) { //获取移动开始时间 QDateTime _beginTime = moveDateTime.daysTo(m_InfoEndTime) < 0 ? QDateTime(m_InfoEndTime.date(), m_InfoBeginTime.time()) : QDateTime(moveDateTime.date(), m_InfoBeginTime.time()); //如果开始时间晚与结束时间则减少一天 _beginTime = _beginTime > m_InfoEndTime ? _beginTime.addDays(-1) : _beginTime; return _beginTime; } /** * @brief CMonthGraphicsview::getDragScheduleInfoEndTime 获取结束时间 * @param moveDateTime * @return */ QDateTime CMonthGraphicsview::getDragScheduleInfoEndTime(const QDateTime &moveDateTime) { //获取结束时间 QDateTime _endTime = m_InfoBeginTime.daysTo(moveDateTime) < 0 ? QDateTime(m_InfoBeginTime.date(), m_InfoEndTime.time()) : QDateTime(moveDateTime.date(), m_InfoEndTime.time()); //如果结束时间小于开始时间则添加一天 _endTime = _endTime < m_InfoBeginTime ? _endTime.addDays(1) : _endTime; return _endTime; } void CMonthGraphicsview::slotCreate(const QDateTime &date) { CScheduleDlg dlg(1, this); QDateTime tDatatime; tDatatime.setDate(date.date()); if (date.date() == QDate::currentDate()) { tDatatime.setTime(QTime::currentTime()); } else { tDatatime.setTime(QTime(8, 0)); } dlg.setDate(tDatatime); dlg.setAllDay(true); if (dlg.exec() == DDialog::Accepted) { emit signalsUpdateSchedule(); emit signalsScheduleUpdate(0); } } dde-calendar-5.9.1/calendar-client/src/view/monthgraphiview.h000066400000000000000000000105361423264401600242120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 MONTHGRAPHIVIEW_H #define MONTHGRAPHIVIEW_H #include "src/scheduledatainfo.h" #include "src/lunardatastruct.h" #include "src/dbusdatastruct.h" #include "draginfographicsview.h" #include "view/graphicsItem/cmonthdayitem.h" #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class CMonthScheduleView; class CMonthGraphicsview : public DragInfoGraphicsView { Q_OBJECT public: explicit CMonthGraphicsview(QWidget *parent = nullptr); ~CMonthGraphicsview() override; void setTheMe(int type = 0) override; public: void setDate(const QVector &showDate); //设置班休信息 void setFestival(const QMap &festivalInfo); //设置农历信息 void setLunarInfo(const QMap &lunarCache); //设置是否显示农历信息 void setLunarVisible(bool visible); //设置日程信息 void setScheduleInfo(const QMap > &info); //设置搜索选中日程 void setSelectSearchSchedule(const ScheduleDataInfo &scheduleInfo) override; //设置搜索日程信息 void setSearchScheduleInfo(const QVector &searchScheduleInfo); private: void updateSize(); void updateLunar(); //更新日程数据显示 void updateInfo() override; QPointF getItemPos(const QPoint &p, const QRectF &itemRect); protected: void mouseDoubleClickEvent(QMouseEvent *event) override; void resizeEvent(QResizeEvent *event) override; void changeEvent(QEvent *event) override; void wheelEvent(QWheelEvent *) override; //更新背景上显示的item void updateBackgroundShowItem() override; protected: void setSceneCurrentItemFocus(const QDate &focusDate) override; private: void setDragPixmap(QDrag *drag, DragInfoItem *item) override; bool MeetCreationConditions(const QDateTime &date) override; //判断时间是否相等 bool IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) override; //根据鼠标移动的距离判断是否创建日程 bool JudgeIsCreate(const QPointF &pos) override; void RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) override; void MoveInfoProcess(ScheduleDataInfo &info, const QPointF &pos) override; QDateTime getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) override; QDateTime getDragScheduleInfoEndTime(const QDateTime &moveDateTime) override; PosInItem getPosInItem(const QPoint &p, const QRectF &itemRect)override; QDateTime getPosDate(const QPoint &p)override; void upDateInfoShow(const DragStatus &status = NONE, const ScheduleDataInfo &info = ScheduleDataInfo())override; /** * @brief slideEvent 触摸滑动事件处理 * @param startPoint 触摸开始坐标 * @param stopPort 触摸结束坐标 */ void slideEvent(QPointF &startPoint, QPointF &stopPort) override; signals: void signalFontChange(); void signalsViewSelectDate(QDate date); void signalsScheduleUpdate(const int id = 0); public slots: void slotCreate(const QDateTime &date) override; private: QVector m_DayItem; QMap m_lunarCache; QMap m_festivallist; int m_currentMonth; CMonthScheduleView *m_MonthScheduleView = nullptr; QMap> m_schedulelistdata; }; #endif // MONTHGRAPHIVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/000077500000000000000000000000001423264401600211325ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/widget/calendarmainwindow.cpp000066400000000000000000000762561423264401600255240ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "calendarmainwindow.h" #include "widget/yearWidget/yearwindow.h" #include "widget/monthWidget/monthwindow.h" #include "dbuscalendar_adaptor.h" #include "widget/weekWidget/weekwindow.h" #include "widget/dayWidget/daywindow.h" #include "colorWidget/colorpickerWidget.h" #include "scheduledatamanage.h" #include "myscheduleview.h" #include "configsettings.h" #include "shortcut.h" #include "schedulesearchview.h" #include "cdynamicicon.h" #include "constants.h" #include "scheduledlg.h" #include "ctitlewidget.h" #include "tabletconfig.h" #include "calendarglobalenv.h" #include "scheduletypeeditdlg.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE DWIDGET_USE_NAMESPACE static const int CalendarMWidth = 646; static const int CalendarMHeight = 634; const int CalendarSwitchWidth = 647; //当宽度小于这个尺寸时,标题栏需要切换显示逻辑 const int CalendarViewSwitchWidth = 804; //当宽度小于这个尺寸时,视图部分需要切换显示逻辑 const int Calendar_Default_Width = 860; //默认宽度 const int Calendar_Default_Height = 634; //默认高度 Calendarmainwindow::Calendarmainwindow(int index, QWidget *w) : DMainWindow(w) , m_defaultIndex(index) { setContentsMargins(QMargins(0, 0, 0, 0)); initUI(); initConnection(); setMinimumSize(CalendarMWidth, CalendarMHeight); setWindowTitle(tr("Calendar")); new CalendarAdaptor(this); resize(CalendarMWidth, CalendarMHeight); //接收点击焦点 setFocusPolicy(Qt::ClickFocus); QShortcut *shortcut = new QShortcut(this); shortcut->setKey(QKeySequence(QLatin1String("Ctrl+F"))); connect(shortcut, SIGNAL(activated()), this, SLOT(slotSearchEdit())); QShortcut *viewshortcut = new QShortcut(this); viewshortcut->setKey(QKeySequence(QLatin1String("Ctrl+Shift+/"))); connect(viewshortcut, SIGNAL(activated()), this, SLOT(slotViewShortcut())); setTitlebarShadowEnabled(true); //获取桌面窗口大小 QDesktopWidget *desktopwidget = QApplication::desktop(); //若分辨率改变则重新设置最大尺寸 connect(desktopwidget, &QDesktopWidget::resized, this, &Calendarmainwindow::slotSetMaxSize); slotSetMaxSize(); //兼容以前的配置信息 if (CConfigSettings::getInstance()->contains("base.geometry")) { QByteArray arrayByte = CConfigSettings::getInstance()->value("base.geometry").toByteArray(); bool isOk = false; int state = CConfigSettings::getInstance()->value("base.state").toInt(&isOk); Qt::WindowStates winStates = static_cast(state); if (winStates.testFlag(Qt::WindowMaximized)) { showMaximized(); } else { restoreGeometry(arrayByte); Dtk::Widget::moveToCenter(this); } //移除旧的配置信息 CConfigSettings::getInstance()->remove("base.geometry"); CConfigSettings::getInstance()->remove("base.state"); } else if (CConfigSettings::getInstance()->contains("base.windowWidth")) { //获取窗口的宽度和高度 int width = CConfigSettings::getInstance()->value("base.windowWidth").toInt(); int height = CConfigSettings::getInstance()->value("base.windowHeight").toInt(); QRect rect(0, 0, width, height); this->setGeometry(rect); } else { //如果没有相关配置则设置为默认尺寸 QRect rect(0, 0, Calendar_Default_Width, Calendar_Default_Height); this->setGeometry(rect); } //在屏幕中央显示 Dtk::Widget::moveToCenter(this); //注册光标位置 CalendarGlobalEnv::getGlobalEnv()->registerKey(DDECalendar::CursorPointKey, QPoint()); //保存主窗口指针 CalendarGlobalEnv::getGlobalEnv()->registerKey("MainWindow", QVariant::fromValue(static_cast(this))); } Calendarmainwindow::~Calendarmainwindow() { CDynamicIcon::releaseInstance(); } void Calendarmainwindow::slotViewShortcut() { QRect rect = window()->geometry(); QPoint pos(rect.x() + rect.width() / 2, rect.y() + rect.height() / 2); Shortcut sc; QStringList shortcutString; QString param1 = "-j=" + sc.toStr(); QString param2 = "-p=" + QString::number(pos.x()) + "," + QString::number(pos.y()); shortcutString << param1 << param2; QProcess *shortcutViewProc = new QProcess(this); shortcutViewProc->startDetached("deepin-shortcut-viewer", shortcutString); connect(shortcutViewProc, SIGNAL(finished(int)), shortcutViewProc, SLOT(deleteLater())); } /** * @brief Calendarmainwindow::slotCurrentDateUpdate 更新当前时间 */ void Calendarmainwindow::slotCurrentDateUpdate() { //获取当前时间 const QDateTime _currentDate = QDateTime::currentDateTime(); //设置当前时间 m_DayWindow->setCurrentDateTime(_currentDate); //如果当前日期与动态图标日期不一样则重新生成动态图标 if (_currentDate.date() != CDynamicIcon::getInstance()->getDate()) { CDynamicIcon::getInstance()->setDate(QDate::currentDate()); CDynamicIcon::getInstance()->setIcon(); //更新视图数据显示 for (int i = 0; i < m_stackWidget->count(); ++i) { CScheduleBaseWidget *widget = qobject_cast(m_stackWidget->widget(i)); widget->updateData(); } //设置年视图年数据时间显示 m_yearwindow->setYearData(); //更新月视图当前周横线绘制 m_monthWindow->setCurrentDateTime(_currentDate); } } /** * @brief Calendarmainwindow::slotSetSearchFocus 设置搜索框焦点 */ void Calendarmainwindow::slotSetSearchFocus() { //设置输入框获取焦点 slotSearchEdit(); } /** * @brief Calendarmainwindow::viewWindow 切换视图 * @param type 视图索引 * @param showAnimation 是否显示动画 */ void Calendarmainwindow::viewWindow(int type, const bool showAnimation) { if (type < 0 || type >= m_stackWidget->count()) { qWarning() << "set view error,set index:" << type; return; } if (showAnimation) { m_stackWidget->setCurrent(type); } else { m_stackWidget->setCurrentIndex(type); } if (m_buttonBox->checkedId() != type) { //设置选中 m_buttonBox->button(type)->setChecked(true); } switch (type) { case DDECalendar::CalendarYearWindow: { //更新界面显示 m_yearwindow->updateData(); } break; case DDECalendar::CalendarMonthWindow: { } break; case DDECalendar::CalendarWeekWindow: { } break; case DDECalendar::CalendarDayWindow: { m_DayWindow->setTime(); m_searchflag = true; } break; } m_priindex = type == 0 ? m_priindex : type; //为了与老版本配置兼容 CConfigSettings::getInstance()->setOption("base.view", type + 1); } void Calendarmainwindow::updateHeight() { int index = m_stackWidget->currentIndex(); if (index < 0 || index > m_stackWidget->count() - 1) { return; } switch (index) { case DDECalendar::CalendarYearWindow: { } break; case DDECalendar::CalendarMonthWindow: { } break; case DDECalendar::CalendarWeekWindow: { m_weekWindow->updateHeight(); } break; case DDECalendar::CalendarDayWindow: { m_DayWindow->updateHeight(); } break; } } void Calendarmainwindow::setSearchWidth(int w) { m_contentBackground->setFixedWidth(w); } void Calendarmainwindow::slotTheme(int type) { if (type == 0) { type = DGuiApplicationHelper::instance()->themeType(); } if (type == 1) { DPalette anipa = m_contentBackground->palette(); anipa.setColor(DPalette::Background, "#F8F8F8"); m_contentBackground->setPalette(anipa); m_contentBackground->setBackgroundRole(DPalette::Background); DPalette tframepa = m_transparentFrame->palette(); QColor tColor = "#FFFFFF"; tColor.setAlphaF(0.3); tframepa.setColor(DPalette::Background, tColor); m_transparentFrame->setPalette(tframepa); m_transparentFrame->setBackgroundRole(DPalette::Background); } else { DPalette anipa = m_contentBackground->palette(); anipa.setColor(DPalette::Background, "#252525"); m_contentBackground->setPalette(anipa); m_contentBackground->setBackgroundRole(DPalette::Background); DPalette tframepa = m_transparentFrame->palette(); QColor tColor = "#000000"; tColor.setAlphaF(0.3); tframepa.setColor(DPalette::Background, tColor); m_transparentFrame->setPalette(tframepa); m_transparentFrame->setBackgroundRole(DPalette::Background); } CScheduleDataManage::getScheduleDataManage()->setTheMe(type); m_yearwindow->setTheMe(type); m_monthWindow->setTheMe(type); m_weekWindow->setTheMe(type); m_DayWindow->setTheMe(type); m_scheduleSearchView->setTheMe(type); } void Calendarmainwindow::slotOpenSchedule(QString job) { if (job.isEmpty()) return; ScheduleDataInfo out; out = ScheduleDataInfo::JsonStrToSchedule(job); //设置被选中 m_buttonBox->button(DDECalendar::CalendarDayWindow)->setChecked(true); //设置获取焦点 m_buttonBox->button(DDECalendar::CalendarDayWindow)->setFocus(); //切换到日视图 m_stackWidget->setCurrentIndex(DDECalendar::CalendarDayWindow); //设置选择时间 m_DayWindow->setSelectDate(out.getBeginDateTime().date()); //更新界面显示 m_DayWindow->updateData(); //设置非全天时间定位位置 m_DayWindow->setTime(out.getBeginDateTime().time()); //弹出编辑对话框 CMyScheduleView dlg(out, this); dlg.exec(); slotWUpdateSchedule(); } void Calendarmainwindow::initUI() { //设置主窗口辅助技术显示名称和描述 this->setObjectName("MainWindow"); this->setAccessibleName("MainWindow"); this->setAccessibleDescription("This is the main window"); m_currentDateUpdateTimer = new QTimer(this); //1.5秒更新当前时间 m_currentDateUpdateTimer->start(1500); CDynamicIcon::getInstance()->setTitlebar(this->titlebar()); CDynamicIcon::getInstance()->setIcon(); m_titleWidget = new CTitleWidget(this); m_titleWidget->setFocusPolicy(Qt::TabFocus); this->titlebar()->setCustomWidget(m_titleWidget); setTabOrder(this->titlebar(), m_titleWidget); //设置状态栏焦点代理为标题窗口 this->titlebar()->setFocusProxy(m_titleWidget); //this->titlebar()->setFocusProxy(titleWidget); this->titlebar()->setQuitMenuVisible(true);//先设置后,才可以获取menu内容。因为setQuitMenuVisible接口中进行了action的添加操作 QMenu *menuTitleBar = this->titlebar()->menu(); QAction *pSetting = new QAction(tr("Manage"), menuTitleBar); //menuTitleBar->addAction(pSetting); menuTitleBar->insertSeparator(menuTitleBar->actions()[0]); menuTitleBar->insertAction(menuTitleBar->actions()[0], pSetting); connect(pSetting, &QAction::triggered, this, &Calendarmainwindow::slotOpenSettingDialog); //接收设置按键焦点 connect(m_titleWidget, &CTitleWidget::signalSetButtonFocus, [=] { m_setButtonFocus = true; }); connect(m_titleWidget, &CTitleWidget::signalSearchFocusSwitch, this, &Calendarmainwindow::slotSearchFocusSwitch); m_searchEdit = m_titleWidget->searchEdit(); m_buttonBox = m_titleWidget->buttonBox(); m_newScheduleBtn = m_titleWidget->newScheduleBtn(); m_stackWidget = new AnimationStackedWidget(); m_stackWidget->setObjectName("StackedWidget"); m_stackWidget->setAccessibleName("StackedWidget"); m_stackWidget->setAccessibleDescription("Container for year window, month window, week window and day window"); m_stackWidget->setContentsMargins(0, 0, 0, 0); m_stackWidget->setDuration(250); createview(); QHBoxLayout *tMainLayout = new QHBoxLayout; tMainLayout->setMargin(0); tMainLayout->setSpacing(0); tMainLayout->setContentsMargins(0, 0, 0, 0); tMainLayout->addWidget(m_stackWidget); m_contentBackground = new DFrame; m_contentBackground->setAccessibleName("ScheduleSearchWidgetBackgroundFrame"); m_contentBackground->setObjectName("ScheduleSearchWidgetBackgroundFrame"); m_contentBackground->setContentsMargins(0, 0, 0, 0); DPalette anipa = m_contentBackground->palette(); anipa.setColor(DPalette::Background, "#F8F8F8"); m_contentBackground->setAutoFillBackground(true); m_contentBackground->setPalette(anipa); m_scheduleSearchView = new CScheduleSearchView(this); m_scheduleSearchView->setObjectName("ScheduleSearchWidget"); m_scheduleSearchView->setAccessibleName("ScheduleSearchWidget"); m_scheduleSearchView->setAccessibleDescription("Window showing search results"); QVBoxLayout *ssLayout = new QVBoxLayout; ssLayout->setMargin(0); ssLayout->setSpacing(0); ssLayout->setContentsMargins(0, 10, 0, 10); ssLayout->addWidget(m_scheduleSearchView); m_contentBackground->setLayout(ssLayout); tMainLayout->addWidget(m_contentBackground); m_contentBackground->setVisible(false); DWidget *maincentralWidget = new DWidget(this); maincentralWidget->setAccessibleName("mainCentralWidget"); maincentralWidget->setLayout(tMainLayout); setCentralWidget(maincentralWidget); m_transparentFrame = new DFrame(this); m_transparentFrame->setAutoFillBackground(true); m_transparentFrame->hide(); m_animation = new QPropertyAnimation(this); //delete快捷键 QShortcut *dShortcut = new QShortcut(this); dShortcut->setKey(QKeySequence(QLatin1String("Delete"))); connect(dShortcut, &QShortcut::activated, this, &Calendarmainwindow::slotDeleteitem); } void Calendarmainwindow::initConnection() { connect(m_stackWidget, &AnimationStackedWidget::signalIsFinished, this, &Calendarmainwindow::slotSetButtonBox); connect(m_buttonBox, &DButtonBox::buttonClicked, this, &Calendarmainwindow::slotstackWClicked); connect(m_searchEdit, &DSearchEdit::returnPressed, this, &Calendarmainwindow::slotSreturnPressed); connect(m_searchEdit, &DSearchEdit::textChanged, this, &Calendarmainwindow::slotStextChanged); connect(m_searchEdit, &DSearchEdit::focusChanged, this, &Calendarmainwindow::slotStextfocusChanged); //监听当前应用主题切换事件 connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &Calendarmainwindow::slotTheme); //编辑搜索日程刷新界面 connect(m_scheduleSearchView, &CScheduleSearchView::signalSelectSchedule, this, &Calendarmainwindow::slotSearchSelectSchedule); connect(m_scheduleSearchView, &CScheduleSearchView::signalScheduleHide, this, &Calendarmainwindow::setScheduleHide); connect(m_scheduleSearchView, &CScheduleSearchView::signalSelectCurrentItem, this, &Calendarmainwindow::slotSetSearchFocus); //更新当前时间 connect(m_currentDateUpdateTimer, &QTimer::timeout, this, &Calendarmainwindow::slotCurrentDateUpdate); //切换视图 connect(m_yearwindow, &CYearWindow::signalSwitchView, this, &Calendarmainwindow::slotSwitchView); connect(m_monthWindow, &CMonthWindow::signalSwitchView, this, &Calendarmainwindow::slotSwitchView); connect(m_weekWindow, &CWeekWindow::signalSwitchView, this, &Calendarmainwindow::slotSwitchView); //按钮关联新建日程 connect(m_newScheduleBtn, &DToolButton::clicked, this, &Calendarmainwindow::slotNewSchedule); connect(qApp, &QGuiApplication::applicationStateChanged, this, &Calendarmainwindow::slotapplicationStateChanged); } /** * @brief Calendarmainwindow::createview 创建视图 */ void Calendarmainwindow::createview() { m_yearwindow = new CYearWindow(this); m_yearwindow->setObjectName("yearwindow"); m_yearwindow->setAccessibleName("yearwindow"); m_yearwindow->updateData(); m_stackWidget->addWidget(m_yearwindow); m_monthWindow = new CMonthWindow(this); m_monthWindow->setObjectName("monthWindow"); m_monthWindow->setAccessibleName("monthWindow"); m_monthWindow->updateData(); m_stackWidget->addWidget(m_monthWindow); m_weekWindow = new CWeekWindow(this); m_weekWindow->updateData(); m_stackWidget->addWidget(m_weekWindow); m_DayWindow = new CDayWindow; m_DayWindow->updateData(); m_stackWidget->addWidget(m_DayWindow); //如果默认视图不在范围内则设置为月窗口显示 if (m_defaultIndex < 0 || m_defaultIndex >= m_stackWidget->count()) { m_defaultIndex = 1; qWarning() << "set default view index beyond,index:" << m_defaultIndex; } m_stackWidget->setCurrentIndex(m_defaultIndex); m_buttonBox->button(m_defaultIndex)->setChecked(true); //如果为日视图则设置非全天时间定位 if (m_defaultIndex == DDECalendar::CalendarDayWindow) { m_DayWindow->setTime(); } } /** * @brief Calendarmainwindow::setScheduleHide 隐藏提示框 */ void Calendarmainwindow::setScheduleHide() { m_yearwindow->slotSetScheduleHide(); m_monthWindow->slotScheduleHide(); m_weekWindow->slotScheduleHide(); m_DayWindow->slotScheduleHide(); } void Calendarmainwindow::resizeEvent(QResizeEvent *event) { DMainWindow::resizeEvent(event); m_transparentFrame->resize(width(), height() - 50); if (width() < CalendarSwitchWidth) { m_titleWidget->setShowState(CTitleWidget::Title_State_Mini); } else { m_titleWidget->setShowState(CTitleWidget::Title_State_Normal); } if (width() < CalendarViewSwitchWidth) { m_isNormalStateShow = false; m_stackWidget->setVisible(!m_contentBackground->isVisible()); m_scheduleSearchViewMaxWidth = this->width(); } else { m_scheduleSearchViewMaxWidth = qRound(0.2325 * width() + 0.5); m_isNormalStateShow = true; m_stackWidget->setVisible(true); m_contentBackground->setVisible(m_opensearchflag); } m_scheduleSearchView->setMaxWidth(m_scheduleSearchViewMaxWidth); setSearchWidth(m_scheduleSearchViewMaxWidth); setScheduleHide(); //保存窗口大小 CConfigSettings::getInstance()->setOption("base.windowWidth", event->size().width()); CConfigSettings::getInstance()->setOption("base.windowHeight", event->size().height()); } /** * @brief Calendarmainwindow::slotstackWClicked 点击按钮切换视图 * @param bt */ void Calendarmainwindow::slotstackWClicked(QAbstractButton *bt) { setScheduleHide(); int index = m_buttonBox->id(bt); viewWindow(index, true); } void Calendarmainwindow::slotWUpdateSchedule() { if (m_opensearchflag && !m_searchEdit->text().isEmpty()) { m_scheduleSearchView->slotsetSearch(m_searchEdit->text()); } updateHeight(); return; } void Calendarmainwindow::slotSreturnPressed() { if (!m_opensearchflag && !m_searchEdit->text().isEmpty()) { m_opensearchflag = true; } //如果为搜索状态 if (m_opensearchflag) { //根据显示显示状态,是否显示左侧视图窗口 if (!m_isNormalStateShow) { m_stackWidget->setVisible(false); } m_contentBackground->setVisible(true); } m_scheduleSearchView->slotsetSearch(m_searchEdit->text()); updateHeight(); } void Calendarmainwindow::slotStextChanged() { if (!m_searchEdit->text().isEmpty()) { m_yearwindow->setSearchWFlag(true); m_weekWindow->setSearchWFlag(true); m_monthWindow->setSearchWFlag(true); m_DayWindow->setSearchWFlag(true); } else { m_scheduleSearchView->clearSearch(); m_yearwindow->setSearchWFlag(false); m_monthWindow->setSearchWFlag(false); m_weekWindow->setSearchWFlag(false); m_DayWindow->setSearchWFlag(false); m_contentBackground->setVisible(false); m_stackWidget->setVisible(true); m_opensearchflag = false; } updateHeight(); } /** * @brief Calendarmainwindow::slotStextfocusChanged 搜索框有焦点时隐藏提示框并设置搜索日程焦点 * @param onFocus */ void Calendarmainwindow::slotStextfocusChanged(bool onFocus) { if (onFocus) { setScheduleHide(); } } void Calendarmainwindow::slotSearchEdit() { m_searchEdit->lineEdit()->setFocus(); } /** * @brief Calendarmainwindow::slotSearchSelectSchedule 单击搜索日程动画设置 * @param scheduleInfo */ void Calendarmainwindow::slotSearchSelectSchedule(const ScheduleDataInfo &scheduleInfo) { //如果小尺寸显示模式,在显示搜索窗口的时候,左侧视图会被隐藏 //如果点击一个搜索结果则隐藏搜索窗口,展示左侧视图 if (!m_isNormalStateShow) { // CalendarGlobalEnv::getGlobalEnv()->registerKey("SearchItemEvent", "Keyboard"); QVariant variant; CalendarGlobalEnv::getGlobalEnv()->getValueByKey("SearchItemEvent", variant); QString searchItemEvent = variant.toString(); //如果为鼠标点击操作 if (searchItemEvent == "MousePress") { m_stackWidget->setVisible(true); m_contentBackground->setVisible(false); } } //获取当前视图编号 CScheduleBaseWidget *_showWidget = dynamic_cast(m_stackWidget->currentWidget()); if (_showWidget) { //如果日程开始时间年份与选择时间年份不一样则切换年份显示 bool changeYear = _showWidget->getSelectDate().year() != scheduleInfo.getBeginDateTime().date().year(); //设置选择时间 if (_showWidget->setSelectDate(scheduleInfo.getBeginDateTime().date(), changeYear)) { //更新显示数据 _showWidget->updateData(); //设置年份信息显示 _showWidget->setYearData(); //延迟150毫秒设置选中动画 QTimer::singleShot(150, this, [ = ] { _showWidget->setSelectSearchScheduleInfo(scheduleInfo); }); } //如果当前界面不为年试图则更新年视图数据 if (_showWidget != m_yearwindow) { m_yearwindow->updateData(); } } } /** * @brief Calendarmainwindow::slotViewtransparentFrame 添加视图阴影 * @param isShow */ void Calendarmainwindow::slotViewtransparentFrame(const bool isShow) { if (isShow) { m_transparentFrame->resize(width(), height() - 50); m_transparentFrame->move(0, 50); m_transparentFrame->show(); } else { m_transparentFrame->hide(); } } /** * @brief Calendarmainwindow::slotSetButtonBox 启用buttonbox */ void Calendarmainwindow::slotSetButtonBox() { //如果为键盘操作则切换后设置焦点 if (m_setButtonFocus) { //获取焦点 m_buttonBox->button(m_buttonBox->checkedId())->setFocus(); } m_setButtonFocus = false; } /** * @brief Calendarmainwindow::slotSwitchView 切换视图 * @param viewIndex 切换类型 */ void Calendarmainwindow::slotSwitchView(const int viewIndex) { // 0:跳转上一个视图 1:月视图 2:周视图 3:日视图 switch (viewIndex) { case 0: { if (m_priindex == DDECalendar::CalendarYearWindow) m_priindex = DDECalendar::CalendarDayWindow; viewWindow(m_priindex); break; } case 1: { viewWindow(DDECalendar::CalendarMonthWindow); break; } case 2: { viewWindow(DDECalendar::CalendarWeekWindow); break; } case 3: { viewWindow(DDECalendar::CalendarDayWindow); break; } default: break; } } /** * @brief Calendarmainwindow::slotNewSchedule 全局新建日程 */ void Calendarmainwindow::slotNewSchedule() { //设置日程开始时间 QDateTime _beginTime(m_yearwindow->getSelectDate(), QTime::currentTime()); //新建日程对话框 CScheduleDlg _scheduleDig(1, this, false); //设置开始时间 _scheduleDig.setDate(_beginTime); _scheduleDig.exec(); } void Calendarmainwindow::slotDeleteitem() { if (m_scheduleSearchView->getHasScheduleShow() && m_scheduleSearchView->getScheduleStatus()) { //删除选中的schedule m_scheduleSearchView->deleteSchedule(); } else { //获取当前的 CScheduleBaseWidget *widget = qobject_cast(m_stackWidget->currentWidget()); if (widget) { widget->deleteselectSchedule(); } } } /** * @brief Calendarmainwindow::slotSetMaxSize 根据屏幕分辨率调整窗口最大尺寸 * @param size */ void Calendarmainwindow::slotSetMaxSize(int size) { Q_UNUSED(size); //获取屏幕大小 QSize deskSize = QApplication::desktop()->size(); //设置最大尺寸为屏幕尺寸 setMaximumSize(deskSize); if (TabletConfig::isTablet()) { setFixedSize(deskSize); } } void Calendarmainwindow::slotSearchFocusSwitch() { //设置搜索日程展示列表焦点 if (m_contentBackground->isVisible() && m_scheduleSearchView->getHasScheduleShow()) { m_scheduleSearchView->setFocus(Qt::TabFocusReason); } } void Calendarmainwindow::mouseMoveEvent(QMouseEvent *event) { //如果为平板模式则不可移动 if (TabletConfig::isTablet()) { Q_UNUSED(event); } else { DMainWindow::mouseMoveEvent(event); setScheduleHide(); } } void Calendarmainwindow::changeEvent(QEvent *event) { DMainWindow::changeEvent(event); if (event->type() == QEvent::ActivationChange) { setScheduleHide(); } } void Calendarmainwindow::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event); setScheduleHide(); } bool Calendarmainwindow::event(QEvent *event) { //如果窗口移动,隐藏日程悬浮框 if (event->type() == QEvent::Move) { setScheduleHide(); } //如果为活动窗口则显示视图阴影 if (event->type() == QEvent::WindowActivate) { slotViewtransparentFrame(false); } //如果不为活动窗口则隐藏视图阴影 if (event->type() == QEvent::WindowDeactivate) { slotViewtransparentFrame(true); } return DMainWindow::event(event); } void Calendarmainwindow::slotapplicationStateChanged(Qt::ApplicationState state) { static QDateTime currentDateTime = QDateTime::currentDateTime(); //TODO:目前没有找到窗口显示不是激活状态的原因(会先激活然后为非激活状态)。 //当间隔时间少于10毫秒且状态为非激活时,将窗口设置显示在最顶端并设置激活状态 if (state == Qt::ApplicationInactive) { //获取当前时间 QDateTime currentTime = QDateTime::currentDateTime(); //考虑到会修改系统时间的情况,时间差在0~30毫秒内才会设置 if (currentDateTime.msecsTo(currentTime) < 30 && currentDateTime.msecsTo(currentTime) >= 0) { activateWindow(); raise(); } //断开信号连接 disconnect(qApp, &QGuiApplication::applicationStateChanged, this, &Calendarmainwindow::slotapplicationStateChanged); } } void Calendarmainwindow::slotOpenSettingDialog() { if (nullptr == m_dsdSetting) { m_dsdSetting = new DSettingsDialog(this); m_dsdSetting->setIcon(CDynamicIcon::getInstance()->getPixmap()); m_dsdSetting->setFixedSize(682, 506); m_dsdSetting->widgetFactory()->registerWidget("JobTypeListView", [](QObject *obj) -> QWidget * { if (DSettingsOption *option = qobject_cast(obj)) { Q_UNUSED(option) JobTypeListView *lv = new JobTypeListView(); lv->setObjectName("JobTypeListView"); return lv; } return nullptr; }); QString strJson = QString(R"( {"groups":[{"key":"setting_base","name":"Manage calendar","groups":[{"key":"event_types","name":"Event types","options":[{"key":"JobTypeListView","type":"JobTypeListView","name":"JobTypeListView","default":""}]}]}]} )"); auto settings = Dtk::Core::DSettings::fromJson(strJson.toLatin1()); //settings->setBackend(&backend); m_dsdSetting->setObjectName("SettingDialog"); m_dsdSetting->updateSettings(settings); //恢复默认设置按钮不显示 m_dsdSetting->setResetVisible(false); //QList QList lstwidget = m_dsdSetting->findChildren(); if (lstwidget.size() > 0) { //accessibleName for (QWidget *wid : lstwidget) { if ("ContentWidgetForsetting_base.event_types" == wid->accessibleName()) { JobTypeListView *view = m_dsdSetting->findChild("JobTypeListView"); if (!view) return; DIconButton *addButton = new DIconButton(DStyle::SP_IncreaseElement, nullptr); //跟UI沟通size设置为20*20 addButton->setFixedSize(20, 20); wid->layout()->addWidget(addButton); //使addButton的右边距等于view的右边距 int leftMargin = wid->layout()->contentsMargins().left(); wid->layout()->setContentsMargins(leftMargin, 0, leftMargin, 0); addButton->setEnabled(view->canAdd()); //当日常类型超过上限时,更新button的状态 connect(view, &JobTypeListView::signalAddStatusChanged, addButton, &DIconButton::setEnabled); //新增类型 connect(addButton, &DIconButton::clicked, this, [=] { ScheduleTypeEditDlg a(m_dsdSetting); a.exec(); }); } if (wid->accessibleName().contains("DefaultWidgetAtContentRow")) { //DefaultWidgetAtContentRow是设置对话框右边每一个option条目对应widget的accessibleName的前缀,所以如果后续有更多条目,需要做修改 wid->layout()->setMargin(0); } } } } //内容定位到顶端 m_dsdSetting->exec(); //使用晚后释放 delete m_dsdSetting; m_dsdSetting = nullptr; } dde-calendar-5.9.1/calendar-client/src/widget/calendarmainwindow.h000066400000000000000000000104001423264401600251440ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 CALENDARMAINWINDOW_H #define CALENDARMAINWINDOW_H #include "src/scheduledatainfo.h" #include "jobtypelistview.h" #include #include #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class CYearWindow; class CMonthWindow; class CWeekWindow; class CDayWindow; class CScheduleSearchView; class AnimationStackedWidget; class CScheduleDataManage; class CTitleWidget; class Calendarmainwindow : public DMainWindow { Q_OBJECT public: explicit Calendarmainwindow(int index, QWidget *w = nullptr); ~Calendarmainwindow() override; void viewWindow(int type, const bool showAnimation = false); void updateHeight(); void setSearchWidth(int w); public slots: void slotTheme(int type); void slotOpenSchedule(QString job); void slotViewShortcut(); //更新当前时间 void slotCurrentDateUpdate(); void slotSetSearchFocus(); private: void initUI(); void initConnection(); //创建视图 void createview(); protected: void resizeEvent(QResizeEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void changeEvent(QEvent *event) override; void mousePressEvent(QMouseEvent *event) override; bool event(QEvent *event) override; private slots: //获取程序状态 void slotapplicationStateChanged(Qt::ApplicationState state); //隐藏提示框 void setScheduleHide(); //点击按钮切换视图 void slotstackWClicked(QAbstractButton *bt); void slotWUpdateSchedule(); void slotSreturnPressed(); void slotStextChanged(); //搜索框有焦点时隐藏提示框 void slotStextfocusChanged(bool onFocus); void slotSearchEdit(); //单击搜索日程动画设置 void slotSearchSelectSchedule(const ScheduleDataInfo &scheduleInfo); //添加视图阴影 void slotViewtransparentFrame(const bool isShow); //启用buttonbox void slotSetButtonBox(); //切换视图 void slotSwitchView(const int viewIndex); //新建日程 void slotNewSchedule(); void slotOpenSettingDialog(); //快捷键删除选中日程 void slotDeleteitem(); //设置最大大小 void slotSetMaxSize(int size = 0); void slotSearchFocusSwitch(); private: DLabel *m_icon = nullptr; AnimationStackedWidget *m_stackWidget = nullptr; DButtonBox *m_buttonBox = nullptr; DSearchEdit *m_searchEdit = nullptr; CYearWindow *m_yearwindow = nullptr; CMonthWindow *m_monthWindow = nullptr; CWeekWindow *m_weekWindow = nullptr; CDayWindow *m_DayWindow = nullptr; CTitleWidget *m_titleWidget = nullptr; bool m_searchflag = false; CScheduleSearchView *m_scheduleSearchView = nullptr; DFrame *m_contentBackground = nullptr; int m_priindex = 3; //默认打开日视图双击 DFrame *m_transparentFrame = nullptr; bool m_opensearchflag = false; int m_scheduleSearchViewMaxWidth; QPropertyAnimation *m_animation = nullptr; QTimer *m_currentDateUpdateTimer = nullptr; DIconButton *m_newScheduleBtn {nullptr}; //全局的新建日程按钮 DSettingsDialog *m_dsdSetting {nullptr}; JobTypeListView *m_jobTypeListView {nullptr}; //日历打开默认显示视图 int m_defaultIndex; bool m_setButtonFocus {false}; bool m_isNormalStateShow {true}; //是否为正常状态显示 }; #endif // CALENDARMAINWINDOW_H dde-calendar-5.9.1/calendar-client/src/widget/cschedulebasewidget.cpp000066400000000000000000000125561423264401600256450ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cschedulebasewidget.h" CalendarManager *CScheduleBaseWidget::m_calendarManager = nullptr; CScheduleBaseWidget::CScheduleBaseWidget(QWidget *parent) : QWidget(parent) { if (m_calendarManager == nullptr) { m_calendarManager = CalendarManager::getInstance(); //获取一年的日程信息 updateDBusData(); } m_calendarManager->addShowWidget(this); } CScheduleBaseWidget::~CScheduleBaseWidget() { m_calendarManager->removeShowWidget(this); if (m_calendarManager->getShowWidgetSize() == 0) { CalendarManager::releaseInstance(); m_calendarManager = nullptr; } } /** * @brief CScheduleBaseWidget::setSelectDate 设置选择时间 * @param selectDate */ bool CScheduleBaseWidget::setSelectDate(const QDate &selectDate, const bool isSwitchYear) { bool _result = false; //选择时间必须大于等于1900年 if (selectDate.year() >= 1900) { m_calendarManager->getCalendarDateDataManage()->setSelectDate(selectDate, isSwitchYear); _result = true; //更新其它视图界面显示 for (int i = 0; i < m_calendarManager->getShowWidgetSize(); ++i) { //如果为当前视图则不更新 if (m_calendarManager->getShowWidget(i) == this || m_calendarManager->getShowWidget(i) == nullptr) continue; m_calendarManager->getShowWidget(i)->setYearData(); m_calendarManager->getShowWidget(i)->updateShowDate(); } updateDBusData(); } return _result; } /** * @brief CScheduleBaseWidget::getSelectDate 获取选择时间 * @return */ QDate CScheduleBaseWidget::getSelectDate() const { return m_calendarManager->getCalendarDateDataManage()->getSelectDate(); } /** * @brief CScheduleBaseWidget::setCurrentDateTime 设置当前时间 * @param currentDate */ void CScheduleBaseWidget::setCurrentDateTime(const QDateTime ¤tDate) { m_calendarManager->getCalendarDateDataManage()->setCurrentDateTime(currentDate); } /** * @brief CScheduleBaseWidget::getCurrendDateTime 获取当前时间 * @return */ QDateTime CScheduleBaseWidget::getCurrendDateTime() const { return m_calendarManager->getCalendarDateDataManage()->getCurrentDate(); } /** * @brief CScheduleBaseWidget::getShowLunar 获取是否显示农历信息 * @return */ bool CScheduleBaseWidget::getShowLunar() { return m_calendarManager->getShowLunar(); } /** * @brief CScheduleBaseWidget::updateData 更新数据显示 */ void CScheduleBaseWidget::updateData() { updateShowDate(); updateShowSchedule(); updateShowLunar(); updateSearchScheduleInfo(); } /** * @brief CScheduleBaseWidget::updateDBusData 更新一年的dbus数据 */ void CScheduleBaseWidget::updateDBusData() { ShowDateRange _showDateRange = m_calendarManager->getCalendarDateDataManage()->getShowDateRange(); //如果缓存中不包含开始或结束时间则更新dbus数据 if (!m_calendarManager->getScheduleTask()->hasScheduleInfo(_showDateRange.startDate, _showDateRange.stopDate)) { //获取日程开始和结束时间,考虑切换日视图会显示显示时间之外的时间所以前后多获取2个月日程数据。 QDate _startDate = _showDateRange.startDate.addDays(-42); QDate _stopDate = _showDateRange.stopDate.addDays(42); //getShowLunar() //获取日程任务 CScheduleTask *_task = m_calendarManager->getScheduleTask(); if (_startDate.isValid() && _stopDate.isValid()) { //更新日程信息 _task->updateInfo(_startDate, _stopDate, getShowLunar()); } else { qWarning() << "startDate or stopDate Err!"; } } } /** * @brief CScheduleBaseWidget::updateSearchScheduleInfo 更新搜索日程 * 由子类完成 */ void CScheduleBaseWidget::updateSearchScheduleInfo() { } void CScheduleBaseWidget::deleteselectSchedule() { } /** * @brief CScheduleBaseWidget::getLunarInfo 获取选择时间的农历信息 * @return */ CaHuangLiDayInfo CScheduleBaseWidget::getLunarInfo() { QMap _huangLiInfo = m_calendarManager->getScheduleTask()->getHuangLiInfo(getSelectDate(), getSelectDate()); QMap::const_iterator interator = _huangLiInfo.constBegin(); if (interator == _huangLiInfo.constEnd()) return CaHuangLiDayInfo(); m_lunarYear = QString("-%0%1年-").arg(interator.value().mGanZhiYear).arg(interator.value().mZodiac); m_lunarDay = QString("-农历%0%1-").arg(interator.value().mLunarMonthName).arg(interator.value().mLunarDayName); return interator.value(); } dde-calendar-5.9.1/calendar-client/src/widget/cschedulebasewidget.h000066400000000000000000000047751423264401600253160ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCHEDULEBASEWIDGET_H #define CSCHEDULEBASEWIDGET_H #include "calendarmanage.h" #include class CScheduleBaseWidget : public QWidget { Q_OBJECT public: explicit CScheduleBaseWidget(QWidget *parent = nullptr); ~CScheduleBaseWidget(); //设置选择时间 bool setSelectDate(const QDate &selectDate, const bool isSwitchYear = false); //获取选择时间 QDate getSelectDate() const; //设置当前时间 virtual void setCurrentDateTime(const QDateTime ¤tDate); //获取当前时间 QDateTime getCurrendDateTime() const; //获取是否显示农历信息 static bool getShowLunar(); //更新所有数据,显示时间和日程数据 void updateData(); //更新dbus数据 void updateDBusData(); //更新界面搜索日程显示 virtual void updateSearchScheduleInfo(); //设置年显示 virtual void setYearData() = 0; //更新显示时间 virtual void updateShowDate(const bool isUpdateBar = true) = 0; //更新显示日程数据 virtual void updateShowSchedule() = 0; //更新农历信息显示 virtual void updateShowLunar() = 0; //设置选中搜索日程 virtual void setSelectSearchScheduleInfo(const ScheduleDataInfo &info) = 0; //删除选中日程 virtual void deleteselectSchedule(); protected: //获取选择时间的农历信息 CaHuangLiDayInfo getLunarInfo(); signals: //切换视图信号 0:跳转上一个视图 1:月视图 2:周视图 3:日视图 void signalSwitchView(const int viewIndex = 0); protected: static CalendarManager *m_calendarManager; QString m_lunarYear; QString m_lunarDay; }; #endif // CSCHEDULEBASEWIDGET_H dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/000077500000000000000000000000001423264401600230535ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/dayhuangliview.cpp000066400000000000000000000064671423264401600266140ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "dayhuangliview.h" #include "scheduledlg.h" #include #include #include #include #include #include #include #include CDayHuangLiLabel::CDayHuangLiLabel(QWidget *parent) : DLabel(parent) { setMargin(0); } void CDayHuangLiLabel::setbackgroundColor(QColor backgroundColor) { m_backgroundColor = backgroundColor; } void CDayHuangLiLabel::setTextInfo(QColor tcolor, QFont font) { m_textcolor = tcolor; m_font = font; } void CDayHuangLiLabel::setHuangLiText(QStringList vhuangli, int type) { m_vHuangli = vhuangli; m_type = type; if (!vhuangli.isEmpty()) { QString str = vhuangli.at(0); for (int i = 1; i < vhuangli.count(); i++) { str += "." + vhuangli.at(i); } setToolTip(str); } else { setToolTip(QString()); } update(); } void CDayHuangLiLabel::paintEvent(QPaintEvent *e) { Q_UNUSED(e); int labelwidth = width(); int labelheight = height(); QPainter painter(this); QRect fillRect = QRect(0, 0, labelwidth, labelheight); painter.setRenderHints(QPainter::HighQualityAntialiasing); painter.setBrush(QBrush(m_backgroundColor)); painter.setPen(Qt::NoPen); painter.drawRoundedRect(fillRect, 12, 12); QPixmap pixmap; if (m_type == 0) pixmap = DHiDPIHelper::loadNxPixmap(":/resources/icon/dde-yi.svg"); else { pixmap = DHiDPIHelper::loadNxPixmap(":/resources/icon/dde-ji.svg"); } pixmap.setDevicePixelRatio(devicePixelRatioF()); painter.save(); painter.setRenderHint(QPainter::Antialiasing); painter.setRenderHint(QPainter::HighQualityAntialiasing); painter.setRenderHint(QPainter::SmoothPixmapTransform); painter.drawPixmap(QRect(m_leftMagin, m_topMagin + 1, 22, 22), pixmap); painter.restore(); painter.setFont(m_font); painter.setPen(m_textcolor); int bw = m_leftMagin + 34; int bh = m_topMagin; int ss = 14; for (int i = 0; i < m_vHuangli.count(); i++) { int currentsw = m_vHuangli.at(i).count() * ss; if (bw + currentsw + 6 > labelwidth) { painter.drawText(QRect(bw, bh, labelwidth - bw, 21), Qt::AlignLeft, "..."); break; } else { painter.drawText(QRect(bw, bh, currentsw, 21), Qt::AlignLeft, m_vHuangli.at(i)); bw += currentsw + 10; } } } void CDayHuangLiLabel::resizeEvent(QResizeEvent *event) { m_leftMagin = static_cast(0.0424 * width() + 0.5); m_topMagin = (height() - 20) / 2; DLabel::resizeEvent(event); } dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/dayhuangliview.h000066400000000000000000000026451423264401600262530ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 DAYHUANGLILABEL_H #define DAYHUANGLILABEL_H #include DWIDGET_USE_NAMESPACE class CDayHuangLiLabel : public DLabel { Q_OBJECT public: explicit CDayHuangLiLabel(QWidget *parent = nullptr); void setbackgroundColor(QColor backgroundColor); void setTextInfo(QColor tcolor, QFont font); void setHuangLiText(QStringList vhuangli, int type = 0); protected: void paintEvent(QPaintEvent *e) override; void resizeEvent(QResizeEvent *event) override; private: QStringList m_vHuangli; QColor m_backgroundColor; QColor m_textcolor; QFont m_font; int m_type = 0; int m_leftMagin = 14; int m_topMagin = 18; }; #endif // DAYHUANGLILABEL_H dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/daymonthview.cpp000066400000000000000000000574141423264401600263100ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "todaybutton.h" #include "scheduledatamanage.h" #include "daymonthview.h" #include "constants.h" #include "dayhuangliview.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CDayMonthView::CDayMonthView(QWidget *parent) : CustomFrame(parent) { m_weeklist.append(tr("Monday")); m_weeklist.append(tr("Tuesday")); m_weeklist.append(tr("Wednesday")); m_weeklist.append(tr("Thursday")); m_weeklist.append(tr("Friday")); m_weeklist.append(tr("Saturday")); m_weeklist.append(tr("Sunday")); initUI(); initConnection(); } CDayMonthView::~CDayMonthView() { } void CDayMonthView::setShowDate(const QVector &showDate, const QDate &selectDate, const QDate ¤tDate) { m_selectDate = selectDate; m_currentDate = currentDate; m_dayMonthWidget->setShowDate(showDate, selectDate, currentDate); updateDateShow(); } void CDayMonthView::setLunarVisible(bool visible) { m_huanglistate = visible; m_yiLabel->setVisible(visible); m_jiLabel->setVisible(visible); m_currentLuna->setVisible(visible); m_splitline->setVisible(visible); update(); } void CDayMonthView::setTheMe(int type) { m_dayMonthWidget->setTheMe(type); if (type == 0 || type == 1) { DPalette aniPa = this->palette(); QColor tbColor = "#FFFFFF"; aniPa.setColor(DPalette::Background, tbColor); setPalette(aniPa); setBackgroundRole(DPalette::Background); setBColor(tbColor); DPalette todayPa = m_today->palette(); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, Qt::white); todayPa.setColor(DPalette::Light, Qt::white); QColor sbColor("#002A57"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); m_today->setPalette(todayPa); QColor todayhover = "#000000"; todayhover.setAlphaF(0.1); QColor todaypress = "#000000"; todaypress.setAlphaF(0.2); m_today->setBColor("#FFFFFF", todayhover, todaypress, "#FFFFFF", todayhover, todaypress); m_today->setTColor(todayColor, "#001A2E", "#0081FF"); m_today->setshadowColor(sbColor); DPalette prevPalette = m_prevButton->palette(); prevPalette.setColor(DPalette::Dark, QColor("#E6E6E6")); prevPalette.setColor(DPalette::Light, QColor("#E3E3E3")); DPalette nextPa = m_nextButton->palette(); nextPa.setColor(DPalette::Dark, QColor("#E6E6E6")); nextPa.setColor(DPalette::Light, QColor("#E3E3E3")); m_currentMouth->setTextColor(QColor("#3B3B3B")); m_currentDay->setTextColor(todayColor); m_currentWeek->setTextColor(QColor("#414D68")); m_currentLuna->setTextColor(QColor("#414D68")); m_currentYear->setTextColor(QColor("#414D68")); QFont hLabelF; hLabelF.setPixelSize(DDECalendar::FontSizeFourteen); QColor yiColor = QColor("#75C18E"); yiColor.setAlphaF(0.1); m_yiLabel->setbackgroundColor(yiColor); m_yiLabel->setTextInfo(QColor("#7B7B7B"), hLabelF); QColor jiColor = QColor("#C17575"); jiColor.setAlphaF(0.1); m_jiLabel->setbackgroundColor(jiColor); m_jiLabel->setTextInfo(QColor("#7B7B7B"), hLabelF); m_topBorderColor = Qt::red; m_backgroundCircleColor = "#0081FF"; m_weekendsTextColor = Qt::black; m_festivalTextColor = Qt::black; } else if (type == 2) { DPalette aniPa = this->palette(); QColor tbColor = "#282828"; aniPa.setColor(DPalette::Background, tbColor); setPalette(aniPa); setBackgroundRole(DPalette::Background); setBColor(tbColor); DPalette todayPa = m_today->palette(); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Light, "#484848"); todayPa.setColor(DPalette::Dark, "#414141"); QColor sbColor("#000000"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); m_today->setPalette(todayPa); m_today->setBColor("#484848", "#727272", "#242424", "#414141", "#535353", "#282828"); m_today->setTColor(todayColor, "#FFFFFF", "#0081FF"); m_today->setshadowColor(sbColor); DPalette prevPalette = m_prevButton->palette(); prevPalette.setColor(DPalette::Dark, QColor("#484848")); prevPalette.setColor(DPalette::Light, QColor("#414141")); DPalette nextPa = m_nextButton->palette(); nextPa.setColor(DPalette::Dark, QColor("#484848")); nextPa.setColor(DPalette::Light, QColor("#414141")); m_currentMouth->setTextColor(QColor("#C0C6D4")); m_currentDay->setTextColor(todayColor); m_currentWeek->setTextColor(QColor("#C0C6D4")); m_currentLuna->setTextColor(QColor("#C0C6D4")); m_currentYear->setTextColor(QColor("#C0C6D4")); QFont hLabelF; hLabelF.setPixelSize(DDECalendar::FontSizeFourteen); QColor yiColor = QColor("#2F8C4D"); yiColor.setAlphaF(0.2); m_yiLabel->setbackgroundColor(yiColor); m_yiLabel->setTextInfo(QColor("#C0C6D4"), hLabelF); QColor jiColor = QColor("#A43B3B"); jiColor.setAlphaF(0.2); m_jiLabel->setbackgroundColor(jiColor); m_jiLabel->setTextInfo(QColor("#C0C6D4"), hLabelF); m_topBorderColor = Qt::red; m_backgroundCircleColor = "#0059D2"; m_weekendsTextColor = Qt::black; m_festivalTextColor = Qt::black; } update(); } void CDayMonthView::setSearchFlag(bool flag) { m_searchflag = flag; update(); } /** * @brief CDayMonthView::setHuangLiInfo 设置黄历信息 * @param huangLiInfo */ void CDayMonthView::setHuangLiInfo(const CaHuangLiDayInfo &huangLiInfo) { m_huangLiInfo = huangLiInfo; updateDateLunarDay(); } void CDayMonthView::setHasScheduleFlag(const QVector &hasScheduleFlag) { m_dayMonthWidget->setHasScheduleFlag(hasScheduleFlag); } void CDayMonthView::initUI() { m_today = new CTodayButton; m_today->setText(QCoreApplication::translate("today", "Today", "Today")); m_today->setFixedSize(100, DDEDayCalendar::D_MLabelHeight); DPalette todayPa = m_today->palette(); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, Qt::white); todayPa.setColor(DPalette::Light, Qt::white); QColor sbColor("#002A57"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); QFont todayfont; todayfont.setPixelSize(DDECalendar::FontSizeFourteen); m_today->setFont(todayfont); m_today->setPalette(todayPa); m_prevButton = new DIconButton(DStyle::SP_ArrowLeft, this); m_prevButton->setFixedSize(36, 36); m_nextButton = new DIconButton(DStyle::SP_ArrowRight, this); m_nextButton->setFixedSize(36, 36); QHBoxLayout *titleLayout = new QHBoxLayout; titleLayout->setMargin(0); titleLayout->setSpacing(0); titleLayout->setContentsMargins(0, 0, 0, 3); //add separator line m_currentMouth = new CustomFrame(this); m_currentMouth->setFixedSize(74, DDEDayCalendar::D_MLabelHeight); QFont mlabelF; mlabelF.setWeight(QFont::Medium); mlabelF.setPixelSize(DDECalendar::FontSizeTwentyfour); m_currentMouth->setTextFont(mlabelF); m_currentMouth->setTextAlign(Qt::AlignCenter); titleLayout->addWidget(m_prevButton); titleLayout->addWidget(m_currentMouth); titleLayout->addWidget(m_nextButton); titleLayout->addStretch(); titleLayout->addWidget(m_today, 0, Qt::AlignRight); //上半部分 m_upLayout = new QVBoxLayout; m_upLayout->setMargin(0); m_upLayout->setSpacing(0); m_upLayout->setContentsMargins(22, 9, 0, 7); m_upLayout->addLayout(titleLayout); m_dayMonthWidget = new CDayMonthWidget(); m_upLayout->addWidget(m_dayMonthWidget); //中间部分 QVBoxLayout *midLayout = new QVBoxLayout; midLayout->setMargin(0); midLayout->setSpacing(0); midLayout->setContentsMargins(0, 0, 0, 20); m_currentDay = new CustomFrame(this); m_currentDay->setFixedHeight(DDEDayCalendar::DDLabelHeight); m_currentDay->setMinimumWidth(width()); m_currentDay->setTextAlign(Qt::AlignCenter); QFont dayLabelF; dayLabelF.setWeight(QFont::Medium); dayLabelF.setPixelSize(DDECalendar::FontSizeOneHundred); m_currentDay->setTextFont(dayLabelF); midLayout->addWidget(m_currentDay); m_currentWeek = new CustomFrame(this); m_currentWeek->setFixedHeight(DDEDayCalendar::DWLabelHeight); m_currentWeek->setTextAlign(Qt::AlignCenter); QFont wLabelF; wLabelF.setPixelSize(DDECalendar::FontSizeSixteen); m_currentWeek->setTextFont(wLabelF); midLayout->addWidget(m_currentWeek); midLayout->addSpacing(2); m_currentYear = new CustomFrame(this); m_currentYear->setFixedHeight(DDEDayCalendar::DWLabelHeight); m_currentYear->setTextAlign(Qt::AlignCenter); m_currentYear->setTextFont(wLabelF); midLayout->addWidget(m_currentYear); midLayout->addSpacing(2); m_currentLuna = new CustomFrame(this); m_currentLuna->setFixedHeight(DDEDayCalendar::DHuangLiInfoLabelHeight); m_currentLuna->setTextAlign(Qt::AlignCenter); QFont hLabelF; hLabelF.setPixelSize(DDECalendar::FontSizeTwelve); m_currentLuna->setTextFont(hLabelF); midLayout->addWidget(m_currentLuna); m_yiDownLayout = new QVBoxLayout; m_yiDownLayout->setMargin(0); m_yiDownLayout->setSpacing(0); m_yiDownLayout->setContentsMargins(10, 5, 10, 0); hLabelF.setPixelSize(DDECalendar::FontSizeFourteen); m_yiLabel = new CDayHuangLiLabel(this); m_yiLabel->setbackgroundColor(QColor("#75C18E")); m_yiLabel->setTextInfo(QColor("#7B7B7B "), hLabelF); m_yiLabel->setFixedSize(DDEDayCalendar::DHuangLiLabelWidth, DDEDayCalendar::DHuangLiLabelHeight); m_yiLabel->setHuangLiText(QStringList()); m_yiDownLayout->addWidget(m_yiLabel); m_jiDownLayout = new QVBoxLayout; m_jiDownLayout->setMargin(0); m_jiDownLayout->setSpacing(0); m_jiDownLayout->setContentsMargins(10, 10, 10, 10); m_jiLabel = new CDayHuangLiLabel(this); m_jiLabel->setbackgroundColor(QColor("#C17575")); m_jiLabel->setTextInfo(QColor("#7B7B7B "), hLabelF); m_jiLabel->setFixedSize(DDEDayCalendar::DHuangLiLabelWidth, DDEDayCalendar::DHuangLiLabelHeight); m_jiLabel->setHuangLiText(QStringList(), 1); m_jiDownLayout->addWidget(m_jiLabel); m_hhLayout = new QVBoxLayout; m_hhLayout->setMargin(0); m_hhLayout->setSpacing(0); m_hhLayout->addLayout(m_upLayout, 6); m_hhLayout->addLayout(midLayout); m_splitline = new DHorizontalLine; m_splitline->setFixedSize(241, 2); QHBoxLayout *hlineLayout = new QHBoxLayout; hlineLayout->setMargin(0); hlineLayout->setSpacing(0); hlineLayout->setContentsMargins(0, 0, 0, 3); hlineLayout->addStretch(1); hlineLayout->addWidget(m_splitline); hlineLayout->addStretch(1); m_hhLayout->addLayout(hlineLayout); m_hhLayout->addLayout(m_yiDownLayout); m_hhLayout->addLayout(m_jiDownLayout); m_hhLayout->addStretch(); setLayout(m_hhLayout); } void CDayMonthView::initConnection() { connect(m_prevButton, &DIconButton::clicked, this, &CDayMonthView::slotprev); connect(m_today, &CTodayButton::clicked, this, &CDayMonthView::slottoday); connect(m_nextButton, &DIconButton::clicked, this, &CDayMonthView::slotnext); connect(m_dayMonthWidget, &CDayMonthWidget::signalChangeSelectDate, this, &CDayMonthView::signalChangeSelectDate); } /** * @brief CDayMonthView::updateDateShow 更新月/天界面显示 */ void CDayMonthView::updateDateShow() { QLocale locale; m_currentMouth->setTextStr(locale.monthName(m_selectDate.month(), QLocale::ShortFormat)); m_currentDay->setTextStr(QString::number(m_selectDate.day())); if (m_selectDate.dayOfWeek() > 0) m_currentWeek->setTextStr(m_weeklist.at(m_selectDate.dayOfWeek() - 1)); m_currentYear->setTextStr(m_selectDate.toString("yyyy/M")); if (m_selectDate == m_currentDate) { m_today->setText(QCoreApplication::translate("today", "Today", "Today")); } else { m_today->setText(QCoreApplication::translate("Return Today", "Today", "Return Today")); } } /** * @brief CDayMonthView::updateDateLunarDay 更新显示黄历信息 */ void CDayMonthView::updateDateLunarDay() { if (!m_huanglistate) return; m_currentLuna->setTextStr(m_huangLiInfo.mGanZhiYear + "年 " + "【" + m_huangLiInfo.mZodiac + "年】" + m_huangLiInfo.mGanZhiMonth + "月 " + m_huangLiInfo.mGanZhiDay + "日 "); QStringList yiList = m_huangLiInfo.mSuit.split(".", QString::SkipEmptyParts); QStringList jiList = m_huangLiInfo.mAvoid.split(".", QString::SkipEmptyParts); m_yiLabel->setHuangLiText(yiList); m_jiLabel->setHuangLiText(jiList, 1); } void CDayMonthView::changeSelectDate(const QDate &date) { emit signalChangeSelectDate(date); } void CDayMonthView::resizeEvent(QResizeEvent *event) { Q_UNUSED(event); int leftMargin = qRound(width() * 0.0332 + 0.5); int rightMargin = leftMargin; int topMargin = qRound(height() * 0.0164 + 0.5); int bottonMargin = topMargin; m_upLayout->setContentsMargins(leftMargin, topMargin, rightMargin, bottonMargin); m_splitline->setFixedWidth(qRound(0.6925 * width() + 0.5)); int hLeftMargin = qRound(width() * 0.026 + 0.5); int hRightMargin = hLeftMargin; int hTopMargin = qRound(height() * 0.01773 + 0.5); int hBottonMargin = hTopMargin; int lw = width() - hLeftMargin * 2; int lh = qRound(height() * 0.0992); m_yiLabel->setFixedSize(lw, lh); m_yiDownLayout->setContentsMargins(hLeftMargin, qRound(hTopMargin * 0.5), hRightMargin, 0); m_jiLabel->setFixedSize(lw, lh); m_jiDownLayout->setContentsMargins(hLeftMargin, hTopMargin, hRightMargin, hBottonMargin); } void CDayMonthView::wheelEvent(QWheelEvent *event) { //如果是拖拽则退出 bool isDragging = false; emit signalIsDragging(isDragging); if (isDragging) return; if (event->delta() < 0) { //切换前一天 changeSelectDate(m_selectDate.addDays(1)); } else { //切换后一天 changeSelectDate(m_selectDate.addDays(-1)); } } void CDayMonthView::paintEvent(QPaintEvent *e) { Q_UNUSED(e); int labelwidth = width(); int labelheight = height(); DPalette aniPa = this->palette(); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.save(); painter.setBrush(aniPa.background()); painter.setPen(Qt::NoPen); QPainterPath painterPath; painterPath.moveTo(0, 0); painterPath.lineTo(0, labelheight); // 如果有搜索界面则为右边为直角否则为圆角 if (!m_searchflag) { painterPath.lineTo(labelwidth - m_radius, labelheight); painterPath.arcTo(QRect(labelwidth - m_radius * 2, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 270, 90); painterPath.lineTo(labelwidth, m_radius); painterPath.arcTo(QRect(labelwidth - m_radius * 2, 0, m_radius * 2, m_radius * 2), 0, 90); } else { painterPath.lineTo(labelwidth, labelheight); painterPath.lineTo(labelwidth, 0); } painterPath.lineTo(0, 0); painterPath.closeSubpath(); painter.drawPath(painterPath); painter.restore(); } void CDayMonthView::slotprev() { changeSelectDate(m_selectDate.addMonths(-1)); } void CDayMonthView::slotnext() { changeSelectDate(m_selectDate.addMonths(1)); } void CDayMonthView::slottoday() { changeSelectDate(m_currentDate); } CDayMonthWidget::CDayMonthWidget(QWidget *parent) : QWidget(parent) , m_isFocus(false) { m_gridLayout = new QGridLayout; m_gridLayout->setMargin(0); m_gridLayout->setSpacing(0); m_dayNumFont.setPixelSize(DDECalendar::FontSizeTwelve); for (int r = 0; r != 6; ++r) { for (int c = 0; c != 7; ++c) { QWidget *cell = new QWidget; cell->installEventFilter(this); m_gridLayout->addWidget(cell, r, c, 1, 1); m_cellList.append(cell); } } this->setLayout(m_gridLayout); setFocusPolicy(Qt::StrongFocus); //设置最大高度 setMaximumHeight(250); } CDayMonthWidget::~CDayMonthWidget() { } void CDayMonthWidget::setTheMe(int type) { m_currentDayTextColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); if (type == 0 || type == 1) { m_defaultTextColor = Qt::black; m_selectedTextColor = Qt::white; m_notCurrentTextColor = "#b2b2b2"; m_ceventColor = QColor(255, 93, 0); } else if (type == 2) { m_defaultTextColor = "#C0C6D4"; m_selectedTextColor = "#B8D3FF"; m_notCurrentTextColor = "#C0C6D4"; m_notCurrentTextColor.setAlphaF(0.5); m_ceventColor = QColor(204, 77, 3); } update(); } void CDayMonthWidget::setShowDate(const QVector &showDate, const QDate &selectDate, const QDate ¤tDate) { m_showDays = showDate; m_selectDate = selectDate; m_currentDate = currentDate; //当前选择index m_selectedCell = m_showDays.indexOf(m_selectDate); update(); } void CDayMonthWidget::setHasScheduleFlag(const QVector &hasScheduleFlag) { m_vlineflag = hasScheduleFlag; update(); } const QString CDayMonthWidget::getCellDayNum(int pos) { return QString::number(m_showDays[pos].day()); } const QDate CDayMonthWidget::getCellDate(int pos) { return m_showDays[pos]; } void CDayMonthWidget::paintCell(QWidget *cell) { const QRect rect = cell->rect(); const int pos = m_cellList.indexOf(cell); const bool isSelectedCell = pos == m_selectedCell; const bool isCurrentDay = getCellDate(pos) == m_currentDate; QPainter painter(cell); painter.setRenderHint(QPainter::Antialiasing); // draw selected cell background circle if (isSelectedCell) { const qreal r = rect.width() > rect.height() ? rect.height() * 0.9 : rect.width() * 0.9; const qreal x = rect.x() + (rect.width() - r) / 2; const qreal y = rect.y() + (rect.height() - r) / 2; QRectF fillRect = QRectF(x, y, r, r).marginsRemoved(QMarginsF(1.5, 2.5, 1.5, 1.5)); painter.save(); painter.setBrush(QBrush(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor())); painter.setPen(Qt::NoPen); painter.drawEllipse(fillRect); painter.restore(); if (m_isFocus) { //绘制焦点获取效果 QPen pen; pen.setWidth(2); pen.setColor(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor()); painter.setPen(pen); //在原有的选中效果外面再绘制一圈 QRectF focusRect(fillRect.x() - 2, fillRect.y() - 2, fillRect.width() + 4, fillRect.height() + 4); painter.setBrush(Qt::NoBrush); painter.drawEllipse(focusRect); } } painter.setPen(Qt::SolidLine); const QString dayNum = getCellDayNum(pos); // draw text of day if (isSelectedCell) { painter.setPen(m_selectedTextColor); } else if (isCurrentDay) { painter.setPen(m_currentDayTextColor); } else { if (m_selectDate.month() == getCellDate(pos).month()) painter.setPen(m_defaultTextColor); else painter.setPen(m_notCurrentTextColor); } QRect test; painter.setFont(m_dayNumFont); painter.drawText(rect, Qt::AlignCenter, dayNum, &test); if (m_vlineflag.count() == DDEDayCalendar::PainterCellNum) { if (m_vlineflag[pos]) { painter.save(); QPen pen; pen.setWidth(2); pen.setColor(m_ceventColor); painter.setPen(pen); painter.setBrush(QBrush(m_ceventColor)); painter.setPen(Qt::NoPen); int r = cell->width() * (4 / 25); if (r < 4) { r = 4; } else if (r > 7) { r = 7; } painter.drawEllipse(cell->width() - r - 6, 4, r, r); painter.restore(); } } } bool CDayMonthWidget::eventFilter(QObject *o, QEvent *e) { if (m_showDays.size() != 42) return false; QWidget *cell = qobject_cast(o); if (cell && m_cellList.contains(cell)) { const int pos = m_cellList.indexOf(cell); QDate date = m_showDays[pos]; //如果需要显示时间小于1900年则退出 if (date.year() < DDECalendar::QueryEarliestYear) return false; if (e->type() == QEvent::Paint) { paintCell(cell); } else if (e->type() == QEvent::MouseButtonPress) { QMouseEvent *mouseEvent = dynamic_cast(e); if (mouseEvent->button() == Qt::LeftButton) { cellClicked(cell); } } } return false; } void CDayMonthWidget::resizeEvent(QResizeEvent *event) { //获取每个时间widget的高度和宽度 qreal width = this->width() / 7; qreal height = this->height() / 6; const qreal r = width > height ? height * 0.9 : width * 0.9; //根据高度和宽度设置时间字体的大小 m_dayNumFont.setPixelSize(qRound(12 + (r - 18) * 6 / 17.0)); QWidget::resizeEvent(event); } void CDayMonthWidget::focusInEvent(QFocusEvent *event) { switch (event->reason()) { case Qt::TabFocusReason: case Qt::BacktabFocusReason: case Qt::ActiveWindowFocusReason: m_isFocus = true; break; default: m_isFocus = false; break; }; update(); } void CDayMonthWidget::focusOutEvent(QFocusEvent *event) { Q_UNUSED(event) m_isFocus = false; update(); } void CDayMonthWidget::keyPressEvent(QKeyEvent *event) { if (m_isFocus) { switch (event->key()) { case Qt::Key_Left: emit signalChangeSelectDate(m_selectDate.addDays(-1)); break; case Qt::Key_Right: emit signalChangeSelectDate(m_selectDate.addDays(1)); break; case Qt::Key_Up: emit signalChangeSelectDate(m_selectDate.addDays(-7)); break; case Qt::Key_Down: emit signalChangeSelectDate(m_selectDate.addDays(7)); break; default: break; } } QWidget::keyPressEvent(event); } void CDayMonthWidget::mousePressEvent(QMouseEvent *event) { QWidget::mousePressEvent(event); m_isFocus = false; } void CDayMonthWidget::cellClicked(QWidget *cell) { const int pos = m_cellList.indexOf(cell); if (pos == -1) return; setSelectedCell(pos); } void CDayMonthWidget::setSelectedCell(int index) { if (m_selectedCell == index) return; emit signalChangeSelectDate(m_showDays.at(index)); } dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/daymonthview.h000066400000000000000000000120201423264401600257350ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 DAYMONTHVIEW_H #define DAYMONTHVIEW_H #include "customframe.h" #include "src/dbusdatastruct.h" #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class CDayHuangLiLabel; class CTodayButton; class CDayMonthWidget; class CDayMonthView: public CustomFrame { Q_OBJECT public: explicit CDayMonthView(QWidget *parent = nullptr); ~CDayMonthView() override; //设置显示时间,选择时间和当前时间 void setShowDate(const QVector &showDate, const QDate &selectDate, const QDate ¤tDate); void setLunarVisible(bool visible); void setTheMe(int type = 0); void setSearchFlag(bool flag); //设置黄历信息 void setHuangLiInfo(const CaHuangLiDayInfo &huangLiInfo); void setHasScheduleFlag(const QVector &hasScheduleFlag); signals: //判断是否为拖拽 void signalIsDragging(bool &isDragging); //选择时间改变信号 void signalChangeSelectDate(const QDate &date); public slots: //上一个月 void slotprev(); //下一个月 void slotnext(); //返回当前时间 void slottoday(); private: void initUI(); void initConnection(); void updateDateShow(); void updateDateLunarDay(); private: void changeSelectDate(const QDate &date); protected: void resizeEvent(QResizeEvent *event) override; void wheelEvent(QWheelEvent *event) override; void paintEvent(QPaintEvent *e) override; private: DIconButton *m_prevButton = nullptr; DIconButton *m_nextButton = nullptr; CTodayButton *m_today = nullptr; CustomFrame *m_currentMouth = nullptr; CustomFrame *m_currentDay = nullptr; CustomFrame *m_currentYear = nullptr; CustomFrame *m_currentWeek = nullptr; CustomFrame *m_currentLuna = nullptr; CDayHuangLiLabel *m_yiLabel = nullptr; CDayHuangLiLabel *m_jiLabel = nullptr; QDate m_selectDate; QDate m_currentDate; int m_selectedCell = 0; QColor m_topBorderColor = Qt::red; QColor m_backgroundCircleColor = "#2ca7f8"; QColor m_weekendsTextColor = Qt::black; QColor m_festivalTextColor = Qt::black; int m_firstWeekDay; bool m_huanglistate = true; QVBoxLayout *m_hhLayout = nullptr; QVBoxLayout *m_upLayout = nullptr; DHorizontalLine *m_splitline = nullptr; QVBoxLayout *m_yiDownLayout = nullptr; QVBoxLayout *m_jiDownLayout = nullptr; QStringList m_weeklist; CaHuangLiDayInfo m_huangLiInfo; CDayMonthWidget *m_dayMonthWidget; const int m_radius = 8; bool m_searchflag = false; }; class CDayMonthWidget : public QWidget { Q_OBJECT public: explicit CDayMonthWidget(QWidget *parent = nullptr); ~CDayMonthWidget() override; void setTheMe(int type = 0); //设置显示时间,选择时间和当前时间 void setShowDate(const QVector &showDate, const QDate &selectDate, const QDate ¤tDate); void setHasScheduleFlag(const QVector &hasScheduleFlag); private: const QString getCellDayNum(int pos); const QDate getCellDate(int pos); void paintCell(QWidget *cell); protected: bool eventFilter(QObject *o, QEvent *e) override; void resizeEvent(QResizeEvent *event) override; void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void mousePressEvent(QMouseEvent *event) override; signals: //选择时间改变信号 void signalChangeSelectDate(const QDate &date); public slots: //点击月显示时间修改选择时间 void cellClicked(QWidget *cell); //设置选择项修改选择时间 void setSelectedCell(int index); private: QList m_cellList; QVector m_showDays; int m_selectedCell = 0; QDate m_selectDate; QDate m_currentDate; QGridLayout *m_gridLayout = nullptr; QVector m_vlineflag; //节假日和日程标识 QColor m_selectedTextColor = Qt::white; QColor m_currentDayTextColor = "#2ca7f8"; QColor m_defaultTextColor = Qt::black; QColor m_notCurrentTextColor = "#b2b2b2"; QColor m_ceventColor = "#FF5D00"; QFont m_dayNumFont; bool m_isFocus; }; #endif // YEARVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/daywindow.cpp000066400000000000000000000316241423264401600255720ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "daywindow.h" #include "constants.h" #include "customframe.h" #include "daymonthview.h" #include "schedulesearchview.h" #include "scheduleview.h" #include #include #include DGUI_USE_NAMESPACE CDayWindow::CDayWindow(QWidget *parent) : CScheduleBaseWidget(parent) { initUI(); initConnection(); setLunarVisible(m_calendarManager->getShowLunar()); } CDayWindow::~CDayWindow() {} void CDayWindow::setTheMe(int type) { if (type == 0 || type == 1) { m_leftground->setBColor("#FFFFFF"); DPalette ypa = m_YearLabel->palette(); ypa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(ypa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette lpa = m_LunarLabel->palette(); lpa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_LunarLabel->setPalette(lpa); m_LunarLabel->setForegroundRole(DPalette::WindowText); DPalette spa = m_SolarDay->palette(); spa.setColor(DPalette::WindowText, Qt::red); m_SolarDay->setPalette(spa); m_SolarDay->setForegroundRole(DPalette::WindowText); } else if (type == 2) { m_leftground->setBColor("#282828"); DPalette ypa = m_YearLabel->palette(); ypa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_YearLabel->setPalette(ypa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette lpa = m_LunarLabel->palette(); lpa.setColor(DPalette::WindowText, QColor("#798BA8")); m_LunarLabel->setPalette(lpa); m_LunarLabel->setForegroundRole(DPalette::WindowText); DPalette spa = m_SolarDay->palette(); spa.setColor(DPalette::WindowText, Qt::red); m_SolarDay->setPalette(spa); m_SolarDay->setForegroundRole(DPalette::WindowText); } m_daymonthView->setTheMe(type); m_scheduleView->setTheMe(type); } /** * @brief CDayWindow::setTime 设置显示时间位置 * @param time */ void CDayWindow::setTime(const QTime time) { if (time.isValid()) { //如果时间有效 m_scheduleView->setTime(time); } else { if (getSelectDate() == getCurrendDateTime().date()) { m_scheduleView->setTime(getCurrendDateTime().time()); } else { m_scheduleView->setTime(m_makeTime); } } } /** * @brief CDayWindow::updateHeight 更新全天和非全天高度 */ void CDayWindow::updateHeight() { m_scheduleView->updateHeight(); } /** * @brief CDayWindow::setCurrentDateTime 设置当前时间 * @param currentDate */ void CDayWindow::setCurrentDateTime(const QDateTime ¤tDate) { //设置当前时间 CScheduleBaseWidget::setCurrentDateTime(currentDate); //更新当前时间 m_scheduleView->setCurrentDate(getCurrendDateTime()); } /** * @brief CDayWindow::setYearData 设置选择时间年信息显示 */ void CDayWindow::setYearData() { QLocale locale; //判断是否为中文环境 if (getShowLunar()) { m_YearLabel->setText(QString::number(getSelectDate().year()) + tr("Y") + QString::number(getSelectDate().month()) + tr("M") + QString::number(getSelectDate().day()) + tr("D")); } else { m_YearLabel->setText(locale.toString(getSelectDate(), "yyyy/M/d")); } } /** * @brief CDayWindow::updateShowDate 更新显示时间 * @param isUpdateBar */ void CDayWindow::updateShowDate(const bool isUpdateBar) { Q_UNUSED(isUpdateBar) setYearData(); int w = m_scheduleView->width() - 72; m_scheduleView->setRange(w, 1032, getSelectDate(), getSelectDate()); //设置时间显示格式 m_scheduleView->setTimeFormat(m_calendarManager->getCalendarDateDataManage()->getTimeFormat()); //获取需要显示的时间 QVector _monthDate = m_calendarManager->getCalendarDateDataManage()->getMonthDate(getSelectDate().year(), getSelectDate().month()); m_daymonthView->setShowDate(_monthDate, getSelectDate(), getCurrendDateTime().date()); //如果为中文环境则显示农历信息 if (getShowLunar()) updateShowLunar(); updateShowSchedule(); } /** * @brief CDayWindow::updateShowSchedule 更新日程显示 */ void CDayWindow::updateShowSchedule() { //获取一天的日程信息 QMap > _weekScheduleInfo = m_calendarManager->getScheduleTask()->getScheduleInfo(getSelectDate(), getSelectDate()); //设置显示日程信息 m_scheduleView->setShowScheduleInfo(_weekScheduleInfo); //获取界面显示定位时间位置 setMakeTime(_weekScheduleInfo); QMap _fullInfo = m_calendarManager->getScheduleTask()->getDateHasSchedule(); //获取当前月是否包含日程情况 QVector _monthDate = m_calendarManager->getCalendarDateDataManage()->getMonthDate(getSelectDate().year(), getSelectDate().month()); QVector _monthFlag{}; for (int i = 0; i < _monthDate.size(); ++i) { if (_fullInfo.contains(_monthDate.at(i))) { _monthFlag.append(_fullInfo[_monthDate.at(i)]); } else { _monthFlag.append(false); } } //设置日视图右侧月显示日期是否有日程 m_daymonthView->setHasScheduleFlag(_monthFlag); } /** * @brief CDayWindow::updateShowLunar 更新显示农历信息 */ void CDayWindow::updateShowLunar() { CaHuangLiDayInfo _huangLiInfo = getLunarInfo(); m_LunarLabel->setText(_huangLiInfo.mLunarMonthName + _huangLiInfo.mLunarDayName); m_daymonthView->setHuangLiInfo(_huangLiInfo); } /** * @brief CDayWindow::setSelectSearchScheduleInfo 设置选中日程 * @param info */ void CDayWindow::setSelectSearchScheduleInfo(const ScheduleDataInfo &info) { if (info.getAllDay()) { setTime(); } else { m_scheduleView->setTime(info.getBeginDateTime().time()); } m_scheduleView->setSelectSchedule(info); } /** * @brief CDayWindow::deleteselectSchedule 快捷键删除日程 */ void CDayWindow::deleteselectSchedule() { m_scheduleView->slotDeleteitem(); } void CDayWindow::setSearchWFlag(bool flag) { m_searchFlag = flag; m_daymonthView->setSearchFlag(flag); } void CDayWindow::setLunarVisible(bool state) { m_LunarLabel->setVisible(state); m_SolarDay->setVisible(state); m_scheduleView->setLunarVisible(state); m_daymonthView->setLunarVisible(state); } void CDayWindow::initUI() { QHBoxLayout *titleLayout = new QHBoxLayout; titleLayout->setMargin(0); titleLayout->setSpacing(0); titleLayout->setContentsMargins(10, 9, 0, 3); m_YearLabel = new QLabel(); m_YearLabel->setMinimumHeight(DDEDayCalendar::D_YLabelHeight); QFont labelF; labelF.setWeight(QFont::Medium); labelF.setPixelSize(DDECalendar::FontSizeTwentyfour); m_YearLabel->setFont(labelF); DPalette ypa = m_YearLabel->palette(); ypa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(ypa); titleLayout->addWidget(m_YearLabel); m_LunarLabel = new QLabel(); titleLayout->addSpacing(15); m_LunarLabel->setFixedHeight(DDEDayCalendar::D_YLabelHeight); labelF.setPixelSize(DDECalendar::FontSizeFourteen); m_LunarLabel->setFont(labelF); m_LunarLabel->setAlignment(Qt::AlignCenter); DPalette lpa = m_LunarLabel->palette(); lpa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_LunarLabel->setPalette(lpa); titleLayout->addWidget(m_LunarLabel); m_SolarDay = new QLabel(); labelF.setPixelSize(DDECalendar::FontSizeTen); m_SolarDay->setFixedHeight(DDEDayCalendar::D_YLabelHeight); m_SolarDay->setFont(labelF); m_SolarDay->setAlignment(Qt::AlignCenter); DPalette spa = m_SolarDay->palette(); spa.setColor(DPalette::WindowText, Qt::red); m_SolarDay->setPalette(spa); titleLayout->addWidget(m_SolarDay); titleLayout->addStretch(); QVBoxLayout *leftLayout = new QVBoxLayout; leftLayout->setMargin(0); leftLayout->setSpacing(0); m_scheduleView = new CScheduleView(this, ScheduleViewPos::DayPos); m_scheduleView->setviewMargin(72, 109, 20, 0); m_scheduleView->setCurrentDate(getCurrendDateTime()); leftLayout->addLayout(titleLayout); leftLayout->addWidget(m_scheduleView); m_verline = new DVerticalLine; m_verline->setFixedWidth(2); m_daymonthView = new CDayMonthView(this); QHBoxLayout *leftMainLayout = new QHBoxLayout; leftMainLayout->setMargin(0); leftMainLayout->setSpacing(1); leftMainLayout->setContentsMargins(0, 0, 0, 0); leftMainLayout->addLayout(leftLayout); leftMainLayout->addWidget(m_verline); leftMainLayout->addWidget(m_daymonthView); m_leftground = new CustomFrame(); m_leftground->setRoundState(true, true, true, true); m_leftground->setLayout(leftMainLayout); m_leftground->setBColor("#FFFFFF"); m_mainLayout = new QHBoxLayout; m_mainLayout->setMargin(0); m_mainLayout->setSpacing(0); m_mainLayout->setContentsMargins(10, 10, 10, 10); m_mainLayout->addWidget(m_leftground); this->setLayout(m_mainLayout); } void CDayWindow::initConnection() { connect(m_daymonthView, &CDayMonthView::signalIsDragging, this, &CDayWindow::slotIsDragging); connect(m_daymonthView, &CDayMonthView::signalChangeSelectDate, this, &CDayWindow::slotChangeSelectDate); connect(m_scheduleView, &CScheduleView::signalSwitchPrePage, this, &CDayWindow::slotSwitchPrePage); connect(m_scheduleView, &CScheduleView::signalSwitchNextPage, this, &CDayWindow::slotSwitchNextPage); } /** * @brief CDayWindow::setMakeTime 界面显示定位时间位置 * @param info */ void CDayWindow::setMakeTime(QMap > &info) { if (info.contains(getSelectDate())) { QVector _scheduleVector = info[getSelectDate()]; //设置当前第一个非全天默认时间 QDateTime firstscheduleBeginTime(getSelectDate().addDays(1), QTime(0, 0, 0)); //获取非全天日程 for (int i = 0 ; i < _scheduleVector.size(); ++i) { if (!_scheduleVector.at(i).getAllDay()) { if (firstscheduleBeginTime > _scheduleVector.at(i).getBeginDateTime()) { firstscheduleBeginTime = _scheduleVector.at(i).getBeginDateTime(); } } } //如果为默认时间则表示当天没有非全天日程 if (firstscheduleBeginTime.date() > getSelectDate()) { m_makeTime.setHMS(12, 30, 0, 0); } else if (firstscheduleBeginTime.date() == getSelectDate()) { m_makeTime = firstscheduleBeginTime.time(); //设置定位的时间位置,原始时间太靠下,现向上偏移2小时 QTime onTime = m_makeTime; if (onTime.hour() + 4 >= 24) { onTime = QTime(20, 0); } else { onTime = onTime.addSecs(14400); } m_makeTime = onTime; } else { m_makeTime.setHMS(0, 0, 0, 0); } } else { //将定位的默认时间显示出8点 m_makeTime.setHMS(12, 30, 0, 0); } } void CDayWindow::slotScheduleHide() { m_scheduleView->slotScheduleShow(false); } /** * @brief CDayWindow::slotChangeSelectDate 更新选择时间 * @param date */ void CDayWindow::slotChangeSelectDate(const QDate &date) { if (setSelectDate(date, true)) { //隐藏日程悬浮框 slotScheduleHide(); updateShowDate(); setTime(); } } void CDayWindow::resizeEvent(QResizeEvent *event) { Q_UNUSED(event); qreal dw = 0.4 * width(); int dh = height() - 20; if (m_searchFlag) { m_mainLayout->setContentsMargins(10, 10, 0, 10); } else { m_mainLayout->setContentsMargins(10, 10, 10, 10); } m_daymonthView->setFixedSize(qRound(dw), dh); } void CDayWindow::slotIsDragging(bool &isDragging) { isDragging = m_scheduleView->IsDragging(); } /** * @brief CDayWindow::slotSwitchPrePage 切换选择时间 */ void CDayWindow::slotSwitchPrePage() { slotChangeSelectDate(getSelectDate().addDays(-1)); } /** * @brief CDayWindow::slotSwitchNextPage 切换选择时间 */ void CDayWindow::slotSwitchNextPage() { slotChangeSelectDate(getSelectDate().addDays(1)); } dde-calendar-5.9.1/calendar-client/src/widget/dayWidget/daywindow.h000066400000000000000000000057751423264401600252470ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 DAYWINDOW_H #define DAYWINDOW_H #include "src/scheduledatainfo.h" #include "src/dbusdatastruct.h" #include "cschedulebasewidget.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class CDayMonthView; class CScheduleView; class CScheduleSearchView; class QHBoxLayout; class CustomFrame; class CDayWindow: public CScheduleBaseWidget { Q_OBJECT public: explicit CDayWindow(QWidget *parent = nullptr); ~CDayWindow() override; void setSearchWFlag(bool flag); void setLunarVisible(bool state); void setTheMe(int type = 0); //设置显示的时间位置 void setTime(const QTime time = QTime()); //更新全天和非全天高度 void updateHeight(); //设置当前时间 void setCurrentDateTime(const QDateTime ¤tDate) override; //设置选择时间年信息显示 void setYearData() override; //更新显示时间 void updateShowDate(const bool isUpdateBar = true) override; //更新日程显示 void updateShowSchedule() override; //更新显示农历信息 void updateShowLunar() override; //设置选中搜索日程 void setSelectSearchScheduleInfo(const ScheduleDataInfo &info) override; //删除选中日程 void deleteselectSchedule() override; private: void initUI(); void initConnection(); //获取界面显示定位时间位置 void setMakeTime(QMap > &info); public slots: void slotScheduleHide(); //更新选择时间 void slotChangeSelectDate(const QDate &date); protected: void resizeEvent(QResizeEvent *event) override; private slots: void slotIsDragging(bool &isDragging); //切换选择时间 void slotSwitchPrePage(); //切换选择时间 void slotSwitchNextPage(); private: CDayMonthView *m_daymonthView = nullptr; CustomFrame *m_leftground = nullptr; DVerticalLine *m_verline = nullptr; QLabel *m_YearLabel = nullptr; QLabel *m_LunarLabel = nullptr; QLabel *m_SolarDay = nullptr; CScheduleView *m_scheduleView = nullptr; QString m_searchText; bool m_searchFlag = false; QHBoxLayout *m_mainLayout = nullptr; QTime m_makeTime{}; //界面显示定位时间位置 }; #endif // YEARWINDOW_H dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/000077500000000000000000000000001423264401600234235ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthdayview.cpp000066400000000000000000000321051423264401600266460ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "monthdayview.h" #include "scheduledatamanage.h" #include "constants.h" #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CMonthDayView::CMonthDayView(QWidget *parent) : DFrame(parent) , m_touchGesture(this) { QHBoxLayout *hBoxLayout = new QHBoxLayout; hBoxLayout->setMargin(0); hBoxLayout->setSpacing(0); hBoxLayout->setContentsMargins(10, 0, 10, 0); m_monthWidget = new CMonthWidget(this); hBoxLayout->addWidget(m_monthWidget); setLayout(hBoxLayout); setFrameRounded(true); setLineWidth(0); setWindowFlags(Qt::FramelessWindowHint); connect(m_monthWidget, &CMonthWidget::signalsSelectDate, this, &CMonthDayView::signalsSelectDate); } CMonthDayView::~CMonthDayView() { } /** * @brief CMonthDayView::setSelectDate 设置选择时间 * @param date */ void CMonthDayView::setSelectDate(const QDate &date) { m_selectDate = date; for (int i = 0; i < DDEMonthCalendar::MonthNumOfYear; ++i) { m_days[i] = m_selectDate.addMonths(i - 5); } m_monthWidget->setDate(m_days); update(); } /** * @brief CMonthDayView::setTheMe 设置主题颜色 * @param type */ void CMonthDayView::setTheMe(int type) { QColor frameColor; if (type == 0 || type == 1) { frameColor = "#FFFFFF"; } else if (type == 2) { frameColor = "#FFFFFF"; frameColor.setAlphaF(0.05); } DPalette aniPa = palette(); aniPa.setColor(DPalette::Background, frameColor); setPalette(aniPa); setBackgroundRole(DPalette::Background); CMonthRect::setTheMe(type); } void CMonthDayView::setSearchflag(bool flag) { m_searchFlag = flag; } void CMonthDayView::wheelEvent(QWheelEvent *e) { //如果滚动为左右则触发信号 if (e->orientation() == Qt::Orientation::Horizontal) { emit signalAngleDelta(e->angleDelta().x()); } else { emit signalAngleDelta(e->angleDelta().y()); } } bool CMonthDayView::event(QEvent *e) { if (m_touchGesture.event(e)) { //获取触摸状态 switch (m_touchGesture.getTouchState()) { case touchGestureOperation::T_SLIDE: { //在滑动状态如果可以更新数据则切换月份 if (m_touchGesture.isUpdate()) { m_touchGesture.setUpdate(false); switch (m_touchGesture.getMovingDir()) { case touchGestureOperation::T_LEFT: emit signalAngleDelta(-1); break; case touchGestureOperation::T_RIGHT: emit signalAngleDelta(1); break; default: break; } } break; } default: break; } return true; } else { return DFrame::event(e); } } /** * @brief CMonthWidget 构造函数 * @param parent 父类 */ CMonthWidget::CMonthWidget(QWidget *parent) : QWidget(parent) , m_isFocus(false) { for (int i = 0; i < DDEMonthCalendar::MonthNumOfYear; ++i) { CMonthRect *monthrect = new CMonthRect(this); m_MonthItem.append(monthrect); } //获取Tab焦点 setFocusPolicy(Qt::StrongFocus); } CMonthWidget::~CMonthWidget() { for (int i = 0; i < DDEMonthCalendar::MonthNumOfYear; ++i) { CMonthRect *monthrect = m_MonthItem.at(i); delete monthrect; } m_MonthItem.clear(); } void CMonthWidget::setDate(const QDate date[12]) { for (int i = 0; i < DDEMonthCalendar::MonthNumOfYear; ++i) { m_MonthItem.at(i)->setDate(date[i]); } CMonthRect::setSelectRect(m_MonthItem.at(5)); update(); } void CMonthWidget::resizeEvent(QResizeEvent *event) { Q_UNUSED(event); updateSize(); } void CMonthWidget::mousePressEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { //如果为触摸转换则设置触摸状态和触摸开始坐标 m_touchState = 1; m_touchBeginPoint = event->pos(); QWidget::mousePressEvent(event); return; } if (event->button() == Qt::RightButton) return; m_isFocus = false; mousePress(event->pos()); } void CMonthWidget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; for (int i = 0; i < m_MonthItem.size(); ++i) { m_MonthItem.at(i)->paintItem(&painter, m_MonthItem.at(i)->rect(), m_isFocus); } } void CMonthWidget::mouseReleaseEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { if (m_touchState == 1) { //如果为触摸且状态为点击则为触摸点击 mousePress(event->pos()); m_touchState = 0; } QWidget::mouseReleaseEvent(event); } } void CMonthWidget::mouseMoveEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { QPoint currentPoint = event->pos(); //如果移动距离大与5则为触摸移动状态 if (QLineF(m_touchBeginPoint, currentPoint).length() > 5) { m_touchState = 2; } QWidget::mouseMoveEvent(event); } } void CMonthWidget::keyPressEvent(QKeyEvent *event) { //获取当前选择时间 QDate selectDate = CMonthRect::getSelectRect()->getDate(); //初始化需要设置的时间 QDate setdate = selectDate; switch (event->key()) { case Qt::Key_Left: { setdate = selectDate.addMonths(-1); } break; case Qt::Key_Right: { setdate = selectDate.addMonths(1); } break; default: QWidget::keyPressEvent(event); } if (selectDate != setdate) { //更新时间 updateShowDate(setdate); //设置更新后的时间并更新界面 setDate(m_days); emit signalsSelectDate(setdate); } } void CMonthWidget::focusInEvent(QFocusEvent *event) { QWidget::focusInEvent(event); switch (event->reason()) { case Qt::TabFocusReason: case Qt::BacktabFocusReason: case Qt::ActiveWindowFocusReason: m_isFocus = true; break; default: m_isFocus = false; break; }; update(); } void CMonthWidget::focusOutEvent(QFocusEvent *event) { QWidget::focusOutEvent(event); m_isFocus = false; update(); } void CMonthWidget::mousePress(const QPoint &point) { int itemindex = getMousePosItem(point); if (!(itemindex < 0)) { if (m_MonthItem.at(itemindex)->getDate().year() < DDECalendar::QueryEarliestYear) { return; } CMonthRect::setSelectRect(m_MonthItem.at(itemindex)); emit signalsSelectDate(m_MonthItem.at(itemindex)->getDate()); } update(); } /** * @brief CMonthWidget::updateSize 更新item大小 */ void CMonthWidget::updateSize() { qreal w = this->width() / m_MonthItem.size(); for (int i = 0; i < m_MonthItem.size(); ++i) { m_MonthItem.at(i)->setRect(i * w, 0, w, this->height()); } update(); } /** * @brief CMonthWidget::getMousePosItem 获取鼠标点击的区域编号 * @param pos * @return */ int CMonthWidget::getMousePosItem(const QPointF &pos) { int res = -1; for (int i = 0 ; i < m_MonthItem.size(); ++i) { if (m_MonthItem.at(i)->rect().contains(pos)) { res = i; break; } } return res; } /** * @brief CMonthWidget::updateShowDate 根据选择时间更新显示的月份 * @param selectDate */ void CMonthWidget::updateShowDate(const QDate &selectDate) { for (int i = 0; i < DDEMonthCalendar::MonthNumOfYear; ++i) { m_days[i] = selectDate.addMonths(i - 5); } } int CMonthRect::m_themetype ; qreal CMonthRect::m_DevicePixelRatio; QColor CMonthRect::m_defaultTextColor; QColor CMonthRect::m_backgrounddefaultColor ; QColor CMonthRect::m_currentDayTextColor; QColor CMonthRect::m_backgroundcurrentDayColor; QColor CMonthRect::m_fillColor; QFont CMonthRect::m_dayNumFont; CMonthRect *CMonthRect::m_SelectRect = nullptr; CMonthRect::CMonthRect(QWidget *parent) : m_parentWidget(parent) { m_dayNumFont.setPixelSize(DDECalendar::FontSizeSixteen); m_dayNumFont.setWeight(QFont::Light); } /** * @brief CMonthRect::setDate 设置时间 * @param date */ void CMonthRect::setDate(const QDate &date) { m_Date = date; } /** * @brief CMonthRect::getDate 获取时间 * @return */ QDate CMonthRect::getDate() const { return m_Date; } /** * @brief CMonthRect::rect 获取矩阵大小 * @return */ QRectF CMonthRect::rect() const { return m_rect; } /** * @brief CMonthRect::setRect 设置矩阵大小 * @param rect */ void CMonthRect::setRect(const QRectF &rect) { m_rect = rect; } /** * @brief CMonthRect::setRect 设置矩阵大小 * @param x * @param y * @param w * @param h */ void CMonthRect::setRect(qreal x, qreal y, qreal w, qreal h) { m_rect.setRect(x, y, w, h); } /** * @brief CMonthRect::paintItem 绘制 * @param painter * @param rect */ void CMonthRect::paintItem(QPainter *painter, const QRectF &rect, bool drawFocus) { m_selectColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); if (m_Date.year() < DDECalendar::QueryEarliestYear) return; const bool isCurrentDay = (m_Date.month() == QDate::currentDate().month() && m_Date.year() == QDate::currentDate().year()); painter->setPen(Qt::SolidLine); const QString dayNum = QString::number(m_Date.month()); if (m_SelectRect == this) { QRectF fillRect((rect.width() - 36) / 2 + rect.x() + 6, (rect.height() - 36) / 2 + 7 + rect.y(), 24, 24); painter->setBrush(QBrush(m_selectColor)); painter->setPen(Qt::NoPen); painter->drawEllipse(fillRect); //如果有焦点,绘制tab选中效果 if (drawFocus) { QPen pen; pen.setWidth(2); pen.setColor(m_selectColor); painter->setPen(pen); //在原有的选中效果外面再绘制一圈 QRectF focusRect(fillRect.x() - 2, fillRect.y() - 2, fillRect.width() + 4, fillRect.height() + 4); painter->setBrush(Qt::NoBrush); painter->drawEllipse(focusRect); } painter->setRenderHint(QPainter::HighQualityAntialiasing); painter->setPen(m_currentDayTextColor); painter->setFont(m_dayNumFont); painter->drawText(rect, Qt::AlignCenter, dayNum); } else { if (isCurrentDay) { painter->setPen(m_backgroundcurrentDayColor); } else { painter->setPen(m_defaultTextColor); } painter->setFont(m_dayNumFont); painter->drawText(rect, Qt::AlignCenter, dayNum); } } /** * @brief CMonthRect::setDevicePixelRatio 设置设备缩放比例 * @param pixel */ void CMonthRect::setDevicePixelRatio(const qreal pixel) { m_DevicePixelRatio = pixel; } /** * @brief CMonthRect::setTheMe 设置主题 * @param type */ void CMonthRect::setTheMe(int type) { m_themetype = type; QColor frameColor; if (type == 0 || type == 1) { m_defaultTextColor = Qt::black; m_backgrounddefaultColor = Qt::white; m_currentDayTextColor = Qt::white; m_backgroundcurrentDayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); m_fillColor = "#FFFFFF"; frameColor = m_fillColor; m_fillColor.setAlphaF(0); } else if (type == 2) { m_defaultTextColor = "#C0C6D4"; QColor framecolor = Qt::black; framecolor.setAlphaF(0.5); m_backgrounddefaultColor = framecolor; m_currentDayTextColor = "#C0C6D4"; m_backgroundcurrentDayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); m_fillColor = "#FFFFFF"; m_fillColor.setAlphaF(0.05); frameColor = m_fillColor; m_fillColor.setAlphaF(0); } } /** * @brief CMonthRect::setSelectRect 设置选择的矩阵 * @param selectRect */ void CMonthRect::setSelectRect(CMonthRect *selectRect) { m_SelectRect = selectRect; } /** * @brief CMonthRect::getSelectRect 获取选择的矩阵 * @return */ CMonthRect *CMonthRect::getSelectRect() { return m_SelectRect; } dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthdayview.h000066400000000000000000000116371423264401600263220ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 MONTHDAYVIEW_H #define MONTHDAYVIEW_H #include "../touchgestureoperation.h" #include #include #include DWIDGET_USE_NAMESPACE class CMonthWidget; /** * @brief The CMonthDayView class 月视图月份自定义控件 */ class CMonthDayView : public DFrame { Q_OBJECT public: explicit CMonthDayView(QWidget *parent = nullptr); ~CMonthDayView() override; //设置选择时间 void setSelectDate(const QDate &date); //设置主题颜色 void setTheMe(int type = 0); void setSearchflag(bool flag); protected: void wheelEvent(QWheelEvent *e) override; bool event(QEvent *e) override; signals: //切换月份修改选择时间 void signalsSelectDate(QDate date); /** * @brief signalAngleDelta 发送滚动信号滚动相对量 * @param delta 滚动相对量 */ void signalAngleDelta(int delta); private: /** * @brief m_touchGesture 触摸手势处理 */ touchGestureOperation m_touchGesture; CMonthWidget *m_monthWidget = nullptr; QDate m_selectDate; QDate m_days[12]; int m_fixwidth = 200; int m_realwidth = 100; bool m_searchFlag = false; }; class CMonthRect; class CMonthWidget : public QWidget { Q_OBJECT public: explicit CMonthWidget(QWidget *parent = nullptr); ~CMonthWidget() override; void setDate(const QDate date[12]); protected: void resizeEvent(QResizeEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void paintEvent(QPaintEvent *event) override; /** * @brief mouseReleaseEvent 鼠标释放事件 * @param event 鼠标事件 */ void mouseReleaseEvent(QMouseEvent *event) override; /** * @brief mouseMoveEvent 鼠标移动事件,设置hover状态 * @param event 鼠标事件 */ void mouseMoveEvent(QMouseEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; private: void mousePress(const QPoint &point); //更新item大小 void updateSize(); //获取鼠标点击的区域编号 int getMousePosItem(const QPointF &pos); //根据选择时间更新显示的月份 void updateShowDate(const QDate &selectDate); signals: void signalsSelectDate(QDate date); private: QVector m_MonthItem; QDate m_days[12]; //触摸状态 0:原始 1:点击 2:移动 int m_touchState {0}; //触摸点击坐标 QPoint m_touchBeginPoint; bool m_isFocus; }; class CMonthRect { public: explicit CMonthRect(QWidget *parent = nullptr); //设置时间 void setDate(const QDate &date); //获取时间 QDate getDate()const; //获取矩阵大小 QRectF rect() const; //设置矩阵大小 void setRect(const QRectF &rect); //设置矩阵大小 inline void setRect(qreal x, qreal y, qreal w, qreal h); //绘制 void paintItem(QPainter *painter, const QRectF &rect, bool drawFocus = false); //设置设备缩放比例 static void setDevicePixelRatio(const qreal pixel); //设置主题 static void setTheMe(int type); //设置选择的矩阵 static void setSelectRect(CMonthRect *selectRect); //获取选择的矩阵 static CMonthRect *getSelectRect(); private: QRectF m_rect; QDate m_Date; static int m_themetype ; static qreal m_DevicePixelRatio; static QColor m_defaultTextColor; static QColor m_backgrounddefaultColor; static QColor m_currentDayTextColor; static QColor m_backgroundcurrentDayColor; static QColor m_fillColor; static QFont m_dayNumFont; static CMonthRect *m_SelectRect; QColor m_selectColor; QWidget *m_parentWidget; }; #endif // MONTDAYVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthscheduleview.cpp000066400000000000000000000375251423264401600277000ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "monthscheduleview.h" #include "monthview.h" #include "schedulectrldlg.h" #include "scheduledlg.h" #include "myscheduleview.h" #include "graphicsItem/cmonthschedulenumitem.h" #include #include #include #include #include #include #include DGUI_USE_NAMESPACE const int schedule_Item_Y = 31; //日程item的相对于该天的高度差 CMonthScheduleView::CMonthScheduleView(QWidget *parent, QGraphicsScene *scene) : QObject(parent) , m_Scene(scene) { for (int i = 0; i < 6; ++i) { CWeekScheduleView *weekSchedule = new CWeekScheduleView(this); m_weekSchedule.append(weekSchedule); } slotFontChange(); } CMonthScheduleView::~CMonthScheduleView() { } void CMonthScheduleView::setallsize(int w, int h, int left, int top, int buttom, int itemHeight) { m_width = w; m_height = h; m_bottomMargin = buttom; m_leftMargin = left; m_topMargin = top; m_cNum = static_cast(((m_height - m_topMargin - m_bottomMargin) / 6.0 + 0.5 - schedule_Item_Y) / (itemHeight + 1)); } void CMonthScheduleView::setData(QMap > &data, int currentMonth) { m_data = data; m_currentMonth = currentMonth; updateData(); } void CMonthScheduleView::slotFontChange() { QFont font; DFontSizeManager::instance()->setFontGenericPixelSize( static_cast(DFontSizeManager::instance()->fontPixelSize(qGuiApp->font()))); font = DFontSizeManager::instance()->t8(font); QFontMetrics fm(font); int h = fm.height(); if (m_ItemHeight != h) { m_ItemHeight = h; updateData(); } } /** * @brief CMonthScheduleView::updateData 更新日程数据 */ void CMonthScheduleView::updateData() { //清空日程显示 for (int i = 0; i < m_weekSchedule.size(); ++i) { m_weekSchedule[i]->clearItem(); } //保护数据防止越界 if (m_data.count() != DDEMonthCalendar::ItemSizeOfMonthDay || m_cNum < 1) return; //开始结束时间 QMap >::iterator _iter = m_data.begin(); QDate begindate = _iter.key(); _iter += (m_data.size() - 1); QDate enddate = _iter.key(); m_beginDate = begindate; m_endDate = enddate; for (int i = 0; i < m_weekSchedule.size(); ++i) { m_weekSchedule[i]->setHeight(m_ItemHeight, qRound((m_height - m_topMargin - m_bottomMargin) / 6.0 - schedule_Item_Y)); m_weekSchedule[i]->setData(m_data, begindate.addDays(i * 7), begindate.addDays(i * 7 + 6)); QVector> mSchedule = m_weekSchedule[i]->getMScheduleInfo(); updateDateShow(mSchedule, m_weekSchedule[i]->getScheduleShowItem()); } } void CMonthScheduleView::updateHeight() { for (int j = 0; j < m_weekSchedule.size(); ++j) { for (int i = 0; i < m_weekSchedule[j]->getScheduleShowItem().count(); i++) { m_weekSchedule[j]->getScheduleShowItem().at(i)->update(); } } } QVector CMonthScheduleView::getScheduleShowItem() const { QVector m_scheduleShowItem; for (int j = 0; j < m_weekSchedule.size(); ++j) { for (int i = 0; i < m_weekSchedule[j]->getScheduleShowItem().count(); i++) { m_scheduleShowItem.append(m_weekSchedule[j]->getScheduleShowItem().at(i)); } } return m_scheduleShowItem; } void CMonthScheduleView::updateDate(const ScheduleDataInfo &info) { for (int i = 0; i < m_weekSchedule.size(); ++i) { if (m_weekSchedule.at(i)->addData(info)) { } else { m_weekSchedule[i]->clearItem(); m_weekSchedule[i]->updateSchedule(true); }; QVector> mSchedule = m_weekSchedule[i]->getMScheduleInfo(); updateDateShow(mSchedule, m_weekSchedule[i]->getScheduleShowItem()); } } void CMonthScheduleView::changeDate(const ScheduleDataInfo &info) { for (int i = 0; i < m_weekSchedule.size(); ++i) { m_weekSchedule.at(i)->changeDate(info); QVector> mSchedule = m_weekSchedule[i]->getMScheduleInfo(); updateDateShow(mSchedule, m_weekSchedule[i]->getScheduleShowItem()); } } void CMonthScheduleView::updateDate(const int row, const ScheduleDataInfo &info) { for (int i = 0; i < m_weekSchedule.size(); ++i) { if (row == i) { m_weekSchedule.at(i)->addData(info); } else { m_weekSchedule[i]->clearItem(); m_weekSchedule[i]->updateSchedule(true); }; QVector> mSchedule = m_weekSchedule[i]->getMScheduleInfo(); updateDateShow(mSchedule, m_weekSchedule[i]->getScheduleShowItem()); } } void CMonthScheduleView::updateDateShow(QVector> &vCMDaySchedule, QVector &scheduleShowItem) { for (int i = 0; i < vCMDaySchedule.count(); i++) { for (int j = 0; j < vCMDaySchedule[i].count(); j++) { if (vCMDaySchedule[i].at(j).state) { createScheduleNumWidget(vCMDaySchedule[i].at(j), i + 1, scheduleShowItem); } else { createScheduleItemWidget(vCMDaySchedule[i].at(j), i + 1, scheduleShowItem); } } } } void CMonthScheduleView::createScheduleItemWidget(MScheduleDateRangeInfo info, int cNum, QVector &scheduleShowItem) { ScheduleDataInfo gd = info.tData; QPoint pos; int fw; int fh; computePos(cNum, info.bdate, info.edate, pos, fw, fh); CMonthScheduleItem *gwi = new CMonthScheduleItem(QRect(pos.x(), pos.y(), fw, fh), nullptr); m_Scene->addItem(gwi); gwi->setData(gd); QColor TransparentC = "#000000"; TransparentC.setAlphaF(0.05); scheduleShowItem.append(gwi); } void CMonthScheduleView::createScheduleNumWidget(MScheduleDateRangeInfo info, int cNum, QVector &scheduleShowItem) { int type = CScheduleDataManage::getScheduleDataManage()->getTheme(); CMonthScheduleNumItem *gwi = new CMonthScheduleNumItem(nullptr); QPoint pos; int fw; int fh; computePos(cNum, info.bdate, info.edate, pos, fw, fh); QColor gradientFromC = "#000000"; gradientFromC.setAlphaF(0.00); gwi->setColor(gradientFromC, gradientFromC); QFont font; gwi->setSizeType(DFontSizeManager::T8); if (type == 0 || type == 1) { QColor tc("#5E5E5E"); tc.setAlphaF(0.9); gwi->setText(tc, font); } else { QColor tc("#798190"); tc.setAlphaF(1); gwi->setText(tc, font); } m_Scene->addItem(gwi); gwi->setRect(pos.x(), pos.y(), fw, fh); gwi->setData(info.num); gwi->setDate(info.bdate); scheduleShowItem.append(gwi); } void CMonthScheduleView::computePos(int cNum, QDate bgeindate, QDate enddate, QPoint &pos, int &fw, int &fh) { int brow = static_cast((m_beginDate.daysTo(bgeindate)) / DDEMonthCalendar::AFewDaysOfWeek); int bcol = (m_beginDate.daysTo(bgeindate)) % DDEMonthCalendar::AFewDaysOfWeek; int ecol = (m_beginDate.daysTo(enddate)) % DDEMonthCalendar::AFewDaysOfWeek; fw = static_cast((ecol - bcol + 1) * ((m_width - m_leftMargin) / 7.0) - 11); fh = m_ItemHeight; int x = static_cast(m_leftMargin + bcol * ((m_width - m_leftMargin) / 7.0) + 5); //根据UI图调整item坐标 int y = static_cast(m_topMargin + ((m_height - m_topMargin - m_bottomMargin) / 6.0) * brow + schedule_Item_Y + (cNum - 1) * fh); pos = QPoint(x, y); } CWeekScheduleView::CWeekScheduleView(QObject *parent) : QObject(parent) , m_ScheduleHeight(22) , m_DayHeight(47) { setMaxNum(); } CWeekScheduleView::~CWeekScheduleView() { } void CWeekScheduleView::setData(QMap > &data, const QDate &startDate, const QDate &stopDate) { //显示一周的日程 Q_ASSERT(startDate.daysTo(stopDate) == 6); m_ScheduleInfo.clear(); beginDate = startDate; endDate = stopDate; for (int i = 0 ; i <= beginDate.daysTo(endDate); ++i) { for (int j = 0; j < data[beginDate.addDays(i)].size(); ++j) { if (!m_ScheduleInfo.contains(data[beginDate.addDays(i)].at(j))) { m_ScheduleInfo.append(data[beginDate.addDays(i)].at(j)); } } } //设置日程显示列数 m_colum = static_cast(startDate.daysTo(stopDate) + 1); updateSchedule(true); } bool CWeekScheduleView::addData(const ScheduleDataInfo &info) { if (info.getBeginDateTime().date().daysTo(endDate) >= 0 && beginDate.daysTo(info.getEndDateTime().date()) >= 0) { clearItem(); updateSchedule(false, info); return true; } return false; } void CWeekScheduleView::changeDate(const ScheduleDataInfo &info) { int index = m_ScheduleInfo.indexOf(info); if (index < 0) { m_ScheduleInfo.append(info); } else { m_ScheduleInfo[index] = info; } clearItem(); updateSchedule(true); } void CWeekScheduleView::setHeight(const int ScheduleHeight, const int dayHeight) { m_ScheduleHeight = ScheduleHeight; m_DayHeight = dayHeight; setMaxNum(); } void CWeekScheduleView::updateSchedule(const bool isNormalDisplay, const ScheduleDataInfo &info) { QVector schedulev; schedulev.clear(); schedulev = m_ScheduleInfo; if (isNormalDisplay) { Q_UNUSED(info); } else { schedulev.append(info); } QDate tbegindate, tenddate; QVector vMDaySchedule; m_ColumnScheduleCount.clear(); m_ColumnScheduleCount.fill(0, m_colum); for (int i = 0; i < schedulev.size(); ++i) { //日程时间重新标定 tbegindate = schedulev.at(i).getBeginDateTime().date(); tenddate = schedulev.at(i).getEndDateTime().date(); if (tenddate < beginDate || tbegindate > endDate) continue; if (tbegindate < beginDate) tbegindate = beginDate; if (tenddate > endDate) tenddate = endDate; //日程信息 MScheduleDateRangeInfo _rangeInfo; _rangeInfo.bdate = tbegindate; _rangeInfo.edate = tenddate; _rangeInfo.tData = schedulev.at(i); _rangeInfo.state = false; vMDaySchedule.append(_rangeInfo); qint64 pos = beginDate.daysTo(_rangeInfo.bdate); qint64 count = _rangeInfo.bdate.daysTo(_rangeInfo.edate); int j = static_cast(pos); for (; j < (pos + count + 1); ++j) { ++m_ColumnScheduleCount[j]; } } std::sort(vMDaySchedule.begin(), vMDaySchedule.end()); sortAndFilter(vMDaySchedule); } void CWeekScheduleView::clearItem() { for (int i = 0; i < m_scheduleShowItem.count(); i++) { delete m_scheduleShowItem[i]; } m_scheduleShowItem.clear(); } void CWeekScheduleView::setMaxNum() { m_MaxNum = m_DayHeight / (m_ScheduleHeight + 1); } void CWeekScheduleView::mScheduleClear() { for (int i = 0; i < m_MScheduleInfo.size(); ++i) { m_MScheduleInfo[i].clear(); } m_MScheduleInfo.clear(); } void CWeekScheduleView::sortAndFilter(QVector &vMDaySchedule) { QVector> scheduleFill; QVector scheduf; //初始化 //m_colum列 scheduf.fill(false, m_colum); //m_MaxNum 行 scheduleFill.fill(scheduf, m_MaxNum); //标签起始位置 int postion = 0; //标签结束位置 int end = 0; mScheduleClear(); for (int i = 0; i < vMDaySchedule.size(); ++i) { //获取起始位置 postion = static_cast(beginDate.daysTo(vMDaySchedule.at(i).bdate)); //获取结束位置 end = static_cast(beginDate.daysTo(vMDaySchedule.at(i).edate)); //初始化当前行 int row = 0; int pos = postion; //日程长度 int count = 0; int scheduleRow = row; for (; postion < end + 1; ++postion) { //如果当前行等于最大显示行 if (row == m_MaxNum) { //初始化当前行 row = 0; //初始化当前位置 pos = postion; } while (row < m_MaxNum) { if (m_MScheduleInfo.size() < (row + 1)) { RowScheduleInfo ms; m_MScheduleInfo.append(ms); } //如果该位置没有被占用 if (!scheduleFill[row][postion]) { //如果该列日程总数大于最大显m_MScheduleInfo示数且该显示行没有超过最大显示行 if ((m_ColumnScheduleCount[postion] > m_MaxNum) && (row >= m_MaxNum - 1)) { //占用该位置 scheduleFill[row][postion] = true; //如果该位置不为起始位置 if (pos != postion) { addShowSchedule(pos, postion - 1, row, vMDaySchedule.at(i).tData); } //设置还有xxx项 MScheduleDateRangeInfo info; info.bdate = beginDate.addDays(postion); info.edate = info.bdate; info.num = m_ColumnScheduleCount[postion] - m_MaxNum + 1; info.state = true; m_MScheduleInfo[row].append(info); //将该位置设为日程新的起始位置 pos = postion; //从该列0行开始继续,因为for循环最后会跳转到下一列,所以在这里--以保证下次循环还在该列 --postion; row = 0; count = 0; } else { scheduleFill[row][postion] = true; ++count; scheduleRow = row; } break; } else { //如果有显示的日程 if (count > 0) { //如果该位置不为起始位置 if (pos != postion) { addShowSchedule(pos, postion - 1, scheduleRow, vMDaySchedule.at(i).tData); } } ++row; } } } //如果开始位置小于7并且长度大于0,则添加显示日程 //开始位置0-6,显示长度1-7 if (pos < 7 && count > 0) { addShowSchedule(pos, postion - 1, scheduleRow, vMDaySchedule.at(i).tData); } } } void CWeekScheduleView::addShowSchedule(const int &startPos, const int &endPos, const int &addRow, const ScheduleDataInfo &addInfo) { MScheduleDateRangeInfo scheduleInfo; //设置显示的开始日期 scheduleInfo.bdate = beginDate.addDays(startPos); //设置显示的结束日期 scheduleInfo.edate = beginDate.addDays(endPos); //false表示该信息为正常日程信息 scheduleInfo.state = false; scheduleInfo.num = 0; //设置需要显示的日程 scheduleInfo.tData = addInfo; //添加需要显示的日程 m_MScheduleInfo[addRow].append(scheduleInfo); } dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthscheduleview.h000077500000000000000000000111021423264401600273270ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 MONTHSCHEDULEVIEW_H #define MONTHSCHEDULEVIEW_H #include "src/scheduledatainfo.h" #include "scheduledaterangeinfo.h" #include "graphicsItem/draginfoitem.h" #include "graphicsItem/cmonthscheduleitem.h" #include #include #include DWIDGET_USE_NAMESPACE class CWeekScheduleView; class CMonthScheduleView : public QObject { Q_OBJECT public: explicit CMonthScheduleView(QWidget *parent, QGraphicsScene *scene); ~CMonthScheduleView() override; void setallsize(int w, int h, int left, int top, int buttom, int itemHeight = 22); void setData(QMap > &data, int currentMonth); void updateData(); void updateHeight(); QVector getScheduleShowItem() const; int getScheduleHeight() const { return m_ItemHeight; } void updateDate(const ScheduleDataInfo &info); void changeDate(const ScheduleDataInfo &info); void updateDate(const int row, const ScheduleDataInfo &info); signals: void signalsUpdateSchedule(int id = 0); void signalsCurrentScheduleDate(QDate date); void signalUpdateUI(int type); void signalPressScheduleShow(const bool isShow, const ScheduleDataInfo &out = ScheduleDataInfo()); public slots: void slotFontChange(); private: void updateDateShow(QVector> &vCMDaySchedule, QVector &scheduleShowItem); void createScheduleItemWidget(MScheduleDateRangeInfo info, int cNum, QVector &scheduleShowItem); void createScheduleNumWidget(MScheduleDateRangeInfo info, int cNum, QVector &scheduleShowItem); void computePos(int cNum, QDate bgeindate, QDate enddate, QPoint &pos, int &fw, int &fh); private: QMap > m_data; int m_cNum = 2; //日程层数 int m_currentMonth = 0; QDate m_beginDate; QDate m_endDate; int m_width = 0; int m_height = 0; int m_leftMargin = 0; int m_topMargin = 0; int m_bottomMargin = 0; QVector m_weekSchedule; int m_ItemHeight = 22; QGraphicsScene *m_Scene = nullptr; }; class CWeekScheduleView : public QObject { Q_OBJECT typedef QVector RowScheduleInfo; public: explicit CWeekScheduleView(QObject *parent = nullptr); ~CWeekScheduleView() override; public: void setData(QMap > &data, const QDate &startDate, const QDate &stopDate); bool addData(const ScheduleDataInfo &info); void changeDate(const ScheduleDataInfo &info); void setHeight(const int ScheduleHeight, const int dayHeight); QVector getMScheduleInfo() const { return m_MScheduleInfo; } QVector &getScheduleShowItem() { return m_scheduleShowItem; } void updateSchedule(const bool isNormalDisplay, const ScheduleDataInfo &info = ScheduleDataInfo()); void clearItem(); private: void setMaxNum(); void mScheduleClear(); void sortAndFilter(QVector &vMDaySchedule); /** * @brief addShowSchedule 添加显示的日程 * @param startPos 其实位置 * @param endPos 结束位置 * @param addRow 需要添加的行 * @param addInfo 添加的日程 */ void addShowSchedule(const int &startPos, const int &endPos, const int &addRow, const ScheduleDataInfo &addInfo); private: QVector m_scheduleShowItem; QVector m_MScheduleInfo; QVector m_ScheduleInfo; QVector m_ColumnScheduleCount; int m_ScheduleHeight = 0; int m_DayHeight = 0; int m_MaxNum = 0; QDate beginDate; QDate endDate; int m_colum = 0; }; #endif // MONTHSCHEDULEVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthview.cpp000066400000000000000000000160501423264401600261510ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "monthview.h" #include "scheduledlg.h" #include "scheduledatamanage.h" #include "calendarglobalenv.h" #include #include #include #include #include #include #include DGUI_USE_NAMESPACE /** * @brief setTheMe 根据系统主题类型设置颜色 * @param type 系统主题类型 */ void CMonthView::setTheMe(int type) { m_weekIndicator->setTheMe(type); m_monthGraphicsView->setTheMe(type); } CMonthView::CMonthView(QWidget *parent) : DWidget(parent) { m_weekIndicator = new CMonthWeekView; m_monthGraphicsView = new CMonthGraphicsview(this); connect(m_monthGraphicsView, &CMonthGraphicsview::signalsViewSelectDate, this, &CMonthView::signalsViewSelectDate); connect(m_monthGraphicsView, &CMonthGraphicsview::signalScheduleShow, this, &CMonthView::slotScheduleRemindWidget); connect(m_monthGraphicsView, &CMonthGraphicsview::signalAngleDelta, this, &CMonthView::signalAngleDelta); connect(m_monthGraphicsView, &CMonthGraphicsview::signalSwitchPrePage, this, &CMonthView::signalSwitchPrePage); connect(m_monthGraphicsView, &CMonthGraphicsview::signalSwitchNextPage, this, &CMonthView::signalSwitchNextPage); connect(m_monthGraphicsView, &CMonthGraphicsview::signalGotoDayView, this, &CMonthView::signalsViewSelectDate); //新建最终布局 m_mainLayout = new QVBoxLayout; m_mainLayout->setMargin(0); m_mainLayout->setSpacing(0); m_mainLayout->setContentsMargins(10, 0, 0, 10); m_mainLayout->addWidget(m_weekIndicator); m_mainLayout->addWidget(m_monthGraphicsView); setLayout(m_mainLayout); m_createAction = new QAction(tr("New event"), this); m_remindWidget = new ScheduleRemindWidget(this); setMouseTracking(true); } CMonthView::~CMonthView() { } void CMonthView::setSelectSchedule(const ScheduleDataInfo &scheduleInfo) { m_monthGraphicsView->setSelectSearchSchedule(scheduleInfo); } void CMonthView::slotScheduleRemindWidget(const bool isShow, const ScheduleDataInfo &out) { if (isShow) { //获取当前鼠标位置 QVariant variant; CalendarGlobalEnv::getGlobalEnv()->getValueByKey(DDECalendar::CursorPointKey, variant); QPoint remindPos = variant.value(); CSchedulesColor gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType( out.getType()); m_remindWidget->setData(out, gdColor); //获取屏幕大小 QRect desktopRect = QApplication::desktop()->rect(); //根据提示框在屏幕的位置设置箭头方向 if ((remindPos.x() + m_remindWidget->width() + 10) > desktopRect.width()) { m_remindWidget->setDirection(DArrowRectangle::ArrowRight); remindPos.setX(remindPos.x() - 5); } else { m_remindWidget->setDirection(DArrowRectangle::ArrowLeft); remindPos.setX(remindPos.x() + 5); } m_remindWidget->show(remindPos.x(), remindPos.y()); } else { m_remindWidget->hide(); } } void CMonthView::resizeEvent(QResizeEvent *event) { DWidget::resizeEvent(event); int leftMargin = 10; int topMargin = 10; m_leftMargin = leftMargin; m_topMargin = topMargin; m_mainLayout->setContentsMargins(leftMargin, topMargin, 0, 10); m_weekIndicator->setFixedSize(width() - leftMargin, static_cast(height() * 0.1042 + 0.5)); } void CMonthView::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event); slotScheduleRemindWidget(false); } bool CMonthView::event(QEvent *event) { if (event->type() == QEvent::FocusIn) { m_monthGraphicsView->setFocus(Qt::TabFocusReason); return true; } return DWidget::event(event); } /** * @brief setFirstWeekday 设置每周的第一天是周几 * @param weekday 周几 */ void CMonthView::setFirstWeekday(Qt::DayOfWeek weekday) { m_firstWeekDay = weekday; m_weekIndicator->setFirstDay(weekday); } /** * @brief CMonthView::setShowDate 设置显示日期 * @param showDate */ void CMonthView::setShowDate(const QVector &showDate) { m_showDate = showDate; m_monthGraphicsView->setDate(m_showDate); } /** * @brief CMonthView::setHuangLiInfo 设置黄历信息 * @param huangLiInfo */ void CMonthView::setHuangLiInfo(const QMap &huangLiInfo) { m_monthGraphicsView->setLunarInfo(huangLiInfo); } /** * @brief CMonthView::setFestival 设置班休信息 * @param festivalInfo */ void CMonthView::setFestival(const QMap &festivalInfo) { m_monthGraphicsView->setFestival(festivalInfo); } /** * @brief CMonthView::setScheduleInfo 设置显示日程 * @param scheduleInfo */ void CMonthView::setScheduleInfo(const QMap > &scheduleInfo) { m_monthGraphicsView->setScheduleInfo(scheduleInfo); } /** * @brief CMonthView::setSearchScheduleInfo 设置搜索日程 * @param searchScheduleInfo */ void CMonthView::setSearchScheduleInfo(const QVector &searchScheduleInfo) { m_monthGraphicsView->setSearchScheduleInfo(searchScheduleInfo); } /** * @brief CMonthView::setCurrentDate 设置当前时间 * @param currentDate */ void CMonthView::setCurrentDate(const QDate ¤tDate) { m_weekIndicator->setCurrentDate(currentDate); m_monthGraphicsView->setCurrentDate(currentDate); } void CMonthView::setRemindWidgetTimeFormat(QString timeformat) { m_remindWidget->setTimeFormat(timeformat); } /** * @brief CMonthView::deleteSelectSchedule 快捷键删除日程 */ void CMonthView::deleteSelectSchedule() { m_monthGraphicsView->slotDeleteItem(); } void CMonthView::setLunarVisible(bool visible) { m_monthGraphicsView->setLunarVisible(visible); } ScheduleDataInfo CMonthView::getScheduleInfo(const QDate &beginDate, const QDate &endDate) { ScheduleDataInfo info; if (beginDate.daysTo(endDate) > 0) { info.setBeginDateTime(QDateTime(beginDate, QTime(0, 0, 0))); info.setEndDateTime(QDateTime(endDate, QTime(23, 59, 59))); } else { info.setBeginDateTime(QDateTime(endDate, QTime(0, 0, 0))); info.setEndDateTime(QDateTime(beginDate, QTime(23, 59, 00))); } info.setTitleName(tr("New Event")); info.setAllDay(true); info.setRemindData(RemindData(1, QTime(9, 0))); return info; } dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthview.h000066400000000000000000000104611423264401600256160ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 MONTHVIEW_H #define MONTHVIEW_H #include "monthweekview.h" #include "scheduleRemindWidget.h" #include "monthgraphiview.h" #include "src/scheduledatainfo.h" #include #include #include DWIDGET_USE_NAMESPACE class CMonthView: public DWidget { Q_OBJECT public: //根据系统主题类型设置颜色 void setTheMe(int type = 0); /** * @brief isDragging 是否可以拖拽 * @return 是否可以拖拽 */ bool isDragging()const { return m_monthGraphicsView->getDragStatus() != 4; } public: explicit CMonthView(QWidget *parent = nullptr); ~CMonthView() override; //设置每周首日 void setFirstWeekday(Qt::DayOfWeek weekday); //设置显示日期 void setShowDate(const QVector &showDate); //设置黄历信息 void setHuangLiInfo(const QMap &huangLiInfo); //设置班休信息 void setFestival(const QMap &festivalInfo); //设置显示日程 void setScheduleInfo(const QMap > &scheduleInfo); //设置搜索日程 void setSearchScheduleInfo(const QVector &searchScheduleInfo); //设置当前时间 void setCurrentDate(const QDate ¤tDate); void setRemindWidgetTimeFormat(QString timeformat); void deleteSelectSchedule(); signals: /** * @brief signalsViewSelectDate 切换视图 * @param date 日期 */ void signalsViewSelectDate(QDate date); public slots: /** * @brief setLunarVisible 设置是否显示阴历信息 * @param visible 是否显示阴历信息 */ void setLunarVisible(bool visible); /** * @brief setSelectSchedule 设置选择的日程 * @param scheduleInfo 日程信息 */ void setSelectSchedule(const ScheduleDataInfo &scheduleInfo); public slots: /** * @brief slotScheduleRemindWidget 日程浮框 * @param isShow 是否显示日程浮框 * @param out 日程信息 */ void slotScheduleRemindWidget(const bool isShow, const ScheduleDataInfo &out = ScheduleDataInfo()); signals: /** * @brief signalAngleDelta 发送滚动信号滚动相对量 * @param delta 滚动相对量 */ void signalAngleDelta(int delta); void signalSwitchPrePage(); void signalSwitchNextPage(); protected: /** * @brief resizeEvent 窗口大小调整 * @param event 窗口大小调整事件 */ void resizeEvent(QResizeEvent *event) override; /** * @brief mousePressEvent 鼠标单击 * @param event 鼠标事件 */ void mousePressEvent(QMouseEvent *event) override; bool event(QEvent *event) override; private: ScheduleDataInfo getScheduleInfo(const QDate &beginDate, const QDate &endDate); private: CMonthGraphicsview *m_monthGraphicsView = nullptr; QVector m_showDate; QDate m_currentDate; QDate m_createDate; CMonthWeekView *m_weekIndicator = nullptr; int m_firstWeekDay = 0; QAction *m_createAction = nullptr; // 创建日程 QVBoxLayout *m_mainLayout = nullptr; int m_leftMargin = 0; int m_topMargin = 0; bool m_sflag = true; ScheduleRemindWidget *m_remindWidget = nullptr; QPoint m_PressPoint; bool isCreate; QDate m_PressDate; QDate m_MoveDate; }; #endif // MYCALENDARWIDGET_H dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthweekview.cpp000066400000000000000000000114761423264401600270340ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "monthweekview.h" #include "scheduledatamanage.h" #include #include #include #include #include DGUI_USE_NAMESPACE CMonthWeekView::CMonthWeekView(QWidget *parent) : DWidget(parent) { for (int i = 0 ; i < 7 ; ++i) { m_weekRect.append(new WeekRect()); } } CMonthWeekView::~CMonthWeekView() { for (int i = 0 ; i < 7 ; ++i) { WeekRect *weekRect = m_weekRect.at(i); delete weekRect; } m_weekRect.clear(); } void CMonthWeekView::setFirstDay(const Qt::DayOfWeek weekday) { m_firstWeek = weekday; updateWeek(); } void CMonthWeekView::setTheMe(int type) { if (type == 0 || type == 1) { m_backgroundColor = "#E6EEF2"; } else if (type == 2) { m_backgroundColor = "#82AEC1"; m_backgroundColor.setAlphaF(0.10); } for (int i = 0 ; i < m_weekRect.size(); ++i) { m_weekRect.at(i)->setTheMe(type); } } void CMonthWeekView::updateWeek() { Qt::DayOfWeek _setWeek; bool _showLine{false}; for (int i = 0; i < m_weekRect.size(); ++i) { int weekNum = (m_firstWeek + i) % 7; _setWeek = static_cast(weekNum == 0 ? 7 : weekNum); //如果为当前时间所在周则绘制横线 if (_setWeek == m_currentWeek) { _showLine = true; } else { _showLine = false; } m_weekRect.at(i)->setWeek(_setWeek, _showLine); } update(); } /** * @brief CMonthWeekView::setCurrentDate 设置当前时间,获取当前时间所在周 * @param currentDate */ void CMonthWeekView::setCurrentDate(const QDate ¤tDate) { m_currentWeek = static_cast(currentDate.dayOfWeek()); updateWeek(); } void CMonthWeekView::resizeEvent(QResizeEvent *event) { qreal weekRectWith = width() / 7; QRectF _rectF; for (int i = 0 ; i < m_weekRect.size(); ++i) { _rectF.setRect(i * weekRectWith, 0, weekRectWith, this->height()); m_weekRect.at(i)->setRect(_rectF); } DWidget::resizeEvent(event); } void CMonthWeekView::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QPainterPath painterPath; //从左下角开始 painterPath.moveTo(0, this->height()); painterPath.lineTo(this->width(), this->height()); painterPath.lineTo(this->width(), m_radius); painterPath.arcTo(QRect(this->width() - m_radius * 2, 0, m_radius * 2, m_radius * 2), 0, 90); painterPath.lineTo(m_radius, 0); painterPath.arcTo(QRect(0, 0, m_radius * 2, m_radius * 2), 90, 90); painter.setBrush(m_backgroundColor); painter.setPen(Qt::NoPen); painter.drawPath(painterPath); for (int i = 0 ; i < m_weekRect.size(); ++i) { m_weekRect.at(i)->paintRect(painter); } painter.end(); } WeekRect::WeekRect() : m_showLine(false) { m_font.setWeight(QFont::Medium); m_font.setPixelSize(DDECalendar::FontSizeSixteen); } void WeekRect::setWeek(const Qt::DayOfWeek &showWeek, const bool &showLine) { m_showWeek = showWeek; m_showLine = showLine; QLocale locale; m_weekStr = locale.dayName(m_showWeek, QLocale::ShortFormat); } void WeekRect::setRect(const QRectF &rectF) { m_rectF = rectF; } void WeekRect::paintRect(QPainter &painter) { //绘制文字 painter.save(); painter.setFont(m_font); if (m_showWeek > 5) { painter.setPen(m_activeColor); } else { painter.setPen(m_testColor); } painter.drawText(m_rectF, Qt::AlignCenter, m_weekStr); painter.restore(); if (m_showLine) { //绘制横线 painter.save(); painter.setPen(Qt::NoPen); painter.setBrush(m_activeColor); painter.drawRect(QRectF(m_rectF.x(), m_rectF.height() - m_lineHeight, m_rectF.width(), m_lineHeight)); painter.restore(); } } void WeekRect::setTheMe(int type) { m_activeColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); if (type == 0 || type == 1) { m_testColor = "#6F6F6F"; } else { m_testColor = "#C0C6D4"; } } dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthweekview.h000066400000000000000000000041701423264401600264720ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 MONTHWEEKVIEW_H #define MONTHWEEKVIEW_H #include "constants.h" #include DWIDGET_USE_NAMESPACE class WeekRect; /** * @brief The CMonthWeekView class * 月视图周显示 */ class CMonthWeekView : public DWidget { Q_OBJECT public: explicit CMonthWeekView(QWidget *parent = nullptr); ~CMonthWeekView() override; void setFirstDay(const Qt::DayOfWeek weekday); void setTheMe(int type = 0); void updateWeek(); //设置当前时间 void setCurrentDate(const QDate ¤tDate); protected: void resizeEvent(QResizeEvent *event) override; void paintEvent(QPaintEvent *event) override; private: QColor m_backgroundColor; QVector m_weekRect; int m_radius = 8; Qt::DayOfWeek m_firstWeek{Qt::Sunday}; Qt::DayOfWeek m_currentWeek{Qt::Monday}; }; class WeekRect { public: WeekRect(); void setWeek(const Qt::DayOfWeek &showWeek, const bool &showLine = false); void setRect(const QRectF &rectF); void paintRect(QPainter &painter); void setTheMe(int type = 0); private: QColor m_activeColor; QColor m_testColor; Qt::DayOfWeek m_showWeek; QString m_weekStr; QFont m_font; QRectF m_rectF; bool m_showLine; qreal m_lineHeight{2}; }; #endif // WEEKINDICATOR_H dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthwindow.cpp000066400000000000000000000360271423264401600265140ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "monthwindow.h" #include "monthview.h" #include "monthdayview.h" #include "constants.h" #include "schedulesearchview.h" #include "todaybutton.h" #include "scheduledatamanage.h" #include #include #include DGUI_USE_NAMESPACE CMonthWindow::CMonthWindow(QWidget *parent) : CScheduleBaseWidget(parent) { initUI(); initConnection(); setLunarVisible(m_calendarManager->getShowLunar()); } CMonthWindow::~CMonthWindow() { disconnect(m_today, &CTodayButton::clicked, this, &CMonthWindow::slottoday); delete m_monthDayView; m_monthDayView = nullptr; delete m_monthView; m_monthView = nullptr; } /** * @brief setLunarVisible 设置是否显示阴历信息 * @param state 是否显示阴历信息 */ void CMonthWindow::setLunarVisible(bool state) { m_monthView->setLunarVisible(state); m_YearLunarLabel->setVisible(state); } /** * @brief setTheMe 根据系统主题类型设置颜色 * @param type 系统主题类型 */ void CMonthWindow::setTheMe(int type) { if (type == 0 || type == 1) { QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); DPalette todayPa = m_today->palette(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, Qt::white); todayPa.setColor(DPalette::Light, Qt::white); QColor sbColor("#002A57"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); m_today->setPalette(todayPa); QColor todayhover = "#000000"; todayhover.setAlphaF(0.1); QColor todaypress = "#000000"; todaypress.setAlphaF(0.2); m_today->setBColor("#FFFFFF", todayhover, todaypress, "#FFFFFF", todayhover, todaypress); m_today->setTColor(todayColor, "#001A2E", "#0081FF"); m_today->setshadowColor(sbColor); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(pa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_YearLunarLabel->setPalette(LunaPa); m_YearLunarLabel->setForegroundRole(DPalette::WindowText); DPalette gpa = m_gridWidget->palette(); gpa.setColor(DPalette::Background, "#F8F8F8"); m_gridWidget->setPalette(gpa); m_gridWidget->setBackgroundRole(DPalette::Background); } else if (type == 2) { QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); DPalette todayPa = m_today->palette(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Light, "#484848"); todayPa.setColor(DPalette::Dark, "#414141"); QColor sbColor("#000000"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); m_today->setPalette(todayPa); m_today->setBColor("#484848", "#727272", "#242424", "#414141", "#535353", "#282828"); m_today->setTColor(todayColor, "#FFFFFF", "#0081FF"); m_today->setshadowColor(sbColor); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_YearLabel->setPalette(pa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#798BA8")); m_YearLunarLabel->setPalette(LunaPa); m_YearLunarLabel->setForegroundRole(DPalette::WindowText); DPalette gpa = m_gridWidget->palette(); gpa.setColor(DPalette::Background, "#252525"); m_gridWidget->setPalette(gpa); m_gridWidget->setBackgroundRole(DPalette::Background); } m_monthDayView->setTheMe(type); m_monthView->setTheMe(type); } void CMonthWindow::setYearData() { if (getSelectDate() == getCurrendDateTime().date()) { m_today->setText(QCoreApplication::translate("today", "Today", "Today")); } else { m_today->setText(QCoreApplication::translate("Return Today", "Today", "Return Today")); } if (getShowLunar()) { m_YearLabel->setText(QString::number(getSelectDate().year()) + tr("Y")); } else { m_YearLabel->setText(QString::number(getSelectDate().year())); } } /** * @brief CMonthWindow::updateShowDate 更新显示时间 * @param isUpdateBar */ void CMonthWindow::updateShowDate(const bool isUpdateBar) { setYearData(); const QDate _selectDate = m_calendarManager->getCalendarDateDataManage()->getSelectDate(); Qt::DayOfWeek _firstWeek = m_calendarManager->getCalendarDateDataManage()->getWeekFirstDay(); m_monthView->setFirstWeekday(_firstWeek); QVector _monthShowData = m_calendarManager->getCalendarDateDataManage()->getMonthDate(_selectDate.year(), _selectDate.month()); m_startDate = _monthShowData.first(); m_stopDate = _monthShowData.last(); m_monthView->setShowDate(_monthShowData); m_monthView->setRemindWidgetTimeFormat(m_calendarManager->getCalendarDateDataManage()->getTimeFormat()); if (isUpdateBar) m_monthDayView->setSelectDate(_selectDate); //设置12个月份显示 //如果为中文环境则显示班休和农历信息 if (getShowLunar()) { updateShowLunar(); } //切换月份须更新显示日程 updateShowSchedule(); } /** * @brief CMonthWindow::setCurrentDateTime 设置当前时间 * @param currentDate */ void CMonthWindow::setCurrentDateTime(const QDateTime ¤tDate) { CScheduleBaseWidget::setCurrentDateTime(currentDate); //更新当前时间 m_monthView->setCurrentDate(currentDate.date()); } /** * @brief CMonthWindow::updateShowSchedule 更新日程显示 */ void CMonthWindow::updateShowSchedule() { QMap > _monthScheduleInfo = m_calendarManager->getScheduleTask()->getScheduleInfo(m_startDate, m_stopDate); m_monthView->setScheduleInfo(_monthScheduleInfo); } /** * @brief CMonthWindow::updateShowLunar 更新显示农历信息 */ void CMonthWindow::updateShowLunar() { getLunarInfo(); m_YearLunarLabel->setText(m_lunarYear); QMap _monthFestivalInfo = m_calendarManager->getScheduleTask()->getFestivalInfo(m_startDate, m_stopDate); m_monthView->setFestival(_monthFestivalInfo); QMap _monthHuangLiInfo = m_calendarManager->getScheduleTask()->getHuangLiInfo(m_startDate, m_stopDate); m_monthView->setHuangLiInfo(_monthHuangLiInfo); } /** * @brief CMonthWindow::updateSearchScheduleInfo 更新搜索日程信息 */ void CMonthWindow::updateSearchScheduleInfo() { //获取搜索日程信息 QVector _searchSchedule = m_calendarManager->getScheduleTask()->getSearchScheduleInfoVector(); m_monthView->setSearchScheduleInfo(_searchSchedule); } /** * @brief CMonthWindow::setSelectSearchScheduleInfo 设置选中日程 * @param info */ void CMonthWindow::setSelectSearchScheduleInfo(const ScheduleDataInfo &info) { m_monthView->setSelectSchedule(info); } /** * @brief CMonthWindow::setSearchWFlag 设置是否显示搜索界面 * @param flag */ void CMonthWindow::setSearchWFlag(bool flag) { m_searchFlag = flag; m_monthDayView->setSearchflag(flag); } /** * @brief CMonthWindow::deleteselectSchedule 快捷键删除日程 */ void CMonthWindow::deleteselectSchedule() { m_monthView->deleteSelectSchedule(); } /** * @brief previousMonth 选择上一个月份 */ void CMonthWindow::previousMonth() { slideMonth(false); } /** * @brief nextMonth 选择下一个月份 */ void CMonthWindow::nextMonth() { slideMonth(true); } /** * @brief initUI 初始化界面 */ void CMonthWindow::initUI() { m_today = new CTodayButton; m_today->setText(QCoreApplication::translate("today", "Today", "Today")); m_today->setFixedSize(DDEMonthCalendar::MTodayWindth, DDEMonthCalendar::MTodayHeight); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); DPalette todayPa = m_today->palette(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, Qt::white); todayPa.setColor(DPalette::Light, Qt::white); QColor sbColor("#002A57"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); QFont todayfont; todayfont.setWeight(QFont::Medium); todayfont.setPixelSize(DDECalendar::FontSizeFourteen); m_today->setFont(todayfont); m_today->setPalette(todayPa); m_YearLabel = new QLabel(); m_YearLabel->setFixedHeight(DDEMonthCalendar::M_YLabelHeight); m_YearLunarLabel = new QLabel(); m_YearLunarLabel->setFixedSize(DDEMonthCalendar::M_YLunaLabelWindth, DDEMonthCalendar::M_YLunaLabelHeight); QFont yLabelF; yLabelF.setWeight(QFont::Medium); yLabelF.setPixelSize(DDECalendar::FontSizeTwentyfour); m_YearLabel->setFont(yLabelF); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(pa); yLabelF.setPixelSize(DDECalendar::FontSizeFourteen); m_YearLunarLabel->setFont(yLabelF); DPalette Lunarpa = m_YearLunarLabel->palette(); Lunarpa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_YearLunarLabel->setPalette(Lunarpa); m_monthDayView = new CMonthDayView(this); QHBoxLayout *yeartitleLayout = new QHBoxLayout; yeartitleLayout->setMargin(0); yeartitleLayout->setSpacing(0); yeartitleLayout->setContentsMargins(21, 20, 8, 10); yeartitleLayout->addWidget(m_YearLabel); QHBoxLayout *yeartitleLayout1 = new QHBoxLayout; yeartitleLayout1->setMargin(0); yeartitleLayout1->setSpacing(0); yeartitleLayout1->setContentsMargins(14, 9, 0, 7); yeartitleLayout1->addWidget(m_YearLunarLabel); yeartitleLayout->addLayout(yeartitleLayout1); yeartitleLayout->addStretch(); yeartitleLayout->addWidget(m_monthDayView, 0, Qt::AlignCenter); yeartitleLayout->addStretch(); yeartitleLayout->addWidget(m_today, 0, Qt::AlignRight); m_monthView = new CMonthView(this); m_monthView->setObjectName("monthViewWidget"); m_monthView->setAccessibleName("monthViewWidget"); m_monthView->setCurrentDate(getCurrendDateTime().date()); QVBoxLayout *mhLayout = new QVBoxLayout; mhLayout->setMargin(0); mhLayout->setSpacing(0); mhLayout->addWidget(m_monthView); QVBoxLayout *hhLayout = new QVBoxLayout; hhLayout->setSpacing(0); hhLayout->setMargin(0); hhLayout->addLayout(yeartitleLayout); m_gridWidget = new DWidget(); m_gridWidget->setContentsMargins(0, 0, 0, 0); m_gridWidget->setAutoFillBackground(true); m_gridWidget->setLayout(mhLayout); hhLayout->addWidget(m_gridWidget); m_tMainLayout = new QHBoxLayout; m_tMainLayout->setMargin(0); m_tMainLayout->setSpacing(0); m_tMainLayout->setContentsMargins(0, 0, 10, 0); m_tMainLayout->addLayout(hhLayout); QVBoxLayout *ssLayout = new QVBoxLayout; ssLayout->setMargin(0); ssLayout->setSpacing(0); ssLayout->setContentsMargins(0, 10, 0, 10); m_tMainLayout->addLayout(ssLayout); this->setLayout(m_tMainLayout); } /** * @brief initConnection 初始化信号和槽的连接 */ void CMonthWindow::initConnection() { connect(m_today, &DPushButton::clicked, this, &CMonthWindow::slottoday); connect(m_monthDayView, &CMonthDayView::signalsSelectDate, this, &CMonthWindow::slotSetSelectDate); //双击时间修改选择时间和切换到日视图 connect(m_monthView, &CMonthView::signalsViewSelectDate, this, &CMonthWindow::slotViewSelectDate); connect(m_monthView, &CMonthView::signalAngleDelta, this, &CMonthWindow::slotAngleDelta); //月份控件区域左右滚动信号关联 connect(m_monthDayView, &CMonthDayView::signalAngleDelta, this, &CMonthWindow::slotAngleDelta); connect(m_monthView, &CMonthView::signalSwitchPrePage, this, &CMonthWindow::slotSwitchPrePage); connect(m_monthView, &CMonthView::signalSwitchNextPage, this, &CMonthWindow::slotSwitchNextPage); } /** * @brief slideMonth 切换月份,并更新信息 * @param next 是否切换到下一个月 */ void CMonthWindow::slideMonth(bool next) { slotScheduleHide(); if (next) { setSelectDate(getSelectDate().addMonths(-1), true); } else { setSelectDate(getSelectDate().addMonths(1), true); } //更新日程 updateShowDate(); } /** * @brief slotScheduleHide 隐藏日程浮框 */ void CMonthWindow::slotScheduleHide() { m_monthView->slotScheduleRemindWidget(false); } /** * @brief slotAngleDelta 接受滚动事件滚动相对量 * @param delta 滚动相对量 */ void CMonthWindow::slotAngleDelta(int delta) { //拖拽时禁用 if (!m_monthView->isDragging()) { if (delta > 0) { //下一个月 nextMonth(); } else { //上一个月 previousMonth(); } } } /** * @brief CMonthWindow::slotViewSelectDate 设置选择时间切换日视图 * @param date */ void CMonthWindow::slotViewSelectDate(const QDate &date) { slotScheduleHide(); if (setSelectDate(date, true)) { //更新界面 updateData(); emit signalSwitchView(3); } } void CMonthWindow::slotSwitchPrePage() { nextMonth(); } void CMonthWindow::slotSwitchNextPage() { previousMonth(); } /** * @brief resizeEvent 窗口大小调整 * @param event 窗口大小调整事件 */ void CMonthWindow::resizeEvent(QResizeEvent *event) { qreal dw = width() * 0.5023 + 0.5; int dh = 36; if (m_searchFlag) { m_tMainLayout->setContentsMargins(0, 0, 0, 0); } else { m_tMainLayout->setContentsMargins(0, 0, 10, 0); } m_monthDayView->setFixedSize(qRound(dw), dh); QWidget::resizeEvent(event); } /** * @brief CMonthWindow::slottoday 返回当前时间 */ void CMonthWindow::slottoday() { //隐藏提示框 slotScheduleHide(); setSelectDate(getCurrendDateTime().date(), true); updateData(); } /** * @brief CMonthWindow::slotSetSelectDate 设置选择时间 * @param date */ void CMonthWindow::slotSetSelectDate(const QDate &date) { slotScheduleHide(); if (setSelectDate(date, true)) { updateShowDate(false); } } dde-calendar-5.9.1/calendar-client/src/widget/monthWidget/monthwindow.h000066400000000000000000000070101423264401600261470ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 MONTHWINDOW_H #define MONTHWINDOW_H #include "cschedulebasewidget.h" #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class CScheduleSearchView; class CMonthView; class CMonthDayView; class QHBoxLayout; class CTodayButton; class CMonthWindow: public CScheduleBaseWidget { Q_OBJECT public: explicit CMonthWindow(QWidget *parent = nullptr); ~CMonthWindow() override; //设置是否显示阴历信息 void setLunarVisible(bool state); //根据系统主题类型设置颜色 void setTheMe(int type = 0); //设置年份显示 void setYearData() override; //更新显示时间 void updateShowDate(const bool isUpdateBar = true) override; //设置当前时间 void setCurrentDateTime(const QDateTime ¤tDate) override; //更新日程显示 void updateShowSchedule() override; //更新显示农历信息 void updateShowLunar() override; //更新界面搜索日程显示 void updateSearchScheduleInfo() override; //设置选中搜索日程 void setSelectSearchScheduleInfo(const ScheduleDataInfo &info) override; //设置是否显示搜索界面 void setSearchWFlag(bool flag); //删除选中日程 void deleteselectSchedule() override; public slots: //选择上一个月份 void previousMonth(); //选择下一个月份 void nextMonth(); private: //初始化界面 void initUI(); //初始化信号和槽的连接 void initConnection(); //切换月份,并更新信息 void slideMonth(bool next); signals: /** * @brief signalsCurrentScheduleDate * @param date */ void signalsCurrentScheduleDate(QDate date); public slots: //隐藏日程浮框 void slotScheduleHide(); //接受滚动事件滚动相对量 void slotAngleDelta(int delta); //设置选择时间切换日视图 void slotViewSelectDate(const QDate &date); void slotSwitchPrePage(); void slotSwitchNextPage(); protected: void resizeEvent(QResizeEvent *event) override; private slots: //返回当前时间 void slottoday(); //设置选择的月份 void slotSetSelectDate(const QDate &date); private: CMonthView *m_monthView = nullptr; CMonthDayView *m_monthDayView = nullptr; CTodayButton *m_today = nullptr; QDate m_startDate; QDate m_stopDate; QLabel *m_YearLabel = nullptr; QLabel *m_YearLunarLabel = nullptr; QSpacerItem *m_spaceitem = nullptr; DWidget *m_gridWidget = nullptr; bool m_searchFlag = false; QHBoxLayout *m_tMainLayout = nullptr; }; #endif // YEARWINDOW_H dde-calendar-5.9.1/calendar-client/src/widget/schedulesearchview.cpp000066400000000000000000000770711423264401600255270ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "schedulesearchview.h" #include "schedulectrldlg.h" #include "myscheduleview.h" #include "scheduledlg.h" #include "scheduledatamanage.h" #include "constants.h" #include "cscheduleoperation.h" #include "scheduledaterangeinfo.h" #include "calendarmanage.h" #include "calendarglobalenv.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CScheduleSearchItem::CScheduleSearchItem(QWidget *parent) : DLabel(parent) , m_rightMenu(new DMenu(this)) , m_timeFormat(CalendarManager::getInstance()->getCalendarDateDataManage()->getTimeFormat()) { //设置对象名称和辅助显示名称 this->setObjectName("CScheduleDataItem"); this->setAccessibleName("CScheduleDataItem"); m_editAction = new QAction(tr("Edit"), this); m_deleteAction = new QAction(tr("Delete"), this); connect(m_editAction, SIGNAL(triggered(bool)), this, SLOT(slotEdit())); connect(m_deleteAction, SIGNAL(triggered(bool)), this, SLOT(slotDelete())); setTheMe(DGuiApplicationHelper::instance()->themeType()); QObject::connect(CalendarManager::getInstance(), &CalendarManager::signalTimeFormatChanged, this, &CScheduleSearchItem::slotTimeFormatChanged); QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::paletteTypeChanged, this, &CScheduleSearchItem::setTheMe); m_mouseStatus = M_NONE; installEventFilter(this); //设置焦点类型 setFocusPolicy(Qt::TabFocus); } void CScheduleSearchItem::setBackgroundColor(QColor color1) { m_Backgroundcolor = color1; } void CScheduleSearchItem::setText(QColor tColor, QFont font) { m_tTextColor = tColor; m_tFont = font; //设置时间显示宽度 setDurationSize(font); } void CScheduleSearchItem::setTimeC(QColor tColor, QFont font) { m_timecolor = tColor; m_timefont = font; } void CScheduleSearchItem::setData(ScheduleDataInfo vScheduleInfo, QDate date) { m_ScheduleInfo = vScheduleInfo; m_date = date; update(); } void CScheduleSearchItem::setRoundtype(int rtype) { m_roundtype = rtype; update(); } void CScheduleSearchItem::setTheMe(int type) { if (type == 2) { m_presscolor.background = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); m_presscolor.background.setAlphaF(1); m_presscolor.timeColor = "#FFFFFF"; m_presscolor.timeColor.setAlphaF(1); m_presscolor.textColor = "#FFFFFF"; m_presscolor.textColor.setAlphaF(1); m_hovercolor.background = "#FFFFFF"; m_hovercolor.background.setAlphaF(0.2); m_hovercolor.timeColor = "#6D7C88"; m_hovercolor.timeColor.setAlphaF(1); m_hovercolor.textColor = "#C0C6D4"; m_hovercolor.textColor.setAlphaF(1); } else { m_presscolor.background = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); m_presscolor.background.setAlphaF(1); m_presscolor.timeColor = "#FFFFFF"; m_presscolor.timeColor.setAlphaF(1); m_presscolor.textColor = "#FFFFFF"; m_presscolor.textColor.setAlphaF(1); m_hovercolor.background = "#000000"; m_hovercolor.background.setAlphaF(0.2); m_hovercolor.timeColor = "#526A7F"; m_hovercolor.timeColor.setAlphaF(1); m_hovercolor.textColor = "#414D68"; m_hovercolor.textColor.setAlphaF(1); } } /** * @brief CScheduleSearchItem::setDurationSize 根据时间字体font设置时间宽度 */ void CScheduleSearchItem::setDurationSize(QFont font) { QFontMetrics fm1(font); QString currentTimeStr = QTime::currentTime().toString("hh:mm"); //设置时间显示最大宽度 m_durationSize = fm1.horizontalAdvance(currentTimeStr + "-" + currentTimeStr); } void CScheduleSearchItem::slotEdit() { CScheduleDlg dlg(0, this); dlg.setData(m_ScheduleInfo); dlg.exec(); } void CScheduleSearchItem::slotDelete() { //删除日程 CScheduleOperation _scheduleOperation(this); bool _isDelete = _scheduleOperation.deleteSchedule(m_ScheduleInfo); //删除日程后,将焦点设置给父类 if (_isDelete) { parentWidget()->setFocus(Qt::TabFocusReason); } else { this->setFocus(); } } /** * @brief CScheduleSearchItem::slotTimeFormatChanged 更新时间显示格式 */ void CScheduleSearchItem::slotTimeFormatChanged(int value) { if (value) { m_timeFormat = "hh:mm"; } else { m_timeFormat = "h:mm"; } update(); } void CScheduleSearchItem::slotSchotCutClicked() { //选中该item时才可以使用快捷键 if (m_tabFocus) { //节日日程不能使用 if (m_ScheduleInfo.getType() == DDECalendar::FestivalTypeID) return; m_rightMenu->clear(); m_rightMenu->addAction(m_editAction); m_rightMenu->addAction(m_deleteAction); //获取item坐标,并转换为全局坐标 QPointF itemPos = QPointF(this->rect().x() + this->rect().width() / 2, this->rect().y() + this->rect().height() / 2); QPoint shoutCurPos = mapToGlobal(itemPos.toPoint()); m_rightMenu->exec(shoutCurPos); } } void CScheduleSearchItem::paintEvent(QPaintEvent *e) { Q_UNUSED(e); int labelwidth = width() - 2; int labelheight = height() - 2; QPainter painter(this); QColor bColor = m_Backgroundcolor; QColor textcolor = m_tTextColor; QColor timecolor = m_timecolor; switch (m_mouseStatus) { case M_NONE: { bColor = m_Backgroundcolor; textcolor = m_tTextColor; timecolor = m_timecolor; } break; case M_HOVER: { bColor = m_hovercolor.background; textcolor = m_hovercolor.textColor; timecolor = m_hovercolor.timeColor; } break; case M_PRESS: { bColor = m_presscolor.background; textcolor = m_presscolor.textColor; timecolor = m_presscolor.timeColor; } break; } painter.save(); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.setBrush(QBrush(bColor)); if (m_tabFocus) { //设置焦点绘制的pen QPen pen; pen.setColor(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor()); pen.setWidth(2); painter.setPen(pen); } else painter.setPen(Qt::NoPen); QPainterPath painterPath; painterPath.moveTo(m_radius, m_borderframew); if (m_roundtype == 1 || m_roundtype == 3) { painterPath.arcTo(QRect(m_borderframew, m_borderframew, m_radius * 2, m_radius * 2), 90, 90); } else { painterPath.lineTo(m_borderframew, m_borderframew); painterPath.lineTo(m_borderframew, m_radius); } painterPath.lineTo(1, labelheight - m_radius); if (m_roundtype == 1 || m_roundtype == 2) { painterPath.arcTo(QRect(m_borderframew, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 180, 90); } else { painterPath.lineTo(m_borderframew, labelheight); painterPath.lineTo(m_radius, labelheight); } painterPath.lineTo(labelwidth - m_radius, labelheight); if (m_roundtype == 1 || m_roundtype == 2) { painterPath.arcTo(QRect(labelwidth - m_radius * 2, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 270, 90); } else { painterPath.lineTo(labelwidth, labelheight); painterPath.lineTo(labelwidth, labelheight - m_radius); } painterPath.lineTo(labelwidth, m_radius); if (m_roundtype == 1 || m_roundtype == 3) { painterPath.arcTo(QRect(labelwidth - m_radius * 2, m_borderframew, m_radius * 2, m_radius * 2), 0, 90); } else { painterPath.lineTo(labelwidth, m_borderframew); painterPath.lineTo(labelwidth - m_radius, m_borderframew); } painterPath.lineTo(m_radius, m_borderframew); painterPath.closeSubpath(); painter.drawPath(painterPath); painter.restore(); painter.setFont(m_timefont); painter.setPen(timecolor); QString datestr; datestr = m_ScheduleInfo.getBeginDateTime().toString(m_timeFormat) + "-" + m_ScheduleInfo.getEndDateTime().toString(m_timeFormat); int flag = Qt::AlignLeft | Qt::AlignVCenter; if (m_ScheduleInfo.getAllDay()) { datestr = tr("All Day"); } painter.drawText(QRect(12, 8, m_durationSize, labelheight - 16), flag, datestr); painter.save(); const CSchedulesColor &gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(m_ScheduleInfo.getType()); bColor = gdColor.orginalColor; QPen pen(bColor); pen.setWidth(2); painter.setPen(pen); //由于绘制的矩形大小的改变,所以需要调整起始和截止y坐标 painter.drawLine(m_durationSize + 17, 2, m_durationSize + 17, labelheight - 1); painter.restore(); painter.setFont(m_tFont); painter.setPen(textcolor); QString ellipsis = "..."; QFontMetrics fm = painter.fontMetrics(); //整个label宽度-文字起始位置 int tilenameW = labelwidth - (m_durationSize + 26); QString tSTitleName = m_ScheduleInfo.getTitleName(); tSTitleName.replace("\n", ""); QString str = tSTitleName; QString tStr; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); tStr.append(ellipsis); int widthT = fm.width(tStr); tStr.remove(ellipsis); if (widthT >= tilenameW) { tStr.chop(1); break; } } if (tStr != str) { tStr = tStr + "..."; } painter.drawText(QRect(m_durationSize + 17 + 9, 6, tilenameW, labelheight), Qt::AlignLeft, tStr); painter.end(); } void CScheduleSearchItem::contextMenuEvent(QContextMenuEvent *event) { Q_UNUSED(event); if (m_ScheduleInfo.getType() == DDECalendar::FestivalTypeID) return; //在有些环境中弹出右击菜单不会触发leaveEvent,主动更新leave对应的事件处理 m_mouseStatus = M_NONE; update(); m_rightMenu->clear(); m_rightMenu->addAction(m_editAction); m_rightMenu->addAction(m_deleteAction); m_rightMenu->exec(QCursor::pos()); } void CScheduleSearchItem::mouseDoubleClickEvent(QMouseEvent *event) { Q_UNUSED(event); CMyScheduleView dlg(m_ScheduleInfo, this); dlg.exec(); } void CScheduleSearchItem::mousePressEvent(QMouseEvent *event) { //鼠标点击取消焦点显示 m_tabFocus = false; if (event->button() == Qt::LeftButton) { //注册为鼠标操作 if (!CalendarGlobalEnv::getGlobalEnv()->registerKey("SearchItemEvent", "MousePress")) { CalendarGlobalEnv::getGlobalEnv()->reviseValue("SearchItemEvent", "MousePress"); } emit signalSelectSchedule(m_ScheduleInfo); } DLabel::mousePressEvent(event); } void CScheduleSearchItem::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { m_mouseStatus = M_HOVER; update(); } DLabel::mouseReleaseEvent(event); } void CScheduleSearchItem::enterEvent(QEvent *event) { DLabel::enterEvent(event); m_mouseStatus = M_HOVER; update(); } void CScheduleSearchItem::leaveEvent(QEvent *event) { DLabel::leaveEvent(event); m_mouseStatus = M_NONE; update(); } bool CScheduleSearchItem::eventFilter(QObject *o, QEvent *e) { Q_UNUSED(o); if (e->type() == QEvent::MouseButtonPress) { QMouseEvent *m_press = dynamic_cast(e); if (m_press->button() == Qt::LeftButton) { m_mouseStatus = M_PRESS; } } update(); return false; } void CScheduleSearchItem::focusInEvent(QFocusEvent *e) { if (e->reason() == Qt::TabFocusReason) { //注册为键盘操作 if (!CalendarGlobalEnv::getGlobalEnv()->registerKey("SearchItemEvent", "Keyboard")) { CalendarGlobalEnv::getGlobalEnv()->reviseValue("SearchItemEvent", "Keyboard"); } emit signalSelectSchedule(m_ScheduleInfo); emit signalSelectCurrentItem(this, false); m_tabFocus = true; } if (e->reason() == Qt::ActiveWindowFocusReason || e->reason() == Qt::PopupFocusReason) { m_tabFocus = m_tabFocusBeforeActive; } DLabel::focusInEvent(e); } void CScheduleSearchItem::focusOutEvent(QFocusEvent *e) { //只针对tab的情况生效 if (e->reason() == Qt::TabFocusReason) emit signalSelectCurrentItem(this, true); DLabel::focusOutEvent(e); m_tabFocusBeforeActive = m_tabFocus; m_tabFocus = false; } void CScheduleSearchItem::keyPressEvent(QKeyEvent *event) { //回车显示我的日程详情 if (event->key() == Qt::Key_Return) { CMyScheduleView dlg(m_ScheduleInfo, this); dlg.exec(); } //获取Alt+m显示右击菜单 if (event->modifiers() == Qt::ALT && event->key() == Qt::Key_M) { slotSchotCutClicked(); } DLabel::keyPressEvent(event); } CScheduleSearchView::CScheduleSearchView(QWidget *parent) : DWidget(parent) { QVBoxLayout *layout = new QVBoxLayout; layout->setMargin(0); layout->setSpacing(0); m_gradientItemList = new CScheduleListWidget(parent); m_gradientItemList->setAlternatingRowColors(true); layout->setContentsMargins(0, 0, 0, 0); layout->addWidget(m_gradientItemList); // set default row m_gradientItemList->setCurrentRow(0); setLayout(layout); setMouseTracking(true); m_bBackgroundcolor.setAlphaF(0.03); m_gradientItemList->setLineWidth(0); m_labellist.clear(); connect(m_gradientItemList, &CScheduleListWidget::signalListWidgetClicked, this, &CScheduleSearchView::slotListWidgetClicked); CScheduleTask *_scheduleTask = CalendarManager::getInstance()->getScheduleTask(); connect(_scheduleTask, &CScheduleTask::jobsUpdate, this, &CScheduleSearchView::updateSearch); } CScheduleSearchView::~CScheduleSearchView() { for (int i = 0; i < m_gradientItemList->count(); i++) { QListWidgetItem *item11 = m_gradientItemList->takeItem(i); m_gradientItemList->removeItemWidget(item11); delete item11; item11 = nullptr; } m_gradientItemList->clear(); } void CScheduleSearchView::setTheMe(int type) { if (type == 0 || type == 1) { m_bBackgroundcolor = "#000000"; m_bBackgroundcolor.setAlphaF(0.03); m_btimecolor = "#526A7F"; m_btTextColor = "#414D68"; m_lBackgroundcolor = Qt::white; m_lTextColor = "#001A2E"; } else if (type == 2) { m_bBackgroundcolor = "#FFFFFF"; m_bBackgroundcolor.setAlphaF(0.05); m_btimecolor = "#6D7C88"; m_btTextColor = "#C0C6D4"; m_lBackgroundcolor = "#FFFFFF"; m_lBackgroundcolor.setAlphaF(0.0); m_lTextColor = "#C0C6D4"; } updateDateShow(); } /** * @brief CScheduleSearchView::clearSearch 清空搜索 */ void CScheduleSearchView::clearSearch() { m_searchStr.clear(); m_vlistData.clear(); m_scheduleSearchItem.clear(); //窗口隐藏后初始化对应的状态 hasScheduleShow = false; m_selectItem = nullptr; for (int i = 0; i < m_gradientItemList->count(); i++) { QListWidgetItem *item11 = m_gradientItemList->takeItem(i); m_gradientItemList->removeItemWidget(item11); delete item11; item11 = nullptr; } m_labellist.clear(); m_gradientItemList->clear(); //清空搜索数据 CalendarManager::getInstance()->getScheduleTask()->clearSearchScheduleInfo(); } void CScheduleSearchView::setMaxWidth(const int w) { m_maxWidth = w; } /** * @brief CScheduleSearchView::getHasScheduleShow 是否搜索到日程 */ bool CScheduleSearchView::getHasScheduleShow() { return hasScheduleShow; } /** * @brief CScheduleSearchView::getScheduleStatus 获取当前item是否有焦点 */ bool CScheduleSearchView::getScheduleStatus() { return m_scheduleSearchItem.contains(m_selectItem); } /** * @brief CScheduleSearchView::deleteSchedule 删除选中item */ void CScheduleSearchView::deleteSchedule() { currentDItemIndex = m_scheduleSearchItem.indexOf(m_selectItem); //如果存在该item且为节日日程不可操作 if (currentDItemIndex >= 0 && m_selectItem->getData().getType() != DDECalendar::FestivalTypeID) { m_selectItem->slotDelete(); } } /** * @brief CScheduleSearchView::updateDateShow 更新搜索日程显示 */ void CScheduleSearchView::updateDateShow() { m_currentItem = nullptr; //是否搜索到日程标志 hasScheduleShow = true; for (int i = 0; i < m_gradientItemList->count(); i++) { QListWidgetItem *item11 = m_gradientItemList->takeItem(i); m_gradientItemList->removeItemWidget(item11); delete item11; item11 = nullptr; } m_gradientItemList->clear(); m_labellist.clear(); m_scheduleSearchItem.clear(); //找最近日程 QDate tCurrentData = QDate::currentDate(); //搜索日程过滤排序 QMap > m_showData; qint64 offset = 1000; QDate topdate = tCurrentData; QMap >::const_iterator _iterator = m_vlistData.constBegin(); QVector _showInfo{}; for (; _iterator != m_vlistData.constEnd(); ++_iterator) { qint64 d = qAbs(_iterator.key().daysTo(tCurrentData)); _showInfo.clear(); for (int i = 0 ; i < _iterator.value().size(); ++i) { //如果开始时间日期为显示日期则显示,跨天日程只显示一个 if (_iterator.value().at(i).getBeginDateTime().date() == _iterator.key() || _iterator == m_vlistData.constBegin()) { _showInfo.append(_iterator.value().at(i)); } } if (_showInfo.size() > 0) { //获取跟当前时间最近的日程时间 if (d < offset) { offset = d; topdate = _iterator.key(); } //排序 std::sort(_showInfo.begin(), _showInfo.end()); m_showData[_iterator.key()] = _showInfo; } } tCurrentData = topdate; QMap >::const_iterator _showIterator = m_showData.constBegin(); for (; _showIterator != m_showData.constEnd(); ++_showIterator) { //创建显示日期项 QListWidgetItem *dateItem = createItemWidget(_showIterator.key()); if (_showIterator.key() == tCurrentData) { m_currentItem = dateItem; } if (_showIterator.value().size() == 1) { createItemWidget(_showIterator.value().at(0), _showIterator.key(), 1); } else if (_showIterator.value().size() == 2) { createItemWidget(_showIterator.value().at(0), _showIterator.key(), 3); createItemWidget(_showIterator.value().at(1), _showIterator.key(), 2); } else { createItemWidget(_showIterator.value().at(0), _showIterator.key(), 3); for (int j = 1; j < _showIterator->size() - 1; j++) { createItemWidget(_showIterator.value().at(j), _showIterator.key(), 0); } createItemWidget(_showIterator.value().at(_showIterator->size() - 1), _showIterator.key(), 2); } } if (m_gradientItemList->count() == 0) { hasScheduleShow = false; QListWidgetItem *listItem = new QListWidgetItem(m_gradientItemList); DLabel *gwi = new DLabel(); QFont font; font.setPixelSize(DDECalendar::FontSizeTwenty); gwi->setAlignment(Qt::AlignCenter); DPalette dayPalette = gwi->palette(); QColor textcolor; int themtype = CScheduleDataManage::getScheduleDataManage()->getTheme(); if (themtype == 2) { textcolor = "#C0C6D4"; textcolor.setAlphaF(0.4); } else { textcolor = "#000000"; textcolor.setAlphaF(0.3); } dayPalette.setColor(DPalette::WindowText, textcolor); dayPalette.setColor(DPalette::Window, m_lBackgroundcolor); gwi->setPalette(dayPalette); gwi->setForegroundRole(DPalette::WindowText); gwi->setFont(font); gwi->move(this->width() - 70, this->height() - 196); gwi->setText(tr("No search results")); gwi->setFixedSize(m_maxWidth - 20, 450); listItem->setSizeHint(QSize(m_maxWidth - 20, 450)); //每次改变Item的高度 listItem->setFlags(Qt::ItemIsTristate); m_gradientItemList->addItem(listItem); m_gradientItemList->setItemWidget(listItem, gwi); m_labellist.append(gwi); } if (m_currentItem != nullptr) { m_gradientItemList->scrollToItem(m_currentItem, QAbstractItemView::PositionAtTop); } if (currentDItemIndex >= 0 && m_scheduleSearchItem.size() > 0) { //删除日程后,重新设置焦点 if (currentDItemIndex < m_scheduleSearchItem.size()) { m_scheduleSearchItem.at(currentDItemIndex)->setFocus(Qt::TabFocusReason); m_selectItem = m_scheduleSearchItem.at(currentDItemIndex); } else { m_scheduleSearchItem.last()->setFocus(Qt::TabFocusReason); m_selectItem = m_scheduleSearchItem.last(); } currentDItemIndex = -1; } } void CScheduleSearchView::createItemWidget(ScheduleDataInfo info, QDate date, int rtype) { ScheduleDataInfo &gd = info; CScheduleSearchItem *gwi = new CScheduleSearchItem(this); QFont font; font.setPixelSize(DDECalendar::FontSizeFourteen); font.setWeight(QFont::Normal); gwi->setBackgroundColor(m_bBackgroundcolor); gwi->setText(m_btTextColor, font); font.setPixelSize(DDECalendar::FontSizeTwelve); gwi->setTimeC(m_btimecolor, font); gwi->setFixedSize(m_maxWidth - 25, 35); gwi->setData(gd, date); gwi->setRoundtype(rtype); //将搜索到的日程添加到容器 m_scheduleSearchItem.append(gwi); connect(gwi, &CScheduleSearchItem::signalSelectSchedule, this, &CScheduleSearchView::slotSelectSchedule); connect(gwi, &CScheduleSearchItem::signalSelectCurrentItem, this, &CScheduleSearchView::slotSelectCurrentItem); QListWidgetItem *listItem = new QListWidgetItem; listItem->setSizeHint(QSize(m_maxWidth - 25, 36)); //每次改变Item的高度 listItem->setFlags(Qt::ItemIsTristate); m_gradientItemList->addItem(listItem); m_gradientItemList->setItemWidget(listItem, gwi); m_labellist.append(gwi); } QListWidgetItem *CScheduleSearchView::createItemWidget(QDate date) { CScheduleSearchDateItem *gwi = new CScheduleSearchDateItem(); QFont font; font.setWeight(QFont::Medium); font.setPixelSize(DDECalendar::FontSizeSixteen); gwi->setBackgroundColor(m_lBackgroundcolor); gwi->setText(m_lTextColor, font); if (date == QDate::currentDate()) { gwi->setText(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(), font); } gwi->setFixedSize(m_maxWidth - 25, 35); gwi->setDate(date); connect(gwi, &CScheduleSearchDateItem::signalLabelScheduleHide, this, &CScheduleSearchView::signalScheduleHide); QListWidgetItem *listItem = new QListWidgetItem; listItem->setSizeHint(QSize(m_maxWidth - 25, 36)); //每次改变Item的高度 listItem->setFlags(Qt::ItemIsTristate); m_gradientItemList->addItem(listItem); m_gradientItemList->setItemWidget(listItem, gwi); m_labellist.append(gwi); return listItem; } /** * @brief CScheduleSearchView::slotsetSearch 需要搜索日程关键字 * @param str */ void CScheduleSearchView::slotsetSearch(QString str) { if (str.isEmpty()) return; m_searchStr = str; QDateTime date = QDateTime::currentDateTime(); QDateTime bDate = date.addMonths(-6); if (bDate.date() < QDate(1900, 1, 1)) { bDate.setDate(QDate(1900, 1, 1)); } QDateTime eDate = date.addMonths(6); //查询搜索 m_vlistData = CalendarManager::getInstance()->getScheduleTask()->getSearchScheduleInfo(str, bDate, eDate); updateDateShow(); } void CScheduleSearchView::slotSelectSchedule(const ScheduleDataInfo &scheduleInfo) { emit signalSelectSchedule(scheduleInfo); } /** * @brief CScheduleSearchView::updateSearch 更新搜索信息 */ void CScheduleSearchView::updateSearch() { if (isVisible()) { slotsetSearch(m_searchStr); } } /** * @brief CScheduleSearchView::slotSelectCurrentItem 设置选中的item为嘴上面一个,实现滚动效果 * @param item 选中的item * @param itemFocusOut 是否是focusout事件 */ void CScheduleSearchView::slotSelectCurrentItem(CScheduleSearchItem *item, bool itemFocusOut) { for (int i = 0; i < m_gradientItemList->count(); i++) { QListWidgetItem *cItem = m_gradientItemList->item(i); if (item == m_gradientItemList->itemWidget(cItem)) { m_selectItem = item; //设置选中的item为最上面一个 m_gradientItemList->scrollToItem(m_gradientItemList->item(i), QAbstractItemView::PositionAtTop); if (i == m_gradientItemList->count() - 1 && itemFocusOut && !keyPressUP) { //最后一个item,发送信号将焦点传递给搜索框 emit signalSelectCurrentItem(); } } } keyPressUP = false; } /** * @brief CScheduleSearchView::slotListWidgetClicked * 根据listwidget点击事件对当前tab焦点item做对应的处理 */ void CScheduleSearchView::slotListWidgetClicked() { //取消当前tab选中item m_selectItem = nullptr; emit signalScheduleHide(); } void CScheduleSearchView::resizeEvent(QResizeEvent *event) { for (int i = 0; i < m_gradientItemList->count(); i++) { QListWidgetItem *item11 = m_gradientItemList->item(i); item11->setSizeHint(QSize(m_maxWidth - 5, 36)); //每次改变Item的高度 } for (int i = 0; i < m_labellist.count(); i++) { m_labellist.at(i)->setFixedSize(m_maxWidth - 20, 35); m_labellist.at(i)->update(); } if (m_gradientItemList->count() == 1) { QListWidgetItem *item11 = m_gradientItemList->item(0); item11->setSizeHint(QSize(m_maxWidth, qRound(height() * 0.7978))); //每次改变Item的高度 m_labellist.at(0)->setFixedSize(m_maxWidth, qRound(height() * 0.7978)); m_labellist.at(0)->update(); } if (m_gradientItemList->count() > 1) { if (m_currentItem != nullptr) { m_gradientItemList->scrollToItem(m_currentItem, QAbstractItemView::PositionAtTop); } } DWidget::resizeEvent(event); } void CScheduleSearchView::mousePressEvent(QMouseEvent *event) { DWidget::mousePressEvent(event); } void CScheduleSearchView::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Up) { //上键,选中上一个item keyPressUP = true; int selectNum = m_scheduleSearchItem.indexOf(m_selectItem); if (selectNum > 0) m_scheduleSearchItem.at(selectNum - 1)->setFocus(Qt::TabFocusReason); } if (event->key() == Qt::Key_Down) { //下键,选中下一个item int selectNum = m_scheduleSearchItem.indexOf(m_selectItem); if (selectNum < m_scheduleSearchItem.count() - 1) m_scheduleSearchItem.at(selectNum + 1)->setFocus(Qt::TabFocusReason); } DWidget::keyPressEvent(event); } void CScheduleSearchView::focusInEvent(QFocusEvent *e) { DWidget::focusInEvent(e); if (e->reason() == Qt::TabFocusReason) { if (m_scheduleSearchItem.size() > 0) { m_scheduleSearchItem.first()->setFocus(Qt::TabFocusReason); } } } CScheduleSearchDateItem::CScheduleSearchDateItem(QWidget *parent) : DLabel(parent) { //设置对象名称和辅助显示名称 this->setObjectName("CScheduleDateItem"); this->setAccessibleName("CScheduleDateItem"); setAutoFillBackground(true); } void CScheduleSearchDateItem::setBackgroundColor(QColor color1) { m_Backgroundcolor = color1; } void CScheduleSearchDateItem::setText(QColor tColor, QFont font) { m_textcolor = tColor; m_font = font; } void CScheduleSearchDateItem::setDate(QDate date) { m_date = date; } void CScheduleSearchDateItem::paintEvent(QPaintEvent *e) { Q_UNUSED(e); int labelwidth = width(); int labelheight = height(); QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing); painter.setBrush(QBrush(m_Backgroundcolor)); painter.setPen(Qt::NoPen); painter.drawRect(this->rect()); painter.setFont(m_font); painter.setPen(m_textcolor); QLocale locale; QString datestr; if (locale.language() == QLocale::Chinese) { datestr = QString::number(m_date.year()) + tr("Y") + QString::number(m_date.month()) + tr("M") + QString::number(m_date.day()) + tr("D"); } else { datestr = m_date.toString("yyyy/M/d"); } painter.drawText(QRect(12, 8, labelwidth, labelheight - 8), Qt::AlignLeft, datestr); painter.end(); } void CScheduleSearchDateItem::mousePressEvent(QMouseEvent *event) { emit signalLabelScheduleHide(); DLabel::mousePressEvent(event); } CScheduleListWidget::CScheduleListWidget(QWidget *parent) : DListWidget(parent) { //设置对象名称和辅助显示名称 this->setObjectName("CScheduleListWidget"); this->setAccessibleName("CScheduleListWidget"); //接受触摸事件 setAttribute(Qt::WA_AcceptTouchEvents); //截获相应的gesture手势 grabGesture(Qt::TapGesture); grabGesture(Qt::TapAndHoldGesture); grabGesture(Qt::PanGesture); //日程类型发生改变,刷新界面 JobTypeInfoManager::instance()->addToNoticeBill(this->viewport(), "update"); } CScheduleListWidget::~CScheduleListWidget() { JobTypeInfoManager::instance()->removeFromNoticeBill(this->viewport()); } void CScheduleListWidget::mousePressEvent(QMouseEvent *event) { DListWidget::mousePressEvent(event); emit signalListWidgetClicked(); } void CScheduleListWidget::paintEvent(QPaintEvent *e) { DListWidget::paintEvent(e); QPainter painter(this->viewport()); painter.setRenderHint(QPainter::Antialiasing); //绘制背景色 DPalette _backgroundP; QColor _backgroundColor = _backgroundP.color(QPalette::Active, QPalette::Base); painter.save(); painter.setPen(Qt::NoPen); painter.setBrush(_backgroundColor); painter.drawRect(this->rect()); painter.restore(); //绘制搜索右侧圆角效果 QColor _outBorderColor = _backgroundP.color(QPalette::Active, QPalette::Window); const qreal _radios = 8; painter.setPen(Qt::NoPen); painter.setBrush(_outBorderColor); const qreal _outWidth = 10; const qreal _rectX = this->width() - _outWidth; QPainterPath _showPath; _showPath.moveTo(_rectX - _radios, 0); _showPath.lineTo(this->width(), 0); _showPath.lineTo(this->width(), this->height()); _showPath.lineTo(_rectX - _radios, this->height()); _showPath.arcTo(_rectX - _radios * 2, this->height() - _radios * 2, _radios * 2, _radios * 2, 270, 90); _showPath.lineTo(_rectX, _radios); _showPath.arcTo(_rectX - _radios * 2, 0, _radios * 2, _radios * 2, 0, 90); painter.drawPath(_showPath); painter.end(); } dde-calendar-5.9.1/calendar-client/src/widget/schedulesearchview.h000066400000000000000000000143151423264401600251640ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULESEARCHVIEW_H #define SCHEDULESEARCHVIEW_H #include "src/scheduledatainfo.h" #include #include #include DWIDGET_USE_NAMESPACE class QVBoxLayout; class CScheduleListWidget; class CScheduleSearchItem; class CScheduleSearchDateItem; /** * @brief The CScheduleSearchView class * 搜索结果展示界面 */ class CScheduleSearchView : public DWidget { Q_OBJECT public: explicit CScheduleSearchView(QWidget *parent = nullptr); ~CScheduleSearchView() override; void setTheMe(int type = 0); //清空搜索 void clearSearch(); void setMaxWidth(const int w); bool getHasScheduleShow(); bool getScheduleStatus(); void deleteSchedule(); signals: void signalSelectSchedule(const ScheduleDataInfo &scheduleInfo); void signalScheduleHide(); void signalSelectCurrentItem(); void signalSchotCutClicked(); public slots: //需要搜索日程关键字 void slotsetSearch(QString str); void slotSelectSchedule(const ScheduleDataInfo &scheduleInfo); //更新搜索信息 void updateSearch(); void slotSelectCurrentItem(CScheduleSearchItem *item, bool itemFocusOut); void slotListWidgetClicked(); protected: void resizeEvent(QResizeEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void keyPressEvent(QKeyEvent *event) override; void focusInEvent(QFocusEvent *e) override; private: void updateDateShow(); void createItemWidget(ScheduleDataInfo info, QDate date, int rtype); QListWidgetItem *createItemWidget(QDate date); private: CScheduleListWidget *m_gradientItemList = nullptr; //下拉列表窗 bool m_widgetFlag; QMap > m_vlistData; QVector m_labellist; int m_type; QDate m_currentDate; QColor m_bBackgroundcolor = "#000000"; QColor m_btimecolor = "#526A7F"; QColor m_btTextColor = "#414D68"; QColor m_lBackgroundcolor = Qt::white; QColor m_lTextColor = "#001A2E"; QListWidgetItem *m_currentItem = nullptr; int m_maxWidth = 200; int currentDItemIndex = -1; QString m_searchStr{""}; bool hasScheduleShow = false; bool keyPressUP = false; CScheduleSearchItem *m_selectItem = nullptr; QVector m_scheduleSearchItem{}; }; class CScheduleListWidget : public DListWidget { Q_OBJECT public: explicit CScheduleListWidget(QWidget *parent = nullptr); ~CScheduleListWidget() override; signals: void signalListWidgetClicked(); protected: void mousePressEvent(QMouseEvent *event) override; void paintEvent(QPaintEvent *e) override; }; class CScheduleSearchItem : public DLabel { Q_OBJECT enum MouseStatus { M_NONE, M_PRESS, M_HOVER }; public: explicit CScheduleSearchItem(QWidget *parent = nullptr); void setBackgroundColor(QColor color1); void setText(QColor tColor, QFont font); void setTimeC(QColor tColor, QFont font); void setData(ScheduleDataInfo vScheduleInfo, QDate date); void setRoundtype(int rtype); void setTheMe(int type = 0); void setDurationSize(QFont font); const ScheduleDataInfo &getData() const { return m_ScheduleInfo; } signals: void signalsDelete(CScheduleSearchItem *item); void signalsEdit(CScheduleSearchItem *item); void signalSelectSchedule(const ScheduleDataInfo &scheduleInfo); void signalSelectCurrentItem(CScheduleSearchItem *item, bool focusOutStatus); public slots: void slotEdit(); void slotDelete(); void slotTimeFormatChanged(int value); void slotSchotCutClicked(); protected: void paintEvent(QPaintEvent *e) override; void contextMenuEvent(QContextMenuEvent *event) override; void mouseDoubleClickEvent(QMouseEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; void enterEvent(QEvent *event) override; void leaveEvent(QEvent *event) override; bool eventFilter(QObject *o, QEvent *e) override; void focusInEvent(QFocusEvent *e) override; void focusOutEvent(QFocusEvent *e) override; void keyPressEvent(QKeyEvent *event) override; private: struct ColorStatus { QColor background; QColor timeColor; QColor textColor; }; ScheduleDataInfo m_ScheduleInfo; QAction *m_editAction = nullptr; QAction *m_deleteAction = nullptr; QColor m_Backgroundcolor; ColorStatus m_presscolor; ColorStatus m_hovercolor; QColor m_timecolor; QFont m_timefont; QColor m_tTextColor; QFont m_tFont; QDate m_date; MouseStatus m_mouseStatus; DMenu *m_rightMenu = nullptr; int m_roundtype = 1; const int m_radius = 8; const int m_borderframew = 1; QString m_timeFormat = "hh:mm"; int m_durationSize = 0; bool m_tabFocus {false}; bool m_tabFocusBeforeActive {false}; //保存应用被激活前是否存在tab焦点效果 }; class CScheduleSearchDateItem : public DLabel { Q_OBJECT public: explicit CScheduleSearchDateItem(QWidget *parent = nullptr); void setBackgroundColor(QColor color1); void setText(QColor tColor, QFont font); void setDate(QDate date); signals: void signalLabelScheduleHide(); protected: void paintEvent(QPaintEvent *e) override; void mousePressEvent(QMouseEvent *event) override; private: QColor m_Backgroundcolor; QColor m_textcolor; QFont m_font; QDate m_date; }; #endif // SCHEDULESEARCHVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/touchgestureoperation.cpp000066400000000000000000000132541423264401600263050ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "touchgestureoperation.h" #include #include #include #include touchGestureOperation::touchGestureOperation(QWidget *parent) : m_parentWidget(parent) { if (m_parentWidget) { m_parentWidget->setAttribute(Qt::WA_AcceptTouchEvents); //截获相应的gesture手势 m_parentWidget->grabGesture(Qt::TapGesture); m_parentWidget->grabGesture(Qt::TapAndHoldGesture); m_parentWidget->grabGesture(Qt::PanGesture); } } bool touchGestureOperation::event(QEvent *e) { bool _result {false}; if (e->type() == QEvent::Gesture) { //手势触发 _result = gestureEvent(dynamic_cast(e)); } QMouseEvent *mouseEvent = dynamic_cast(e); if (e->type() == QEvent::MouseButtonPress && mouseEvent->source() == Qt::MouseEventSynthesizedByQt) { //触摸点击转换鼠标点击事件 m_mouseState = M_PRESS; m_beginTouchPoint = mouseEvent->pos(); _result = true; } if (e->type() == QEvent::MouseMove && mouseEvent->source() == Qt::MouseEventSynthesizedByQt) { //触摸移动转换鼠标移动事件 //如果移动距离大与5则为触摸移动状态 QPointF currentPoint = mouseEvent->pos(); if (QLineF(m_beginTouchPoint, currentPoint).length() > 5) { m_mouseState = M_MOVE; //如果为单指点击状态则转换为滑动状态 switch (m_touchState) { case T_SINGLE_CLICK: { m_touchState = T_SLIDE; break; } case T_SLIDE: { //计算滑动方向和距离 calculateAzimuthAngle(m_beginTouchPoint, currentPoint); //如果移动距离大于15则更新 if (m_movelenght > 15) { m_update = true; m_beginTouchPoint = currentPoint; } break; } default: break; } } _result = true; } if (e->type() == QEvent::MouseButtonRelease && mouseEvent->source() == Qt::MouseEventSynthesizedByQt) { m_mouseState = M_NONE; _result = true; } return _result; } bool touchGestureOperation::isUpdate() const { return m_update; } void touchGestureOperation::setUpdate(bool b) { m_update = b; } touchGestureOperation::TouchState touchGestureOperation::getTouchState() const { return m_touchState; } touchGestureOperation::TouchMovingDirection touchGestureOperation::getMovingDir() const { return m_movingDir; } touchGestureOperation::TouchMovingDirection touchGestureOperation::getTouchMovingDir(QPointF &startPoint, QPointF &stopPoint, qreal &movingLine) { TouchMovingDirection _result {T_MOVE_NONE}; qreal angle = 0.0000; qreal dx = stopPoint.rx() - startPoint.rx(); qreal dy = stopPoint.ry() - startPoint.ry(); //计算方位角 angle = qAtan2(dy, dx) * 180 / M_PI; qreal line = qSqrt(dx * dx + dy * dy); //如果移动距离大于10则有效 if (line > 10) { if ((angle <= -45) && (angle >= -135)) { _result = TouchMovingDirection::T_TOP; } else if ((angle > -45) && (angle < 45)) { _result = TouchMovingDirection::T_RIGHT; } else if ((angle >= 45) && (angle <= 135)) { _result = TouchMovingDirection::T_BOTTOM; } else { _result = TouchMovingDirection::T_LEFT; } } movingLine = line; return _result; } bool touchGestureOperation::gestureEvent(QGestureEvent *event) { if (QGesture *tap = event->gesture(Qt::TapGesture)) tapGestureTriggered(dynamic_cast(tap)); if (QGesture *pan = event->gesture(Qt::PanGesture)) panTriggered(dynamic_cast(pan)); return true; } void touchGestureOperation::tapGestureTriggered(QTapGesture *tap) { switch (tap->state()) { case Qt::NoGesture: { break; } case Qt::GestureStarted: { m_beginTouchTime = QDateTime::currentDateTime().toMSecsSinceEpoch(); m_touchState = T_SINGLE_CLICK; break; } case Qt::GestureUpdated: { break; } case Qt::GestureFinished: { break; } default: { //GestureCanceled } } } void touchGestureOperation::panTriggered(QPanGesture *pan) { switch (pan->state()) { case Qt::NoGesture: { break; } case Qt::GestureStarted: { break; } case Qt::GestureUpdated: { m_touchState = T_SLIDE; break; } case Qt::GestureFinished: { break; } default: //GestureCanceled break; } } void touchGestureOperation::calculateAzimuthAngle(QPointF &startPoint, QPointF &stopPoint) { m_movingDir = getTouchMovingDir(startPoint, stopPoint, m_movelenght); } dde-calendar-5.9.1/calendar-client/src/widget/touchgestureoperation.h000066400000000000000000000103551423264401600257510ustar00rootroot00000000000000 /* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TOUCHGESTUREOPERATION_H #define TOUCHGESTUREOPERATION_H #include class QGestureEvent; class QTapGesture; class QPanGesture; class touchGestureOperation { public: /** * @brief The TouchMovingDirection enum //手势移动方向 */ enum TouchMovingDirection { T_MOVE_NONE //默认状态 , T_LEFT //左 , T_TOP //上 , T_RIGHT //右 , T_BOTTOM //下 }; enum TouchState { T_STATE_NONE //默认状态 , T_SINGLE_CLICK //一指点击 , T_SLIDE //滑动手势 }; private: enum MouseState { M_NONE //默认状态 , M_PRESS //点击 , M_MOVE //移动 }; public: explicit touchGestureOperation(QWidget *parent = nullptr); /** * @brief event 事件处理 * @param e Qwidget事件 * @return */ bool event(QEvent *e); /** * @brief isUpdate 是否更新数据 * @return */ bool isUpdate() const; /** * @brief setUpdate 设置更新状态 * @param b */ void setUpdate(bool b); /** * @brief getTouchState 获取触摸手指状态 * @return */ TouchState getTouchState() const; /** * @brief getMovingDir 获取移动方向 * @return */ TouchMovingDirection getMovingDir() const; /** * @brief getTouchMovingDir 获取滑动方向 * @param startPoint 起始坐标 * @param stopPoint 结束坐标 * @param movingLine 移动距离 * @return */ static TouchMovingDirection getTouchMovingDir(QPointF &startPoint, QPointF &stopPoint, qreal &movingLine); private: /** * @brief gestureEvent 触摸手势处理 * @param event 手势事件 * @return */ bool gestureEvent(QGestureEvent *event); /** * @brief tapGestureTriggered 轻切手势处理 * @param tap 轻切手势事件 */ void tapGestureTriggered(QTapGesture *tap); /** * @brief panTriggered 多指滑动手势处理 * @param pan 多指滑动手势 */ void panTriggered(QPanGesture *pan); /** * @brief calculateAzimuthAngle 计算方位角 * @param startPoint 起始坐标 * @param stopPoint 结束坐标 */ void calculateAzimuthAngle(QPointF &startPoint, QPointF &stopPoint); private: /** * @brief m_parentWidget 手势窗口 */ QWidget *m_parentWidget {nullptr}; /** * @brief m_movingDir 移动方向 */ TouchMovingDirection m_movingDir {T_MOVE_NONE}; /** * @brief m_beginTouchTime 触摸点击时间 */ qint64 m_beginTouchTime {0}; /** * @brief m_beginTouchPoint 触摸点击坐标 */ QPointF m_beginTouchPoint {}; /** * @brief m_touchState 触摸状态 */ TouchState m_touchState {T_STATE_NONE}; /** * @brief m_touchState 鼠标的状态 */ MouseState m_mouseState {M_NONE}; /** * @brief m_movelenght 移动距离 */ qreal m_movelenght {0}; /** * @brief m_update 更新标志 */ bool m_update {false}; }; #endif // TOUCHGESTUREOPERATION_H dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/000077500000000000000000000000001423264401600232315ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/weekheadview.cpp000066400000000000000000000316011423264401600264060ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "weekheadview.h" #include "customframe.h" #include "scheduledatamanage.h" #include #include #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CWeekHeadView::CWeekHeadView(QWidget *parent) : DWidget(parent) , m_touchGesture(this) { setContentsMargins(0, 0, 0, 0); m_dayNumFont.setWeight(QFont::Medium); m_dayNumFont.setPixelSize(DDECalendar::FontSizeSixteen); m_monthFont.setWeight(QFont::Medium); m_monthFont.setPixelSize(DDECalendar::FontSizeTwenty); // cells grid QHBoxLayout *hBoxLayout = new QHBoxLayout; hBoxLayout->setMargin(0); hBoxLayout->setSpacing(0); m_monthLabel = new CustomFrame(this); m_monthLabel->setFixedWidth(DDEWeekCalendar::WMCellHeaderWidth - 5); m_monthLabel->setRoundState(true, false, false, false); QFont mlabelF; mlabelF.setWeight(QFont::Medium); mlabelF.setPixelSize(DDECalendar::FontSizeTwenty); m_monthLabel->setTextFont(mlabelF); hBoxLayout->addWidget(m_monthLabel); hBoxLayout->setStretch(0, 0); hBoxLayout->setSpacing(0); for (int c = 0; c != DDEWeekCalendar::AFewDaysofWeek; ++c) { QWidget *cell = new QWidget(this); cell->installEventFilter(this); cell->setFocusPolicy(Qt::ClickFocus); hBoxLayout->addWidget(cell); m_cellList.append(cell); } setLayout(hBoxLayout); } CWeekHeadView::~CWeekHeadView() { } /** * @brief setTheMe 根据系统主题类型设置颜色 * @param type 系统主题类型 */ void CWeekHeadView::setTheMe(int type) { m_themetype = type; if (type == 0 || type == 1) { QColor textC = "#000000"; QColor textBC(230, 238, 242); m_monthLabel->setBColor(textBC); m_monthLabel->setTextColor(textC); m_backgroundCircleColor = "#0081FF"; m_backgroundShowColor = "#2CA7F8"; m_backgroundShowColor.setAlphaF(0.4); m_Background_Weekend_Color = "#DAE4ED"; m_defaultTextColor = "#6F6F6F"; m_currentDayTextColor = "#FFFFFF"; m_defaultLunarColor = "#898989"; m_currentMonthColor = "#000000"; m_backgroundColor = "#E6EEF2"; m_solofestivalLunarColor = "#4DFF7272"; } else if (type == 2) { QColor textBC = "#82AEC1"; textBC.setAlphaF(0.1); m_monthLabel->setBColor(textBC); m_monthLabel->setTextColor("#BF1D63"); m_backgroundCircleColor = "#0059D2"; m_backgroundShowColor = "#002AAF"; m_backgroundShowColor.setAlphaF(0.4); m_Background_Weekend_Color = "#333D4A"; m_defaultTextColor = "#C0C6D4"; m_currentDayTextColor = "#C0C6D4"; m_defaultLunarColor = "#6886BA"; m_currentMonthColor = "#000000"; m_backgroundColor = "#82AEC1"; m_backgroundColor.setAlphaF(0.1); m_solofestivalLunarColor = "#4DFF7272"; } m_weekendsTextColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); update(); } /** * @brief CWeekHeadView::setWeekDay 设置一周显示时间 * @param vDays * @param selectDate */ void CWeekHeadView::setWeekDay(QVector vDays, const QDate &selectDate) { if (vDays.count() != DDEWeekCalendar::AFewDaysofWeek) return; m_days = vDays; QLocale locale; m_monthLabel->setTextStr(locale.monthName(selectDate.month(), QLocale::ShortFormat)); } /** * @brief CWeekHeadView::setHunagliInfo 设置黄历信息 * @param huangLiInfo */ void CWeekHeadView::setHunagLiInfo(const QMap &huangLiInfo) { m_huangLiInfo = huangLiInfo; update(); } /** * @brief setLunarVisible 设置是否显示阴历信息 * @param visible 是否显示阴历信息 */ void CWeekHeadView::setLunarVisible(bool visible) { int state = int(m_showState); if (visible) state |= ShowLunar; else state &= ~ShowLunar; m_showState = ShowState(state); update(); } /** * @brief eventFilter 过滤器 * @param o 事件对象 * @param e 时间类型 * @return false */ bool CWeekHeadView::eventFilter(QObject *o, QEvent *e) { QWidget *cell = qobject_cast(o); if (cell && m_cellList.contains(cell)) { if (e->type() == QEvent::Paint) { paintCell(cell); } else if (e->type() == QEvent::MouseButtonDblClick) { const int pos = m_cellList.indexOf(cell); emit signalsViewSelectDate(m_days[pos]); } } return false; } /** * @brief getCellDayNum 根据索引值获取当天是在一个月中的第几天 * @param pos 索引 * @return 日期的字符串 */ const QString CWeekHeadView::getCellDayNum(int pos) { return QString::number(m_days[pos].day()); } /** * @brief getCellDate 根据索引获取当天的日期 * @param pos 索引值 * @return 日期 */ const QDate CWeekHeadView::getCellDate(int pos) { return m_days[pos]; } /** * @brief getLunar 根据索引值获取当天的阴历信息 * @param pos 索引值 * @return 阴历信息字符串 */ const QString CWeekHeadView::getLunar(int pos) { CaHuangLiDayInfo info ; if (pos >= 0 && pos < m_days.size()) { info = m_huangLiInfo[m_days[pos]]; if (info.mLunarDayName == "初一") { info.mLunarDayName = info.mLunarMonthName; } if (info.mTerm.isEmpty()) return info.mLunarDayName; } return info.mTerm; } /** * @brief paintCell 绘制周信息 * @param cell 每天所在的widget */ void CWeekHeadView::paintCell(QWidget *cell) { m_weekendsTextColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); const QRect rect(0, 0, cell->width(), cell->height()); const int pos = m_cellList.indexOf(cell); const bool isCurrentDay = getCellDate(pos) == QDate::currentDate(); const bool isSelectedCell = isCurrentDay; int d = m_days[pos].dayOfWeek(); QPainter painter(cell); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(Qt::NoPen); //根据周几设置不一样的背景色 if (d == DDEWeekCalendar::FirstDayOfWeekend || d == DDEWeekCalendar::AFewDaysofWeek) { painter.setBrush(QBrush(m_Background_Weekend_Color)); } else { painter.setBrush(QBrush(m_backgroundColor)); } if (m_cellList.last() != cell) { painter.drawRect(rect); //画矩形 //绘制分割线 QPoint point_begin(cell->width(), 0); QPoint point_end(cell->width(), cell->height()); painter.save(); QColor m_linecolor = "#000000"; m_linecolor.setAlphaF(0.1); painter.setPen(m_linecolor); painter.drawLine(point_begin, point_end); painter.restore(); } else { int labelwidth = cell->width(); int labelheight = cell->height(); QPainterPath painterPath; painterPath.moveTo(0, 0); painterPath.lineTo(0, labelheight); painterPath.lineTo(labelwidth, labelheight); painterPath.lineTo(labelwidth, labelheight - m_radius); painterPath.arcTo(QRect(labelwidth - m_radius * 2, 0, m_radius * 2, m_radius * 2), 0, 90); painterPath.lineTo(0, 0); painterPath.closeSubpath(); painter.drawPath(painterPath); } int bw = (cell->width() - 104) / 2; int bh = (cell->height() - 26) / 2; if (bw < 0) { bw = 2; } if (bh < 0) { bh = 2; } if (isSelectedCell) { if (m_showState & ShowLunar) { QRect fillRect(bw - 2, bh, 26, 26); painter.save(); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(QBrush(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor())); painter.setPen(Qt::NoPen); painter.drawEllipse(fillRect); painter.restore(); } else { QRect fillRect(cell->width() - (cell->width() / 2) + 1, bh - 1, 26, 26); painter.save(); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(QBrush(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor())); painter.setPen(Qt::NoPen); painter.drawEllipse(fillRect); painter.restore(); } } QLocale locale; const QString dayNum = getCellDayNum(pos); const QString dayLunar = getLunar(pos); QString dayWeek = locale.dayName(d ? d : DDEWeekCalendar::AFewDaysofWeek, QLocale::ShortFormat); painter.save(); painter.setPen(Qt::SolidLine); // draw text of day if (isSelectedCell) { painter.setPen(m_currentDayTextColor); } else if (isCurrentDay) { painter.setPen(m_weekendsTextColor); } else { if (d == DDEWeekCalendar::FirstDayOfWeekend || d == DDEWeekCalendar::AFewDaysofWeek) painter.setPen(m_weekendsTextColor); else painter.setPen(m_defaultTextColor); } painter.setFont(m_dayNumFont); if (m_showState & ShowLunar) { painter.drawText(QRect(bw - 1, bh, 24, 24), Qt::AlignCenter, dayNum); if (d == DDEWeekCalendar::FirstDayOfWeekend || d == DDEWeekCalendar::AFewDaysofWeek) painter.setPen(m_weekendsTextColor); else painter.setPen(m_defaultTextColor); painter.drawText(QRect(bw + 24, bh, 30, 25), Qt::AlignCenter, dayWeek); } else { QFontMetrics fm1 = painter.fontMetrics(); painter.drawText(QRect(cell->width() - (cell->width() / 2) - 4, bh - 1, 36, 26), Qt::AlignCenter, dayNum); if (d == DDEWeekCalendar::FirstDayOfWeekend || d == DDEWeekCalendar::AFewDaysofWeek) painter.setPen(m_weekendsTextColor); else painter.setPen(m_defaultTextColor); QFontMetrics fm = painter.fontMetrics(); while (fm.width(dayWeek) > cell->width() / 2) dayWeek.chop(1); //水平右对齐,上下居中 painter.drawText(QRect(0, bh, (cell->width() / 2), 26), Qt::AlignRight | Qt::AlignVCenter, dayWeek); } // draw text of day type if (m_showState & ShowLunar) { if (cell->width() > 100) { if (d == DDEWeekCalendar::FirstDayOfWeekend || d == DDEWeekCalendar::AFewDaysofWeek) painter.setPen(m_weekendsTextColor); else painter.setPen(m_defaultLunarColor); if (cell->width() < 132) { QString str_dayLunar = nullptr; if (dayLunar.count() > 2) { for (int i = 0; i < 2; i++) { str_dayLunar.append(dayLunar.at(i)); } str_dayLunar.append("..."); } else { str_dayLunar = dayLunar; } //水平左对齐,上下居中 painter.drawText(QRect(bw + 52 + 10, bh, 50, 25), Qt::AlignLeft | Qt::AlignVCenter, str_dayLunar); } else { painter.drawText(QRect(bw + 52 + 10, bh, 50, 25), Qt::AlignLeft | Qt::AlignVCenter, dayLunar); } } } painter.restore(); painter.end(); } void CWeekHeadView::wheelEvent(QWheelEvent *e) { //如果滚轮为左右方向则触发信号 if (e->orientation() == Qt::Orientation::Horizontal) { emit signalAngleDelta(e->angleDelta().x()); } } bool CWeekHeadView::event(QEvent *e) { if (m_touchGesture.event(e)) { //获取触摸状态 switch (m_touchGesture.getTouchState()) { case touchGestureOperation::T_SLIDE: { //在滑动状态如果可以更新数据则切换月份 if (m_touchGesture.isUpdate()) { m_touchGesture.setUpdate(false); switch (m_touchGesture.getMovingDir()) { case touchGestureOperation::T_LEFT: emit signalAngleDelta(-1); break; case touchGestureOperation::T_RIGHT: emit signalAngleDelta(1); break; default: break; } } break; } default: break; } return true; } else { return DWidget::event(e); } } dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/weekheadview.h000066400000000000000000000070241423264401600260550ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 WEEKHEADVIEW_H #define WEEKHEADVIEW_H #include "constants.h" #include "../touchgestureoperation.h" #include "src/dbusdatastruct.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class CustomFrame; /** * @brief The CWeekHeadView class * 周视图日期模块显示 */ class CWeekHeadView : public DWidget { Q_OBJECT public: enum ShowState { ShowLunar = 0x01, ShowLunarFestivalHighlight = 0x02, Normal = ShowLunar | ShowLunarFestivalHighlight, }; public: explicit CWeekHeadView(QWidget *parent = nullptr); ~CWeekHeadView() override; //根据系统主题类型设置颜色 void setTheMe(int type = 0); //设置一周的时间 void setWeekDay(QVector vDays, const QDate &selectDate); //设置黄历信息 void setHunagLiInfo(const QMap &huangLiInfo); signals: /** * @brief signalsViewSelectDate 选择日期的信号 * @param date 日期 */ void signalsViewSelectDate(QDate date); /** * @brief signalAngleDelta 发送滚动信号滚动相对量 * @param delta 滚动相对量 */ void signalAngleDelta(int delta); public slots: //设置是否显示阴历信息 void setLunarVisible(bool visible); private: //根据索引值获取当天是在一个月中的第几天 const QString getCellDayNum(int pos); //根据索引获取当天的日期 const QDate getCellDate(int pos); //根据索引值获取当天的阴历信息 const QString getLunar(int pos); //绘制周信息 void paintCell(QWidget *cell); bool eventFilter(QObject *o, QEvent *e) override; protected: void wheelEvent(QWheelEvent *e) override; bool event(QEvent *e) override; private slots: private: QList m_cellList; CustomFrame *m_monthLabel = nullptr; QVector m_days; ShowState m_showState = Normal; int m_selectedCell = 0; QMap m_huangLiInfo; QFont m_dayNumFont; QFont m_monthFont; QColor m_backgroundCircleColor = "#2ca7f8"; QColor m_backgroundShowColor = "#2CA7F8"; QColor m_defaultTextColor = "#6F6F6F"; QColor m_currentDayTextColor = "#FFFFFF"; QColor m_defaultLunarColor = "#898989"; QColor m_weekendsTextColor = "#0887FF"; QColor m_currentMonthColor = "#000000"; QColor m_backgroundColor = "#E6EEF2"; /** * @brief m_Background_Weekend_Color 周六周日背景色 */ QColor m_Background_Weekend_Color = "#00429A"; QColor m_solofestivalLunarColor = "#4DFF7272"; int m_themetype = 1; const int m_radius = 8; /** * @brief m_touchGesture 触摸手势处理 */ touchGestureOperation m_touchGesture; }; #endif // MYCALENDARWIDGET_H dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/weekview.cpp000066400000000000000000000276321423264401600255750ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "weekview.h" #include "scheduledatamanage.h" #include "constants.h" #include #include #include #include #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE CWeekView::CWeekView(const GetWeekNumOfYear &getWeekNumOfYear, QWidget *parent) : QWidget(parent) , m_touchGesture(this) , m_weekNumWidget(nullptr) { QHBoxLayout *hBoxLayout = new QHBoxLayout; hBoxLayout->setMargin(0); hBoxLayout->setSpacing(0); //上一周按钮 m_prevButton = new DIconButton(DStyle::SP_ArrowLeft, this); m_prevButton->setFixedSize(36, 36); connect(m_prevButton, &DIconButton::clicked, this, &CWeekView::signalBtnPrev); m_weekNumWidget = new CWeekNumWidget(getWeekNumOfYear, this); //下一周按钮 m_nextButton = new DIconButton(DStyle::SP_ArrowRight, this); m_nextButton->setFixedSize(36, 36); connect(m_nextButton, &DIconButton::clicked, this, &CWeekView::signalBtnNext); hBoxLayout->addWidget(m_prevButton); hBoxLayout->addWidget(m_weekNumWidget); hBoxLayout->addWidget(m_nextButton); //设置布局 setLayout(hBoxLayout); connect(m_weekNumWidget, &CWeekNumWidget::signalsSelectDate, this, &CWeekView::signalsSelectDate); connect(m_weekNumWidget, &CWeekNumWidget::signalBtnPrev, this, &CWeekView::signalBtnPrev); connect(m_weekNumWidget, &CWeekNumWidget::signalBtnNext, this, &CWeekView::signalBtnNext); } CWeekView::~CWeekView() { } /** * @brief setCurrentDate 设置选择时间,并更新 * @param date 时间 */ void CWeekView::setSelectDate(const QDate date) { m_weekNumWidget->setSelectDate(date); } /** * @brief CWeekView::setCurrent 设置当前时间 * @param date */ void CWeekView::setCurrent(const QDateTime &dateTime) { m_weekNumWidget->setCurrent(dateTime); } /** * @brief setTheMe 根据系统主题类型设置颜色 * @param type 系统主题类型 */ void CWeekView::setTheMe(int type) { m_weekNumWidget->setTheMe(type); } /** * @brief wheelEvent 鼠标滚轮切换上一周下一周 * @param event 鼠标滚轮事件 */ void CWeekView::wheelEvent(QWheelEvent *event) { bool isDragging = false; emit signalIsDragging(isDragging); //判断是否是拖拽状态 if (!isDragging) { //左移切换上周,右移切换下周 if (event->delta() > 0) { //上一周 signalBtnPrev(); } else { //下一周 signalBtnNext(); } } } bool CWeekView::event(QEvent *e) { if (m_touchGesture.event(e)) { //获取触摸状态 switch (m_touchGesture.getTouchState()) { case touchGestureOperation::T_SLIDE: { //在滑动状态如果可以更新数据则切换月份 if (m_touchGesture.isUpdate()) { m_touchGesture.setUpdate(false); switch (m_touchGesture.getMovingDir()) { case touchGestureOperation::T_LEFT: //切换下周 signalBtnNext(); break; case touchGestureOperation::T_RIGHT: //切换上周 signalBtnPrev(); break; default: break; } } break; } default: break; } return true; } else { return DWidget::event(e); } } CWeekNumWidget::CWeekNumWidget(const GetWeekNumOfYear &getWeekNumOfYear, QWidget *parent) : QWidget(parent) , m_getWeekNumOfYear(getWeekNumOfYear) , m_isFocus(false) { m_dayNumFont.setPixelSize(DDECalendar::FontSizeSixteen); m_dayNumFont.setWeight(QFont::Light); setFocusPolicy(Qt::StrongFocus); QHBoxLayout *hBoxLayout = new QHBoxLayout; hBoxLayout->setSpacing(0); hBoxLayout->setMargin(0); //显示周数的widget for (int c = 0; c != DDEWeekCalendar::NumWeeksDisplayed; ++c) { QWidget *cell = new QWidget; //设置事件过滤器 cell->installEventFilter(this); hBoxLayout->addWidget(cell, Qt::AlignTop); m_cellList.append(cell); } this->setLayout(hBoxLayout); } CWeekNumWidget::~CWeekNumWidget() { } void CWeekNumWidget::setSelectDate(const QDate date) { m_selectDate = date; updateDate(); } void CWeekNumWidget::setCurrent(const QDateTime &dateTime) { m_currentDate = dateTime; } void CWeekNumWidget::setTheMe(int type) { if (type == 0 || type == 1) { m_defaultTextColor = Qt::black; m_backgrounddefaultColor = Qt::white; m_currentDayTextColor = Qt::white; m_backgroundcurrentDayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); m_fillColor = "#FFFFFF"; } else if (type == 2) { m_defaultTextColor = "#C0C6D4"; m_backgrounddefaultColor = "#FFFFFF"; m_backgrounddefaultColor.setAlphaF(0.05); m_currentDayTextColor = "#B8D3FF"; m_backgroundcurrentDayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); m_fillColor = "#000000"; m_fillColor.setAlphaF(0.05); } } void CWeekNumWidget::resizeEvent(QResizeEvent *event) { //获取当前所有cell的宽度 const int _allCellWidth = width(); //获取当前cell的宽度 int w = _allCellWidth / DDEWeekCalendar::NumWeeksDisplayed; //最小显示的宽度 const int _minWidget = 36; //默认都显示 QVector vIndex(10, true); //cell的宽度小于最小宽度则隐藏部分显示 if (w < _minWidget) { //计算前后需要隐藏的个数 int t_num = qRound((_minWidget * DDEWeekCalendar::NumWeeksDisplayed - _allCellWidth) / _minWidget / 2.0); for (int i = 0; i < t_num; i++) { vIndex[i] = false; vIndex[9 - i] = false; } } //设置是否显示 for (int i = 0; i < DDEWeekCalendar::NumWeeksDisplayed; i++) { m_cellList[i]->setVisible(vIndex[i]); } QWidget::resizeEvent(event); //更新显示 update(); } void CWeekNumWidget::focusInEvent(QFocusEvent *event) { QWidget::focusInEvent(event); switch (event->reason()) { case Qt::TabFocusReason: case Qt::BacktabFocusReason: case Qt::ActiveWindowFocusReason: m_isFocus = true; break; default: m_isFocus = false; break; }; update(); } void CWeekNumWidget::focusOutEvent(QFocusEvent *event) { QWidget::focusOutEvent(event); m_isFocus = false; update(); } void CWeekNumWidget::paintCell(QWidget *cell) { const QRect rect(0, 0, cell->width(), cell->height()); const int pos = m_cellList.indexOf(cell); //计算当前日期周数 const int _showWeekNum = m_getWeekNumOfYear(m_days[pos]); const int _currentWeekNum = m_getWeekNumOfYear(m_currentDate.date()); const bool isCurrentDay = _showWeekNum == _currentWeekNum && m_days[pos].year() == m_currentDate.date().year(); const bool isSelectDay = m_days[pos].weekNumber() == m_selectDate.weekNumber(); QPainter painter(cell); painter.setRenderHints(QPainter::Antialiasing); painter.save(); painter.setBrush(QBrush(m_fillColor)); painter.setPen(Qt::NoPen); painter.drawRect(rect); //画矩形 painter.restore(); painter.setPen(Qt::SolidLine); const QString dayNum = QString::number(_showWeekNum); if (isSelectDay) { QRect fillRect((cell->width() - 24) / 2, (cell->height() - 32) / 2 + 4, 24, 24); painter.save(); painter.setRenderHint(QPainter::Antialiasing); painter.setBrush(QBrush(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor())); painter.setPen(Qt::NoPen); painter.drawEllipse(fillRect); if (m_isFocus) { //绘制焦点获取效果 QPen pen; pen.setWidth(2); pen.setColor(CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor()); painter.setPen(pen); //在原有的选中效果外面再绘制一圈 QRectF focusRect(fillRect.x() - 2, fillRect.y() - 2, fillRect.width() + 4, fillRect.height() + 4); painter.setBrush(Qt::NoBrush); painter.drawEllipse(focusRect); } painter.restore(); painter.setPen(m_currentDayTextColor); painter.setFont(m_dayNumFont); painter.drawText(QRect(0, 0, cell->width(), cell->height()), Qt::AlignCenter, dayNum); } else { if (isCurrentDay) { painter.setPen(m_backgroundcurrentDayColor); } else { painter.setPen(m_defaultTextColor); } painter.setFont(m_dayNumFont); painter.drawText(QRect(0, 0, cell->width(), cell->height()), Qt::AlignCenter, dayNum); } painter.end(); } bool CWeekNumWidget::eventFilter(QObject *o, QEvent *e) { QWidget *cell = qobject_cast(o); if (cell && m_cellList.contains(cell)) { const int pos = m_cellList.indexOf(cell); //获取每个cell的时间,如果小于1900年则过滤显示和点击操作 if (m_days[pos].year() < DDECalendar::QueryEarliestYear) return false; if (e->type() == QEvent::Paint) { paintCell(cell); } else if (e->type() == QEvent::MouseButtonPress) { QMouseEvent *mouseEvent = dynamic_cast(e); if (mouseEvent->button() == Qt::LeftButton) { cellClicked(cell); } } } return false; } void CWeekNumWidget::mousePressEvent(QMouseEvent *event) { QWidget::mousePressEvent(event); m_isFocus = false; } /** * @brief setSelectedCell 设置被选择的周数 * @param index 周数所在的索引 */ void CWeekNumWidget::setSelectedCell(int index) { if (m_selectedCell == index) return; const int prevPos = m_selectedCell; m_selectedCell = index; m_cellList.at(prevPos)->update(); m_cellList.at(index)->update(); m_selectDate = m_days[index]; const QString dayNum = QString::number(m_getWeekNumOfYear(m_selectDate)); if (m_days[index].year() < DDECalendar::QueryEarliestYear && dayNum != "1") return; emit signalsSelectDate(m_days[index]); } void CWeekNumWidget::updateDate() { for (int i = 0 ; i < DDEWeekCalendar::NumWeeksDisplayed; ++i) { m_days[i] = m_selectDate.addDays((i - 4) * DDEWeekCalendar::AFewDaysofWeek); if (m_days[i] == m_selectDate) m_selectedCell = i; } update(); } bool CWeekNumWidget::event(QEvent *e) { if (e->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = dynamic_cast(e); if (focusWidget() == this) { //如果焦点在该widget上,可以左右键切换时间 if (keyEvent->key() == Qt::Key_Left) { emit signalBtnPrev(); } if (keyEvent->key() == Qt::Key_Right) { emit signalBtnNext(); } } } return DWidget::event(e); } void CWeekNumWidget::cellClicked(QWidget *cell) { const int pos = m_cellList.indexOf(cell); if (pos == -1) return; setSelectedCell(pos); update(); } dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/weekview.h000066400000000000000000000100461423264401600252310ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 WEEKVIEW_H #define WEEKVIEW_H #include "../widget/touchgestureoperation.h" #include #include #include #include DWIDGET_USE_NAMESPACE typedef int(*GetWeekNumOfYear)(const QDate &); /** * @brief The CWeekView class * 周数显示类 */ class CWeekNumWidget; class CWeekView : public QWidget { Q_OBJECT public: explicit CWeekView(const GetWeekNumOfYear &getWeekNumOfYear, QWidget *parent = nullptr); ~CWeekView() override; //设置选择时间,并更新 void setSelectDate(const QDate date); //设置当前时间 void setCurrent(const QDateTime &dateTime); //根据系统主题类型设置颜色 void setTheMe(int type = 0); signals: /** * @brief signalsSelectDate 选择日期的信号 * @param date 选择的日期 */ void signalsSelectDate(const QDate &date); /** * @brief signalIsDragging 判断是否是拖拽状态 * @param isDragging 是否是拖拽状态 */ void signalIsDragging(bool &isDragging); /** * @brief signalBtnPrev 前一周按钮信号 */ void signalBtnPrev(); /** * @brief signalBtnNext 后一周按钮信号 */ void signalBtnNext(); protected: /** * @brief wheelEvent 鼠标滚轮切换上一周下一周 * @param event 鼠标滚轮事件 */ void wheelEvent(QWheelEvent *event) override; bool event(QEvent *e) override; private: //上一周按钮 DIconButton *m_prevButton = nullptr; //下一周按钮 DIconButton *m_nextButton = nullptr; //触摸手势处理 touchGestureOperation m_touchGesture; CWeekNumWidget *m_weekNumWidget; }; class CWeekNumWidget : public QWidget { Q_OBJECT public: explicit CWeekNumWidget(const GetWeekNumOfYear &getWeekNumOfYear, QWidget *parent); ~CWeekNumWidget() override; //设置选择时间,并更新 void setSelectDate(const QDate date); //设置当前时间 void setCurrent(const QDateTime &dateTime); //根据系统主题类型设置颜色 void setTheMe(int type = 0); protected: void resizeEvent(QResizeEvent *event) override; void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; bool event(QEvent *e) override; bool eventFilter(QObject *o, QEvent *e) override; void mousePressEvent(QMouseEvent *event) override; private: //绘制周数 void paintCell(QWidget *cell); //设置被选择的周数 void setSelectedCell(int index); //更新数据 void updateDate(); signals: //选择日期的信号 void signalsSelectDate(const QDate &date); //前一周按钮信号 void signalBtnPrev(); //后一周按钮信号 void signalBtnNext(); public slots: //选择点击的日期 void cellClicked(QWidget *cell); private: QList m_cellList; //选择的日期 QDate m_selectDate; QDate m_days[10]; int m_selectedCell = 0; QFont m_dayNumFont; QDateTime m_currentDate; GetWeekNumOfYear m_getWeekNumOfYear; QColor m_defaultTextColor = Qt::black; QColor m_backgrounddefaultColor = Qt::white; QColor m_currentDayTextColor = Qt::white; QColor m_backgroundcurrentDayColor = "#0081FF"; QColor m_fillColor = Qt::white; bool m_isFocus; }; #endif // MONTDAYVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/weekwindow.cpp000066400000000000000000000424171423264401600261300ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "weekwindow.h" #include "scheduleview.h" #include "constants.h" #include "weekheadview.h" #include "weekview.h" #include "schedulesearchview.h" #include "todaybutton.h" #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CWeekWindow::CWeekWindow(QWidget *parent) : CScheduleBaseWidget(parent) , m_today(new CTodayButton) { setContentsMargins(0, 0, 0, 0); initUI(); initConnection(); setLunarVisible(m_calendarManager->getShowLunar()); } CWeekWindow::~CWeekWindow() { } /** * @brief setLunarVisible 设置是否显示阴历信息 * @param state 是否显示阴历信息 */ void CWeekWindow::setLunarVisible(bool state) { m_weekHeadView->setLunarVisible(state); m_YearLunarLabel->setVisible(state); m_scheduleView->setLunarVisible(state); } /** * @brief initUI 初始化界面设置 */ void CWeekWindow::initUI() { m_today->setText(QCoreApplication::translate("today", "Today", "Today")); m_today->setFixedSize(DDEWeekCalendar::WTodayWindth, DDEWeekCalendar::WTodayHeight); DPalette todayPa = m_today->palette(); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, Qt::white); todayPa.setColor(DPalette::Light, Qt::white); QColor sbColor("#002A57"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); QFont todayfont; todayfont.setWeight(QFont::Medium); todayfont.setPixelSize(DDECalendar::FontSizeFourteen); m_today->setFont(todayfont); m_today->setPalette(todayPa); //新建年份label m_YearLabel = new QLabel(); m_YearLabel->setFixedHeight(DDEWeekCalendar::W_YLabelHeight); QFont t_labelF; t_labelF.setWeight(QFont::Medium); t_labelF.setPixelSize(DDECalendar::FontSizeTwentyfour); m_YearLabel->setFont(t_labelF); DPalette LunaPa = m_YearLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(LunaPa); m_YearLunarLabel = new QLabel(this); m_YearLunarLabel->setFixedSize(DDEWeekCalendar::W_YLunatLabelWindth, DDEWeekCalendar::W_YLunatLabelHeight); m_weekview = new CWeekView(&CalendarDateDataManager::getWeekNumOfYear, this); m_weekLabel = new QLabel(); m_weekLabel->setFixedHeight(DDEWeekCalendar::W_YLabelHeight); QFont weeklabelF; weeklabelF.setWeight(QFont::Medium); weeklabelF.setPixelSize(DDECalendar::FontSizeFourteen); m_weekLabel->setFont(weeklabelF); DPalette wpa = m_weekLabel->palette(); wpa.setColor(DPalette::WindowText, QColor("#717171")); m_weekLabel->setPalette(wpa); m_weekLabel->setText(tr("Week")); QFont yLabelF; yLabelF.setWeight(QFont::Medium); yLabelF.setPixelSize(DDECalendar::FontSizeFourteen); m_YearLunarLabel->setFont(yLabelF); DPalette YearLpa = m_YearLunarLabel->palette(); YearLpa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_YearLunarLabel->setPalette(YearLpa); QHBoxLayout *yeartitleLayout = new QHBoxLayout; yeartitleLayout->setMargin(0); yeartitleLayout->setSpacing(0); yeartitleLayout->setContentsMargins(21, 20, 8, 0); yeartitleLayout->addWidget(m_YearLabel); QHBoxLayout *yeartitleLayout1 = new QHBoxLayout; yeartitleLayout1->setMargin(0); yeartitleLayout1->setSpacing(0); yeartitleLayout1->setContentsMargins(14, 9, 0, 7); yeartitleLayout1->addWidget(m_YearLunarLabel); yeartitleLayout->addLayout(yeartitleLayout1); yeartitleLayout->addStretch(); m_todayframe = new CustomFrame; m_todayframe->setContentsMargins(0, 0, 0, 0); m_todayframe->setRoundState(true, true, true, true); m_todayframe->setBColor(Qt::white); m_todayframe->setFixedHeight(DDEYearCalendar::Y_MLabelHeight); m_todayframe->setboreder(1); QHBoxLayout *todaylayout = new QHBoxLayout; todaylayout->setMargin(0); todaylayout->setSpacing(0); //将显示周数的view加入布局 todaylayout->addWidget(m_weekview); //设置布局 m_todayframe->setLayout(todaylayout); yeartitleLayout->addWidget(m_todayframe, 0, Qt::AlignCenter); yeartitleLayout->addSpacing(10); yeartitleLayout->addWidget(m_weekLabel, 0, Qt::AlignCenter); yeartitleLayout->addStretch(); yeartitleLayout->addWidget(m_today, 0, Qt::AlignRight); m_weekHeadView = new CWeekHeadView(this); m_scheduleView = new CScheduleView(this); m_scheduleView->setviewMargin(73, 109 + 30, 0, 0); m_scheduleView->setRange(763, 1032, QDate(2019, 8, 12), QDate(2019, 8, 18)); m_mainHLayout = new QVBoxLayout; m_mainHLayout->setMargin(0); m_mainHLayout->setSpacing(0); m_mainHLayout->setContentsMargins(8, 20, 0, 9); m_mainHLayout->addWidget(m_weekHeadView); m_mainHLayout->addWidget(m_scheduleView); QVBoxLayout *hhLayout = new QVBoxLayout; hhLayout->setMargin(0); hhLayout->setSpacing(0); hhLayout->setContentsMargins(0, 0, 0, 0); hhLayout->addLayout(yeartitleLayout); hhLayout->addLayout(m_mainHLayout); m_tMainLayout = new QHBoxLayout; m_tMainLayout->setMargin(0); m_tMainLayout->setSpacing(0); m_tMainLayout->setContentsMargins(0, 0, 10, 0); m_tMainLayout->addLayout(hhLayout); QVBoxLayout *ssLayout = new QVBoxLayout; ssLayout->setMargin(0); ssLayout->setSpacing(0); ssLayout->setContentsMargins(0, 0, 0, 10); m_tMainLayout->addLayout(ssLayout); this->setLayout(m_tMainLayout); setTabOrder(m_weekview, m_today); setTabOrder(m_today, m_scheduleView); } /** * @brief initConnection 初始化信号和槽的连接 */ void CWeekWindow::initConnection() { connect(m_today, &CTodayButton::clicked, this, &CWeekWindow::slottoday); //周数信息区域前按钮点击事件关联触发前一周 connect(m_weekview, &CWeekView::signalBtnPrev, this, &CWeekWindow::slotprev); //周数信息区域后按钮点击事件关联触发后一周 connect(m_weekview, &CWeekView::signalBtnNext, this, &CWeekWindow::slotnext); connect(m_weekview, &CWeekView::signalsSelectDate, this, &CWeekWindow::slotSelectDate); connect(m_weekHeadView, &CWeekHeadView::signalsViewSelectDate, this, &CWeekWindow::slotViewSelectDate); connect(m_weekview, &CWeekView::signalIsDragging, this, &CWeekWindow::slotIsDragging); //日程信息区域滚动信号关联 connect(m_scheduleView, &CScheduleView::signalAngleDelta, this, &CWeekWindow::slotAngleDelta); //每周信息区域滚动信号关联 connect(m_weekHeadView, &CWeekHeadView::signalAngleDelta, this, &CWeekWindow::slotAngleDelta); //双击"..."标签切换日视图 connect(m_scheduleView, &CScheduleView::signalsCurrentScheduleDate, this, &CWeekWindow::slotViewSelectDate); connect(m_scheduleView, &CScheduleView::signalSwitchPrePage, this, &CWeekWindow::slotSwitchPrePage); connect(m_scheduleView, &CScheduleView::signalSwitchNextPage, this, &CWeekWindow::slotSwitchNextPage); } /** * @brief setTheMe 根据系统主题类型设置颜色 * @param type 系统主题类型 */ void CWeekWindow::setTheMe(int type) { if (type == 0 || type == 1) { DPalette todayPa = m_today->palette(); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, Qt::white); todayPa.setColor(DPalette::Light, Qt::white); QColor sbColor("#002A57"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); m_today->setPalette(todayPa); QColor todayhover = "#000000"; todayhover.setAlphaF(0.1); QColor todaypress = "#000000"; todaypress.setAlphaF(0.2); m_today->setBColor("#FFFFFF", todayhover, todaypress, "#FFFFFF", todayhover, todaypress); m_today->setTColor(todayColor, "#001A2E", "#0081FF"); m_today->setshadowColor(sbColor); //返回今天按钮的背景色 m_todayframe->setBColor(Qt::white); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(pa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_YearLunarLabel->setPalette(LunaPa); m_YearLunarLabel->setForegroundRole(DPalette::WindowText); DPalette wpa = m_weekLabel->palette(); wpa.setColor(DPalette::WindowText, QColor("#717171")); m_weekLabel->setPalette(wpa); m_weekLabel->setForegroundRole(DPalette::WindowText); } else if (type == 2) { DPalette todayPa = m_today->palette(); QColor todayColor = CScheduleDataManage::getScheduleDataManage()->getSystemActiveColor(); todayPa.setColor(DPalette::ButtonText, todayColor); todayPa.setColor(DPalette::Dark, "#414141"); todayPa.setColor(DPalette::Light, "#484848"); QColor sbColor("#000000"); sbColor.setAlphaF(0.05); todayPa.setColor(DPalette::Shadow, sbColor); m_today->setPalette(todayPa); m_today->setBColor("#484848", "#727272", "#242424", "#414141", "#535353", "#282828"); m_today->setTColor(todayColor, "#FFFFFF", "#0081FF"); m_today->setshadowColor(sbColor); //设置返回今天按钮的背景色 QColor bColor = "#FFFFFF"; bColor.setAlphaF(0.05); m_todayframe->setBColor(bColor); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_YearLabel->setPalette(pa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#798BA8")); m_YearLunarLabel->setPalette(LunaPa); m_YearLunarLabel->setForegroundRole(DPalette::WindowText); DPalette wpa = m_weekLabel->palette(); wpa.setColor(DPalette::WindowText, QColor("#717171")); m_weekLabel->setPalette(wpa); m_weekLabel->setForegroundRole(DPalette::WindowText); } m_weekview->setTheMe(type); m_weekHeadView->setTheMe(type); m_scheduleView->setTheMe(type); } /** * @brief setTime 设置CScheduleView的时间 * @param time 时间 */ void CWeekWindow::setTime(QTime time) { m_scheduleView->setTime(time); } /** * @brief setSearchWFlag 设置搜索标志 * @param flag 是否进行了搜索 */ void CWeekWindow::setSearchWFlag(bool flag) { m_searchFlag = flag; update(); } /** * @brief CWeekWindow::updateHeight 更新全天区域高度 */ void CWeekWindow::updateHeight() { m_scheduleView->updateHeight(); } /** * @brief CWeekWindow::setYearData 设置年显示和今天按钮显示 */ void CWeekWindow::setYearData() { if (getSelectDate() == getCurrendDateTime().date()) { m_today->setText(QCoreApplication::translate("today", "Today", "Today")); } else { m_today->setText(QCoreApplication::translate("Return Today", "Today", "Return Today")); } if (getShowLunar()) { m_YearLabel->setText(QString::number(getSelectDate().year()) + tr("Y")); } else { m_YearLabel->setText(QString::number(getSelectDate().year())); } } /** * @brief CWeekWindow::updateShowDate 更新显示时间 * @param isUpdateBar */ void CWeekWindow::updateShowDate(const bool isUpdateBar) { setYearData(); QVector _weekShowData = m_calendarManager->getCalendarDateDataManage()->getWeekDate(getSelectDate()); m_weekHeadView->setWeekDay(_weekShowData, getSelectDate()); //获取一周的开始结束时间 m_startDate = _weekShowData.first(); m_stopDate = _weekShowData.last(); //如果时间无效则打印log if (m_startDate.isNull() || m_stopDate.isNull()) { qWarning() << "week start or stop date error"; } //设置全天和非全天显示时间范围 m_scheduleView->setRange(m_startDate, m_stopDate); m_scheduleView->setTimeFormat(m_calendarManager->getCalendarDateDataManage()->getTimeFormat()); //是否更新显示周数窗口 if (isUpdateBar) { m_weekview->setCurrent(getCurrendDateTime()); m_weekview->setSelectDate(getSelectDate()); } if (getShowLunar()) updateShowLunar(); updateShowSchedule(); update(); } /** * @brief CWeekWindow::updateShowSchedule 更新日程显示 */ void CWeekWindow::updateShowSchedule() { QMap > _weekScheduleInfo = m_calendarManager->getScheduleTask()->getScheduleInfo(m_startDate, m_stopDate); m_scheduleView->setShowScheduleInfo(_weekScheduleInfo); } /** * @brief CWeekWindow::updateShowLunar 更新显示农历信息 */ void CWeekWindow::updateShowLunar() { getLunarInfo(); m_YearLunarLabel->setText(m_lunarYear); QMap _weekHuangLiInfo = m_calendarManager->getScheduleTask()->getHuangLiInfo(m_startDate, m_stopDate); m_weekHeadView->setHunagLiInfo(_weekHuangLiInfo); } /** * @brief CWeekWindow::setSelectSearchScheduleInfo 设置选中搜索日程 * @param info */ void CWeekWindow::setSelectSearchScheduleInfo(const ScheduleDataInfo &info) { m_scheduleView->setSelectSchedule(info); } /** * @brief CWeekWindow::deleteselectSchedule 快捷键删除日程 */ void CWeekWindow::deleteselectSchedule() { m_scheduleView->slotDeleteitem(); } /** * @brief CWeekWindow::slotIsDragging 判断是否可以拖拽 * @param isDragging */ void CWeekWindow::slotIsDragging(bool &isDragging) { isDragging = m_scheduleView->IsDragging(); } /** * @brief CWeekWindow::slotViewSelectDate 切换日视图并设置选择时间 * @param date */ void CWeekWindow::slotViewSelectDate(const QDate &date) { if (setSelectDate(date)) { //更加界面 updateData(); emit signalSwitchView(3); } } void CWeekWindow::slotSwitchPrePage() { slotprev(); } void CWeekWindow::slotSwitchNextPage() { slotnext(); } /** * @brief slotprev 切换到上一周,隐藏日程浮框 */ void CWeekWindow::slotprev() { switchDate(getSelectDate().addDays(-7)); } /** * @brief slotnext 切换到下一周,隐藏日程浮框 */ void CWeekWindow::slotnext() { switchDate(getSelectDate().addDays(7)); } /** * @brief slottoday 返回到当前时间,隐藏日程浮框 */ void CWeekWindow::slottoday() { switchDate(getCurrendDateTime().date()); } /** * @brief CWeekWindow::slotSelectDate 修改选择时间 * @param date */ void CWeekWindow::slotSelectDate(const QDate &date) { //更新选择时间 setSelectDate(date); updateShowDate(false); } /** * @brief slotAngleDelta 接受处理滚动相对量 * @param delta 滚动相对量 */ void CWeekWindow::slotAngleDelta(int delta) { //如果为拖拽状态则退出 if (!m_scheduleView->IsDragging()) { if (delta > 0) { slotprev(); } else if (delta < 0) { slotnext(); } } } /** * @brief CWeekWindow::switchDate 切换选择时间 * @param date */ void CWeekWindow::switchDate(const QDate &date) { //隐藏提示框 slotScheduleHide(); //设置选择时间 if (setSelectDate(date, true)) { updateData(); } } /** * @brief slotScheduleHide 隐藏日程浮框 */ void CWeekWindow::slotScheduleHide() { m_scheduleView->slotScheduleShow(false); } /** * @brief resizeEvent 调整周视图窗口 * @param event 窗口大小调整事件 */ void CWeekWindow::resizeEvent(QResizeEvent *event) { qreal headH = height() * 0.0924 + 0.5; qreal dw = width() * 0.4186 + 0.5; int dh = 36; int winframe = 10; m_mainHLayout->setContentsMargins(10, 20, 0, 10); if (m_searchFlag) { m_tMainLayout->setContentsMargins(0, 0, 0, 0); } else { winframe += 10; m_tMainLayout->setContentsMargins(0, 0, 10, 0); } //添加1个按钮的宽度 36。原来m_weekview 不包含前后按钮(若加2个按钮的宽度,会导致窗口缩小的时候按钮显示不全) if (!m_searchFlag) { m_weekview->setFixedSize(qRound(dw + 36), dh); } else { m_weekview->setFixedSize(qRound(dw - 100 + 36), dh); } m_weekHeadView->setFixedSize(width() - winframe, qRound(headH)); QWidget::resizeEvent(event); } /** * @brief mousePressEvent 鼠标单击隐藏日程浮框 * @param event 鼠标事件 */ void CWeekWindow::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event); slotScheduleHide(); } dde-calendar-5.9.1/calendar-client/src/widget/weekWidget/weekwindow.h000066400000000000000000000074761423264401600256030ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 WEEKWINDOW_H #define WEEKWINDOW_H #include "customframe.h" #include "src/scheduledatainfo.h" #include "cschedulebasewidget.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class CWeekHeadView; class CaLunarDayInfo; class CWeekView; class CScheduleView; class CScheduleSearchView; class CTodayButton; class CWeekWindow: public CScheduleBaseWidget { Q_OBJECT public: explicit CWeekWindow(QWidget *parent = nullptr); ~CWeekWindow() override; //设置是否显示阴历信息 void setLunarVisible(bool state); //初始化界面设置 void initUI(); //初始化信号和槽的连接 void initConnection(); //根据系统主题类型设置颜色 void setTheMe(int type = 0); //设置CScheduleView的时间 void setTime(QTime time); //设置搜索标志 void setSearchWFlag(bool flag); //更新全天区域高度 void updateHeight(); //设置年显示和今天按钮显示 void setYearData() override; //更新显示时间 void updateShowDate(const bool isUpdateBar = true) override; //更新日程显示 void updateShowSchedule() override; //更新显示农历信息 void updateShowLunar() override; //设置选中搜索日程 void setSelectSearchScheduleInfo(const ScheduleDataInfo &info) override; //删除选中日程 void deleteselectSchedule() override; signals: /** * @brief signalCurrentDate 设置时间信号 * @param date 时间 */ void signalCurrentDate(QDate date); /** * @brief signalsViewSelectDate 选择时间的信号 * @param date 时间 */ void signalsViewSelectDate(QDate date); public slots: //判断是否可以拖拽 void slotIsDragging(bool &isDragging); //切换日视图并设置选择时间 void slotViewSelectDate(const QDate &date); void slotSwitchPrePage(); void slotSwitchNextPage(); public slots: //隐藏日程浮框 void slotScheduleHide(); private slots: //切换上一周 void slotprev(); //切换下一周 void slotnext(); //返回到当前时间 void slottoday(); //修改选择时间 void slotSelectDate(const QDate &date); //接受处理滚动相对量 void slotAngleDelta(int delta); private: //切换选择时间 void switchDate(const QDate &date); protected: void resizeEvent(QResizeEvent *event) override; void mousePressEvent(QMouseEvent *event) override; private: CWeekHeadView *m_weekHeadView = nullptr; //周视图头 CTodayButton *m_today = nullptr; QDate m_currentdate; QLabel *m_YearLabel = nullptr; QLabel *m_YearLunarLabel = nullptr; QLabel *m_weekLabel = nullptr; //显示周数 CWeekView *m_weekview = nullptr; CustomFrame *m_todayframe = nullptr; CScheduleView *m_scheduleView = nullptr; QVBoxLayout *m_mainHLayout = nullptr; QString m_searchText; QHBoxLayout *m_tMainLayout = nullptr; bool m_searchFlag = false; QDate m_startDate; QDate m_stopDate; }; #endif // YEARWINDOW_H dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/000077500000000000000000000000001423264401600232365ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/yearscheduleview.cpp000066400000000000000000000270471423264401600273240ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 "yearscheduleview.h" #include "scheduledlg.h" #include "scheduledatamanage.h" #include "constants.h" #include #include #include DGUI_USE_NAMESPACE CYearScheduleView::CYearScheduleView(QWidget *parent) : DWidget(parent) { m_textfont.setWeight(QFont::Medium); m_textfont.setPixelSize(DDECalendar::FontSizeTwelve); } CYearScheduleView::~CYearScheduleView() { } bool YScheduleDateThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2) { QDate bDate1 = s1.getBeginDateTime().date(); QDate eDate1 = s1.getEndDateTime().date(); QDate bDate2 = s2.getBeginDateTime().date(); QDate eDate2 = s2.getEndDateTime().date(); if (bDate1 != eDate1 && bDate2 == eDate2) { return true; } else if (bDate1 == eDate1 && bDate2 != eDate2) { return false; } else if (bDate1 != eDate1 && bDate2 != eDate2) { return bDate1 < bDate2; } else { if (s1.getBeginDateTime() == s2.getBeginDateTime()) { return s1.getTitleName() < s2.getTitleName(); } else { return s1.getBeginDateTime() < s2.getBeginDateTime(); } } } bool YScheduleDaysThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2) { return s1.getBeginDateTime().date().daysTo(s1.getEndDateTime().date()) > s2.getBeginDateTime().date().daysTo(s2.getEndDateTime().date()); } void CYearScheduleView::setData(QVector &vListData) { QVector valldayListData, vDaylistdata; for (int i = 0; i < vListData.count(); i++) { if (vListData.at(i).getAllDay()) { valldayListData.append(vListData.at(i)); } else { vDaylistdata.append(vListData.at(i)); } } std::sort(valldayListData.begin(), valldayListData.end(), YScheduleDaysThan); std::sort(valldayListData.begin(), valldayListData.end(), YScheduleDateThan); std::sort(vDaylistdata.begin(), vDaylistdata.end(), YScheduleDaysThan); std::sort(vDaylistdata.begin(), vDaylistdata.end(), YScheduleDateThan); for (int i = 0; i < valldayListData.count(); i++) { QVector::iterator iter = valldayListData.begin(); if (valldayListData.at(i).getType() == DDECalendar::FestivalTypeID) { ScheduleDataInfo moveDate; moveDate = valldayListData.at(i); valldayListData.removeAt(i); valldayListData.insert(iter, moveDate); } } m_vlistData.clear(); m_vlistData.append(valldayListData); m_vlistData.append(vDaylistdata); if (m_vlistData.size() > DDEYearCalendar::YearScheduleListMaxcount) { QVector vTListData; for (int i = 0; i < 4; i++) { if (m_vlistData.at(i).getBeginDateTime().date() != m_vlistData.at(i).getEndDateTime().date() && !m_vlistData.at(i).getAllDay()) { if (m_vlistData.at(i).getBeginDateTime().date() != m_currentDate) { m_vlistData[i].setAllDay(true); } } vTListData.append(m_vlistData.at(i)); } ScheduleDataInfo info; info.setTitleName("......"); info.setID(-1); vTListData.append(info); m_vlistData = vTListData; } } void CYearScheduleView::clearData() { m_vlistData.clear(); } void CYearScheduleView::showWindow() { if (m_vlistData.isEmpty()) { setFixedSize(130, 45); } else { updateDateShow(); } } void CYearScheduleView::setTheMe(int type) { if (type == 0 || type == 1) { m_btimecolor = "#414D68"; m_btimecolor.setAlphaF(0.7); m_btTextColor = "#414D68"; } else if (type == 2) { m_btimecolor = "#C0C6D4"; m_btimecolor.setAlphaF(0.7); m_btTextColor = "#C0C6D4"; } } void CYearScheduleView::setCurrentDate(const QDate &cdate) { m_currentDate = cdate; } QDate CYearScheduleView::getCurrentDate() { return m_currentDate; } void CYearScheduleView::setTimeFormat(const QString &format) { m_timeFormat = format; update(); } int CYearScheduleView::getPressScheduleIndex() { int resutle = -1; //获取全局坐标 QPoint currentPos = QCursor::pos(); //转换为当前坐标 currentPos = this->mapFromGlobal(currentPos); for (int i = 0; i < m_drawRect.size(); ++i) { //若坐标在绘制标签中则更新返回值 if (m_drawRect.at(i).contains(currentPos)) { resutle = i; break; } } return resutle; } void CYearScheduleView::updateDateShow() { int sViewNum = 0; if (!m_vlistData.isEmpty()) { if (m_vlistData.size() > DDEYearCalendar::YearScheduleListMaxcount) { sViewNum = DDEYearCalendar::YearScheduleListMaxcount; } else { sViewNum = m_vlistData.size(); } } if (!m_vlistData.isEmpty()) setFixedSize(240, 45 + (sViewNum - 1) * 29); update(); m_drawRect.clear(); //对绘制标签矩阵进行缓存 for (int i = 0; i < m_vlistData.size(); i++) { m_drawRect.append(QRect(30, 10 + i * 29, width() - 50, 26)); } return; } void CYearScheduleView::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; if (m_vlistData.isEmpty()) { paintItem(painter); } else { for (int i = 0; i < m_vlistData.size(); ++i) { paintItem(painter, m_vlistData.at(i), i); } } } void CYearScheduleView::paintItem(QPainter &painter, ScheduleDataInfo info, int index) { int labelwidth = width() - 30; int bHeight = index * 29 + 10; int labelheight = 28; ScheduleDataInfo &gd = info; CSchedulesColor gdColor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(gd.getType()); if (gd.getID() == -1) { QString str = "..."; painter.save(); painter.setPen(m_btimecolor); painter.setFont(m_textfont); painter.drawText(QRect(25, bHeight, labelwidth - 80, labelheight - 2), Qt::AlignLeft | Qt::AlignVCenter, str); painter.restore(); } else { if (info.getID() != -1) { //圆点m_solocolor painter.save(); painter.setBrush(QBrush(gdColor.orginalColor)); painter.setPen(Qt::NoPen); painter.drawEllipse(QRect(25, bHeight + (labelheight - 8) / 2, 8, 8)); painter.restore(); } QString str; //左边文字 painter.save(); painter.setPen(m_btTextColor); painter.setFont(m_textfont); QFontMetrics fm = painter.fontMetrics(); QString tSTitleName = gd.getTitleName(); tSTitleName.replace("\n", ""); str = tSTitleName; int tilenameW = labelwidth - 80; QString tStr; for (int i = 0; i < str.count(); i++) { tStr.append(str.at(i)); int widthT = fm.width(tStr) + 5; if (widthT >= tilenameW) { tStr.chop(1); break; } } if (tStr != str) { tStr = tStr + "..."; } painter.drawText(QRect(41, bHeight, tilenameW, labelheight - 2), Qt::AlignLeft | Qt::AlignVCenter, tStr); painter.restore(); if (info.getID() != -1) { //右边时间 painter.save(); painter.setPen(m_btimecolor); painter.setFont(m_textfont); if (info.getAllDay()) { str = tr("All Day"); } else { if (m_currentDate > info.getBeginDateTime().date()) { str = tr("All Day"); } else { str = info.getBeginDateTime().time().toString(m_timeFormat); } } painter.drawText(QRect(width() - 70, bHeight, 57, labelheight - 2), Qt::AlignRight | Qt::AlignVCenter, str); painter.restore(); } } } void CYearScheduleView::paintItem(QPainter &painter) { //左边文字 painter.save(); painter.setPen(m_btTextColor); painter.setFont(m_textfont); QString tSTitleName = tr("No event"); painter.drawText(QRect(0, 0, width(), height()), Qt::AlignCenter, tSTitleName); painter.restore(); } CYearScheduleOutView::CYearScheduleOutView(QWidget *parent) : DArrowRectangle(DArrowRectangle::ArrowLeft, parent) { //如果dtk版本为5.3以上则使用新接口 #if (DTK_VERSION > DTK_VERSION_CHECK(5, 3, 0, 0)) //设置显示圆角 setRadiusArrowStyleEnable(true); //设置圆角 setRadius(DARROWRECT::DRADIUS); #endif yearscheduleview = new CYearScheduleView(); this->setContent(yearscheduleview); } void CYearScheduleOutView::setData(QVector &vListData) { list_count = vListData.size(); yearscheduleview->setData(vListData); yearscheduleview->showWindow(); //根据widget的高度调整圆角 int value = yearscheduleview->height() / 6; //如果圆角最大为15 value = value > 15 ? 15 : value; setRadius(value); scheduleinfoList = yearscheduleview->getlistdate(); } void CYearScheduleOutView::clearData() { yearscheduleview->clearData(); } void CYearScheduleOutView::setTheMe(int type) { yearscheduleview->setTheMe(type); //根据主题设备不一样的背景色 if (type == 2) { setBackgroundColor(DBlurEffectWidget::DarkColor); } else { setBackgroundColor(DBlurEffectWidget::LightColor); } } void CYearScheduleOutView::setCurrentDate(const QDate &cDate) { currentdate = cDate; yearscheduleview->setCurrentDate(cDate); } /** * @brief CYearScheduleOutView::setDirection 设置箭头方向 * @param value */ void CYearScheduleOutView::setDirection(DArrowRectangle::ArrowDirection value) { //设置箭头方向 this->setArrowDirection(value); //设置内容窗口 this->setContent(yearscheduleview); } void CYearScheduleOutView::setTimeFormat(const QString &format) { yearscheduleview->setTimeFormat(format); } void CYearScheduleOutView::mousePressEvent(QMouseEvent *event) { Q_UNUSED(event) //获取当前点击的标签编号 int currentIndex = yearscheduleview->getPressScheduleIndex(); if (currentIndex > -1 && currentIndex < scheduleinfoList.size()) { if (currentIndex > 3 && list_count > DDEYearCalendar::YearScheduleListMaxcount) { emit signalsViewSelectDate(currentdate); this->hide(); //跳转到周视图 } else { //如果日程类型不为节假日或纪念日则显示编辑框 if (scheduleinfoList.at(currentIndex).getType() != DDECalendar::FestivalTypeID) { //因为提示框会消失,所以设置CScheduleDlg的父类为主窗口 CScheduleDlg dlg(0, qobject_cast(this->parent())); dlg.setData(scheduleinfoList.at(currentIndex)); dlg.exec(); } } } } dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/yearscheduleview.h000066400000000000000000000112511423264401600267570ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 YEARSCHEDULEVIEW_H #define YEARSCHEDULEVIEW_H #include "src/scheduledatainfo.h" #include #include DWIDGET_USE_NAMESPACE class CYearScheduleOutView; class CYearScheduleView : public DWidget { Q_OBJECT public: /** * @brief CYearScheduleView 构造函数 * @param parent 父类 */ explicit CYearScheduleView(QWidget *parent = nullptr); /** * @brief ~CYearScheduleView 析构函数 */ ~CYearScheduleView() override; /** * @brief setData 设置日程信息,并全天日程置于非全天日程之前 * @param vListData 日程信息 */ void setData(QVector &vListData); /** * @brief getlistdate 获取日程信息 * @return 日程信息 */ QVector getlistdate() { return m_vlistData; } /** * @brief clearData 清除日程信息 */ void clearData(); /** * @brief showWindow 设置日程浮框的大小 * @return 日程浮框的宽度 */ void showWindow(); /** * @brief setTheMe 根据系统主题类型设置颜色 * @param type 系统主题类型 */ void setTheMe(int type = 0); /** * @brief setCurrentDate 设置日程所在当天的日期 * @param cDate 日期 */ void setCurrentDate(const QDate &cdate); /** * @brief getCurrentDate 获取日程所在当天的日期 * @return 日期 */ QDate getCurrentDate(); void setTimeFormat(const QString &format = "h:mm"); //判断点击位置是否包含对应的日程信息 int getPressScheduleIndex(); private: /** * @brief updateDateShow 调整最多展示日程为五个,并设置浮框大小 */ void updateDateShow(); protected: /** * @brief paintEvent 绘制日程 * @param event 绘图事件 */ void paintEvent(QPaintEvent *event) override; /** * @brief paintItem 绘制日程 * @param info 日程信息 * @param index 日程的索引 */ void paintItem(QPainter &painter, ScheduleDataInfo info, int index); /** * @brief paintItem */ void paintItem(QPainter &painter); private: QVector m_vlistData; QDate m_currentDate; QColor m_btimecolor = "#526A7F"; QColor m_btTextColor = "#414D68"; QFont m_textfont; QString m_timeFormat = "h:mm"; QVector m_drawRect; }; class CYearScheduleOutView : public DArrowRectangle { Q_OBJECT public: /** * @brief CYearScheduleOutView 构造函数 * @param parent 父类 */ explicit CYearScheduleOutView(QWidget *parent = nullptr); /** * @brief setData 设置日程信息 * @param vListData 日程信息 */ void setData(QVector &vListData); /** * @brief clearData 清楚数据 */ void clearData(); /** * @brief setTheMe 设置系统主题颜色 * @param type 系统主题 */ void setTheMe(int type = 0); /** * @brief setCurrentDate 设置日程所在当天的日期 * @param cDate 日期 */ void setCurrentDate(const QDate &cDate); //设置箭头方向 void setDirection(ArrowDirection value); void setTimeFormat(const QString &format); signals: /** * @brief signalsViewSelectDate 跳转视图信号 * @param date 当天的时间 */ void signalsViewSelectDate(QDate date, const int pressType = 3); /** * @brief signalupdateschedule 更新日程信息的信号 */ void signalupdateschedule(); private: CYearScheduleView *yearscheduleview = nullptr; QVector scheduleinfoList; QDate currentdate; int list_count = 0; protected: /** * @brief mousePressEvent 鼠标单击事件,单击非节日日程进行编辑,单击"..."区域跳转到周视图。 * @param event 鼠标事件 */ void mousePressEvent(QMouseEvent *event) override; }; #endif // YEARSCHEDULEVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/yearview.cpp000066400000000000000000000164471423264401600256110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "yearview.h" #include "constants.h" #include #include #include #include #include #include #include #include #include #include DGUI_USE_NAMESPACE CYearView::CYearView(QWidget *parent) : CustomFrame(parent) { //设置焦点类型 setFocusPolicy(Qt::FocusPolicy::TabFocus); setMouseTracking(true); //add separator line m_currentMouth = new CustomFrame(); m_currentMouth->setObjectName("currentMouth"); m_currentMouth->setFixedHeight(24); m_currentMouth->setContentsMargins(0, 0, 0, 0); m_currentMouth->setTextAlign(Qt::AlignLeft); m_momthFont.setWeight(QFont::Medium); m_momthFont.setPixelSize(DDECalendar::FontSizeSixteen); m_currentMouth->setTextFont(m_momthFont); QHBoxLayout *separatorLineLayout = new QHBoxLayout; separatorLineLayout->setMargin(0); separatorLineLayout->setSpacing(0); separatorLineLayout->setContentsMargins(0, 0, 0, 0); separatorLineLayout->addWidget(m_currentMouth); separatorLineLayout->addStretch(); m_currentMouth->show(); m_currentMouth->installEventFilter(this); m_monthView = new MonthBrefWidget(this); connect(m_monthView, &MonthBrefWidget::signalPressDate, this, &CYearView::slotPressClickDate); connect(m_monthView, &MonthBrefWidget::signalDoubleClickDate, this, &CYearView::slotDoubleClickDate); m_hhLayout = new QVBoxLayout; m_hhLayout->addLayout(separatorLineLayout); m_hhLayout->addWidget(m_monthView); m_hhLayout->setMargin(0); m_hhLayout->setSpacing(0); m_hhLayout->setContentsMargins(13, 10, 10, 10); setLayout(m_hhLayout); } /** * @brief slotDoubleClickDate 隐藏日程浮框,并发出鼠标双击的信号 * @param date 传递时间参数 */ void CYearView::slotDoubleClickDate(const QDate &date) { emit signalMousePress(date, 1); } /** * @brief slotPressClickDate 鼠标单击日期,显示日程浮框 * @param date 传递日程参数 */ void CYearView::slotPressClickDate(const QDate &date) { emit signalMousePress(date, 0); } /** * @brief setTheMe 根据系统主题类型,设置颜色 * @param type 系统主题类型 */ void CYearView::setTheMe(int type) { m_themetype = type; if (type == 0 || type == 1) { m_bnormalColor = Qt::white; m_currentMouth->setTextColor(QColor("#CF0059")); } else if (type == 2) { m_bnormalColor = "#FFFFFF"; m_bnormalColor.setAlphaF(0.05); m_currentMouth->setTextColor(QColor("#BF1D63")); } m_monthView->setTheMe(type); QColor monthcolor = Qt::white; monthcolor.setAlphaF(0); m_currentMouth->setBColor(monthcolor); } void CYearView::setShowDate(const QDate &showMonth, const QVector &showDate) { m_showMonth = showMonth; m_currentMouth->setTextStr(QLocale::system().monthName(m_showMonth.month(), QLocale::ShortFormat)); m_days = showDate; m_monthView->setDate(m_showMonth.month(), showDate); } /** * @brief CYearView::setHasScheduleFlag 设置日期是否含有日程标志 * @param hasScheduleFlag */ void CYearView::setHasScheduleFlag(const QVector &hasScheduleFlag) { m_monthView->setLintFlag(hasScheduleFlag); } /** * @brief CYearView::setHasSearchScheduleFlag 设置日期是否含有搜索日程 * @param hasSearchScheduleFlag */ void CYearView::setHasSearchScheduleFlag(const QVector &hasSearchScheduleFlag) { m_monthView->setSearchScheduleFlag(hasSearchScheduleFlag); } /** * @brief CYearView::getStartAndStopDate 获取这个月开始结束时间 * @param startDate * @param stopDate * @return */ bool CYearView::getStartAndStopDate(QDate &startDate, QDate &stopDate) { if (m_days.isEmpty()) return false; startDate = m_days.first(); stopDate = m_days.last(); return true; } /** * @brief eventFilter 过滤器,双击年视图下的月份跳转到月视图。 * @param o 事件对象 * @param e 事件类型 * @return false */ bool CYearView::eventFilter(QObject *o, QEvent *e) { QWidget *cell = qobject_cast(o); if (cell == m_currentMouth) { if (e->type() == QEvent::MouseButtonDblClick) { emit signalMousePress(m_showMonth, 2); } } return false; } /** * @brief resizeEvent 更新月份框的高度 * @param event 窗口大小调整事件 */ void CYearView::resizeEvent(QResizeEvent *event) { int leftmagin = qFloor(width() * 0.06435 + 0.5); int rightmagin = leftmagin; int topmagin = qFloor(height() * 0.02955 + 0.5); int buttonmagin = qFloor(height() * 0.044 + 0.5); m_hhLayout->setContentsMargins(leftmagin, topmagin, rightmagin, buttonmagin); m_momthFont.setPixelSize(qFloor(16 + (height() - 159) / 16.75)); m_currentMouth->setTextFont(m_momthFont); m_currentMouth->setFixedHeight(24 + (height() - 159) / 12); m_currentMouth->update(); QFrame::resizeEvent(event); } /** * @brief paintEvent 绘制每个月的背景 * @param e 绘图事件 */ void CYearView::paintEvent(QPaintEvent *e) { Q_UNUSED(e); int labelwidth = width() - 2 * m_borderframew; int labelheight = height() - 2 * m_borderframew; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.setBrush(QBrush(m_bnormalColor)); painter.setPen(Qt::NoPen); QPainterPath painterPath; painterPath.moveTo(m_radius, m_borderframew); painterPath.arcTo(QRect(m_borderframew, m_borderframew, m_radius * 2, m_radius * 2), 90, 90); painterPath.lineTo(0, labelheight - m_radius); painterPath.arcTo(QRect(m_borderframew, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 180, 90); painterPath.lineTo(labelwidth - m_radius, labelheight); painterPath.arcTo(QRect(labelwidth - m_radius * 2, labelheight - m_radius * 2, m_radius * 2, m_radius * 2), 270, 90); painterPath.lineTo(labelwidth, m_radius); painterPath.arcTo(QRect(labelwidth - m_radius * 2, m_borderframew, m_radius * 2, m_radius * 2), 0, 90); painterPath.lineTo(m_radius, m_borderframew); painterPath.closeSubpath(); painter.drawPath(painterPath); if (hasFocus()) { //有焦点,绘制焦点 QStyleOptionFocusRect option; option.initFrom(this); option.backgroundColor = palette().color(QPalette::Background); style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this); } } dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/yearview.h000066400000000000000000000063011423264401600252420ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 YEARVIEW_H #define YEARVIEW_H #include "customframe.h" #include "monthbrefwidget.h" #include "scheduledatamanage.h" #include #include #include #include #include DWIDGET_USE_NAMESPACE class CYearMonthView; class CYearView: public CustomFrame { Q_OBJECT public: explicit CYearView(QWidget *parent = nullptr); //根据系统主题类型,设置颜色 void setTheMe(int type = 0); //设置显示时间 void setShowDate(const QDate &showMonth, const QVector &showDate); //设置日期是否含有日程标志 void setHasScheduleFlag(const QVector &hasScheduleFlag); //设置日期是否含有搜索日程 void setHasSearchScheduleFlag(const QVector &hasSearchScheduleFlag); //获取这个月开始结束时间 bool getStartAndStopDate(QDate &startDate, QDate &stopDate); signals: /** * @brief signalMousePress 鼠标点击事件触发信号 * @param selectDate 选择时间 * @param pressType 触发事件类型 * 0:点击时间 1:双击时间 2: 双击月 */ void signalMousePress(const QDate &selectDate, const int pressType = 0); public slots: void slotDoubleClickDate(const QDate &date); //鼠标单击日期,显示日程浮框 void slotPressClickDate(const QDate &date); private: //过滤器,双击年视图下的月份跳转到月视图。 bool eventFilter(QObject *o, QEvent *e) override; protected: //更新月份框的高度 void resizeEvent(QResizeEvent *event) override; protected: //绘制每个月的背景 void paintEvent(QPaintEvent *e) override; private: CustomFrame *m_currentMouth = nullptr; QVector m_days{}; QDate m_showMonth; QFont m_momthFont; QColor m_currentDayTextColor = "#2ca7f8"; QColor m_weekendsTextColor = Qt::black; QColor m_festivalTextColor = Qt::black; QColor m_cellBackgroundColor = "#FFFFFF" ; QVBoxLayout *m_hhLayout = nullptr; int m_themetype = 1; QColor m_bnormalColor = "#FFFFFF"; const int m_radius = 8; const int m_borderframew = 0; QVector m_vlineflag; //节假日和日程标识 MonthBrefWidget *m_monthView = nullptr; }; #endif // YEARVIEW_H dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/yearwindow.cpp000066400000000000000000000761201423264401600261400ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "yearwindow.h" #include "yearview.h" #include "constants.h" #include "schedulesearchview.h" #include "yearscheduleview.h" #include "calendarglobalenv.h" #include #include #include #include #include #include DGUI_USE_NAMESPACE CYearWindow::CYearWindow(QWidget *parent) : CScheduleBaseWidget(parent) { initUI(); initConnection(); setContentsMargins(0, 0, 0, 0); //设置接受触摸事件 this->setAttribute(Qt::WA_AcceptTouchEvents); //截获相应的gesture手势 grabGesture(Qt::TapGesture); grabGesture(Qt::TapAndHoldGesture); grabGesture(Qt::PanGesture); //设置年份显示 setYearData(); } CYearWindow::~CYearWindow() { } /** * @brief eventFilter 过滤器,过滤返回今天的按钮事件 * @param watched 事件对象 * @param event 事件类型 * @return false */ bool CYearWindow::eventFilter(QObject *watched, QEvent *event) { if (watched == m_today) { if (event->type() == QEvent::MouseButtonPress) { slottoday(); } if (event->type() == QEvent::KeyPress) { //点击 回车键 返回今天 QKeyEvent *key = dynamic_cast(event); if (key->key() == Qt::Key_Return) { //返回今天 slottoday(); } } } else if (watched == m_yearWidget) { //上下键切换年份 if (event->type() == QEvent::KeyPress) { QKeyEvent *key = dynamic_cast(event); if (key->key() == Qt::Key_Up) { //上一年 slotprev(); } else if (key->key() == Qt::Key_Down) { //下一年 slotnext(); } } } return QWidget::eventFilter(watched, event); } /** * @brief mousePressEvent 鼠标单击事件,单击日期区域外,隐藏日程浮框 * @param event 鼠标事件 */ void CYearWindow::mousePressEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { //如果为触摸点击则记录开始坐标 m_touchBeginPoint = event->pos(); } QWidget::mousePressEvent(event); } /** * @brief resizeEvent 窗口大小调整事件,搜索时,调整边框大小 * @param event 窗口大小调整事件 */ void CYearWindow::resizeEvent(QResizeEvent *event) { Q_UNUSED(event); m_topWidget->setGeometry(0, 0, this->width(), DDEMonthCalendar::M_YTopHeight); if (m_searchFlag) { m_tMainLayout->setContentsMargins(10, 0, 2, 0); m_topWidget->setContentsMargins(10, 0, 2, 0); } else { m_tMainLayout->setContentsMargins(10, 0, 10, 0); m_topWidget->setContentsMargins(10, 0, 10, 0); } } void CYearWindow::mouseMoveEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { return; } QWidget::mouseMoveEvent(event); } void CYearWindow::mouseReleaseEvent(QMouseEvent *event) { if (event->source() == Qt::MouseEventSynthesizedByQt) { //如果为触摸移动状态 if (m_touchState == 2) { //获取停止位置 QPointF stopPoint = event->pos(); //计算出移动状态 TouchGestureData touchGData = calculateAzimuthAngle(m_touchBeginPoint, stopPoint); //如果方向为上下则切换年份 switch (touchGData.movingDirection) { case TouchGestureData::T_TOP: { slotnext(); break; } case TouchGestureData::T_BOTTOM: { slotprev(); break; } default: break; } } m_touchState = 0; } } bool CYearWindow::event(QEvent *e) { if (e->type() == QEvent::Gesture) return gestureEvent(dynamic_cast(e)); return QWidget::event(e); } /** * @brief gestureEvent 触摸手势处理 * @param event 手势事件 * @return */ bool CYearWindow::gestureEvent(QGestureEvent *event) { if (QGesture *tap = event->gesture(Qt::TapGesture)) tapGestureTriggered(dynamic_cast(tap)); if (QGesture *pan = event->gesture(Qt::PanGesture)) panTriggered(dynamic_cast(pan)); return true; } /** * @brief tapGestureTriggered 轻切手势处理 * @param tap 轻切手势事件 */ void CYearWindow::tapGestureTriggered(QTapGesture *tap) { switch (tap->state()) { case Qt::NoGesture: { break; } case Qt::GestureStarted: { m_touchState = 1; break; } case Qt::GestureUpdated: { m_touchState = 2; break; } case Qt::GestureFinished: { break; } default: { //GestureCanceled } } } /** * @brief panTriggered 多指滑动手势处理 * @param pan 多指滑动手势 */ void CYearWindow::panTriggered(QPanGesture *pan) { switch (pan->state()) { case Qt::GestureFinished: { QPointF zeroPoint(0, 0); QPointF offset = pan->offset(); TouchGestureData touchGData = calculateAzimuthAngle(zeroPoint, offset); switch (touchGData.movingDirection) { case TouchGestureData::T_TOP: { slotnext(); break; } case TouchGestureData::T_BOTTOM: { slotprev(); break; } default: break; } break; } default: //GestureCanceled break; } } /** * @brief calculateAzimuthAngle 计算方位角 * @param startPoint 起始坐标 * @param stopPoint 结束坐标 * @return 触摸手势数据 */ TouchGestureData CYearWindow::calculateAzimuthAngle(QPointF &startPoint, QPointF &stopPoint) { TouchGestureData _result{}; qreal angle = 0.0000; qreal dx = stopPoint.rx() - startPoint.rx(); qreal dy = stopPoint.ry() - startPoint.ry(); //计算方位角 angle = qAtan2(dy, dx) * 180 / M_PI; qreal line = qSqrt(dx * dx + dy * dy); //如果移动距离大于10则有效 if (line > 10) { if ((angle <= -45) && (angle >= -135)) { _result.movingDirection = TouchGestureData::T_TOP; } else if ((angle > -45) && (angle < 45)) { _result.movingDirection = TouchGestureData::T_RIGHT; } else if ((angle >= 45) && (angle <= 135)) { _result.movingDirection = TouchGestureData::T_BOTTOM; } else { _result.movingDirection = TouchGestureData::T_LEFT; } } _result.angle = angle; _result.length = line; return _result; } /** * @brief initUI 初始化年视图的界面显示 */ void CYearWindow::initUI() { m_today = new LabelWidget(this); m_today->setObjectName("yearToDay"); m_today->setAccessibleName("yearToDay"); m_today->installEventFilter(this); QFont todayfont; todayfont.setPixelSize(DDECalendar::FontSizeSixteen); m_today->setFont(todayfont); m_today->setAlignment(Qt::AlignCenter); m_today->setText(QCoreApplication::translate("today", "Today", "Today")); m_today->setFixedWidth(88); m_today->setAutoFillBackground(true); m_today->setFixedHeight(DDEYearCalendar::Y_MLabelHeight - 4); m_prevButton = new DIconButton(DStyle::SP_ArrowLeft, this); //设置对象名称和辅助显示名称 m_prevButton->setObjectName("PrevButton"); m_prevButton->setAccessibleName("PrevButton"); m_prevButton->setFixedWidth(DDEYearCalendar::Y_MLabelHeight); m_prevButton->setFixedHeight(DDEYearCalendar::Y_MLabelHeight); m_nextButton = new DIconButton(DStyle::SP_ArrowRight, this); //设置对象名称和辅助显示名称 m_nextButton->setObjectName("NextButton"); m_nextButton->setAccessibleName("NextButton"); m_nextButton->setFixedWidth(DDEYearCalendar::Y_MLabelHeight); m_nextButton->setFixedHeight(DDEYearCalendar::Y_MLabelHeight); m_yearLabel = new QLabel(this); m_yearLabel->setFixedHeight(DDEYearCalendar::Y_YLabelHeight); QFont t_labelF; t_labelF.setWeight(QFont::Medium); t_labelF.setPixelSize(DDECalendar::FontSizeTwentyfour); m_yearLabel->setFont(t_labelF); DPalette pa = m_yearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_yearLabel->setPalette(pa); m_yearLunarLabel = new QLabel(this); m_yearLunarLabel->setFixedSize(DDEMonthCalendar::M_YLunaLabelWindth, DDEMonthCalendar::M_YLunaLabelHeight); QFont yLabelF; yLabelF.setWeight(QFont::Medium); yLabelF.setPixelSize(DDECalendar::FontSizeFourteen); m_yearLunarLabel->setFont(yLabelF); DPalette LunaPa = m_yearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_yearLunarLabel->setPalette(LunaPa); m_yearLunarDayLabel = new QLabel(this); m_yearLunarDayLabel->setFixedSize(108, DDEMonthCalendar::M_YLunaLabelHeight); m_yearLunarDayLabel->setFont(yLabelF); m_yearLunarDayLabel->setPalette(LunaPa); m_yearLunarDayLabel->setAlignment(Qt::AlignRight); QHBoxLayout *yeartitleLayout = new QHBoxLayout; yeartitleLayout->setMargin(0); yeartitleLayout->setSpacing(0); yeartitleLayout->setContentsMargins(11, 12, 8, 10); yeartitleLayout->addWidget(m_yearLabel); QHBoxLayout *yeartitleLayout1 = new QHBoxLayout; yeartitleLayout1->setMargin(0); yeartitleLayout1->setSpacing(0); yeartitleLayout1->setContentsMargins(4, 9, 0, 7); yeartitleLayout1->addWidget(m_yearLunarLabel); yeartitleLayout1->addSpacing(390); yeartitleLayout1->addStretch(); yeartitleLayout1->addWidget(m_yearLunarDayLabel, 0, Qt::AlignVCenter); m_todayFrame = new CustomFrame(this); m_todayFrame->setContentsMargins(0, 0, 0, 0); m_todayFrame->setRoundState(true, true, true, true); m_todayFrame->setBColor(Qt::white); m_todayFrame->setFixedHeight(DDEYearCalendar::Y_MLabelHeight); m_todayFrame->setboreder(1); QHBoxLayout *todaylayout = new QHBoxLayout; todaylayout->setMargin(0); todaylayout->setSpacing(0); //设置tab选中顺序 setTabOrder(m_prevButton, m_today); setTabOrder(m_today, m_nextButton); todaylayout->addWidget(m_prevButton); todaylayout->addWidget(m_today, 0, Qt::AlignCenter); todaylayout->addWidget(m_nextButton); m_todayFrame->setLayout(todaylayout); yeartitleLayout1->addSpacing(10); yeartitleLayout1->addWidget(m_todayFrame); yeartitleLayout->addLayout(yeartitleLayout1); m_firstYearWidget = new YearFrame(); m_secondYearWidget = new YearFrame(); //设置过滤事件 m_firstYearWidget->installEventFilter(this); m_secondYearWidget->installEventFilter(this); m_StackedWidget = new AnimationStackedWidget(AnimationStackedWidget::TB); m_StackedWidget->addWidget(m_firstYearWidget); m_StackedWidget->addWidget(m_secondYearWidget); m_StackedWidget->setContentsMargins(0, 0, 0, 0); m_StackedWidget->setDuration(600); m_StackedWidget->setFrameShape(QFrame::NoFrame); m_StackedWidget->setFrameShadow(QFrame::Plain); m_yearWidget = qobject_cast(m_StackedWidget->widget(0)); QVBoxLayout *hhLayout = new QVBoxLayout; hhLayout->setMargin(0); hhLayout->setSpacing(0); hhLayout->setContentsMargins(0, 0, 0, 0); hhLayout->addWidget(m_StackedWidget); m_tMainLayout = new QVBoxLayout; m_tMainLayout->setMargin(0); m_tMainLayout->setSpacing(0); m_tMainLayout->setContentsMargins(10, 0, 10, 0); m_tMainLayout->addLayout(hhLayout); this->setLayout(m_tMainLayout); m_topWidget = new DWidget(this); m_topWidget->setLayout(yeartitleLayout); m_scheduleView = new CYearScheduleOutView(this); } /** * @brief initConnection 初始化信号和槽的连接 */ void CYearWindow::initConnection() { connect(m_prevButton, &DIconButton::clicked, this, &CYearWindow::slotprev); connect(m_nextButton, &DIconButton::clicked, this, &CYearWindow::slotnext); connect(m_StackedWidget, &AnimationStackedWidget::signalIsFinished, this, &CYearWindow::setYearData); connect(m_firstYearWidget, &YearFrame::signalMousePress, this, &CYearWindow::slotMousePress); connect(m_secondYearWidget, &YearFrame::signalMousePress, this, &CYearWindow::slotMousePress); connect(m_scheduleView, &CYearScheduleOutView::signalsViewSelectDate, this, &CYearWindow::slotMousePress); } /** * @brief setTheMe 设置系统主题 * @param type 主题类型 */ void CYearWindow::setTheMe(int type) { if (type == 0 || type == 1) { DPalette todayPa = m_today->palette(); todayPa.setColor(DPalette::WindowText, QColor("#000000")); todayPa.setColor(DPalette::Background, Qt::white); m_today->setPalette(todayPa); m_today->setForegroundRole(DPalette::WindowText); m_today->setBackgroundRole(DPalette::Background); m_todayFrame->setBColor(Qt::white); DPalette pa = m_yearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_yearLabel->setPalette(pa); m_yearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_yearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_yearLunarLabel->setPalette(LunaPa); m_yearLunarLabel->setForegroundRole(DPalette::WindowText); m_yearLunarDayLabel->setPalette(LunaPa); m_yearLunarDayLabel->setForegroundRole(DPalette::WindowText); } else if (type == 2) { DPalette todayPa = m_today->palette(); todayPa.setColor(DPalette::WindowText, QColor("#C0C6D4")); QColor tbColor = "#414141"; tbColor.setAlphaF(0.0); todayPa.setColor(DPalette::Background, tbColor); m_today->setPalette(todayPa); m_today->setForegroundRole(DPalette::WindowText); m_today->setBackgroundRole(DPalette::Background); QColor tbColor2 = "#414141"; tbColor2.setAlphaF(0.3); m_todayFrame->setBColor(tbColor2); DPalette pa = m_yearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_yearLabel->setPalette(pa); m_yearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_yearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#798BA8")); m_yearLunarLabel->setPalette(LunaPa); m_yearLunarLabel->setForegroundRole(DPalette::WindowText); m_yearLunarDayLabel->setPalette(LunaPa); m_yearLunarDayLabel->setForegroundRole(DPalette::WindowText); } m_firstYearWidget->setTheMe(type); m_secondYearWidget->setTheMe(type); //设置提示框主题类型 m_scheduleView->setTheMe(type); DPalette palette = m_topWidget->palette(); palette.setBrush(DPalette::WindowText, palette.color(DPalette::Window)); m_topWidget->setAutoFillBackground(true); m_topWidget->setPalette(palette); } /** * @brief CYearWindow::setSearchWFlag 设置是否在进行搜索 * @param flag */ void CYearWindow::setSearchWFlag(bool flag) { m_searchFlag = flag; } /** * @brief CYearWindow::updateShowDate 更新显示时间 */ void CYearWindow::updateShowDate(const bool isUpdateBar) { Q_UNUSED(isUpdateBar); QMap > _yearShowData = m_calendarManager->getCalendarDateDataManage()->getYearDate(); m_scheduleView->setTimeFormat(m_calendarManager->getCalendarDateDataManage()->getTimeFormat()); m_yearWidget->setShowDate(getSelectDate(), _yearShowData); } /** * @brief CYearWindow::updateShowScheduleData 更新显示日程数据 */ void CYearWindow::updateShowSchedule() { //获取显示日期中是否包含日程信息标志 QMap _fullInfo = m_calendarManager->getScheduleTask()->getDateHasSchedule(); m_yearWidget->setDateHasScheduleSign(_fullInfo); } /** * @brief CYearWindow::updateShowLunar 更新显示农历信息 */ void CYearWindow::updateShowLunar() { getLunarInfo(); m_yearWidget->setLunarYearDate(m_lunarYear); //如果正在切换则退出 if (m_StackedWidget->IsRunning()) return; setLunarShow(); } /** * @brief CYearWindow::updateSearchScheduleInfo 更新搜索日程信息 */ void CYearWindow::updateSearchScheduleInfo() { //获取搜索日程信息 QMap > _searchSchedule = m_calendarManager->getScheduleTask()->getSearchScheduleInfo(); m_yearWidget->setSearchSchedule(_searchSchedule); } /** * @brief CYearWindow::setSelectSearchScheduleInfo 设置选中搜索日程 * @param info */ void CYearWindow::setSelectSearchScheduleInfo(const ScheduleDataInfo &info) { Q_UNUSED(info); } /** * @brief CYearWindow::slotSetScheduleHide 隐藏日程提示框 */ void CYearWindow::slotSetScheduleHide() { m_scheduleView->hide(); } /** * @brief CYearWindow::slotprev 切换上一年 */ void CYearWindow::slotprev() { switchYear(-1); } /** * @brief CYearWindow::slotnext 切换下一年 */ void CYearWindow::slotnext() { switchYear(1); } /** * @brief CYearWindow::slottoday 返回当前时间 */ void CYearWindow::slottoday() { //隐藏提示 slotSetScheduleHide(); //设置选择时间为当前时间,切换年份信息 setSelectDate(getCurrendDateTime().date(), true); //更新数据 updateData(); setYearData(); } /** * @brief CYearWindow::switchYear 根据偏移值切换年份 * @param offsetYear 偏移值 */ void CYearWindow::switchYear(const int offsetYear) { slotSetScheduleHide(); //获取选择时间 QDate _selectData = getSelectDate(); //如果正在切换则退出 if (m_StackedWidget->IsRunning()) return; _selectData = _selectData.addYears(offsetYear); //设置选择时间,如果成功则切换 if (setSelectDate(_selectData, true)) { int index = m_StackedWidget->currentIndex(); //当前选中的monthview的index int currentYearViewIndex = qobject_cast(m_StackedWidget->widget(index))->getViewFocusIndex(); index = qAbs(index + offsetYear) % 2; m_yearWidget = qobject_cast(m_StackedWidget->widget(index)); //设置年视图翻页后选中的monthview m_yearWidget->setViewFocus(currentYearViewIndex); //获取一年的显示时间 QMap > _yearShowData = m_calendarManager->getCalendarDateDataManage()->getYearDate(); //设置显示时间 m_yearWidget->setShowDate(getSelectDate(), _yearShowData); updateData(); if (offsetYear > 0) { //下一年 m_StackedWidget->setNext(); } else { //上一年 m_StackedWidget->setPre(); } } } /** * @brief CYearWindow::setLunarShow 显示农历信息 */ void CYearWindow::setLunarShow() { m_yearLunarLabel->setText(m_lunarYear); m_yearLunarDayLabel->setText(m_lunarDay); } /** * @brief CYearWindow::setYearData 设置选择时间年 */ void CYearWindow::setYearData() { //如果选择日期为本地时间日期则显示今天,否则显示返回当天 if (getSelectDate() == getCurrendDateTime().date()) { m_today->setText(QCoreApplication::translate("today", "Today", "Today")); } else { m_today->setText(QCoreApplication::translate("Return", "Today", "Return")); } //如果是中文环境 if (getShowLunar()) { m_yearLabel->setText(QString::number(getSelectDate().year()) + tr("Y")); //获取农历信息 getLunarInfo(); //显示农历信息 setLunarShow(); } else { m_yearLabel->setText(QString::number(getSelectDate().year())); } } /** * @brief CYearWindow::slotMousePress 接收点击日期事件 * @param selectDate 选择的日期 * @param pressType 鼠标点击类型 0:单击具体日期 1:双击具体日期 2:双击月份 3:提示框跳转周视图 */ void CYearWindow::slotMousePress(const QDate &selectDate, const int pressType) { slotSetScheduleHide(); if (!selectDate.isValid()) return; //设置选择时间 setSelectDate(selectDate); setYearData(); switch (pressType) { case 0: { // 0:单击 QVector _scheduleInfo {}; //获取选择日期的日程信息 QMap > showInfo = m_calendarManager->getScheduleTask()->getScheduleInfo(selectDate, selectDate); if (showInfo.begin() != showInfo.end()) { _scheduleInfo = showInfo.begin().value(); } m_scheduleView->setCurrentDate(selectDate); m_scheduleView->setData(_scheduleInfo); //使用设置的显示坐标 QVariant variant; CalendarGlobalEnv::getGlobalEnv()->getValueByKey(DDECalendar::CursorPointKey, variant); QPoint pos22 = variant.value(); QDesktopWidget *w = QApplication::desktop(); if (pos22.x() + 10 + m_scheduleView->width() < w->width()) { m_scheduleView->setDirection(DArrowRectangle::ArrowLeft); m_scheduleView->show(pos22.x() + 10, pos22.y()); } else { m_scheduleView->setDirection(DArrowRectangle::ArrowRight); m_scheduleView->show(pos22.x() - 10, pos22.y()); } break; } case 1: { // 1:双击时间 signalSwitchView(); break; } case 2: { // 2: 双击月 signalSwitchView(1); break; } case 3: { // 3: 提示框跳转周视图 signalSwitchView(2); break; } default: break; } } /** * @brief wheelEvent 通过鼠标中间的滚轮滚动切换年份,并刷新年视图下的所有内容。 * @param event 鼠标滚轮事件 */ void CYearWindow::wheelEvent(QWheelEvent *event) { //如果为左右方向则退出 if (event->orientation() == Qt::Orientation::Horizontal) return; if (event->delta() < 0) { slotnext(); } else { slotprev(); } } YearFrame::YearFrame(DWidget *parent) : QWidget(parent) { QGridLayout *gridLayout = new QGridLayout; gridLayout->setMargin(0); gridLayout->setSpacing(8); gridLayout->setContentsMargins(0, 0, 0, 0); for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { CYearView *view = new CYearView(this); //为每个monthview设置事件过滤器 view->installEventFilter(this); gridLayout->addWidget(view, i, j); m_monthViewList.append(view); connect(view, &CYearView::signalMousePress, this, &YearFrame::signalMousePress); } } m_YearLabel = new QLabel(this); m_YearLabel->setFixedHeight(DDEYearCalendar::Y_YLabelHeight); QFont t_labelF; t_labelF.setWeight(QFont::Medium); t_labelF.setPixelSize(DDECalendar::FontSizeTwentyfour); m_YearLabel->setFont(t_labelF); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(pa); m_YearLunarLabel = new QLabel(); m_YearLunarLabel->setFixedSize(DDEMonthCalendar::M_YLunaLabelWindth, DDEMonthCalendar::M_YLunaLabelHeight); QFont yLabelF; yLabelF.setWeight(QFont::Medium); yLabelF.setPixelSize(DDECalendar::FontSizeFourteen); m_YearLunarLabel->setFont(yLabelF); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_YearLunarLabel->setPalette(LunaPa); QHBoxLayout *yeartitleLayout = new QHBoxLayout; yeartitleLayout->setMargin(0); yeartitleLayout->setSpacing(0); yeartitleLayout->setContentsMargins(11, 12, 8, 10); yeartitleLayout->addWidget(m_YearLabel); QHBoxLayout *yeartitleLayout1 = new QHBoxLayout; yeartitleLayout1->setMargin(0); yeartitleLayout1->setSpacing(0); yeartitleLayout1->setContentsMargins(4, 9, 0, 7); yeartitleLayout1->addWidget(m_YearLunarLabel); yeartitleLayout1->addSpacing(390); yeartitleLayout1->addStretch(); yeartitleLayout1->addSpacing(10); yeartitleLayout->addLayout(yeartitleLayout1); m_topWidget = new DWidget(); m_topWidget->setLayout(yeartitleLayout); m_topWidget->setFixedHeight(DDEMonthCalendar::M_YTopHeight); QVBoxLayout *hhLayout = new QVBoxLayout; hhLayout->setMargin(0); hhLayout->setSpacing(0); hhLayout->setContentsMargins(0, 0, 0, 0); hhLayout->addWidget(m_topWidget); hhLayout->addLayout(gridLayout); this->setLayout(hhLayout); setContentsMargins(0, 0, 0, 10); } YearFrame::~YearFrame() { } /** * @brief YearFrame::setShowDate 设置显示时间 * @param selectDate 选择的时间 * @param showDate 需要显示一年的时间 */ void YearFrame::setShowDate(const QDate &selectDate, const QMap > &showDate) { //判断是否显示12个月 Q_ASSERT(showDate.size() == 12); m_selectDate = selectDate; QDate _showMonth(m_selectDate.year(), 1, 1); for (int i = 0; i < DDEYearCalendar::FrameSizeOfEveryYear; i++) { QDate _setShowMonth = _showMonth.addMonths(i); m_monthViewList.at(i)->setShowDate(_setShowMonth, showDate[i + 1]); } //更新显示界面 update(); //设置年份显示 setYearShow(); } /** * @brief YearFrame::setLunarYearDate 设置阴历年显示 * @param lunar 显示数据 */ void YearFrame::setLunarYearDate(const QString &lunar) { m_YearLunarLabel->setText(lunar); } /** * @brief YearFrame::setDateHasScheduleSign 设置日期是否存在日程 * @param hasSchedule */ void YearFrame::setDateHasScheduleSign(const QMap &hasSchedule) { QDate _startDate; QDate _stopDate; QDate _getDate; qint64 _offset = 0; QVector _hasScheduleVector{}; for (int i = 0; i < m_monthViewList.size(); ++i) { //如果时间有效 if (m_monthViewList.at(i)->getStartAndStopDate(_startDate, _stopDate)) { _offset = _startDate.daysTo(_stopDate) + 1; _hasScheduleVector.clear(); for (int j = 0 ; j < _offset; ++j) { _getDate = _startDate.addDays(j); if (hasSchedule.contains(_getDate)) { _hasScheduleVector.append(hasSchedule[_getDate]); } else { _hasScheduleVector.append(false); } } m_monthViewList.at(i)->setHasScheduleFlag(_hasScheduleVector); } } } /** * @brief YearFrame::setTheMe 设置不同主题颜色 * @param type */ void YearFrame::setTheMe(int type) { if (type == 0 || type == 1) { DPalette gpa = palette(); gpa.setColor(DPalette::Background, "#F8F8F8"); setPalette(gpa); setBackgroundRole(DPalette::Background); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#3B3B3B")); m_YearLabel->setPalette(pa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#8A8A8A")); m_YearLunarLabel->setPalette(LunaPa); m_YearLunarLabel->setForegroundRole(DPalette::WindowText); } else if (type == 2) { DPalette gpa = palette(); gpa.setColor(DPalette::Background, "#252525"); setPalette(gpa); setBackgroundRole(DPalette::Background); DPalette pa = m_YearLabel->palette(); pa.setColor(DPalette::WindowText, QColor("#C0C6D4")); m_YearLabel->setPalette(pa); m_YearLabel->setForegroundRole(DPalette::WindowText); DPalette LunaPa = m_YearLunarLabel->palette(); LunaPa.setColor(DPalette::WindowText, QColor("#798BA8")); m_YearLunarLabel->setPalette(LunaPa); m_YearLunarLabel->setForegroundRole(DPalette::WindowText); } for (int i = 0; i < DDEYearCalendar::FrameSizeOfEveryYear; i++) { m_monthViewList.at(i)->setTheMe(type); } } /** * @brief YearFrame::setSearchSchedule 设置搜索日程 * @param searchInfo */ void YearFrame::setSearchSchedule(const QMap > &searchInfo) { QDate _startDate; QDate _stopDate; QDate _getDate; qint64 _offset = 0; QVector _hasSearchScheduleVector{}; for (int i = 0; i < m_monthViewList.size(); ++i) { //如果时间有效 if (m_monthViewList.at(i)->getStartAndStopDate(_startDate, _stopDate)) { _offset = _startDate.daysTo(_stopDate) + 1; _hasSearchScheduleVector.clear(); for (int j = 0 ; j < _offset; ++j) { _getDate = _startDate.addDays(j); if (searchInfo.contains(_getDate) && searchInfo[_getDate].size() > 0) { _hasSearchScheduleVector.append(true); } else { _hasSearchScheduleVector.append(false); } } m_monthViewList.at(i)->setHasSearchScheduleFlag(_hasSearchScheduleVector); } } } /** * @brief YearFrame::setViewFocus 为选中的view设置焦点 * @param index 选中的哪一个view */ void YearFrame::setViewFocus(int index) { if (index >= 0 && index < m_monthViewList.size()) { //设置选中view的焦点类型 m_monthViewList.at(index)->setFocus(Qt::FocusReason::TabFocusReason); } } /** * @brief YearFrame::getViewFocusIndex 获取选中view的index * @return 选中的哪一个view */ int YearFrame::getViewFocusIndex() { return currentFocusView; } /** * @brief YearFrame::setYearShow 设置年信息显示 */ void YearFrame::setYearShow() { if (QLocale::system().language() == QLocale::Chinese) { m_YearLabel->setText(QString::number(m_selectDate.year()) + tr("Y")); m_YearLunarLabel->setText(m_LunarYear); } else { m_YearLabel->setText(QString::number(m_selectDate.year())); m_YearLunarLabel->setText(""); } } /** * @brief YearFrame::eventFilter 事件过滤器,获取选中monthview的index */ bool YearFrame::eventFilter(QObject *watched, QEvent *event) { //返回当前活动窗口中的焦点小部件 CYearView *monthview = qobject_cast(QApplication::focusWidget()); //焦点小部件是否为12个月份中的一个 if (m_monthViewList.contains(monthview)) { //焦点小部件在list中的index currentFocusView = m_monthViewList.indexOf(monthview); } else { currentFocusView = -1; } return QWidget::eventFilter(watched, event); } dde-calendar-5.9.1/calendar-client/src/widget/yearWidget/yearwindow.h000066400000000000000000000145531423264401600256070ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 YEARWINDOW_H #define YEARWINDOW_H #include "animationstackedwidget.h" #include "cschedulebasewidget.h" #include "labelwidget.h" #include #include #include #include #include #include #include DWIDGET_USE_NAMESPACE class CYearView; class CScheduleSearchView; class YearFrame; class CustomFrame; class CYearScheduleOutView; struct TouchGestureData { enum TouchMovingDirection { T_NONE, //默认状态 T_LEFT, //往左 T_TOP, //往上 T_RIGHT, //往右 T_BOTTOM //往下 }; //手势移动状态 qreal length {0}; //手势移动距离 qreal angle{0}; //手势移动角度 TouchMovingDirection movingDirection{T_NONE}; // 手势移动方向 }; class CYearWindow: public CScheduleBaseWidget { Q_OBJECT public: explicit CYearWindow(QWidget *parent = nullptr); ~CYearWindow() override; //初始化ui界面 void initUI(); //初始化信号和槽的连接 void initConnection(); //设置系统主题 void setTheMe(int type = 0); //设置是否在进行搜索 void setSearchWFlag(bool flag); //设置选择时间年 void setYearData() override; //更新显示时间 void updateShowDate(const bool isUpdateBar = true) override; //更新日程显示 void updateShowSchedule() override; //更新显示农历信息 void updateShowLunar() override; //更新界面搜索日程显示 void updateSearchScheduleInfo() override; //设置选中搜索日程 void setSelectSearchScheduleInfo(const ScheduleDataInfo &info) override; signals: /** * @brief signalsWUpdateShcedule */ void signalsWUpdateShcedule(); /** * @brief signalupdateschedule 更新日程的信号 */ void signalupdateschedule(); private slots: //切换上一年 void slotprev(); //切换到下一年 void slotnext(); //返回到当前时间 void slottoday(); public slots: //隐藏日程浮框 void slotSetScheduleHide(); //接收鼠标点击 void slotMousePress(const QDate &selectDate, const int pressType); private: //切换年份 void switchYear(const int offsetYear); //设置显示农历信息 void setLunarShow(); protected: void wheelEvent(QWheelEvent *event) override; bool eventFilter(QObject *watched, QEvent *event) override; void mousePressEvent(QMouseEvent *event) override; void resizeEvent(QResizeEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; bool event(QEvent *e) override; private: //触摸手势处理 bool gestureEvent(QGestureEvent *event); //轻切手势处理 void tapGestureTriggered(QTapGesture *tap); //多指滑动手势处理 void panTriggered(QPanGesture *pan); //计算方位角 TouchGestureData calculateAzimuthAngle(QPointF &startPoint, QPointF &stopPoint); private: DIconButton *m_prevButton = nullptr; DIconButton *m_nextButton = nullptr; LabelWidget *m_today = nullptr; QDate m_currentdate; QLabel *m_yearLabel = nullptr; QLabel *m_yearLunarLabel = nullptr; QLabel *m_yearLunarDayLabel = nullptr; YearFrame *m_yearWidget = nullptr; YearFrame *m_firstYearWidget = nullptr; YearFrame *m_secondYearWidget = nullptr; CustomFrame *m_todayFrame = nullptr; AnimationStackedWidget *m_StackedWidget = nullptr; QVBoxLayout *m_tMainLayout = nullptr; QString m_searchText; bool m_searchFlag = false; DWidget *m_topWidget = nullptr; //触摸开始坐标 QPointF m_touchBeginPoint; //触摸状态 0:初始状态 1:点击 2:移动 int m_touchState{0}; CYearScheduleOutView *m_scheduleView {nullptr}; }; class YearFrame : public QWidget { Q_OBJECT public: explicit YearFrame(DWidget *parent = nullptr); ~YearFrame() override; //设置显示时间 void setShowDate(const QDate &selectDate, const QMap > &showDate); //设置阴历年显示 void setLunarYearDate(const QString &lunar = ""); //设置日期是否存在日程 void setDateHasScheduleSign(const QMap &hasSchedule); //设置不同主题颜色 void setTheMe(int type = 0); //设置搜索日程 void setSearchSchedule(const QMap > &searchInfo); void setViewFocus(int index); int getViewFocusIndex(); private: //设置年信息显示 void setYearShow(); signals: /** * @brief signalMousePress 鼠标点击事件触发信号 * @param selectDate 选择时间 * @param pressType 触发事件类型 * 0:点击时间 1:双击时间 2: 双击月 */ void signalMousePress(const QDate &selectDate, const int pressType = 0); protected: bool eventFilter(QObject *watched, QEvent *event) override; private: QList m_monthViewList; QLabel *m_YearLabel = nullptr; QLabel *m_YearLunarLabel = nullptr; QDate m_selectDate; bool m_searchFlag = false; bool m_selectFlag = false; QString m_LunarYear; QString m_LunarDay; DWidget *m_topWidget = nullptr; int currentFocusView = -1; }; #endif // YEARWINDOW_H dde-calendar-5.9.1/calendar-service/000077500000000000000000000000001423264401600172425ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/CMakeLists.txt000066400000000000000000000040051423264401600220010ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) project(dde-calendar-service) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) #安全编译参数 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong -D_FORTITY_SOURCE=1 -z noexecstack -pie -fPIC -z lazy") set(APP_RES_DIR "assets") set(APP_SERVICE "${APP_RES_DIR}/data/com.deepin.dataserver.Calendar.service") set(APP_SYSTEMD_SERVICE "${APP_RES_DIR}/data/com.dde.calendarserver.calendar.service") set(APP_SYSTEMD_TIMER "${APP_RES_DIR}/data/com.dde.calendarserver.calendar.timer") set(AUTOSTART_DESKTOP "${APP_RES_DIR}/dde-calendar-service.desktop") set(HUANGLIDB "${APP_RES_DIR}/data/huangli.db") set(APP_QRC "${APP_RES_DIR}/resources.qrc") # Find the library find_package(PkgConfig REQUIRED) find_package(DtkCore REQUIRED) find_package(Qt5 COMPONENTS Core DBus Sql REQUIRED) set(LINK_LIBS Qt5::Core Qt5::DBus Qt5::Sql ${DtkCore_LIBRARIES} ) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) SUBDIRLIST(all_src ${CMAKE_CURRENT_SOURCE_DIR}/src) #Include all app own subdirectorys foreach(subdir ${all_src}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/${subdir}) endforeach() file(GLOB_RECURSE CALENDARSERVICE_SRCS ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) #添加资源文件 QT5_ADD_RESOURCES(CALENDARSERVICE_SRCS ${APP_QRC}) include_directories(../calendar-basicstruct/) #后端程序自动退出宏控制 add_definitions(-DCALENDAR_SERVICE_AUTO_EXIT) add_executable(${PROJECT_NAME} ${CALENDARSERVICE_SRCS}) target_link_libraries(${PROJECT_NAME} ${LINK_LIBS} basestruct) set(CMAKE_INSTALL_PREFIX /usr) # Install files install(TARGETS ${PROJECT_NAME} DESTINATION lib/deepin-daemon/) install(FILES ${APP_SERVICE} DESTINATION share/dbus-1/services/) install(FILES ${AUTOSTART_DESKTOP} DESTINATION /etc/xdg/autostart/) install(FILES ${HUANGLIDB} DESTINATION share/dde-calendar/data/) install(FILES ${APP_SYSTEMD_SERVICE} DESTINATION lib/systemd/user/) install(FILES ${APP_SYSTEMD_TIMER} DESTINATION lib/systemd/user/) dde-calendar-5.9.1/calendar-service/assets/000077500000000000000000000000001423264401600205445ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/assets/data/000077500000000000000000000000001423264401600214555ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/assets/data/com.dde.calendarserver.calendar.service000066400000000000000000000005261423264401600311220ustar00rootroot00000000000000[Unit] Description = dde-calendar date service After=dbus.socket Requires=dbus.socket [Service] Type = simple ExecStart = /bin/bash -c "dbus-send --session --print-reply --dest=com.deepin.dataserver.Calendar /com/deepin/dataserver/Calendar com.deepin.dataserver.Calendar.updateRemindJob boolean:false" [Install] WantedBy=user-session.targetdde-calendar-5.9.1/calendar-service/assets/data/com.dde.calendarserver.calendar.timer000066400000000000000000000003341423264401600305770ustar00rootroot00000000000000[Unit] Description = dde-calendar date service [Timer] Unit = com.dde.calendarserver.calendar.service OnActiveSec = 1s OnUnitInactiveSec = 10m AccuracySec = 1us RandomizedDelaySec = 0 [Install] WantedBy = timers.targetdde-calendar-5.9.1/calendar-service/assets/data/com.deepin.dataserver.Calendar.service000077500000000000000000000001461423264401600307330ustar00rootroot00000000000000[D-BUS Service] Name=com.deepin.dataserver.Calendar Exec=/usr/lib/deepin-daemon/dde-calendar-service dde-calendar-5.9.1/calendar-service/assets/data/huangli.db000066400000000000000000063500001423264401600234170ustar00rootroot00000000000000SQLite format 3@    .0:  R h  (''tablefestival_2022festival_2022 CREATE TABLE festival_2022 (id TEXT NOT NULL PRIMARY KEY,month INTEGER NOT NULL,name TEXT,description TEXT, rest TEXT, list TEXT)9 M'indexsqlite_autoindex_festival_2022_1festival_2022(''tablefestival_2021festival_2021CREATE TABLE festival_2021 (id TEXT NOT NULL PRIMARY KEY,month INTEGER NOT NULL,name TEXT,description TEXT, rest TEXT, list TEXT)9M'indexsqlite_autoindex_festival_2021_1festival_2021+''tablefestival_2020festival_2020CREATE TABLE festival_2020 (id TEXT NOT NULL PRIMARY KEY,month INTEGER NOT NULL,name TEXT,description TEXT, rest TEXT, list TEXT):M'indexsqlite_autoindex_festival_2020_1festival_2020+''tablefestival_2019festival_2019CREATE TABLE festival_2019 (id TEXT NOT NULL PRIMARY KEY,month INTEGER NOT NULL,name TEXT,description TEXT, rest TEXT, list TEXT):M'indexsqlite_autoindex_festival_2019_1festival_2019h'tablehuanglihuangliCREATE TABLE huangli (id INTEGER NOT NULL PRIMARY KEY, avoid TEXT, suit TEXT) xph`XPH@80( xph`XPH@80(  x p h ` X P H @ 8 0 (    x p h ` X P H @ 8 0 (    x p h ` X P H @ 8 0 (    x p h ` X P H @ 8 0 (    x p h ` X P H @ 8 0 (    xph`XPH@80( xph`XPH@80( xph`XPH@80( xph`XPH@80( xph`XPH@80(  ݘ> ݗ] ݖxݖݕ3ݔTݓmݓݒ(ݑKݐaݐJ9!u[u2On !)"B#b$%6&Z'q(),*O+g, -#.C/[0ۮ1ۮ2ۭ3۬A4۫Z5۪{6۪7۩58ۨR9ۧo:ۧ;ۦ(<ۥF=z>?4@VApBC+DKEgFG H>Iڑ}JڑKڐ}LڏOMڏ7Nڎ OڍsPڍ Qڌ-RڋFSڊgTډUډVbWyXY5ZX[ٿp\ٿ]پ+^ٽM_ټe`ټMaٻbٻcFd_efg=hUixjk3lLmlnoاGpئeqئrإ sؤ<tؤ!uآvvآ]wءwxءyؠ1z؟S{؞k|(}G~b|02Lh׋$׊D׉`׈z׈ׇ-׆Gׅaׄyׄ׃.ׂKֽ ּ-ֻJֺgֺֹ ָ=ַXֶuֵֶ)ִE3Lf~Oc~8ՠxՠ՟՟՞;՝\՜~՜՛=՚]ՙwՙ՘+lQn (‰JÉkĉʼn(ƉElj_ȉyɉʉԄWˉԃt̉ԃ͉Ԃ.ΉԁLωԁ2ЉԀQщo҉Ӊ)ԉHՉb։׉Ӷ<؉ӵYىӴwډӴۉӳ3܉ӲR݉ӱlމӱ ߉Ӱ"ӯ=ӮYӭv4Lh~8Oi99VҙEҘbҗyҗҖ-ҕAҔXғ*ғҒ+ґF (Fc ?\y.J#B Z s  # =Rp )ЯfЯЮ Э9ЬRЫ"Ъ:ЩQШnШЧ$b! >!W"s#$)%D&a'z()ϓU*ϒw+ϒ],ϑ|-ϑ.ϐ8/ϏW0ώu1ώ2ύ.3όJ4ϋc5ϋ6D7g89j:;(?ο&@ξ@AνZBμxC:D!EAF`G{HI?J_K|LM2NKOhPͩ)QͨERͧcSͦ~TͦUͦVͥ"Wͤ@XͣaY͢{Z͢[͡0\͠M] ^)_I`dab%cCdae~fg4hPi̍ ǰ&k̋Bl̊[m̉xn̉ö.ṗJq̆`r̅{s̅t̄4u˾ov˾w˽x˼9y˻Tz˺n{˹A|˸W}˷r~˷˶*c{-F-?]wʢLʡjʡʠʟ6ʞNʝ!ʜ5ʛRʚmʚ Db}1JczJe oD " 8 O ec<1-f5m%E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.UEw嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.BEO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,~'C诸事不宜.祭祀.解除.余事勿取.A}EM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.b|E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;{)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XzE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LySU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4x7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.wE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7v)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sua移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OtEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|so探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.Hr7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.qSk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cpau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{oEA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.ena{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. mSW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;l7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%k}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.jE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产."i)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+h'A诸事不宜.平治道涂.余事勿取.Ng)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jf)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=eQ;入宅.动土.破土.余事勿取.教牛马.余事勿取. g[C S Q D 1xD Lg%JE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5IE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>HEG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.GS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.WF)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.CESE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4DE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.C)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.B')诸事不宜.破屋.坏垣.AE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.I@赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.X?So动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3>E1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,='C诸事不宜.扫舍.塞穴.余事勿取.t<a栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3;S#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4:S%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.T9Eu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.8E{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.j7S塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;6EC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.g5S 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~4=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._3E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.j27-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.J1Ea嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.0)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬./oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u. o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.-E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩. !2022100110!2022091009!2022060306!2022050105!2022040504!2022020102 ! 2022010101  n h   5 $ *~00w>eEG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XdE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;c)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.b')诸事不宜.求医.破屋.BaEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]`E造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.A__5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.X^E}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0]U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[\Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.[EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EZEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&YS 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.IX'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&WE安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._V7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.US]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.ETo+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.ASEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\RE开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uQS'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jPS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nOS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qNS移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cME嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.CLSE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.QK) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.uJ)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3I'Q诸事不宜.解除.破屋.坏垣.余事勿取.ZE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门. + 8 [6 + S !WUO2021100110 国庆节10月1日至7日放假调休,共7天。9月26日(星期日)、10月9日(星期六)上班。拼假建议:10月8、9日请假,即可与10月10日一天的周末相连,形成10天长假。[{"date":"2021-9-26","status":2},{"date":"2021-10-1","status":1},{"date":"2021-10-2","status":1},{"date":"2021-10-3","status":1},{"date":"2021-10-4","status":1},{"date":"2021-10-5","status":1},{"date":"2021-10-6","status":1},{"date":"2021-10-7","status":1},{"date":"2021-10-9","status":2}]` !U O2021061206端午节6月12日至14日放假,共3天。拼假建议:请4天假(6月15-18日),可连休9天。[{"date":"2021-6-12","status":1},{"date":"2021-6-13","status":1},{"date":"2021-6-14","status":1}]  !oeM2021021202春节2月11日(除夕)至17日放假调休,共7天。2月7日(星期日)、2月20日(星期六)上班。拼假建议:2月18、19、20日请假,即可与2月21日一天的周末相连,形成11天奢华长假[{"date":"2021-2-7","status":2},{"date":"2021-2-11","status":1},{"date":"2021-2-12","status":1},{"date":"2021-2-13","status":1},{"date":"2021-2-14","status":1},{"date":"2021-2-15","status":1},{"date":"2021-2-16","status":1},{"date":"2021-2-17","status":1},{"date":"2021-2-20","status":2}]#!=/O2021021102除夕2月11日放假一天。农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2021-2-11","status":1}] +` ! _ I2021010101元旦2021年1月1日至3日放假,共3天。拼假建议:(12月30-31日/1月4-5日)请假,连休5天[{"date":"2021-1-1","status":1},{"date":"2021-1-2","status":1},{"date":"2021-1-3","status":1}]W !#g2021091909 中秋节9月19日至21日放假调休,共3天。9月18日(星期六)上班。拼假建议:9月22、23、24日请假,即可与9月25、26日两天的周末相连,形成8天长假。[{"date":"2021-9-18","status":2},{"date":"2021-9-19","status":1},{"date":"2021-9-20","status":1},{"date":"2021-9-21","status":1}]@ !SUC2021050105劳动节5月1日至5日放假调休,共5天。4月25日(星期日)、5月8日(星期六)上班。拼假建议:5月6、7、8日请假,即可与5月9日一天的周末相连,形成8天长假。[{"date":"2021-4-25","status":2},{"date":"2021-5-1","status":1},{"date":"2021-5-2","status":1},{"date":"2021-5-3","status":1},{"date":"2021-5-4","status":1},{"date":"2021-5-5","status":1},{"date":"2021-5-8","status":2}]_ !]I2021040304清明节4月3日至5日放假调休,共3天。拼假建议:请4天假(4月6-9日),可连休9天。[{"date":"2021-4-3","status":1},{"date":"2021-4-4","status":1},{"date":"2021-4-5","status":1}] zz!2021100110!2021021102 !2021091909!2021061206!2021050105!2021040304!2021021202 ! 2021010101  Q > =! O2022100110 国庆节[{"date":"2022-10-1","status":1},{"date":"2022-10-2","status":1},{"date":"2022-10-3","status":1},{"date":"2022-10-4","status":1},{"date":"2022-10-5","status":1},{"date":"2022-10-6","status":1},{"date":"2022-10-7","status":1},{"date":"2022-10-8","status":2},{"date":"2022-10-9","status":2}]}! O2022091009 中秋节[{"date":"2022-9-10","status":1},{"date":"2022-9-11","status":1},{"date":"2022-9-12","status":1}]z! I2022060306端午节[{"date":"2022-6-3","status":1},{"date":"2022-6-4","status":1},{"date":"2022-6-5","status":1}]x! E2022050105劳动节[{"date":"2022-4-24","status":2},{"date":"2022-4-30","status":1},{"date":"2022-5-1","status":1},{"date":"2022-5-2","status":1},{"date":"2022-5-3","status":1},{"date":"2022-5-4","status":1},{"date":"2022-5-7","status":2}]! 2022040504清明节[{"date":"2022-4-2","status":2},{"date":"2022-4-3","status":1},{"date":"2022-4-4","status":1},{"date":"2022-4-5","status":1}]4! C2022020102春节[{"date":"2022-1-29","status":2},{"date":"2022-1-30","status":2},{"date":"2022-1-31","status":1},{"date":"2022-2-1","status":1},{"date":"2022-2-2","status":1},{"date":"2022-2-3","status":1},{"date":"2022-2-4","status":1},{"date":"2022-2-5","status":1},{"date":"2022-2-6","status":1}]v!  I2022010101元旦[{"date":"2022-1-1","status":1},{"date":"2022-1-2","status":1},{"date":"2022-1-3","status":1}] R m g [ B q3uݘO m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݘNSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݘM'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݘLEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݘKEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PݘJaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cݘIS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KݘHSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SݘGaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ݘFa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ݘEE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XݘDE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ݘCS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ݘBa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WݘAa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ݘ@S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rݘ?o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服. mb  <  Nk;m]ݘ>Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uݘ=oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tݘ<Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iݘ;';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ݘ: U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vݘ9[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ݘ8会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ݘ7oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ݘ6S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ݘ5)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ݘ4Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ݘ3E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ݘ2Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qݘ1a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SݗjSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ݗiS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ݗhaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ݗg5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ݗf伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ݗe'C诸事不宜.解除.扫舍.余事勿取.ݗdEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ݗc'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ݗb'C诸事不宜.祭祀.解除.余事勿取.ݗaa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ݗ`'O诸事不宜.祭祀.修饰垣墙.余事勿取. ݗ_5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ݗ^a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种. Je _  S : i + Q7 }<;ݗ]'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ݗ\aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ݗ[5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mݗZ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ݗY'C诸事不宜.解除.坏垣.余事勿取.ݗXa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ݗW'Q诸事不宜.治病.破屋.坏垣.余事勿取.RݗV) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ݗU)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ݗT'A诸事不宜.平治道涂.余事勿取.NݗS)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JݗR)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ݗQQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ݗP)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JݗO)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ݗN)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uݗM m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݗSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݗ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݗEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݗEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PݗaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cݗS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KݗSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SݗaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ݖa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ݖ~E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xݖ}E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ݖ|S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ݖ{a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wݖza_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ݖyS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅. wF~M   " + JTm%Jrݖxo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ݖwSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UݖvoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TݖuKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iݖt';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ݖs U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vݖr[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ݖq会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ݖpoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ݖoS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ݖn)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ݖmKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ݖlE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ݖkSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qݖja嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SݖiSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ݖ"S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ݖ!aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ݖ 5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ݖ伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ݖ'C诸事不宜.解除.扫舍.余事勿取.ݖEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ݖ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ݖ'C诸事不宜.祭祀.解除.余事勿取.ݖa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜. ![wq e L { = cIN8[2ݖ'O诸事不宜.祭祀.修饰垣墙.余事勿取. ݖ5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ݖa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ݖ'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ݖaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ݖ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mݖ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ݖ'C诸事不宜.解除.坏垣.余事勿取.ݖa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ݖ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rݖ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ݖ)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ݖ 'A诸事不宜.平治道涂.余事勿取.Nݖ )嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jݖ )}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ݖ Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ݖ )S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jݖ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ݖ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uݖ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݖSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݕ?'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݕ>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݕ=EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pݕ<aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cݕ;S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kݕ:SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sݕ9aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ݕ8a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ݕ7E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xݕ6E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ݕ5S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ݕ4a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水. g@  R o?qygWݕ3a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ݕ2S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rݕ1o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ݕ0Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uݕ/oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tݕ.Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iݕ-';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ݕ, U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vݕ+[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ݕ*会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ݕ)oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ݕ(S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ݕ')Q移徙.入宅.破屋.坏垣.治病.余事勿取.ݕ&Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ݕ%E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ݕ$Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qݕ#a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sݕ"Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ݕ!S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ݔ[aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ݔZ5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ݔY伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ݔX'C诸事不宜.解除.扫舍.余事勿取.ݔWEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ݔV'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ݔU'C诸事不宜.祭祀.解除.余事勿取. ![ -   = y :-c!OPzI._[ݔTa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ݔS'O诸事不宜.祭祀.修饰垣墙.余事勿取. ݔR5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ݔQa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ݔP'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ݔOaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ݔN5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mݔM37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ݔL'C诸事不宜.解除.坏垣.余事勿取.ݔKa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ݔJ'Q诸事不宜.治病.破屋.坏垣.余事勿取.RݔI) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ݔH)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ݔG'A诸事不宜.平治道涂.余事勿取.NݔF)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JݔE)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ݔDQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ݔC)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JݔB)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ݔA)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uݔ@ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݔ?SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݔ>'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݔ=EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݓvEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PݓuaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cݓtS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KݓsSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SݓraW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ݓqa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ݓpE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XݓoE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ݓnS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑. j2 | i ݓma5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wݓla_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ݓkS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rݓjo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ݓiSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UݓhoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TݓgKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iݓf';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ݓe U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vݓd[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ݓc会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ݓboQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ݓaS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ݓ`)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ݓ_Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ݓ^E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ݓ]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qݓ\a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sݓ[Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ݓZS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ݓYaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ݓ5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ݓ伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马. #Q8 g ~ ) O 5 {:$~GN,ݓ'C诸事不宜.解除.扫舍.余事勿取.ݓEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ݓ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ݓ'C诸事不宜.祭祀.解除.余事勿取.ݓ a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ݓ 'O诸事不宜.祭祀.修饰垣墙.余事勿取. ݓ 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ݓ a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ݓ 'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ݓaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ݓ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mݓ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ݓ'C诸事不宜.解除.坏垣.余事勿取.ݓa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ݓ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rݓ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ݓ)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ݓ'A诸事不宜.平治道涂.余事勿取.Nݒ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jݒ~)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ݒ}Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ݒ|)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jݒ{)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ݒz)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uݒy m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݒxSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݒw'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݒvEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݒuEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pݒ.aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cݒ-S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kݒ,SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sݒ+aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ݒ*a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ݒ)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种. ;^D k t  / Z aeHn19';Xݒ(E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ݒ'S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ݒ&a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wݒ%a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ݒ$S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rݒ#o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ݒ"Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uݒ!oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tݒ Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iݒ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ݒ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vݒ[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ݒ会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ݒoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ݒS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ݒ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ݒKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ݒE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ݒSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qݒa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SݒSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ݒS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ݒaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ݒ5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土. #? - O L ? u 3ab*[@q-m<tCݑK伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ݑJ'C诸事不宜.解除.扫舍.余事勿取.ݑIEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ݑH'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ݑG'C诸事不宜.祭祀.解除.余事勿取.ݑFa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ݑE'O诸事不宜.祭祀.修饰垣墙.余事勿取. ݑD5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ݑCa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ݑB'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ݑAaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ݑ@5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mݑ?37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ݑ>'C诸事不宜.解除.坏垣.余事勿取.ݑ=a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ݑ<'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rݑ;) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ݑ:)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ݑ9'A诸事不宜.平治道涂.余事勿取.Nݑ8)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jݑ7)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ݑ6Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ݑ5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jݑ4)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ݑ3)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uݑ2 m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݑ1SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݑ0'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݑ/EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݑ.EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pݑ-aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cݐeS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KݐdSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SݐcaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ݐba%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴. | J g 7 iq_s)ݐaE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xݐ`E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ݐ_S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ݐ^a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wݐ]a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ݐ\S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rݐ[o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ݐZSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UݐYoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TݐXKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iݐW';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ݐV U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vݐU[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ݐT会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ݐSoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ݐRS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ݐQ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ݐPKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ݐOE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ݐNSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qݐMa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SݐLSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ݐKS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟. 'sEz+ M J = s 1 _`(Y>o+k:rA sݐJaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ݐI5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ݐ伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ݐ'C诸事不宜.解除.扫舍.余事勿取.ݐEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ݐ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ݏ'C诸事不宜.祭祀.解除.余事勿取.ݏ~a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ݏ}'O诸事不宜.祭祀.修饰垣墙.余事勿取. ݏ|5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ݏ{a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ݏz'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ݏyaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ݏx5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mݏw37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ݏv'C诸事不宜.解除.坏垣.余事勿取.ݏua_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ݏt'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rݏs) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ݏr)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ݏq'A诸事不宜.平治道涂.余事勿取.Nݏp)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jݏo)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ݏnQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ݏm)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jݏl)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ݏk)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uݏj m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ݏiSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ݏh'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ݏgEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ݏfEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PݏeaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.J?)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=>Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5=)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J<)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<;)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u: m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. b  .>z; 9SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:8'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>7EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.6EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P5aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c4S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K3SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S2aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;1a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)0E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X/E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍..S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.-a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W,a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0+S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r*o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.])Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U(oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T'Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i&';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)% U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v$[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.#会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网."oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑. !5 { :  $ ~ GN\Bir-X7!S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4Z)Q移徙.入宅.破屋.坏垣.治病.余事勿取.YKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]XE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]WSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qVa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SUSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.TS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.SaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.R5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.Q伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,P'C诸事不宜.解除.扫舍.余事勿取.OEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:N'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,M'C诸事不宜.祭祀.解除.余事勿取.La5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2K'O诸事不宜.祭祀.修饰垣墙.余事勿取. J5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Ia_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;H'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. GaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#F5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mE37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,D'C诸事不宜.解除.坏垣.余事勿取.Ca_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3B'Q诸事不宜.治病.破屋.坏垣.余事勿取.RA) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."@)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+?'A诸事不宜.平治道涂.余事勿取.N>)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J=)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=wQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5v)S入宅.安葬.出行.沐浴.理发.补垣.塞穴. <bf I o 2 : (<teFpEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.oEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PnaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cmS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KlSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SkaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ja%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)iE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XhE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.gS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.fa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wea_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0dS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rco开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]bSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UaoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T`Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i_';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)^ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v][嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.\会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网. y^./ Y ( ~ > : AzB y[oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ZS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4Y)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门. S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟. aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁. 5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土. 伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马., 'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m~37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,}'C诸事不宜.解除.坏垣.余事勿取.|a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3{'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rz) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."y)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+x'A诸事不宜.平治道涂.余事勿取.Nw)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jv)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜. ^U 2 " =7+jAXzwj)^=uQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5/)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J.)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<-)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u, m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. +SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:*'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>)EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.(EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P'aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c&S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K%SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S$aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;#a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)"E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X!E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍. S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.) U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑. X+ P  r L^{K会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]KE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]JSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qIa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SHSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.GS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.FaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.E5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.D伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,C'C诸事不宜.解除.扫舍.余事勿取.BEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:A'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,@'C诸事不宜.祭祀.解除.余事勿取.?a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2>'O诸事不宜.祭祀.修饰垣墙.余事勿取. =5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.<a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;;'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. :aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#95嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m837伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,7'C诸事不宜.解除.坏垣.余事勿取.6a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.35'Q诸事不宜.治病.破屋.坏垣.余事勿取.R4) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."3)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬. Q .  9 3'f=Tvsf%Z +2'A诸事不宜.平治道涂.余事勿取.N1)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J0)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=/Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5.)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J-)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.bEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.aEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P`aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c_S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K^SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S]aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;\a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)[E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XZE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.YS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Xa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WWa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0VS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rUo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]TSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.USoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TRKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iQ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)P U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖. b1 G  C  J  K vO[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.N会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.MoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7LS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4K)Q移徙.入宅.破屋.坏垣.治病.余事勿取.JKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]IE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.~5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.}伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,|'C诸事不宜.解除.扫舍.余事勿取.{EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:z'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,y'C诸事不宜.祭祀.解除.余事勿取.xa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2w'O诸事不宜.祭祀.修饰垣墙.余事勿取. v5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ua_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;t'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. saA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#r5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mq37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,p'C诸事不宜.解除.坏垣.余事勿取.oa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池. n&K ; V P D+ZqBw(n3n'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rm) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."l)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+k'A诸事不宜.平治道涂.余事勿取.Nj)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Ji)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=hQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5g)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jf)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.] Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖. V x   R dQi ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)  U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q;a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S:Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.9S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.8aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.75嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.6伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,5'C诸事不宜.解除.扫舍.余事勿取.4EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:3'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,2'C诸事不宜.祭祀.解除.余事勿取.1a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.20'O诸事不宜.祭祀.修饰垣墙.余事勿取. /5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种..a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;-'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ,aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#+5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m*37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍. y%  0 *  ] 4Kmj]QHy,)'C诸事不宜.解除.坏垣.余事勿取.(a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3''Q诸事不宜.治病.破屋.坏垣.余事勿取.R&) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."%)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+$'A诸事不宜.平治道涂.余事勿取.N#)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J")}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=!Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5 )S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. TSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:S'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>REG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.QEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PPaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cOS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KNSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SMaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;La%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)KE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XJE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.IS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Ha5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WGa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0FS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rEo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]DSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UCoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬. q1 - 4  m 5  l#TBKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iA';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)@ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v?[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.>会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.=oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7<S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4;)Q移徙.入宅.破屋.坏垣.治病.余事勿取.:Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]9E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]sSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qra嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SqSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.pS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.oaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.n5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.m伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,l'C诸事不宜.解除.扫舍.余事勿取.kEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:j'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,i'C诸事不宜.祭祀.解除.余事勿取.ha5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2g'O诸事不宜.祭祀.修饰垣墙.余事勿取. f5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ea_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;d'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. caA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种. t@  R o?2g^t#b5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.ma37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,`'C诸事不宜.解除.坏垣.余事勿取._a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3^'Q诸事不宜.治病.破屋.坏垣.余事勿取.R]) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."\)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+['A诸事不宜.平治道涂.余事勿取.NZ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JY)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=XQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5W)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JV)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.nUS嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.v/[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑..会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.-oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7,S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4+)Q移徙.入宅.破屋.坏垣.治病.余事勿取.*Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.])E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.](Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q'a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S&Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.%S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.$aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.#5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土."伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,!'C诸事不宜.解除.扫舍.余事勿取. EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取. ![ -   = y :-c!OPzI._[a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3'Q诸事不宜.治病.破屋.坏垣.余事勿取.R) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.")+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+J'A诸事不宜.平治道涂.余事勿取.NI)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JH)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=GQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5F)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JE)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.@EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.?EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P>aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c=S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K<SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S;aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;:a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)9E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X8E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.7S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑. j2 | i 6a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W5a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.04S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r3o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]2Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U1oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T0Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i/';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.). U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v-[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.g会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.foQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7eS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4d)Q移徙.入宅.破屋.坏垣.治病.余事勿取.cKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]bE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]aSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q`a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S_Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.^S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.]aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.\5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.[伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马. #Q8 g ~ ) O 5 {:$~GN,Z'C诸事不宜.解除.扫舍.余事勿取.YEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:X'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,W'C诸事不宜.祭祀.解除.余事勿取.Va5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2U'O诸事不宜.祭祀.修饰垣墙.余事勿取. T5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Sa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;R'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. QaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#P5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mO37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,N'C诸事不宜.解除.坏垣.余事勿取.Ma_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3L'Q诸事不宜.治病.破屋.坏垣.余事勿取.RK) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."J)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+I'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J~)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<})a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u| m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. {SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:z'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>yEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.xEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PwaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cvS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KuSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.StaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;sa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)rE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种. ;^D k t  / Z aeHn19';XqE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.pS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.oa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wna_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0mS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rlo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]kSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UjoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TiKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.ih';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)g U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vf[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.e会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土. #? - O L ? u 3ab*[@q-m<tC伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种. a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.; 'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.# 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3'Q诸事不宜.治病.破屋.坏垣.余事勿取.R) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.")+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J;)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=:Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.59)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J8)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<7)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u6 m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. 5SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:4'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>3EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.2EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P1aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c0S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K/SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S.aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;-a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴. | J g 7 iq_s),E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X+E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.*S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.)a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W(a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0'S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r&o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]%Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U$oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T#Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i"';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)! U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v [嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4V)Q移徙.入宅.破屋.坏垣.治病.余事勿取.UKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]TE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]SSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qRa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SQSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.PS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟. #/F h e X  L z{CtYFU\$OaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.N5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.M伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,L'C诸事不宜.解除.扫舍.余事勿取.KEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:J'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,I'C诸事不宜.祭祀.解除.余事勿取.Ha5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2G'O诸事不宜.祭祀.修饰垣墙.余事勿取. F5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Ea_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;D'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. CaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#B5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mA37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,@'C诸事不宜.解除.坏垣.余事勿取.?a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3>'Q诸事不宜.治病.破屋.坏垣.余事勿取.R=) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."<)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+;'A诸事不宜.平治道涂.余事勿取.N:)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J9)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=sQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5r)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jq)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.lEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.kEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PjaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.ciS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KhSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.   ( 2 K(3-!`SgaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;fa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)eE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XdE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.cS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ba5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Waa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0`S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r_o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]^Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U]oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T\Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i[';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)Z U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vY[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.X会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.WoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7VS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4U)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.] E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.] Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓. "@wt g & [ R hUd%k3@S Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门. S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.~a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;}'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. |aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#{5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mz37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,y'C诸事不宜.解除.坏垣.余事勿取.xa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3w'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rv) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."u)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+t'A诸事不宜.平治道涂.余事勿取.Ns)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jr)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=qQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5+)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J*)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<))a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u( m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. 'SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:&'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>%EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.$EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任. RH O S 6 \'q)zaRP#aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c"S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K!SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.) U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取. Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]DE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓. #p<j ` & B  j  = b"%^&p]CSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qBa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SASc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.@S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.?aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.>5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.=伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,<'C诸事不宜.解除.扫舍.余事勿取.;EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.::'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,9'C诸事不宜.祭祀.解除.余事勿取.8a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.27'O诸事不宜.祭祀.修饰垣墙.余事勿取. 65入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.5a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;4'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. 3aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#25嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m137伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,0'C诸事不宜.解除.坏垣.余事勿取./a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3.'Q诸事不宜.治病.破屋.坏垣.余事勿取.R-) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.++'A诸事不宜.平治道涂.余事勿取.N*)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J))}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=cQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5b)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Ja)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<`)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u_ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ^SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:]'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>\EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.  c ' + |  4 YId^R9h*[EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PZaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cYS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KXSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SWaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;Va%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)UE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XTE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.SS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Ra5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WQa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0PS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rOo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]NSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UMoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TLKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iK';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)J U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vI[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.H会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.GoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7FS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.ZEE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门. ~C \  9 )D>2qH_ ~:ۮ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ۮEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ۮEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PۮaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cۮS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KۮSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SۮaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ۮa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ۮE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XۮE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ۮS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ۮa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wۮa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ۮS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rۮo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ۮSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UۮoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TۮKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iۮ ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ۮ  U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vۮ [嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ۮ 会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ۮ oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ۮS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑. #NEz+ q 0 t=DR8_h#N4ۮ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ۮKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ۮE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ۮSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qۮa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SۮSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ۮS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ۭ:aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ۭ95嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ۭ8伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ۭ7'C诸事不宜.解除.扫舍.余事勿取.ۭ6EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ۭ5'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ۭ4'C诸事不宜.祭祀.解除.余事勿取.ۭ3a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ۭ2'O诸事不宜.祭祀.修饰垣墙.余事勿取. ۭ15入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ۭ0a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ۭ/'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ۭ.aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ۭ-5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mۭ,37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ۭ+'C诸事不宜.解除.坏垣.余事勿取.ۭ*a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ۭ)'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rۭ() 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ۭ')+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ۭ&'A诸事不宜.平治道涂.余事勿取.Nۭ%)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jۭ$)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ۭ#Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ۭ")S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jۭ!)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ۭ )a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uۭ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. b  .>z; ۭSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ۭ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>۬WEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.۬VEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P۬UaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c۬TS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K۬SSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S۬RaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;۬Qa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)۬PE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X۬OE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.۬NS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.۬Ma5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W۬La_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0۬KS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r۬Jo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]۬ISy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U۬HoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T۬GKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i۬F';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)۬E U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v۬D[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.۬C会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.۬BoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑. !5 { :  $ ~ GN\Bir-X7۬AS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4۬@)Q移徙.入宅.破屋.坏垣.治病.余事勿取.۬?Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]۬>E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]۬=Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q۬<a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S۬;Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.۬:S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.۬9aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.۫r5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.۫q伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,۫p'C诸事不宜.解除.扫舍.余事勿取.۫oEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:۫n'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,۫m'C诸事不宜.祭祀.解除.余事勿取.۫la5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2۫k'O诸事不宜.祭祀.修饰垣墙.余事勿取. ۫j5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.۫ia_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;۫h'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ۫gaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#۫f5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m۫e37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,۫d'C诸事不宜.解除.坏垣.余事勿取.۫ca_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3۫b'Q诸事不宜.治病.破屋.坏垣.余事勿取.R۫a) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."۫`)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+۫_'A诸事不宜.平治道涂.余事勿取.N۫^)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J۫])}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=۫\Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5۫[)S入宅.安葬.出行.沐浴.理发.补垣.塞穴. <bf I o 2 : (<teF۫UEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.۫EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P۫aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c۫ S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K۫ SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S۫ aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;۫ a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)۫ E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X۫E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.۫S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.۫a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W۫a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0۫S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r۫o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]۫Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U۫oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T۫Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i۪';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)۪~ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v۪}[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.۪|会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网. y^./ Y ( ~ > : AzB y۪{oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7۪zS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4۪y)Q移徙.入宅.破屋.坏垣.治病.余事勿取.۪xKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]۪wE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]۪vSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q۪ua嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S۪tSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.۪sS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.۪raO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.۪q5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.۪+伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,۪*'C诸事不宜.解除.扫舍.余事勿取.۪)EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:۪('_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,۪''C诸事不宜.祭祀.解除.余事勿取.۪&a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2۪%'O诸事不宜.祭祀.修饰垣墙.余事勿取. ۪$5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.۪#a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;۪"'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ۪!aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#۪ 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m۪37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,۪'C诸事不宜.解除.坏垣.余事勿取.۪a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3۪'Q诸事不宜.治病.破屋.坏垣.余事勿取.R۪) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."۪)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+۪'A诸事不宜.平治道涂.余事勿取.N۪)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J۪)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜. ^U 2 " =7+jAXzwj)^=۪Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5۪)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J۪)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<۪)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u۪ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ۪SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:۪'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>۪EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.۪EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P۪ aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c۩FS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K۩ESS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S۩DaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;۩Ca%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)۩BE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X۩AE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.۩@S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.۩?a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W۩>a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0۩=S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r۩<o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]۩;Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U۩:oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T۩9Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i۩8';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)۩7 U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v۩6[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑. X+ P  r L^{K۩5会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.۩4oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7۩3S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4۩2)Q移徙.入宅.破屋.坏垣.治病.余事勿取.۩1Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]۩0E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]۩/Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q۩.a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S۩-Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.۩,S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.۩+aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.۩*5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.۩)伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ۨc'C诸事不宜.解除.扫舍.余事勿取.ۨbEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ۨa'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ۨ`'C诸事不宜.祭祀.解除.余事勿取.ۨ_a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ۨ^'O诸事不宜.祭祀.修饰垣墙.余事勿取. ۨ]5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ۨ\a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ۨ['a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ۨZaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ۨY5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mۨX37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ۨW'C诸事不宜.解除.坏垣.余事勿取.ۨVa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ۨU'Q诸事不宜.治病.破屋.坏垣.余事勿取.RۨT) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ۨS)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬. Q .  9 3'f=Tvsf%Z +ۨR'A诸事不宜.平治道涂.余事勿取.NۨQ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JۨP)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ۨOQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ۨN)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JۨM)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ۨL)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uۨK m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ۨJSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ۨI'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ۨHEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ۨGEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PۨFaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cۨES嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kۧ~SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sۧ}aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ۧ|a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ۧ{E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XۧzE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ۧyS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ۧxa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wۧwa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ۧvS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rۧuo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ۧtSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UۧsoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TۧrKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iۧq';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ۧp U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖. b1 G  C  J  K vۧo[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ۧn会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ۧmoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ۧlS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ۧk)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ۧjKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ۧiE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ۧhSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qۧga嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SۧfSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ۧeS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ۧdaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ۧc5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ۧb伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ۧa'C诸事不宜.解除.扫舍.余事勿取.ۧEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ۧ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ۧ'C诸事不宜.祭祀.解除.余事勿取.ۧa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ۧ'O诸事不宜.祭祀.修饰垣墙.余事勿取. ۧ5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ۧa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ۧ'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ۧaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ۧ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mۧ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ۧ'C诸事不宜.解除.坏垣.余事勿取.ۧa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池. n&K ; V P D+ZqBw(n3ۧ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rۧ ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ۧ )+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ۧ 'A诸事不宜.平治道涂.余事勿取.Nۧ )嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jۧ )}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ۧQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ۧ)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jۧ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ۧ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uۧ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ۧSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ۧ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ۧEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ۧEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PۦaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cۦ~S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kۦ}SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sۦ4aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ۦ3a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ۦ2E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xۦ1E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ۦ0S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ۦ/a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wۦ.a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ۦ-S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rۦ,o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ۦ+Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uۦ*oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tۦ)Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖. i]% G j q ! e3P{ iiۦ(';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ۦ' U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vۦ&[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ۦ%会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ۦ$oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ۦ#S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ۦ")Q移徙.入宅.破屋.坏垣.治病.余事勿取.ۦ!Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ۦ E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ۦSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qۦa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SۦSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ۦS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ۦaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ۦ5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ۦ伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ۥS'C诸事不宜.解除.扫舍.余事勿取.ۥREQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ۥQ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ۥP'C诸事不宜.祭祀.解除.余事勿取.ۥOa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ۥN'O诸事不宜.祭祀.修饰垣墙.余事勿取. ۥM5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ۥLa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ۥK'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ۥJaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ۥI5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mۥH37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ۥG'C诸事不宜.解除.坏垣.余事勿取. ']mc) E  m  @  e % \Fb23]ۥFa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ۥE'Q诸事不宜.治病.破屋.坏垣.余事勿取.RۥD) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ۥC)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ۥB'A诸事不宜.平治道涂.余事勿取.NۥA)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jۥ@)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ۥ?Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ۥ>)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jۥ=)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ۥ<)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uۥ; m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ۥ:SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ۥ9'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ۥ8EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ۥ7EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pۥ6aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.&ۥ5E入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种. a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.; 'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.# 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m 37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3'Q诸事不宜.治病.破屋.坏垣.余事勿取.R) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.")+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J~)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<})a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u| m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. {SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒. ~C \  9 )D>2qH_ ~:z'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>yEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.xEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PwaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cvS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KuSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.StaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;sa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)rE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XqE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.*S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.)a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W(a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0'S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r&o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]%Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U$oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T#Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i"';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)! U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v [嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑. #NEz+ q 0 t=DR8_h#N4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2 'O诸事不宜.祭祀.修饰垣墙.余事勿取. G5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Fa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;E'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. DaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#C5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mB37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,A'C诸事不宜.解除.坏垣.余事勿取.@a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3?'Q诸事不宜.治病.破屋.坏垣.余事勿取.R>) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."=)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+<'A诸事不宜.平治道涂.余事勿取.N;)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J:)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=9Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.58)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J7)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<6)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u5 m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. b  .>z; 4SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:3'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>2EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.1EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P0aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c/S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K.SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S-aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;,a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)+E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X*E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.)S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ba5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Waa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0`S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r_o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]^Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U]oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T\Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i[';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)Z U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vY[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.X会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.WoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑. !5 { :  $ ~ GN\Bir-X7VS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4U)Q移徙.入宅.破屋.坏垣.治病.余事勿取.TKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]SE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]RSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qQa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SPSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.OS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.NaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.M5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.L伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,K'C诸事不宜.解除.扫舍.余事勿取.JEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:I'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,H'C诸事不宜.祭祀.解除.余事勿取.Ga5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2F'O诸事不宜.祭祀.修饰垣墙.余事勿取. E5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;~'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. }aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#|5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m{37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,z'C诸事不宜.解除.坏垣.余事勿取.ya_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3x'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rw) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."v)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+u'A诸事不宜.平治道涂.余事勿取.Nt)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Js)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=rQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5q)S入宅.安葬.出行.沐浴.理发.补垣.塞穴. <bf I o 2 : (<teFkEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.jEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PiaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.chS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KgSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SfaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ea%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)dE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XcE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.bS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.aa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.) U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网. y^./ Y ( ~ > : AzB yoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.] E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.] Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门. S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.~a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;}'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. 6aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#55嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m437伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,3'C诸事不宜.解除.坏垣.余事勿取.2a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.31'Q诸事不宜.治病.破屋.坏垣.余事勿取.R0) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."/)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+.'A诸事不宜.平治道涂.余事勿取.N-)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J,)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜. ^U 2 " =7+jAXzwj)^=+Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5*)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J))}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<()a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u' m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. &SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:%'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>$EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.#EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P"aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c!S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0SS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rRo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]QSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UPoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TOKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iN';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)M U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vL[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑. X+ P  r L^{KK会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.JoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7IS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4H)Q移徙.入宅.破屋.坏垣.治病.余事勿取.GKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]FE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ESy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qDa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SCSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.BS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.AaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.@5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.?伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,>'C诸事不宜.解除.扫舍.余事勿取.=EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:<'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,;'C诸事不宜.祭祀.解除.余事勿取.:a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.29'O诸事不宜.祭祀.修饰垣墙.余事勿取. 85入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.7a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;6'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. 5aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#n5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mm37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,l'C诸事不宜.解除.坏垣.余事勿取.ka_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3j'Q诸事不宜.治病.破屋.坏垣.余事勿取.Ri) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."h)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬. Q .  9 3'f=Tvsf%Z +g'A诸事不宜.平治道涂.余事勿取.Nf)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Je)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=dQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5c)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jb)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.]EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.\EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P[aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cZS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KYSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SXaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;Wa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)VE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XUE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.TS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Sa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WRa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0QS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.] Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.) U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖. Yq0  t = D R8_h#NUYv[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]~Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q}a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S|Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.{S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.zaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.y5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.x伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,w'C诸事不宜.解除.扫舍.余事勿取.vEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:u'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,t'C诸事不宜.祭祀.解除.余事勿取.sa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2r'O诸事不宜.祭祀.修饰垣墙.余事勿取. q5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.pa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;o'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. naA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#m5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m%37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,$'C诸事不宜.解除.坏垣.余事勿取.#a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3"'Q诸事不宜.治病.破屋.坏垣.余事勿取.R!) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.  { q %a"K g7" )+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍. S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑. a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0 S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rCo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]BSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UAoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T@Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i?';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马. J ' X  T # [ * \'1J)> U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v=[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.<会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.;oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7:S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.49)Q移徙.入宅.破屋.坏垣.治病.余事勿取.8Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]7E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]6Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q5a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S4Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.3S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.2aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.15嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.0伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,/'C诸事不宜.解除.扫舍.余事勿取..EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:-'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,,'C诸事不宜.祭祀.解除.余事勿取.+a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2*'O诸事不宜.祭祀.修饰垣墙.余事勿取. )5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.(a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;''a余事勿取.安葬.启攒.移柩.入殓.除服.成服. &aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.{%EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.]ڑSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qڑ~a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓. "@wt g & [ R hUd%k3@Sڑ}Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ڑ|S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ڑ{aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ڑz5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ڑy伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ڑx'C诸事不宜.解除.扫舍.余事勿取.ڑwEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ڑv'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ڑu'C诸事不宜.祭祀.解除.余事勿取.ڑta5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ڑs'O诸事不宜.祭祀.修饰垣墙.余事勿取. ڑr5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ڑqa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ڑp'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ڑoaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ڑn5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mڑm37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ڑl'C诸事不宜.解除.坏垣.余事勿取.ڑka_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ڑj'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rڑi) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ڑh)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ڑg'A诸事不宜.平治道涂.余事勿取.Nڑf)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jڑe)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ڑdQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ڑc)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jڑb)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ڑa)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uڑ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ڑSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ڑ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ڑEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ڑEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任. RH O S 6 \'q)zaRPڑaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cڑS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KڑSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SڑaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ڑa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ڑE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XڑE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ڑS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ڑ a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wڑ a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ڑ S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rڑ o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ڑ Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UڑoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TڑKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iڑ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ڑ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vڑ[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ڑ会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ڑoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ڑS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ڑ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ڐKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ڐ~E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓. #p<j ` & B  j  = b"%^&p]ڐ}Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qڐ7a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sڐ6Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ڐ5S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ڐ4aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ڐ35嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ڐ2伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ڐ1'C诸事不宜.解除.扫舍.余事勿取.ڐ0EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ڐ/'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ڐ.'C诸事不宜.祭祀.解除.余事勿取.ڐ-a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ڐ,'O诸事不宜.祭祀.修饰垣墙.余事勿取. ڐ+5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ڐ*a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ڐ)'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ڐ(aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ڐ'5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mڐ&37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ڐ%'C诸事不宜.解除.坏垣.余事勿取.ڐ$a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ڐ#'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rڐ") 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ڐ!)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ڐ 'A诸事不宜.平治道涂.余事勿取.Nڐ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jڐ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ڐQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ڐ)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jڐ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ڐ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uڐ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ڏRSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ڏQ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ڏPEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水. d+n 2 6  ? d  Toi ]Ds5ڏOEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PڏNaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cڏMS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KڏLSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SڏKaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ڏJa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ڏIE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XڏHE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ڏGS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ڏFa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WڏEa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ڏDS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rڏCo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ڏBSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UڏAoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tڏ@Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iڏ?';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ڏ> U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vڏ=[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ڏ<会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ڏ;oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ڏ:S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ڏ9)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ڏ8Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎. "mc) E  m  @  e %!(a)s]ڏ7E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ڏ6Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qڏ5a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SڎoSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ڎnS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ڎmaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ڎl5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ڎk伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ڎj'C诸事不宜.解除.扫舍.余事勿取.ڎiEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ڎh'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ڎg'C诸事不宜.祭祀.解除.余事勿取.ڎfa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ڎe'O诸事不宜.祭祀.修饰垣墙.余事勿取. ڎd5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ڎca_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ڎb'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ڎaaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ڎ`5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mڎ_37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ڎ^'C诸事不宜.解除.坏垣.余事勿取.ڎ]a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ڎ\'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rڎ[) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ڎZ)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ڎY'A诸事不宜.平治道涂.余事勿取.NڎX)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JڎW)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ڎVQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ڎU)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JڎT)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ڎS)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uڎR m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ڎQSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒. ~C \  9 )D>2qH_ ~:ڎ '_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ڎ EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ڎ EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PڎaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cڎS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KڎSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SڎaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ڎa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ڎE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XڎE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ڎS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ڎa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wڍa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ڍ~S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rڍ}o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ڍ|Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uڍ{oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TڍzKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iڍy';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ڍx U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vڍw[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ڍv会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ڍuoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ڍtS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑. #NEz+ q 0 t=DR8_h#N4ڍs)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ڍrKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ڍqE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ڍpSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qڍoa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SڍnSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ڍmS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ڍ&aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ڍ%5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ڍ$伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ڍ#'C诸事不宜.解除.扫舍.余事勿取.ڍ"EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ڍ!'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ڍ 'C诸事不宜.祭祀.解除.余事勿取.ڍa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ڍ'O诸事不宜.祭祀.修饰垣墙.余事勿取. ڍ5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ڍa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ڍ'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ڍaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ڍ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mڍ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ڍ'C诸事不宜.解除.坏垣.余事勿取.ڍa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ڍ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rڍ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ڍ)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ڍ'A诸事不宜.平治道涂.余事勿取.Nڍ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jڍ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ڍQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ڍ)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jڍ )}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ڍ )a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uڍ  m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. b  .>z; ڍ SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ڍ '_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ڌCEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ڌBEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PڌAaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cڌ@S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kڌ?SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sڌ>aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ڌ=a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ڌ<E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xڌ;E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ڌ:S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ڌ9a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wڌ8a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ڌ7S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rڌ6o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ڌ5Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uڌ4oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tڌ3Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iڌ2';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ڌ1 U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vڌ0[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ڌ/会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ڌ.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑. !5 { :  $ ~ GN\Bir-X7ڌ-S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ڌ,)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ڌ+Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ڌ*E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ڌ)Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qڌ(a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sڌ'Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ڌ&S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ڌ%aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ڋ^5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ڋ]伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ڋ\'C诸事不宜.解除.扫舍.余事勿取.ڋ[EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ڋZ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ڋY'C诸事不宜.祭祀.解除.余事勿取.ڋXa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ڋW'O诸事不宜.祭祀.修饰垣墙.余事勿取. ڋV5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ڋUa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ڋT'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ڋSaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ڋR5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mڋQ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ڋP'C诸事不宜.解除.坏垣.余事勿取.ڋOa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ڋN'Q诸事不宜.治病.破屋.坏垣.余事勿取.RڋM) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ڋL)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ڋK'A诸事不宜.平治道涂.余事勿取.NڋJ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JڋI)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ڋHQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ڋG)S入宅.安葬.出行.沐浴.理发.补垣.塞穴. <bf I o 2 : (<teFڋAEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ڊ{EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PڊzaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cڊyS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KڊxSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SڊwaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ڊva%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ڊuE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XڊtE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ڊsS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ڊra5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wڊqa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ڊpS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rڊoo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ڊnSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UڊmoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TڊlKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iڊk';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ڊj U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vڊi[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ڊh会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网. y^./ Y ( ~ > : AzB yڊgoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ڊfS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ڊe)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ڊdKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ڊcE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ڊbSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qڊaa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sڊ`Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ڊ_S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ڊ^aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ڊ]5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ڊ伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ڊ'C诸事不宜.解除.扫舍.余事勿取.ڊEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ڊ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ڊ'C诸事不宜.祭祀.解除.余事勿取.ڊa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ڊ'O诸事不宜.祭祀.修饰垣墙.余事勿取. ڊ 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ڊ a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ڊ 'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ڊ aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ڊ 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mڊ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ڊ'C诸事不宜.解除.坏垣.余事勿取.ڊa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ڊ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rڊ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ڊ)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ڊ'A诸事不宜.平治道涂.余事勿取.Nڊ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jڊ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜. ^U 2 " =7+jAXzwj)^=ډQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ډ~)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jډ})}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ډ|)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uډ{ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ډzSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ډy'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ډ3EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ډ2EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pډ1aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cډ0S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kډ/SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sډ.aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ډ-a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ډ,E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xډ+E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ډ*S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ډ)a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wډ(a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ډ'S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rډ&o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ډ%Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uډ$oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tډ#Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iډ"';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ډ! U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vډ [嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑. | J g 7 cPډ会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ډoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ډS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ډ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ډKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ډE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ډSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qډa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SډSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ډS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.bډE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.io';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)n U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vm[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.l会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.koQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7jS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4i)Q移徙.入宅.破屋.坏垣.治病.余事勿取.hKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]gE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]fSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qea嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SdSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.cS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟. #/F h e X  L z{CtYFU\$baO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.a5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.`伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,_'C诸事不宜.解除.扫舍.余事勿取.^EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:]'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,\'C诸事不宜.祭祀.解除.余事勿取.[a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2Z'O诸事不宜.祭祀.修饰垣墙.余事勿取. Y5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Xa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;W'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. VaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#U5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mT37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,S'C诸事不宜.解除.坏垣.余事勿取.Ra_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3Q'Q诸事不宜.治病.破屋.坏垣.余事勿取.R ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅." )+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>~EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.}EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P|aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c{S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KzSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.   ( 2 K(3-!`SyaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;xa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)wE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XvE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.uS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ta5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wsa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0rS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rqo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]pSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UooK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TnKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.im';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)' U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v&[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.%会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.$oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7#S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4")Q移徙.入宅.破屋.坏垣.治病.余事勿取.!Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.] E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓. "@wt g & [ R hUd%k3@SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m 37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍., 'C诸事不宜.解除.坏垣.余事勿取. a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3 'Q诸事不宜.治病.破屋.坏垣.余事勿取.R ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."B)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+A'A诸事不宜.平治道涂.余事勿取.N@)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J?)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=>Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5=)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J<)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<;)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u: m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. 9SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:8'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>7EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.6EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任. RH O S 6 \'q)zaRP5aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c4S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K3SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S2aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;1a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)0E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X/E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍..S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.-a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W,a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0+S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r*o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.])Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U(oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T'Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i&';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)% U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v_[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.^会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.]oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7\S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4[)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ZKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]YE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓. #p<j ` & B  j  = b"%^&p]XSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qWa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SVSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.US;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.TaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.S5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.R伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,Q'C诸事不宜.解除.扫舍.余事勿取.PEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:O'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,N'C诸事不宜.祭祀.解除.余事勿取.Ma5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2L'O诸事不宜.祭祀.修饰垣墙.余事勿取. K5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Ja_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;I'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. HaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#G5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mF37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,E'C诸事不宜.解除.坏垣.余事勿取.Da_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3C'Q诸事不宜.治病.破屋.坏垣.余事勿取.RB) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."A)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ٿ{'A诸事不宜.平治道涂.余事勿取.Nٿz)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jٿy)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ٿxQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ٿw)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jٿv)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ٿu)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uٿt m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ٿsSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ٿr'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ٿqEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水. d+n 2 6  ? d  Toi ]Ds5ٿpEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PٿoaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cٿnS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KٿmSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SٿlaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ٿka%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ٿjE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XٿiE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ٿhS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ٿga5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wٿfa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ٿeS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rٿdo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ٿcSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UٿboK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TٿaKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iٿ`';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ٿ_ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vٿ^[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ٿ]会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ٿoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ٿS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ٿ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ٿKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎. "mc) E  m  @  e %!(a)s]ٿE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ٿSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qٿa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SٿSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ٿS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ٿ aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ٿ 5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ٿ 伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ٿ 'C诸事不宜.解除.扫舍.余事勿取.ٿ EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ٿ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ٿ'C诸事不宜.祭祀.解除.余事勿取.ٿa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ٿ'O诸事不宜.祭祀.修饰垣墙.余事勿取. ٿ5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ٿa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ٿ'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ٿaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ٿ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mپ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,پ~'C诸事不宜.解除.坏垣.余事勿取.پ}a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3پ|'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rپ{) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."پz)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+پy'A诸事不宜.平治道涂.余事勿取.Nپ3)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jپ2)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=پ1Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5پ0)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jپ/)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<پ.)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uپ- m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. پ,SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒. ~C \  9 )D>2qH_ ~:پ+'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>پ*EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.پ)EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pپ(aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cپ'S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kپ&SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sپ%aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;پ$a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)پ#E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xپ"E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.پ!S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.پ a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wپa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0پS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rپo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]پSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UپoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TپKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iپ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)پ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vپ[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.پ会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.پoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ٽNS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑. #NEz+ q 0 t=DR8_h#N4ٽM)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ٽLKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ٽKE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ٽJSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qٽIa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SٽHSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ٽGS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ٽFaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ٽE5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ٽD伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ٽC'C诸事不宜.解除.扫舍.余事勿取.ٽBEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ٽA'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ٽ@'C诸事不宜.祭祀.解除.余事勿取.ٽ?a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ٽ>'O诸事不宜.祭祀.修饰垣墙.余事勿取. ٽ=5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ٽ<a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ٽ;'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ٽ:aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ٽ95嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mٽ837伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ٽ7'C诸事不宜.解除.坏垣.余事勿取.ٽ6a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ٽ5'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rٽ4) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ٽ3)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ٽ2'A诸事不宜.平治道涂.余事勿取.Nٽ1)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jټk)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ټjQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ټi)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jټh)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ټg)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uټf m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. b  .>z; ټeSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ټd'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ټcEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ټbEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PټaaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cټ`S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kټ_SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sټ^aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ټ]a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ټ\E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xټ[E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ټZS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ټYa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WټXa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ټWS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rټVo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ټUSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UټToK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TټSKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iټR';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ټQ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vټP[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ټO会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ټNoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑. !5 { :  $ ~ GN\Bir-X7ټMS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ټ)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ټKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ټE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ټSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qټa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SٻSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ٻ~S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ٻ}aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ٻ|5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ٻ{伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ٻz'C诸事不宜.解除.扫舍.余事勿取.ٻyEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ٻx'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ٻw'C诸事不宜.祭祀.解除.余事勿取.ٻva5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ٻu'O诸事不宜.祭祀.修饰垣墙.余事勿取. ٻt5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ٻsa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ٻr'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ٻqaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ٻp5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mٻo37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ٻn'C诸事不宜.解除.坏垣.余事勿取.ٻma_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ٻl'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rٻk) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ٻj)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ٻi'A诸事不宜.平治道涂.余事勿取.Nٻ#)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jٻ")}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ٻ!Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ٻ )S入宅.安葬.出行.沐浴.理发.补垣.塞穴. <bf I o 2 : (<teFٻEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ٻEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PٻaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cٻS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KٻSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SٻaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ٻa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ٻE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XٻE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ٻS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ٻa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wٻa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ٻS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rٻ o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ٻ Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uٻ oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tٻ Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iٻ ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ٻ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vٻ[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ٻ会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网. I@  R o?qyIuٻ)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.0_S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r^o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U\oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T[Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iZ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)Y U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vX[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.W会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.VoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7US+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4T)Q移徙.入宅.破屋.坏垣.治病.余事勿取.SKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]RE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]QSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qPa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SOSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.NS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.MaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.L5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.K伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,J'C诸事不宜.解除.扫舍.余事勿取.IEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:H'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,G'C诸事不宜.祭祀.解除.余事勿取. ![ -   = y :-c!OPzI._[Fa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2E'O诸事不宜.祭祀.修饰垣墙.余事勿取. D5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Ca_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;B'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. AaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#z5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.my37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,x'C诸事不宜.解除.坏垣.余事勿取.wa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3v'Q诸事不宜.治病.破屋.坏垣.余事勿取.Ru) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."t)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+s'A诸事不宜.平治道涂.余事勿取.Nr)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jq)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=pQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5o)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jn)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.iEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.hEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PgaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cfS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KeSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SdaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ca%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)bE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XaE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.`S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑. j2 | i _a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W^a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0]S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.) U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4 )Q移徙.入宅.破屋.坏垣.治病.余事勿取. Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.] E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.] Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马. #Q8 g ~ ) O 5 {:$~GN,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2~'O诸事不宜.祭祀.修饰垣墙.余事勿取. }5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.|a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;{'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. zaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#y5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m237伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,1'C诸事不宜.解除.坏垣.余事勿取.0a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3/'Q诸事不宜.治病.破屋.坏垣.余事勿取.R.) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."-)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+,'A诸事不宜.平治道涂.余事勿取.N+)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J*)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=)Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5()S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J')}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<&)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u% m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. $SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:#'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>"EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.!EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种. ;^D k t  / Z aeHn19';XE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]OSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UNoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TMKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iL';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)K U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vJ[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.I会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.HoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7GS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4F)Q移徙.入宅.破屋.坏垣.治病.余事勿取.EKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]DE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]CSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qBa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SASc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.@S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.?aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.>5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土. #? - O L ? u 3ab*[@q-m<tC=伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,<'C诸事不宜.解除.扫舍.余事勿取.;EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.::'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,9'C诸事不宜.祭祀.解除.余事勿取.8a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.27'O诸事不宜.祭祀.修饰垣墙.余事勿取. 65入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.5a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;4'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. 3aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#25嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m137伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,k'C诸事不宜.解除.坏垣.余事勿取.ja_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3i'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rh) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."g)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+f'A诸事不宜.平治道涂.余事勿取.Ne)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jd)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=cQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5b)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Ja)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<`)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u_ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ^SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:]'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>\EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.[EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PZaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cYS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KXSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SWaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;Va%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴. | J g 7 iq_s)UE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XTE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.SS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Ra5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WQa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0PS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rOo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]NSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UMoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.) U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.~Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]}E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]|Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q{a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SzSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.yS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟. #/F h e X  L z{CtYFU\$xaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.w5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.v伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,u'C诸事不宜.解除.扫舍.余事勿取.tEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:s'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,r'C诸事不宜.祭祀.解除.余事勿取.qa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2p'O诸事不宜.祭祀.修饰垣墙.余事勿取. o5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.na_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;m'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. laA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#k5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mj37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,i'C诸事不宜.解除.坏垣.余事勿取.#a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3"'Q诸事不宜.治病.破屋.坏垣.余事勿取.R!) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅." )+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.   ( 2 K(3-!`SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍. S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑. a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0 S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i>';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)= U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v<[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.;会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.:oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.79S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.48)Q移徙.入宅.破屋.坏垣.治病.余事勿取.7Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]6E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]5Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q4a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓. "@wt g & [ R hUd%k3@S3Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.2S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.1aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.05嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土./伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,.'C诸事不宜.解除.扫舍.余事勿取.-EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:,'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,+'C诸事不宜.祭祀.解除.余事勿取.*a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2)'O诸事不宜.祭祀.修饰垣墙.余事勿取. (5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.'a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;&'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. %aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#$5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m#37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,"'C诸事不宜.解除.坏垣.余事勿取.!a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3['Q诸事不宜.治病.破屋.坏垣.余事勿取.RZ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."Y)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+X'A诸事不宜.平治道涂.余事勿取.NW)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JV)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=UQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5T)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JS)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.NEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.MEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任. RH O S 6 \'q)zaRPLaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cKS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KJSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SIaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;Ha%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)GE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XFE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ES=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Da5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WCa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0BS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rAo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]@Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U?oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T>Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i=';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)t U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vs[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.r会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.qoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7pS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4o)Q移徙.入宅.破屋.坏垣.治病.余事勿取.nKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]mE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓. #p<j ` & B  j  = b"%^&p]lSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qka嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SjSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.iS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.haO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.g5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.f伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,e'C诸事不宜.解除.扫舍.余事勿取.dEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:c'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,b'C诸事不宜.祭祀.解除.余事勿取.aa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2`'O诸事不宜.祭祀.修饰垣墙.余事勿取. _5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.^a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;]'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. \aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#[5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mZ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,Y'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3'Q诸事不宜.治病.破屋.坏垣.余事勿取.R) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.")+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J )}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.= Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5 )S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J )}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.< )a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水. &K ; V P G l \wqeL{=EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)~E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X}E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.|S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.{a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wza_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0yS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rxo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]wSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UvoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.u اOS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.اNa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WاMa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0اLS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rاKo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]اJSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UاIoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TاHKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖. V x   R dQiاG';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)اF U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vاE[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.اD会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.اCoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7اBS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4اA)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ا@Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ا?E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ا>Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qا=a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sا<Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ا;S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ا:aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ا95嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ا8伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ا7'C诸事不宜.解除.扫舍.余事勿取.ا6EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ا5'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ا4'C诸事不宜.祭祀.解除.余事勿取.ا3a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ا2'O诸事不宜.祭祀.修饰垣墙.余事勿取. ا15入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ئja_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ئi'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ئhaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ئg5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mئf37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍. y%  0 *  ] 4Kmj]QHy,ئe'C诸事不宜.解除.坏垣.余事勿取.ئda_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ئc'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rئb) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ئa)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ئ`'A诸事不宜.平治道涂.余事勿取.Nئ_)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jئ^)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ئ]Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ئ\)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jئ[)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ئZ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uئY m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ئXSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ئW'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ئVEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ئUEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PئTaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cئSS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KئRSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SئQaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ئPa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ئOE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XئNE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ئMS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ئa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wئa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ئS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rئo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ئSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UئoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬. q1 - 4  m 5  l#TئKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iئ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)إ U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vإ~[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.إ}会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.إ|oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7إ{S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4إz)Q移徙.入宅.破屋.坏垣.治病.余事勿取.إyKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]إxE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]إwSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qإva嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SإuSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.إtS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.إsaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.إr5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.إq伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,إp'C诸事不宜.解除.扫舍.余事勿取.إoEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:إn'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,إm'C诸事不宜.祭祀.解除.余事勿取.إla5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2إk'O诸事不宜.祭祀.修饰垣墙.余事勿取. إj5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.إia_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;إ"'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. إ!aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种. R m g [ B q3Y ?D#إ 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mإ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,إ'C诸事不宜.解除.坏垣.余事勿取.إa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3إ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rإ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."إ)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+إ'A诸事不宜.平治道涂.余事勿取.Nإ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jإ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=إQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5إ)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jإ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<إ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uإ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. إSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:إ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>إEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.إEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pإ aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cإ S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kإ SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sإ aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;إ a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)إE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XإE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.إS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.إa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wؤ?a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ؤ>S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rؤ=o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服. mb  <  Nk;m]ؤ<Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uؤ;oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tؤ:Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iؤ9';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ؤ8 U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vؤ7[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ؤ6会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ؤ5oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ؤ4S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ؤ3)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ؤ2Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ؤ1E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ؤ0Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qؤ/a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sؤ.Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ؤ-S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ؤ,aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ؤ+5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ؤ*伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ؤ)'C诸事不宜.解除.扫舍.余事勿取.ؤ(EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ؤ''_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ؤ&'C诸事不宜.祭祀.解除.余事勿取.ؤ%a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ؤ$'O诸事不宜.祭祀.修饰垣墙.余事勿取. ؤ#5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ؤ"a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种. Je _  S : i + Q7 }<;ؤ!'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. أ[aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#أZ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mأY37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,أX'C诸事不宜.解除.坏垣.余事勿取.أWa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3أV'Q诸事不宜.治病.破屋.坏垣.余事勿取.RأU) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."أT)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+أS'A诸事不宜.平治道涂.余事勿取.NأR)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JأQ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=أPQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5أO)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JأN)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<أM)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uأL m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. أKSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:أJ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>أIEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.أHEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PأGaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cأFS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KأESS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SأDaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;أCa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)أBE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XأAE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.أ@S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.أ?a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wأ>a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0أ=S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅. wF~M   " + JTm%Jrآvo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]آuSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UآtoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TآsKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iآr';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)آq U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vآp[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.آo会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.آnoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7آmS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4آl)Q移徙.入宅.破屋.坏垣.治病.余事勿取.آkKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]آjE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]آiSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qآha嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SآgSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.آfS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.آeaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.آd5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.آc伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,آb'C诸事不宜.解除.扫舍.余事勿取.آaEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:آ`'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,آ_'C诸事不宜.祭祀.解除.余事勿取.آ^a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜. ![wq e L { = cIN8[2آ]'O诸事不宜.祭祀.修饰垣墙.余事勿取. آ\5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.آ[a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;آZ'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. آYaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#آ5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mآ37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,آ'C诸事不宜.解除.坏垣.余事勿取.آa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3آ'Q诸事不宜.治病.破屋.坏垣.余事勿取.Rآ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."آ )+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+آ 'A诸事不宜.平治道涂.余事勿取.Nآ )嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Jآ )}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=آ Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5آ)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jآ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<آ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uآ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. آSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:آ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>آEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.آEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PآaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cءS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kء~SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sء}aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ء|a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ء{E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XءzE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ءyS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ءxa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水. g@  R o?qygWءwa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ءvS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rءuo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ء.Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.Uء-oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tء,Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iء+';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ء* U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vء)[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ء(会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ء'oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ء&S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ء%)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ء$Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ء#E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ء"Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qء!a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sء Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ءS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ءaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ء5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ء伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ء'C诸事不宜.解除.扫舍.余事勿取.ءEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ء'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ء'C诸事不宜.祭祀.解除.余事勿取. ![ -   = y :-c!OPzI._[ءa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ء'O诸事不宜.祭祀.修饰垣墙.余事勿取. ء5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ءa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ء'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ءaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ء5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mؠK37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ؠJ'C诸事不宜.解除.坏垣.余事勿取.ؠIa_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ؠH'Q诸事不宜.治病.破屋.坏垣.余事勿取.RؠG) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ؠF)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ؠE'A诸事不宜.平治道涂.余事勿取.NؠD)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JؠC)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ؠBQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ؠA)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.Jؠ@)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ؠ?)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uؠ> m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ؠ=SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ؠ<'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ؠ;EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ؠ:EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pؠ9aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cؠ8S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kؠ7SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sؠ6aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ؠ5a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ؠ4E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.Xؠ3E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ؠ2S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑. j2 | i ؠ1a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wؠ0a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ؠ/S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rؠ.o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ؠ-Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U؟eoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T؟dKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i؟c';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)؟b U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v؟a[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.؟`会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.؟_oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7؟^S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4؟])Q移徙.入宅.破屋.坏垣.治病.余事勿取.؟\Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]؟[E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]؟ZSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q؟Ya嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S؟XSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.؟WS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.؟VaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.؟U5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.؟T伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马. #Q8 g ~ ) O 5 {:$~GN,؟S'C诸事不宜.解除.扫舍.余事勿取.؟REQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:؟Q'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,؟P'C诸事不宜.祭祀.解除.余事勿取.؟Oa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2؟N'O诸事不宜.祭祀.修饰垣墙.余事勿取. ؟M5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.؟La_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;؟K'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ؟JaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#؟I5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m؟37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,؟'C诸事不宜.解除.坏垣.余事勿取.؟a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3؟'Q诸事不宜.治病.破屋.坏垣.余事勿取.R؞) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."؞~)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+؞}'A诸事不宜.平治道涂.余事勿取.N؞|)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J؞{)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=؞zQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5؞y)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J؞x)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<؞w)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u؞v m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ؞uSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:؞t'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>؞sEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.؞rEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P؞qaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c؞pS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K؞oSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S؞naW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;؞ma%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)؞lE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种. wq e L { = cI+%X؞kE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.؞jS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.؞ia5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W؞ha_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0؞gS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r؞fo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.؞e R?) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.">)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+='A诸事不宜.平治道涂.余事勿取.N<)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J;)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=:Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.59)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J8)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<7)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u6 m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. 5SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:4'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>3EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.2EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P1aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c0S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K/SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S.aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;-a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.),E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X+E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.*S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.)a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水. 1& F Y y . (}"sW(a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0'S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅. &5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)% U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.$}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.#''诸事不宜.诸事不宜.V"!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.S!Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`Z)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.Y''诸事不宜.诸事不宜.,X'C诸事不宜.沐浴.扫舍.余事勿取.jWE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^V)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:U'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. TEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%S)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.REK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FQEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZPE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,O'C诸事不宜.祭祀.沐浴.余事勿取.pNS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LMSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pLS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.ZKSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LJEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4I)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IHE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土. | z & C  5Z/p(=qFvHGSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JFE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^ES{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._Dam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.ICSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.BgG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.Ag[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. @}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,?'C诸事不宜.祭祀.塞穴.余事勿取.g>)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.B=)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:w'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`v)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.Cu)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9t']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?s7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8r)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&q)5行丧.安葬.作灶.造畜椆栖.?p)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.oEm作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.JnEa栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.ymE=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. lE]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,k'C诸事不宜.破屋.坏垣.余事勿取.]jSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.niS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\hE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{gS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.fE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EeSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. dgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.cg'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅. {Q  g h RGM_PbEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. aYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.j`S嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.0_ c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,^'C诸事不宜.破屋.坏垣.余事勿取.#]5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0\ c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.W[E{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.Z''诸事不宜.诸事不宜.:Y'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._oa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. Ee安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4E5入殓.安葬.开市.交易.祭祀.诸事不宜.{EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7 E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.I E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取. EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.A )i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.: )]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Jo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4a嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%5'探病.余事勿取.余事勿取.mo}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%~S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.c}aw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取. < H N S  zL^ q7'S\|E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.{嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.z %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.ySm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.xa_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.w}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.Fv)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gu)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`/)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:.'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5-)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.C,)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.M+Ci嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.N*)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.R)) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.J(7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.C')o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. & 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.% 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. $ 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7#S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4")Q行丧.安葬.破屋.坏垣.治病.余事勿取.|!S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.I E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.gE嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.ua开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.OS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网. "1 j * J  *y$l5;}T#" G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,'C诸事不宜.破屋.坏垣.余事勿取.}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.ja开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.CK)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.JJ)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^I'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.JH)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..G)E开市.破土.祭祀.作灶.纳财.捕捉.RF赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.YE)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3D'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.JC7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,B'C诸事不宜.沐浴.扫舍.余事勿取.PA' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.@ !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.?S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.>Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.W=a_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.<aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.b;S开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.A:KG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.Z9Sq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;8)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.m7o}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.66S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.O5aO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.L4aG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.n3S嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.2E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,1'C诸事不宜.祭祀.解除.余事勿取. "uF \ > W j !7 s.Ue7u0E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖./E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,.'C诸事不宜.祭祀.栽种.余事勿取.J-)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.Jf)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.e''诸事不宜.诸事不宜.Rd) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`c5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;b)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Ya)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M`7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<_7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5^)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y])开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@\'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.[ #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.ZEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.BY)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^XS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dWE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uVK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.qUY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.RTEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.8EG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.7S_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W6)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.C5SE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.44E3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.3)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎. ]z p  ND]BK_.uI2')诸事不宜.破屋.坏垣.1E 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.I0赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.X/So动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3.E1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,-'C诸事不宜.扫舍.塞穴.余事勿取.t,a栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3+S#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4*S%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.T)Eu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.(E{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.j'S塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;&EC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.g%S 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~$=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._#E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.j"7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.!5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸. )掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>TEG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XSE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;R)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.Q')诸事不宜.求医.破屋.BPEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]OE造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.AN_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XME}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓. c5 < b % Npm 7N0LU掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[KSu祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.JEQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EIEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&HS 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.IG'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&FE安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._E7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.DS]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.ECo+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.ABEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\AE开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.u@S'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.j?S祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.n>S嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.q=S移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.c<E嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.|;EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Q:) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.u9)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3s'Q诸事不宜.解除.破屋.坏垣.余事勿取.ZrE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%qE出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.UpEw嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{oEA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.BnEO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,m'C诸事不宜.祭祀.解除.余事勿取.AlEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bkE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;j)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XiE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑. 9 u 6 ) _  { K Tu9bLhSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4g7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.fE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7e)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sda移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OcEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|bo探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.Ha7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.`Sk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.c_au造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{^EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.e]a{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. \SW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;[7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%Z}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.YE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产."X)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+W'A诸事不宜.平治道涂.余事勿取.NV)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JU)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=׋/Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5׋.)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J׋-)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<׋,)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u׋+ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ׋*SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:׋)'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>׋(EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.׋'EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P׋&aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c׋%S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒. Y  $ R n ~ M * m%J:UOC*YK׋$SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S׋#aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;׋"a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)׋!E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X׋ E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.׋S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.׋a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W׋a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0׋S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r׋o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]׋Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U׋oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T׋Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i׋';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.S׋Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`׋)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.׋''诸事不宜.诸事不宜.,׋'C诸事不宜.沐浴.扫舍.余事勿取.j׋E嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^׋)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:׊J'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. ׊IEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%׊H)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.׊GEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.F׊FEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.Z׊EE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木. qr# H  ^  r + 2 Lg4f^7e,׊D'C诸事不宜.祭祀.沐浴.余事勿取.p׊CS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.L׊BSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.p׊AS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.Z׊@Sq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.L׊?Ec造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4׊>)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.I׊=E]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.H׊<SM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.J׊;E_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^׊:S{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._׊9am开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.I׊8SQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.n׊7S嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;׊6S3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._׊5oa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.t׊4S%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{׊3S3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.B׊2)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:׊1'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`׊0)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.C׊/)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9׊.']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?׊-7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8׉g)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&׉f)5行丧.安葬.作灶.造畜椆栖.?׉e)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.׉dEm作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.J׉cEa栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.y׉bE=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. ׉aE]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财. }> w f  w TN<8,׉`'C诸事不宜.破屋.坏垣.余事勿取.]׉_Sw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.n׉^S嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\׉]E嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{׉\S3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.׉[E 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.E׉ZSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. ׉YgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.׉Xg'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.P׉WEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. ׉VYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.j׉US嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.B׉T)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.E׉SKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.B׉RSC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3׉Q)O嫁娶.开市.祭祀.平治道涂.余事勿取.H׉PSM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.׉O''诸事不宜.诸事不宜.:׉N'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._׉Moa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. ׉LEe安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4׉KE5入殓.安葬.开市.交易.祭祀.诸事不宜.{׉JEA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u׉I)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7׉E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.I׉E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.׉EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.A׈)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:׈~)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.׈})e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.׈|Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.c׈{S动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马. "D N  E L x 9hZT5"C!׈z))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.x׈ya嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.J׈xo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7׈w=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4׈va嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%׈u5'探病.余事勿取.余事勿取.m׈to}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%׈sS纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.c׈raw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\׈qE嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.u׈pa针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?׈og)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.u׈no 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.׈mo-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.L׈lYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7׈k}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.g׈j)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`׈i)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:׈h'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5׈g)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.C׈f)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.M׈eCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.N׈)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.R׈) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.J׈7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.C׈)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. ׈ 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.׈ 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. ׈ 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7׈S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4׈)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|׈S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.I׈E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.g׈E嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. !v Y \ h O z B Z Y y@]v ׈SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{׈S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.u׈a开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.׈a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.O׈S[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.׈S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>׈ a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.׈ SC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4׈ )Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`׈ E 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.E׈ SG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.r׈}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.׈-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.J׈7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C׈)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.J׈)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^׈'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.J׈)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..׈)E开市.破土.祭祀.作灶.纳财.捕捉.Rׇ;赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Yׇ:)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3ׇ9'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Jׇ87o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,ׇ7'C诸事不宜.沐浴.扫舍.余事勿取.Pׇ6' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.ׇ5 !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.ׇ4S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.ׇ3Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.Wׇ2a_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.ׇ1aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bׇ0S开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.Aׇ/KG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.Zׇ.Sq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.  v ) ^ % XU=l`|V(;ׇ-)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mׇ,o}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6ׇ+S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.Oׇ*aO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.Lׇ)aG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nׇ(S嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lׇ'E#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uׇ&S'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)ׇ%7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]ׇ$gc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.Kׇ#YM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.Jׇ")}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.Jׇ!)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.ׇ ''诸事不宜.诸事不宜.Rׇ) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`ׇ5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;ׇ)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Y׆V)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M׆U7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<׆T7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5׆S)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y׆R)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@׆Q'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.׆P #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.׆OEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.B׆N)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^׆MS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.d׆LE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.u׆KK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.q׆JY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.R׆IEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.<׆HS7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财. !S@Q ( t 2F_.KjS&׆GS 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.׆FSq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.B׆ESC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.׆Da-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.׆CSe作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.B׆B7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7׆AK3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.u׆@S'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.q׆?S开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{׆>a%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.J׆=QS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.`׆<)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,׆;'C诸事不宜.塞穴.结网.余事勿取.Y׆:)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.C׆9)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<ׅs7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.Jׅr)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`ׅq)'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.3ׅp'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Yׅo)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Yׅn'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.ׅm 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.Dׅl's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.ׅk 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4ׅj)Q破土.安葬.塞穴.断蚁.结网.余事勿取.ׅi''余事勿取.余事勿取.}ׅhS7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.PׅgaQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.cׅfE嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;ׅeEC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.Bׅd)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."ׅcE移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:ׅbE?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬. "P  < " }  c $ytKH^ׅaS{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~ׅ`S9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xׅ_S-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>ׅ^)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."ׅ]as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]ׅ\7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;ׅ[7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7ׅZS+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4ׅY7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟..ׅX77嫁娶.入宅.安葬.沐浴.结网.取渔.:ׅW'_诸事不宜.祭祀.求医.治病.解除.余事勿取.JׅV7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.JׅU7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4ׅ)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.Fׅ 7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Qׅ 7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jׅ S掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.ׅ Ek掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%ׅ E入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ׅQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.ׅEW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.ׅ''诸事不宜.诸事不宜.fׅS 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.ׅE 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@ׅKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OׅS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:ׅa#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~ׅa+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aׄoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fׄ~a}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nׄ}S祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4ׄ|)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./ׄ{77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JׄzSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔. B[ @ I ] , s G~*np$h_ׄyE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uׄxE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gׄwS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.KׄvK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ׄuae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.%ׄtE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5ׄsE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>ׄrEG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.ׄqS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.Wׄ+)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.Cׄ*SE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4ׄ)E3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.ׄ()作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.ׄ'')诸事不宜.破屋.坏垣.ׄ&E 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Iׄ%赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.Xׄ$So动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3ׄ#E1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,ׄ"'C诸事不宜.扫舍.塞穴.余事勿取.tׄ!a栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3ׄ S#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4ׄS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TׄEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.ׄE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jׄS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;ׄEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gׄS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~ׄ=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._ׄE 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.jׄ7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JׄEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养. ft,N l K ,v(CE5fbׄau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cׄE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.ׄE{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.mׄE%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.ׄYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.XׄE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;ׄ)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.ׄ')诸事不宜.求医.破屋.Bׄ EO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]׃DE造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.A׃C_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.X׃BE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0׃AU掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[׃@Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.׃?EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.E׃>EU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&׃=S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.I׃<'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&׃;E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._׃:7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.׃9S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.E׃8o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.A׃7EO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\׃6E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.u׃5S'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.j׃4S祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.n׃3S嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.q׃2S移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.c׃1E嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.C׃0SE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.׃/KQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土. SX m p  j  FL%KKQ׃.) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.g׃-7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.P׃,S_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.%׃+E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.U׃*Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{׃)EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.BׂcEO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,ׂb'C诸事不宜.祭祀.解除.余事勿取.AׂaEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bׂ`E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;ׂ_)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.Xׂ^E}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.Lׂ]SU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4ׂ\7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.ׂ[E{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7ׂZ)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sׂYa移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OׂXEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|ׂWo探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.HׂV7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.ׂUSk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cׂTau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{ׂSEA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.eׂRa{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. ׂQSW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;ׂP7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%ׂO}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.ׂNE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RׂMuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'ׂL5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬. K { q %a"KK?ׂKs作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.yׂJo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7ׂI q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.5ׂH)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JׂG)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ׂF)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uׂE m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ֽSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ֽ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ֽEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ֽEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PֽaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cֽS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KֽSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SֽaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ֽa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ֽE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XֽE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ֽS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ֽa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wֽa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ֽS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rֽo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ֽSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UֽoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.Tֽ Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iֽ ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马. =  K  @ ` sHB$=)ֽ  U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vֽ [嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ֽ 会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ֽoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ֽS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.^ֽ)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:ֽ'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. ֽEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%ֽ)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.ֽEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FֽEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.Zּ:E入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,ּ9'C诸事不宜.祭祀.沐浴.余事勿取.pּ8S开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.Lּ7SU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pּ6S安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.Zּ5Sq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.Lּ4Ec造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4ּ3)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.Iּ2E]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.Hּ1SM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.Jּ0E_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^ּ/S{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._ּ.am开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖. n 8  ? \ + NsH -V;zIּ-SQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nּ,S嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;ּ+S3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._ּ*oa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.tּ)S%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{ּ(S3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.Iּ'){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.ּ&am破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.Eּ%EU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Qּ$ %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.ּ#祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.?ּ"7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8ּ!)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&ּ )5行丧.安葬.作灶.造畜椆栖.?ּ)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.ּEm作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.JּEa栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.yֻWE=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. ֻVE]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,ֻU'C诸事不宜.破屋.坏垣.余事勿取.]ֻTSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.nֻSS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\ֻRE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{ֻQS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.ֻPE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EֻOSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. ֻNgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.ֻMg'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PֻLEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. ֻKYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬. U B v g L Fl5Uy;J8jֻJS嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.BֻI)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EֻHKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.BֻGSC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3ֻF)O嫁娶.开市.祭祀.平治道涂.余事勿取.HֻESM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.ֻDo]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.ֻC1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.ֻB}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VֻASi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[ֻ@Su嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.{ֻ?EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.uֻ>)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7ֻ=E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.Iֻ<E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.ֻ;EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.Aֻ:)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:ֻ9)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.ֺr)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.ֺqEm造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cֺpS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!ֺo))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xֺna嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Jֺmo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7ֺl=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4ֺka嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%ֺj5'探病.余事勿取.余事勿取.mֺio}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%ֺhS纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬. +(  ] $ g 6^e#Dk]W8cֺgaw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\ֺfE嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.uֺea针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?ֺdg)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.uֺco 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.ֺbo-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.LֺaYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7ֺ`}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.Sֺ_Eq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;ֺ^)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.ֺ] 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.ֺ\u;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.Uֺ[Ew嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.MֺZCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.NֺY)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.RֺX) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.JֺW7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.CֺV)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. ֺU 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.ֺ 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. ֺ 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7ֺ S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4ֺ )Q行丧.安葬.破屋.坏垣.治病.余事勿取.|ֺ S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.Iֺ E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.gֺ E嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. ֺSO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{ֺS3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.uֺa开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.ֺa5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.OֺS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒. Nn @ N 2 H  28z8MֺS]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>ֺa+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.ֺSC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4ֺ)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`ֹE 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.Eֹ~SG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.rֹ}}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.ֹ|-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?ֹ{m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&ֹza{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%ֹyay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*ֹxI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:ֹwo行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友..ֹv)E开市.破土.祭祀.作灶.纳财.捕捉.Rֹu赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Yֹt)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3ֹs'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Jֹr7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,ֹq'C诸事不宜.沐浴.扫舍.余事勿取.Pֹ+' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.ֹ* !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.ֹ)S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.ֹ(Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.Wֹ'a_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.ֹ&aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bֹ%S开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.Aֹ$KG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.Zֹ#Sq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;ֹ")_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mֹ!o}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬. (1 j # f , ;<$SpGc=6ֹ S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OֹaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LֹaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nֹS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lֹE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uֹS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)ֹ7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]ֹgc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KֹYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YֹSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4ֹ)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&ֹA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Lֹo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<ֹEE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.;ֹ)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Yֹ)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.Mֹ7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<ֹ7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5ֹ)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Yֹ )开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@ָF'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.ָE #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.ָDEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.BָC)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^ָBS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dָAE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uָ@K/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.qָ?Y安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.Rָ>Eo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕. ty; 8  ? V b u+[ZjfHat<ָ=S7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&ָ<S 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.ָ;Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.Bָ:SC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.ָ9a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.ָ8Se作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.Bָ77_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7ָ6K3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.uָ5S'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.qָ4S开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{ָ3a%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.Jָ2QS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.Eָ1EW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.ָ0am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7ָ/E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;ָ.EC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.ָ-S_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.Jָ,)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`ָ+)'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.3ָ*'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Yָ))开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Yַc'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.ַb 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.Dַa's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.ַ` 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4ַ_)Q破土.安葬.塞穴.断蚁.结网.余事勿取.ַ^''余事勿取.余事勿取.}ַ]S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.Pַ\aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.cַ[E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;ַZEC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.BַY)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取. d@&  g ( } x " J=r// d"ַXE移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:ַWE?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^ַVS{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~ַUS9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xַTS-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>ַS)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."ַRas入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]ַQ7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;ַP7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7ַOS+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4ַN7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.BַM)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.OַLKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SַKSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.ַJSs伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.ַI 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.FַH7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.QַG7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jַFS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.ַEEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%ֶ~E入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ֶ}Q5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.ֶ|EW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.ֶ{''诸事不宜.诸事不宜.fֶzS 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.ֶyE 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@ֶxKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OֶwS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:ֶva#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒. Fb O  3  b > =QS(JF /F~ֶua+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aֶtoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fֶsa}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nֶrS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4ֶq)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./ֶp77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JֶoSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._ֶnE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uֶmE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gֶlS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.KֶkK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ֶjae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.Hֶio1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.AֶhEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2ֶga移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.ֶfE 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.Bֶe)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'ֶd'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.4ֶcE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.ֶb)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.ֶa')诸事不宜.破屋.坏垣.ֶE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Iֶ赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XֶSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3ֶE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,ֶ'C诸事不宜.扫舍.塞穴.余事勿取.tֶa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3ֶS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4ֶS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TֶEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.ֶE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财. % ~  n t gCWN>o M^jֶS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;ֶEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gֶS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~ֶ=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._ֶ E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.jֶ 7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.Jֶ Ea嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bֶ au嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cֶ E嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.ֶE{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.mֶE%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.ֶYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cֶ7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;ֶ)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&ֶ}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.ֶE动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~ֶ开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.Aֶ_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XֵE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0ֵ~U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[ֵ}Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.ֵ4EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.Eֵ3EU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&ֵ2S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.Iֵ1'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&ֵ0E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._ֵ/7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.ֵ.S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.Eֵ-o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.Aֵ,EO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\ֵ+E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uֵ*S'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬. m a % N|xW H1] jֵ)S祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nֵ(S嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qֵ'S移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cֵ&E嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.Cֵ%SE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.ֵ$KQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Qֵ#) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.gֵ"7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.Pֵ!S_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.Hֵ E]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pֵS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7ֵS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. ֵ}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|ֵ} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.ֵ{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.bֵE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;ֵ)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XִSE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LִRSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4ִQ7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.ִPE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7ִO)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sִNa移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OִMEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|ִLo探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.HִK7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.ִJSk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cִIau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{ִHEA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.eִGa{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. ִFSW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬. ^./ Y ( ~ > Xf\!\X ;ִE7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%ִD}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.ִCE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RִBuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'ִA5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?ִ@s作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.yִ?o嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7ִ> q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..ִ=S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.Qִ<aS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.nִ;S嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.sִ:S#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.Bִ97_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.:ִ8'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ִ7EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ִ6EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pִ5aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.; 'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.# 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m 37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍., 'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3'Q诸事不宜.治病.破屋.坏垣.余事勿取.R) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.")+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+'A诸事不宜.平治道涂.余事勿取.N)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜. } NE2 !SqI2019040505清明节4月5日放假,与周末连休。拼假建议:2019年4月1日(周一)~2019年4月4日(周四)请假4天,可拼9天清明节小长假。[{"date":"2019-4-5","status":1},{"date":"2019-4-6","status":1},{"date":"2019-4-7","status":1}]M !)Y2019050104劳动节5月1日放假拼假建议:4月28日(周日)~4月30日(周二)请假3天,可拼8天劳动节小长假。[{"date":"2019-5-1","status":1},{"date":"2019-5-2","status":1},{"date":"2019-5-3","status":1},{"date":"2019-5-4","status":1},{"date":"2019-4-28","status":2},{"date":"2019-5-5","status":2}] !SqI2019040504清明节4月5日放假,与周末连休。拼假建议:2019年4月1日(周一)~2019年4月4日(周四)请假4天,可拼9天清明节小长假。[{"date":"2019-4-5","status":1},{"date":"2019-4-6","status":1},{"date":"2019-4-7","status":1}] !SqI2019040503清明节4月5日放假,与周末连休。拼假建议:2019年4月1日(周一)~2019年4月4日(周四)请假4天,可拼9天清明节小长假。[{"date":"2019-4-5","status":1},{"date":"2019-4-6","status":1},{"date":"2019-4-7","status":1}] !Mq?2019020503春节2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班拼假建议:2019年2月11日(周一)-2019年2月15日(周五)请假5天,可拼14天春节小长假。[{"date":"2019-2-4","status":1},{"date":"2019-2-2","status":2},{"date":"2019-2-3","status":2},{"date":"2019-2-5","status":1},{"date":"2019-2-6","status":1},{"date":"2019-2-7","status":1},{"date":"2019-2-8","status":1},{"date":"2019-2-9","status":1},{"date":"2019-2-10","status":1}]!/M2019020403除夕除夕农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2019-2-4","status":1}] !Mq?2019020502春节2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班拼假建议:2019年2月11日(周一)-2019年2月15日(周五)请假5天,可拼14天春节小长假。[{"date":"2019-2-4","status":1},{"date":"2019-2-2","status":2},{"date":"2019-2-3","status":2},{"date":"2019-2-5","status":1},{"date":"2019-2-6","status":1},{"date":"2019-2-7","status":1},{"date":"2019-2-8","status":1},{"date":"2019-2-9","status":1},{"date":"2019-2-10","status":1}]!/M2019020402除夕除夕农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2019-2-4","status":1}]r !Wk2019010102元旦2018年12月30日至2019年1月1日放假调休,共3天。2018年12月29日(星期六)上班。拼假建议:2019年1月2日(周三)~2019年1月4日(周五)请假3天,可拼8天元旦小长假。[{"date":"2018-12-29","status":2},{"date":"2018-12-31","status":1},{"date":"2019-1-1","status":1},{"date":"2018-12-30","status":1}] ! Mq?2019020501春节2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班拼假建议:2019年2月11日(周一)-2019年2月15日(周五)请假5天,可拼14天春节小长假。[{"date":"2019-2-4","status":1},{"date":"2019-2-2","status":2},{"date":"2019-2-3","status":2},{"date":"2019-2-5","status":1},{"date":"2019-2-6","status":1},{"date":"2019-2-7","status":1},{"date":"2019-2-8","status":1},{"date":"2019-2-9","status":1},{"date":"2019-2-10","status":1}]! /M2019020401除夕除夕农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2019-2-4","status":1}]q ! Wk2019010101元旦2018年12月30日至2019年1月1日放假调休,共3天。2018年12月29日(星期六)上班。拼假建议:2019年1月2日(周三)~2019年1月4日(周五)请假3天,可拼8天元旦小长假。[{"date":"2018-12-29","status":2},{"date":"2018-12-31","status":1},{"date":"2019-1-1","status":1},{"date":"2018-12-30","status  } NE2 !SqI2019040505清明节4月5日放假,与周末连休。拼假建议:2019年4月1日(周一)~2019年4月4日(周四)请假4天,可拼9天清明节小长假。[{"date":"2019-4-5","status":1},{"date":"2019-4-6","status":1},{"date":"2019-4-7","status":1}]M !)Y2019050104劳动节5月1日放假拼假建议:4月28日(周日)~4月30日(周二)请假3天,可拼8天劳动节小长假。[{"date":"2019-5-1","status":1},{"date":"2019-5-2","status":1},{"date":"2019-5-3","status":1},{"date":"2019-5-4","status":1},{"date":"2019-4-28","status":2},{"date":"2019-5-5","status":2}] !SqI2019040504清明节4月5日放假,与周末连休。拼假建议:2019年4月1日(周一)~2019年4月4日(周四)请假4天,可拼9天清明节小长假。[{"date":"2019-4-5","status":1},{"date":"2019-4-6","status":1},{"date":"2019-4-7","status":1}] !SqI2019040503清明节4月5日放假,与周末连休。拼假建议:2019年4月1日(周一)~2019年4月4日(周四)请假4天,可拼9天清明节小长假。[{"date":"2019-4-5","status":1},{"date":"2019-4-6","status":1},{"date":"2019-4-7","status":1}] !Mq?2019020503春节2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班拼假建议:2019年2月11日(周一)-2019年2月15日(周五)请假5天,可拼14天春节小长假。[{"date":"2019-2-4","status":1},{"date":"2019-2-2","status":2},{"date":"2019-2-3","status":2},{"date":"2019-2-5","status":1},{"date":"2019-2-6","status":1},{"date":"2019-2-7","status":1},{"date":"2019-2-8","status":1},{"date":"2019-2-9","status":1},{"date":"2019-2-10","status":1}]!/M2019020403除夕除夕农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2019-2-4","status":1}] !Mq?2019020502春节2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班拼假建议:2019年2月11日(周一)-2019年2月15日(周五)请假5天,可拼14天春节小长假。[{"date":"2019-2-4","status":1},{"date":"2019-2-2","status":2},{"date":"2019-2-3","status":2},{"date":"2019-2-5","status":1},{"date":"2019-2-6","status":1},{"date":"2019-2-7","status":1},{"date":"2019-2-8","status":1},{"date":"2019-2-9","status":1},{"date":"2019-2-10","status":1}]!/M2019020402除夕除夕农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2019-2-4","status":1}]r !Wk2019010102元旦2018年12月30日至2019年1月1日放假调休,共3天。2018年12月29日(星期六)上班。拼假建议:2019年1月2日(周三)~2019年1月4日(周五)请假3天,可拼8天元旦小长假。[{"date":"2018-12-29","status":2},{"date":"2018-12-31","status":1},{"date":"2019-1-1","status":1},{"date":"2018-12-30","status":1}] ! Mq?2019020501春节2月4日至10日放假调休,共7天。2月2日(星期六)、2月3日(星期日)上班拼假建议:2019年2月11日(周一)-2019年2月15日(周五)请假5天,可拼14天春节小长假。[{"date":"2019-2-4","status":1},{"date":"2019-2-2","status":2},{"date":"2019-2-3","status":2},{"date":"2019-2-5","status":1},{"date":"2019-2-6","status":1},{"date":"2019-2-7","status":1},{"date":"2019-2-8","status":1},{"date":"2019-2-9","status":1},{"date":"2019-2-10","status":1}]! /M2019020401除夕除夕农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2019-2-4","status":1}]q ! Wk2019010101元旦2018年12月30日至2019年1月1日放假调休,共3天。2018年12月29日(星期六)上班。拼假建议:2019年1月2日(周三)~2019年1月4日(周五)请假3天,可拼8天元旦小长假。[{"date":"2018-12-29","status":2},{"date":"2018-12-31","status":1},{"date":"2019-1-1","status":1},{"date":"2018-12-30","status":1}] zkM\> /!2019100111!2019100110!2019091310!2019100109!2019091309!2019091308!2019060707!2019060706!2019050106!2019060705!2019050105 !2019040505 !2019050104 !2019040504 !2019040503 !2019020503!2019020403!2019020502!2019020402!2019010102!2019020501!2019020401 ! 2019010101  M : '  !C[Q2019100111 国庆节10月1日至10月7日放假,9月29日(星期日)、10月12日(星期六)上班。拼假建议:9月29日(周日)~9月30日(周一)请2天假,可拼10天国庆节小长假。[{"date":"2019-10-1","status":1},{"date":"2019-9-29","status":2},{"date":"2019-10-2","status":1},{"date":"2019-10-3","status":1},{"date":"2019-10-4","status":1},{"date":"2019-10-7","status":1},{"date":"2019-10-12","status":2},{"date":"2019-10-5","status":1},{"date":"2019-10-6","status":1}] !C[Q2019100110 国庆节10月1日至10月7日放假,9月29日(星期日)、10月12日(星期六)上班。拼假建议:9月29日(周日)~9月30日(周一)请2天假,可拼10天国庆节小长假。[{"date":"2019-10-1","status":1},{"date":"2019-9-29","status":2},{"date":"2019-10-2","status":1},{"date":"2019-10-3","status":1},{"date":"2019-10-4","status":1},{"date":"2019-10-7","status":1},{"date":"2019-10-12","status":2},{"date":"2019-10-5","status":1},{"date":"2019-10-6","status":1}] !UsO2019091310 中秋节9月13日放假,与周末连休。拼假建议:2019年9月9日(周一)~2019年9月12日(周四)请假4天,可拼9天中秋节小长假。[{"date":"2019-9-13","status":1},{"date":"2019-9-14","status":1},{"date":"2019-9-15","status":1}] !C[Q2019100109 国庆节10月1日至10月7日放假,9月29日(星期日)、10月12日(星期六)上班。拼假建议:9月29日(周日)~9月30日(周一)请2天假,可拼10天国庆节小长假。[{"date":"2019-10-1","status":1},{"date":"2019-9-29","status":2},{"date":"2019-10-2","status":1},{"date":"2019-10-3","status":1},{"date":"2019-10-4","status":1},{"date":"2019-10-7","status":1},{"date":"2019-10-12","status":2},{"date":"2019-10-5","status":1},{"date":"2019-10-6","status":1}] !UsO2019091309 中秋节9月13日放假,与周末连休。拼假建议:2019年9月9日(周一)~2019年9月12日(周四)请假4天,可拼9天中秋节小长假。[{"date":"2019-9-13","status":1},{"date":"2019-9-14","status":1},{"date":"2019-9-15","status":1}] !UsO2019091308中秋节9月13日放假,与周末连休。拼假建议:2019年9月9日(周一)~2019年9月12日(周四)请假4天,可拼9天中秋节小长假。[{"date":"2019-9-13","status":1},{"date":"2019-9-14","status":1},{"date":"2019-9-15","status":1}] !SqI2019060707端午节6月7日放假,与周末连休。拼假建议:2019年6月3日(周一)~2019年6月6日(周四)请假4天,可拼9天端午节小长假。[{"date":"2019-6-7","status":1},{"date":"2019-6-8","status":1},{"date":"2019-6-9","status":1}] !SqI2019060706端午节6月7日放假,与周末连休。拼假建议:2019年6月3日(周一)~2019年6月6日(周四)请假4天,可拼9天端午节小长假。[{"date":"2019-6-7","status":1},{"date":"2019-6-8","status":1},{"date":"2019-6-9","status":1}]M !)Y2019050106劳动节5月1日放假拼假建议:4月28日(周日)~4月30日(周二)请假3天,可拼8天劳动节小长假。[{"date":"2019-5-1","status":1},{"date":"2019-5-2","status":1},{"date":"2019-5-3","status":1},{"date":"2019-5-4","status":1},{"date":"2019-4-28","status":2},{"date":"2019-5-5","status":2}] !SqI2019060705端午节6月7日放假,与周末连休。拼假建议:2019年6月3日(周一)~2019年6月6日(周四)请假4天,可拼9天端午节小长假。[{"date":"2019-6-7","status":1},{"date":"2019-6-8","status":1},{"date":"2019-6-9","status":1}]M !)Y2019050105劳动节5月1日放假拼假建议:4月28日(周日)~4月30日(周二)请假3天,可拼8天劳动节小长假。[{"date":"2019-5-1","status":1},{"date":"2019-5-2","status":1},{"date":"2019-5-3","status":1},{"date":"2019-5-4","status":1},{"date":"2019-4-28","status":2},{"date":"2019-5-5","status":2}] #X . #d ! 2020100110 中秋节10月1日至10月8日放假8天,9月27日,10月10日上班10月9日至10月10日请假2天,与周末连休可拼11天长假。[{"date":"2020-10-1","status":1},{"date":"2020-10-2","status":1},{"date":"2020-10-3","status":1},{"date":"2020-10-4","status":1},{"date":"2020-10-5","status":1},{"date":"2020-10-6","status":1},{"date":"2020-10-7","status":1},{"date":"2020-10-8","status":1},{"date":"2020-9-27","status":2},{"date":"2020-10-10","status":2}]! !o12020062506端午节6月25日至6月27日放假3天,6月28日上班2020年6月22日至2020年6月24日请假3天,与周末连休可拼8天长假。[{"date":"2020-6-25","status":1},{"date":"2020-6-26","status":1},{"date":"2020-6-27","status":1},{"date":"2020-6-28","status":2}] !3C2020050105劳动节5月1日至5月5日放假5天,4月26日,5月9日上班2020年4月26日至2020年4月30日请假5天,与周末连休可拼11天长假。[{"date":"2020-5-1","status":1},{"date":"2020-5-2","status":1},{"date":"2020-5-3","status":1},{"date":"2020-5-4","status":1},{"date":"2020-5-5","status":1},{"date":"2020-4-26","status":2},{"date":"2020-5-9","status":2}]i !G/I2020040404清明节4月4日至4月6日放假3天2020年4月7日至2020年4月10日请假4天,与周末连休可拼9天长假。[{"date":"2020-4-4","status":1},{"date":"2020-4-5","status":1},{"date":"2020-4-6","status":1}] ! 3K2020012501春节1月24日(除夕)至1月30日放假7天,1月19日,2月1日上班2020年1月19日至2020年1月23日请假5天,与周末连休可拼13天长假。[{"date":"2020-1-24","status":1},{"date":"2020-1-25","status":1},{"date":"2020-1-26","status":1},{"date":"2020-1-27","status":1},{"date":"2020-1-28","status":1},{"date":"2020-1-29","status":1},{"date":"2020-1-30","status":1},{"date":"2020-1-19","status":2},{"date":"2020-1-31","status":1},{"date":"2020-2-1","status":1},{"date":"2020-2-2","status":1}]! 7/O2020012401除夕1月24日放假一天农历腊月最后一天为除夕,即大年初一前夜,又称为年三十。[{"date":"2020-1-24","status":1}]%! 5?M2020010101元旦1月1日放假一天2019年12月30日和2019年12月31日请假两天,与周末连休可拼5天小长假。[{"date":"2020-1-1","status":1}] !2020100110!2020062506!2020050105!2020040404!2020012501!2020012401 ! 2020010101 !Km.J Z )  I m J P qG.EgdWK=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<~)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u} m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. |SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:{'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>zEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.yEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PxaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cwS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KvSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖. u)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,t'C余事勿取.祭祀.沐浴.余事勿取.s}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%r'5余事勿取.解除.余事勿取.qqo安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.*aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.))探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,('C诸事不宜.破屋.坏垣.余事勿取. '5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)& U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.%}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.$''诸事不宜.诸事不宜.V#!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.S"Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`!)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网. ''诸事不宜.诸事不宜.,'C诸事不宜.沐浴.扫舍.余事勿取.jE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. Ee开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑. " o + @  N  Y'7x2`%)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.EK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,'C诸事不宜.祭祀.沐浴.余事勿取.pS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.<EE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. }'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{o上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.a'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.H '{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8G'[诸事不宜.造畜椆栖.平治道涂.余事勿取.F -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.E}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.DgG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.Cg[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. B}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,A'C诸事不宜.祭祀.塞穴.余事勿取.g@)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.B?)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:>'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`=)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.C<)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9;']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?:7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.89)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&8)5行丧.安葬.作灶.造畜椆栖.?7)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.6Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.J5Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.y4E=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. !c}> w f  w TBh Kz/y#c 3E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,2'C诸事不宜.破屋.坏垣.余事勿取.]1Sw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.n0S嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.0/ c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.F.'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|-a'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. ,SO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3+'Q诸事不宜.祭祀.出行.扫舍.余事勿取.*o'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.H)'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.mba 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."a}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0` c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,_'C诸事不宜.破屋.坏垣.余事勿取.#^5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0] c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.W\E{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.[''诸事不宜.诸事不宜.:Z'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._Yoa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. XEe安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4WE5入殓.安葬.开市.交易.祭祀.诸事不宜.{VEA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.uU)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7TE9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.ISE_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.REW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.AQ)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:P)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.O)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.NEm造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cMS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马. !1w ' b f  @b.N< _7!L))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xKa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.%J}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.I}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.HE{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.hG'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,F'C诸事不宜.破屋.坏垣.余事勿取.^E'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.))9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.N~'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.}嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.| %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.{Sm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.za_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.y}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.Fx)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gw)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`v)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:u'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5t)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.Cs)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.MrCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.Nq)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.Rp) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.Jo7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.Cn)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. m 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.l 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. k 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7jS+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4i)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|hS5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.IgE]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬. #b ,  { & n  7=V%q#{foQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,e'C诸事不宜.祭祀.解除.余事勿取.d}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."c G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.tb_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^a'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.m}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.i}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口." G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,'C诸事不宜.破屋.坏垣.余事勿取.}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.ja开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.J)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.J)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..)E开市.破土.祭祀.作灶.纳财.捕捉.R 赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Y )祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3 'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.J 7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬., 'C诸事不宜.沐浴.扫舍.余事勿取.P' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取. !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.Wa_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bS开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.,'C诸事不宜.祭祀.作灶.余事勿取.&}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.oQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土. $X'  X J 0Sb"fCt2c@,~'C诸事不宜.破屋.坏垣.余事勿取.}aQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)6 U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.r5a出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&4)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.3E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,2'C诸事不宜.祭祀.解除.余事勿取.1E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.0E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,/'C诸事不宜.祭祀.栽种.余事勿取.J.)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.J-)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.,''诸事不宜.诸事不宜.R+) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`*5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;))_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Y()动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M'7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<&7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5%)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y$)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@#'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取." #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.!EI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.B )m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^S{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.{} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Ba5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.E嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,'C诸事不宜.解除.扫舍.余事勿取.S7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.R'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,Q'C诸事不宜.结网.解除.余事勿取."Pas入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬. &k r [  Q l*>W&wm~%O M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:N'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*MC嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."L G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]K'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.EJ)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`I)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,H'C诸事不宜.塞穴.结网.余事勿取.YG)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.CF)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.'s诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.= 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4<)Q破土.安葬.塞穴.断蚁.结网.余事勿取.;''余事勿取.余事勿取.}:S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.P9aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.,8'C诸事不宜.解除.破屋.余事勿取.7 +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,6'C诸事不宜.塞穴.扫舍.余事勿取.:5'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.n}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.m 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.Fl'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.k}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%j}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.Ii'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|h7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.gaW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,f'C诸事不宜.解除.坏垣.余事勿取.e' 诸事不宜..d77嫁娶.入宅.安葬.沐浴.结网.取渔. ]<W 4 ~ L { d 5s:]:c'_诸事不宜.祭祀.求医.治病.解除.余事勿取.Jb7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.Ja7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4`)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.F_7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Q^7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.j]S掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.\Ek掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%[E入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ZQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.YEW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.X''诸事不宜.诸事不宜.fWS 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.VE 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@UKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OTS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.EG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱. z: " { W y Ui8"S6z~S_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W})栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.C|SE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4{E3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.z)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.y')诸事不宜.破屋.坏垣.xE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Iw赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XvSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3uE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,t'C诸事不宜.扫舍.塞穴.余事勿取.tsa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3rS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4qS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.poC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."o}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.Bn'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.m7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;%'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.$E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.#')诸事不宜.解除.沐浴.f"C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.!5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸. )掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>EG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑. Uu= m ] A Y0 &[r_6nJ;)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.')诸事不宜.求医.破屋.BEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]E造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.A_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.I'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._ 7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取. S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒. }-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口. }A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.F 'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.C'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.BE 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=A'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.@Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. ?E]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|>EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Q=) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.u<)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3;'Q诸事不宜.解除.破屋.坏垣.余事勿取.Z:E造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%9E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜. %  0 *  @Sy@njr*U8Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{7EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.B6EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,5'C诸事不宜.祭祀.解除.余事勿取.A4EM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.b3E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;2)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.X1E}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.L0SU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4/7C嫁娶.开市.安葬.破屋.坏垣.余事勿取..E{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7-)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.s,a移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.O+Ei入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|*o探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.)a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;('a余事勿取.安葬.启攒.移柩.入殓.除服.成服. 'aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#&5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m%37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.ՠS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ՠ~a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wՠ}a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ՠ|S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rՠ{o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ՠzSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UՠyoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬. O0b Z w ? %LUt;~BF)OTՠxKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iՠw';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ՠv U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vՠu[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ՠt会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ՠsoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ՠrS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ՠq)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ՠpKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ՠoE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ՠnSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qՠma嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SՠlSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ՠkS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ՠjaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ՠi5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ՠh伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ՠg'C诸事不宜.解除.扫舍.余事勿取.ZՠfSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LՠeEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4ՠd)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IՠcE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HՠbSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JՠaE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕. [z E e |  O>p_,^ՠS{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._ՠam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.IՠSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nՠS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;ՠS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._ՠoa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.tՠS%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{ՠS3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.Iՠ){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.ՠam破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.EՠEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Qՠ %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.ՠ祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.Oՠ 7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.Vՠ Sk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fՠ S 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?ՠ m伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.eՠ a{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. ՠgC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.cՠY}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;ՠ)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.ՠQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.ՠ7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.ՠa_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.\ՠE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{ՠS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.ՠE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍. _, N ? M Qw3e-e~hE՟SG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. ՟~gA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.՟}g'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.P՟7Em动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. ՟6YO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.j՟5S嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.B՟4)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.E՟3KO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.B՟2SC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3՟1)O嫁娶.开市.祭祀.平治道涂.余事勿取.H՟0SM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.՟/o]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.՟.1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.՟-}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.V՟,Si安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[՟+Su嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.v՟*a探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.՟)oO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.P՟(S_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.՟'}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.e՟&a{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.q՟%a嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.E՟$'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.՟#}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.՟"a]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.՟!)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.՟ )安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.  m  X  J : /RQ4 PDx՟a嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.J՟o7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7՟=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4՟a嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%՟5'探病.余事勿取.余事勿取.m՟o}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%՟S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.c՞Raw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\՞QE嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.u՞Pa针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?՞Og)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.u՞No 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.՞Mo-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.L՞LYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7՞K}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.S՞JEq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;՞I)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.՞H 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.՞Gu;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.U՞FEw嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0՞Eo斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3՞Da造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.P՞CEm动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%՞BS祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.e՞Aa{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. ՞@ 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#՞?5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.a՞>S开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:՞='_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,՞<'C诸事不宜.解除.坏垣.余事勿取. ='g  a E,a:v =|՞;S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.I՞:E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.g՞9E嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. ՞8SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{՞7S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.u՞6a开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.՞5a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.O՝oS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.՝nS]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>՝ma+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.՝lSC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4՝k)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`՝jE 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.E՝iSG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.r՝h}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.՝g-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?՝fm出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&՝ea{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%՝day嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*՝cI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:՝bo行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.V՝aEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4՝`a掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.P՝_aQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.f՝^E嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.S՝]Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服. .I j   U5nq^z՝\k嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.I՝[ 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#՝ZQ嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}՝Y_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.՝X}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.W՝Wa_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.՝VaO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.b՝US开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.A՝TKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.Z՝SSq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;՝R)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.m՝Qo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6՝ S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.O՝ aO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.L՝ aG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.n՝S嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.l՝E#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.u՝S'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)՝7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]՝gc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.K՝YM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.Y՝So祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4՝)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&՝A嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.L՜o9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养. S r  [  B KI`e<՜~EE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.E՜}}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.Q՜|S_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,՜{M移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|՜za'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.B՜yo%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.՜x开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.V՜wKq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.E՜vSG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,՜u'C诸事不宜.破屋.坏垣.余事勿取.n՜t a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.՜soQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.d՜rE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.u՜qK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.q՜pY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.R՜oEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.<՜nS7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&՜mS 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.՜&Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.B՜%SC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.՜$a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.՜#Se作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.B՜"7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7՜!K3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.u՜ S'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.q՜S开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取. g@Z k - * X $2C$'8hg{՜a%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.J՜QS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.E՜EW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.՜am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7՜E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;՜EC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.՜S_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.՜)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.E՜KQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^՜S{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.L՜7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.k՜7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.l՜a纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.d՜aw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.E՜EW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.՜-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,՜'C诸事不宜.解除.坏垣.余事勿取.}՜ S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.P՜ aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.c՜ E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;՜ EC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.B՜ )m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."՛CE移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:՛BE?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^՛AS{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~՛@S9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.x՛?S-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>՛>)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取. b/ # x 9 y 9j:- b"՛=as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]՛<7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;՛;7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7՛:S+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4՛97A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B՛8)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.O՛7Kc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.S՛6Sc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.՛5Ss伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.՛4 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4՛3a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.W՛2a_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.՛1 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.I՛0}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.՛/ ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.՛.Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:՛-)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:՛,'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%՛+ M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)՛* U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.@՛)KE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.O՛(S]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:՛'a#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~՛&a+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.a՛%oe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.f՚^a}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易. !Tm `  M & ;H S ?NhTn՚]S祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4՚\)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./՚[77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.J՚ZSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._՚YE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.u՚XE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.g՚WS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.K՚VK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.՚Uae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.H՚To1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.A՚SEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2՚Ra移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.՚QE 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.B՚P)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'՚O'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.I՚N){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Q՚M) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.՚L)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.f՚KS 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]՚J7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.՚I}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. ՚Ho;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L՚GEe开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.՚Fam嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.՚EE{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.4՚DS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.T՚CEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.՚BE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.j՚AS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;ՙ{EC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gՙzS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~ՙy=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._ՙxE 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产. f"@ e  T  Xf+L $fjՙw7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JՙvEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bՙuau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cՙtE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.ՙsE{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.mՙrE%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.ՙqYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cՙp7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;ՙo)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&ՙn}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.ՙmE动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~ՙl开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.ՙk'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.kՙjE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.ՙiEy祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.ՙh}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|ՙgEC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.lՙfK置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*ՙe W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ՙdEe开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:ՙc'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^ՙb)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.ՙaS]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.Eՙ`o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.Aՙ_EO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\ՙ^E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uՙ]S'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jՙS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nՙS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qՙS移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cՙE嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅. NSX m p  j  o+|MiH9x"NCՙSE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.ՙKQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Qՙ) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.gՙ 7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.Pՙ S_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.Hՙ E]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pՙ S嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7ՙ S+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. ՙ}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|ՙ} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.ՙ{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{ՙ%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._ՙ)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. ՙu3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;ՙ)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.Xՙaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)ՙS开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?՘'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%՘~S入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=՘}'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;՘|'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.H՘{7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.՘zSk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.c՘yau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{՘3EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.e՘2a{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. ՘1SW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;՘07Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%՘/}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.՘.E开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.R՘-uA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'՘,5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬. &K ; V N  q?4z3:q?՘+s作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.y՘*o嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7՘) q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..՘(S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.Q՘'aS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.n՘&S嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.s՘%S#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.B՘$7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4՘#o 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#՘"C开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]՘!}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.՘ }C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&՘E入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.Y՘E嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.՘ 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&՘ O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,՘'C诸事不宜.祭祀.解除.余事勿取.^՘'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.՘E 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.՘a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W՘a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0՘S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r՘o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]oSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UnoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TmKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖. ?Z ' g 6 n =  o:D ]il';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)k U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vj[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.i会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.hoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7gS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4f)Q移徙.入宅.破屋.坏垣.治病.余事勿取.eKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]dE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]cSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qba嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SaSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.`S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟._aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.^5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.]伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,\'C诸事不宜.解除.扫舍.余事勿取.[EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:Z'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,Y'C诸事不宜.祭祀.解除.余事勿取.Xa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2W'O诸事不宜.祭祀.修饰垣墙.余事勿取.JVE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^US{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._Tam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.ISSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nRS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬. y& x G ! L #&a,U:y;QS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._ oa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.t S%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{S3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.I){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.am破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.EEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Q %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.O7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.VSk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?m伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.e~a{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. }gC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.c|Y}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;{)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.zQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.y7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.xa_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. w5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. v)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,u'C余事勿取.祭祀.沐浴.余事勿取.t}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%s'5余事勿取.解除.余事勿取.rg'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PqEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. pYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.joS嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养. Y{ V N  Iiov\kYBn)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EmKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.B'SC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3&)O嫁娶.开市.祭祀.平治道涂.余事勿取.H%SM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.$o]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.#1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马."}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.V!Si安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[ Su嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.va探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.oO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.ea{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.qa嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.E'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.a]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.<EE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. }'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{o上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.a'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.mo}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.c aw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取. + R ` y =(d t"d\ E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.u a针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.? g)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.u o 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.Bo-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.LAYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7@}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.S?Eq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;>)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.= 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.<u;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.U;Ew嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0:o斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.39a造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.P8Em动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%7S祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.e6a{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. 5 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#45嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.a3S开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:2'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,1'C诸事不宜.解除.坏垣.余事勿取.00 c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.F/'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|.a'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. -SO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3,'Q诸事不宜.祭祀.出行.扫舍.余事勿取.+o'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.*a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.O)S[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒. _( . k  \eRr%(S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>'a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.&SC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4%)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`_E 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.E^SG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.r]}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.\-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?[m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&Za{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%Yay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*XI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:Wo行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.VVEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4Ua掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.PTaQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.fSE嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.SRSc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.zQk嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.IP 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#OQ嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}N_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.M}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%L}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.K}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜. ^$ = *A^5Q+oi^JE{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.hI'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,H'C诸事不宜.破屋.坏垣.余事勿取.^G'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.mFo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6ES)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.ODaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LCaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nBS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lAE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.u{S'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)z7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]ygc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KxYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YwSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4v)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&uA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Lto9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.3)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."2as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]17入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;07Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7/S+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4.7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B-)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.O,Kc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.S+Sc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.*Ss伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.) 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴. [] 2 T  P  n=U&{<|<m4(a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.W'a_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.& 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.I%}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.$ ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.#Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:")[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:!'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%  M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.) U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Ba5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.E嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,'C诸事不宜.解除.扫舍.余事勿取.7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.nS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._NE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uME5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gLS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.KKK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.Jae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.HIo1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.AHEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2Ga移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.FE 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土. !a= Q H 8 i  GXtCx5Qfs"BE)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'D'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.IC){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.QB) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.A)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.f@S 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]?7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.>}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. =o;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L<Ee开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.;am嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.:E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,9'C诸事不宜.解除.破屋.余事勿取.8 +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,7'C诸事不宜.塞穴.扫舍.余事勿取.:6'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.5}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.g4S 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~3=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._2E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.j17-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JkEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bjau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.ciE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.hE{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.mgE%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.fYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.ce7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;d)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&c}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.bE动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~a开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.`'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基. _  P 9 e &pj'5k_E!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.^Ey祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.]}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|\EC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.l[K置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*Z W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. YEe开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:X'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^W)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]V)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,ԁ='C诸事不宜.破屋.坏垣.余事勿取.^ԁ<'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)ԁ;)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.Nԁ:'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.ԁ9嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.ԁ8 %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.ԁ7Sm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.lԁ6E#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uԁ5S'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)ԁ47+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]ԁ3gc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜. JB b G  x  -F3JKԁ2YM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.Yԁ1So祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4Ԁk)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&ԀjA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.LԀio9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<ԀhEE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.EԀg}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.QԀfS_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,ԀeM移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|Ԁda'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.BԀco%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.Ԁb开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.VԀaKq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.EԀ`SG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,Ԁ_'C诸事不宜.破屋.坏垣.余事勿取.nԀ^ a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.Ԁ]oQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,Ԁ\'C诸事不宜.祭祀.解除.余事勿取.Ԁ[}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."ԀZ G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.tԀY_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^ԀX'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.mԀW}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.iԀV}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."ԀU G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.ԀTE{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,ԀS'C诸事不宜.破屋.坏垣.余事勿取.BԀR7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取. {T. f   N|C)(8{7ԀQK3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.uԀPS'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.qԀOS开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{ԀNa%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.JԀMQS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.EԀEW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.Ԁam安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7ԀE9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;ԀEC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.ԀS_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.Ԁ)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.EԀKQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^S{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.L~7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.k}7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.l|a纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.d{aw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.EzEW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.y-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,x'C诸事不宜.解除.坏垣.余事勿取.,w'C诸事不宜.祭祀.作灶.余事勿取.&v}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.uoQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,t'C诸事不宜.破屋.坏垣.余事勿取.saQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)r U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.rqa出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&p)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服. _ > ? 0 G_j(SoE{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,n'C诸事不宜.祭祀.解除.余事勿取.mE安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖."las入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]k7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;j7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7iS+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4#7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B")m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.O!Kc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.S Sc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.Ss伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜. 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Wa_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取. 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.I}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟. ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.% M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.) U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Ba5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.E嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬. !a[Q p   w&q!;L)a,'C诸事不宜.解除.扫舍.余事勿取.7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸., 'C诸事不宜.结网.解除.余事勿取." as入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%  M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.: '_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.* C嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.uE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.KK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.H>o1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.A=EO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2<a移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.;E 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.B:)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'9'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.I8){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Q7) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.6)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.f5S 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]47嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.3}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. 2o;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L1Ee开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.0am嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服./E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,.'C诸事不宜.解除.破屋.余事勿取.- +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,,'C诸事不宜.塞穴.扫舍.余事勿取.:+'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬. !  G &  j[7KB2IPd) 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.F('w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.'}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%&}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.I%'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|$7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.c#E嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土."E{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.m!E%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.[Ym嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cZ7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;Y)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&X}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.WE动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~V开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.U'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.kTE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.SEy祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.R}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|QEC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.lPK置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*O W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. NEe开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:M'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^L)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]K)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.S_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.H=E]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.ptS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7sS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. r}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|q} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.p{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{o%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._n)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. mu3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;l)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.Xkaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)jS开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?i'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%hS入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=g'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;f'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.ne75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.doC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."c}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除. xc f 0 & & }|Ie_;]xBb'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.a7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;`'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍._E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.^')诸事不宜.解除.沐浴.f]C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.\5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.[)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.?Zs作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.yYo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7 q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.QaS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.nS嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.sS#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.B7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4 o 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.# C开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.] }O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取. }C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.& E入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.YE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取. 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.& O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,'C诸事不宜.祭祀.解除.余事勿取.^'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.E 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,'C诸事不宜.破屋.坏垣.余事勿取. }-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口. Wq1 - 4  m 5  lM(AWF'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.~'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.}E 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=|'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.{Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. zE]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|yEC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.x会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.woQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7vS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4u)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ӶOKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ӶNE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ӶMSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qӶLa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SӶKSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ӶJS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ӶIaO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ӶH5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ӶG伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ӶF'C诸事不宜.解除.扫舍.余事勿取.ӶEEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ӶD'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ӶC'C诸事不宜.祭祀.解除.余事勿取.ӶBa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ӶA'O诸事不宜.祭祀.修饰垣墙.余事勿取. Ӷ@5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Ӷ?a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;Ӷ>'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. Ӷ=aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种. bR( s M  x 8 OR"X>#Ӷ<5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mӶ;37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,Ӷ:'C诸事不宜.解除.坏垣.余事勿取.Ӷ9a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3Ӷ8'Q诸事不宜.治病.破屋.坏垣.余事勿取.RӶ7) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."Ӷ6)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.EӶ5EU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.QӶ4 %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.Ӷ3祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.OӶ27w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.VӶ1Sk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fӵjS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?ӵim伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.eӵha{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. ӵggC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.cӵfY}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;ӵe)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.ӵdQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.ӵc7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.ӵba_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. ӵa5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. ӵ`)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,ӵ_'C余事勿取.祭祀.沐浴.余事勿取.ӵ^}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%ӵ]'5余事勿取.解除.余事勿取.qӵ\o安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.ӵ[aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.ӵZ)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜. vQ I  D djqW#[,ӵY'C诸事不宜.破屋.坏垣.余事勿取. ӵX5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)ӵW U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.ӵV}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.ӵU''诸事不宜.诸事不宜.VӵT!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.SӵSEs嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.ӵR1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.ӵQ}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VӵPSi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[ӵOSu嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vӵNa探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.ӵMoO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PӵS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.ӵ}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.eӵa{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.qӵa嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.Eӵ'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.ӵ}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.ӵa]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.ӵ)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.Ӵ)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.<Ӵ~EE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. Ӵ}}'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{Ӵ|o上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:Ӵ{'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.aӴz'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.HӴy'{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8Ӵx'[诸事不宜.造畜椆栖.平治道涂.余事勿取. A p % o >  o rrt4[wHӴw -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.Ӵv}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.ӴugG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.Ӵtg[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. Ӵs}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,Ӵr'C诸事不宜.祭祀.塞穴.余事勿取.gӴq)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.BӴp)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.SӴoEq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;Ӵn)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.Ӵm 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.Ӵlu;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.UӴkEw嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0Ӵjo斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3Ӵia造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.PӴ"Em动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%Ӵ!S祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.eӴ a{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. Ӵ 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#Ӵ5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.aӴS开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:Ӵ'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,Ӵ'C诸事不宜.解除.坏垣.余事勿取.0Ӵ c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.FӴ'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|Ӵa'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. ӴSO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3Ӵ'Q诸事不宜.祭祀.出行.扫舍.余事勿取.Ӵo'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.HӴ'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.mӴa 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩. b  _  8 x"rV9R"Ӵ}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0Ӵ c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,Ӵ'C诸事不宜.破屋.坏垣.余事勿取.#Ӵ5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0Ӵ c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.WӴ E{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.Ӵ ''诸事不宜.诸事不宜.:Ӵ '_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取.?Ӵ m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&Ӵ a{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%Ӵay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*ӴI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:Ӵo行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.VӴEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4ӳ?a掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.Pӳ>aQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.fӳ=E嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.Sӳ<Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.zӳ;k嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.Iӳ: 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#ӳ9Q嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}ӳ8_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.ӳ7}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%ӳ6}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.ӳ5}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.ӳ4E{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬. \  O  E z 9g>`,L: hӳ3'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,ӳ2'C诸事不宜.破屋.坏垣.余事勿取.^ӳ1'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)ӳ0)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.Nӳ/'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.ӳ.嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.ӳ- %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.ӳ,Sm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.ӳ+a_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.ӳ*}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.Fӳ))u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gӳ()5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`ӳ')'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.Yӳ&So祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4ӳ%)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&ӳ$A嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Lӳ#o9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<ӳ"EE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.Eӳ!}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.QӲ[S_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,ӲZM移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|ӲYa'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.BӲXo%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.ӲW开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.VӲVKq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.EӲUSG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,ӲT'C诸事不宜.破屋.坏垣.余事勿取.nӲS a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土. O.  c  Xw(_9]OӲRoQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,ӲQ'C诸事不宜.祭祀.解除.余事勿取.ӲP}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."ӲO G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.tӲN_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^ӲM'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.mӲL}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.iӲK}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."ӲJ G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.ӲIE{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,ӲH'C诸事不宜.破屋.坏垣.余事勿取.ӲG}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.ӲFoW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.jӲEa开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.JӲD7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.CӲC)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.JӲB)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.EӲAEW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.Ӳ@am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7Ӳ?E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;Ӳ>EC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.Ӳ=S_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.ӱv)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.EӱuKQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^ӱtS{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.Lӱs7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.kӱr7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.lӱqa纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.dӱpaw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.EӱoEW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.ӱn-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,ӱm'C诸事不宜.解除.坏垣.余事勿取. iUV  G ^  v^M~[Fi,ӱl'C诸事不宜.祭祀.作灶.余事勿取.&ӱk}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.ӱjoQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,ӱi'C诸事不宜.破屋.坏垣.余事勿取.ӱhaQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)ӱg U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.rӱfa出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&ӱe)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.ӱdE{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,ӱc'C诸事不宜.祭祀.解除.余事勿取.ӱbE安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.ӱaE{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,ӱ`'C诸事不宜.祭祀.栽种.余事勿取.Jӱ_)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.Jӱ^)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.ӱ]''诸事不宜.诸事不宜.Bӱ\)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.Oӱ[Kc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SӱZSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.ӱYSs伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.ӱ 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4ӱa作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Wӱa_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.ӱ 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.Iӱ}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.ӱ ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.ӱ Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:ӱ )[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:ӱ '_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%ӱ  M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友. !1;  R t & y 2 ^M c2*c)ӱ  U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{ӱ} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Bӱa5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.ӱE嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,ӱ'C诸事不宜.解除.扫舍.余事勿取.ӱ7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.ӱ'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,ӱ'C诸事不宜.结网.解除.余事勿取."ӱas入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%ӱ M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:Ӱ'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*Ӱ~C嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."Ӱ} G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]Ӱ|'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.EӰ{)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`Ӱz)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,Ӱy'C诸事不宜.塞穴.结网.余事勿取.AӰxEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2Ӱwa移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.ӰvE 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.BӰu)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'Ӱ.'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.IӰ-){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.QӰ,) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.Ӱ+)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.fӰ*S 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]Ӱ)7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.Ӱ(}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. Ӱ'o;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.LӰ&Ee开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.Ӱ%am嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.Ӱ$E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,Ӱ#'C诸事不宜.解除.破屋.余事勿取. ]!  G &  j[7K w)~ g(]Ӱ" +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,Ӱ!'C诸事不宜.塞穴.扫舍.余事勿取.:Ӱ '_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.Ӱ}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.Ӱ 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.FӰ'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.Ӱ}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%Ӱ}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.IӰ'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|Ӱ7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.ӰaW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,Ӱ'C诸事不宜.解除.坏垣.余事勿取.Ӱ' 诸事不宜..Ӱ77嫁娶.入宅.安葬.沐浴.结网.取渔.:Ӱ'_诸事不宜.祭祀.求医.治病.解除.余事勿取.;Ӱ)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&Ӱ}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.ӰE动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~ӯK开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.ӯJ'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.kӯIE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.ӯHEy祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.ӯG}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|ӯFEC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.lӯEK置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*ӯD W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ӯCEe开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:ӯB'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^ӯA)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]ӯ@)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.<ӯ?EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Yӯ>E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马. i H  U & B !Y*4ӯ=E5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.Xӯ<E}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.hӯ;E祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^ӯ:E作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.Xӯ9E}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.4ӯ8E3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.Kӯ7/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-ӯ6'E诸事不宜.破屋.坏垣.求医.治病.0ӯ5E+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:ӯ4)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^ӯ3E造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%ӯ2E出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5ӯ1E7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.7ӯ0S+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. ӯ/}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|ӯ.} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.ӯ-{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{Ӯe%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._Ӯd)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. Ӯcu3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;Ӯb)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.XӮaaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)Ӯ`S开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?Ӯ_'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%Ӯ^S入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=Ӯ]'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;Ӯ\'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.nӮ[75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.ӮZoC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒. m<4 W o %  `  Pm.(f&A"ӮY}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.BӮX'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.ӮW7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;ӮV'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.ӮUE{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.ӮT')诸事不宜.解除.沐浴.fӮSC栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.ӮR5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.ӮQ)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.ӮPoQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.uӮO o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.ӮNE 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>ӮMEG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XӮLE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.nӮKS嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.sӮJS#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.BӮI7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4Ӯo 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#ӮC开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]Ӯ}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.Ӯ}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&ӭE入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.Yӭ~E嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.ӭ} 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&ӭ| O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,ӭ{'C诸事不宜.祭祀.解除.余事勿取.^ӭz'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.ӭyE 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,ӭx'C诸事不宜.破屋.坏垣.余事勿取. ӭw}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口. b  <  Nk.W2Kaӭv}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.Fӭu'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.ӭt'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.ӭsE 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=ӭr'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.ӭqEk作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. ӭpE]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|ӭoEC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Qӭn) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.uӭm)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3ӭl'Q诸事不宜.解除.破屋.坏垣.余事勿取.ZӭkE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%ӭjE出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.]ӭiE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ӭhSy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qӭga嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SӭfSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ӭeS;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.?aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.>5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.=伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,<'C诸事不宜.解除.扫舍.余事勿取.;EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.::'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,9'C诸事不宜.祭祀.解除.余事勿取.8a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.27'O诸事不宜.祭祀.修饰垣墙.余事勿取. 65入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.5a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种. "^Qz B  Z ) 6b ~NOyH-^;4'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. 3aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#25嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m137伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,0'C诸事不宜.解除.坏垣.余事勿取./a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3.'Q诸事不宜.治病.破屋.坏垣.余事勿取.R-) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.++'A诸事不宜.平治道涂.余事勿取.N*)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J))}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=(Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5')S入宅.安葬.出行.沐浴.理发.补垣.塞穴.f&S 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?%m伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.e$a{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. #gC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.c"Y}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;!)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.ZQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.Y7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.Xa_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. W5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. V)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,U'C余事勿取.祭祀.沐浴.余事勿取.T}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%S'5余事勿取.解除.余事勿取.qRo安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.QaW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.P)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,O'C诸事不宜.破屋.坏垣.余事勿取. N5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)M U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服. Np<  [ SNntJNL}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.K''诸事不宜.诸事不宜.VJ!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.SIEs嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`H)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.G''诸事不宜.诸事不宜.,F'C诸事不宜.沐浴.扫舍.余事勿取.jEE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^D)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.CoO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PBS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.A}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.e@a{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.q?a嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.E>'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.=}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.wa]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.v)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.u)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.'C诸事不宜.破屋.坏垣.余事勿取.=}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.<oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.j;a开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J:7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C9)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬. #[C t  U / gO}FJ8)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^7'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.J6)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..5)E开市.破土.祭祀.作灶.纳财.捕捉.R4赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Y3)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.2)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.E1KQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^0S{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.L/7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.k.7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.l-a纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.dfaw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.EeEW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.d-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,c'C诸事不宜.解除.坏垣.余事勿取.,b'C诸事不宜.祭祀.作灶.余事勿取.&a}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.`oQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,_'C诸事不宜.破屋.坏垣.余事勿取.^aQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)] U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.r\a出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&[)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.ZE{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,Y'C诸事不宜.祭祀.解除.余事勿取.XE安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.WE{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,V'C诸事不宜.祭祀.栽种.余事勿取.JU)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.JT)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.S''诸事不宜.诸事不宜.RR) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`Q5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;P)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙. !~L e4 # { 9  i9BD.~YO)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.MN7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.4Ma作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.WLa_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.K 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.IJ}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.I ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.% M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.) U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{~} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.B}a5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.|E嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,{'C诸事不宜.解除.扫舍.余事勿取.z7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.y'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,x'C诸事不宜.结网.解除.余事勿取."was入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%v M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:u'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*tC嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."s G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]r'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.Eq)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`p)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,o'C诸事不宜.塞穴.结网.余事勿取.Yn)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.Cm)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.&EG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.%S_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W$)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.C#SE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4"E3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门._!)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. u3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木. b  * d L  ^k;)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.Xaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)S开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?T'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%SS入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=R'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;Q'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.nP75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.OoC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."N}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.BM'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.L7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;K'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.JE{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.I')诸事不宜.解除.沐浴.fHC栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.G5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.F)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.EoQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.uD o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.CE 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>BEG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XAE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;@)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.?')诸事不宜.求医.破屋.B>EO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]=E造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.A<_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.];}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.:}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养. ja i !  <  4$L \T#w&9E入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.YsE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.r 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&q O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,p'C诸事不宜.祭祀.解除.余事勿取.^o'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.nE 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,m'C诸事不宜.破屋.坏垣.余事勿取. l}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.k}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.Fj'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.i'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.hE 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=g'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.fEk作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. eE]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|dEC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Qc) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.ub)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3a'Q诸事不宜.解除.破屋.坏垣.余事勿取.Z`E造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%_E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.U^Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{]EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.B\EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,['C诸事不宜.祭祀.解除.余事勿取.AZEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bYE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.X5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.W伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马. &fB ~ M   I~/u4xAH,V'C诸事不宜.解除.扫舍.余事勿取.UEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:Қ/'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,Қ.'C诸事不宜.祭祀.解除.余事勿取.Қ-a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2Қ,'O诸事不宜.祭祀.修饰垣墙.余事勿取. Қ+5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.Қ*a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;Қ)'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. Қ(aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#Қ'5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mҚ&37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,Қ%'C诸事不宜.解除.坏垣.余事勿取.Қ$a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3Қ#'Q诸事不宜.治病.破屋.坏垣.余事勿取.RҚ") 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."Қ!)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+Қ 'A诸事不宜.平治道涂.余事勿取.NҚ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JҚ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ҚQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5Қ)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JҚ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<Қ)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uҚ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ҚSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:Қ'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.;Қ)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.ҚQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.Қ7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.Қa_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. Қ5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. Қ)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,ҙJ'C余事勿取.祭祀.沐浴.余事勿取.ҙI}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%ҙH'5余事勿取.解除.余事勿取.qҙGo安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.ҙFaW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒. vQ I  / 3a}\9|})RҙE)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,ҙD'C诸事不宜.破屋.坏垣.余事勿取. ҙC5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)ҙB U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.ҙA}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.ҙ@''诸事不宜.诸事不宜.Vҙ?!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.Sҙ>Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`ҙ=)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.ҙ<''诸事不宜.诸事不宜.,ҙ;'C诸事不宜.沐浴.扫舍.余事勿取.jҙ:E嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^ҙ9)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:ҙ8'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. ҙ7Ee开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%ҙ6)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.ҙ5EK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.Fҙ4EY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.Zҙ3E入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.ҙ2}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.ҙ1a]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.ҙ0)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.ҙ/)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.<ҙ.EE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. ҙ-}'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{Ҙgo上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:Ҙf'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.aҘe'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.HҘd'{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8Ҙc'[诸事不宜.造畜椆栖.平治道涂.余事勿取. #^W&p V H 8 7  78Rb$w8T%^Ҙb -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.Ҙa}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.Ҙ`gG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.Ҙ_g[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. Ҙ^}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,Ҙ]'C诸事不宜.祭祀.塞穴.余事勿取.gҘ\)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.BҘ[)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:ҘZ'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`ҘY)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.CҘX)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9ҘW']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?ҘV7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8ҘU)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&ҘT)5行丧.安葬.作灶.造畜椆栖.?ҘS)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.ҘREm作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.JҘQEa栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.yҘPE=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.#ҘO5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.aҘNS开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:ҘM'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,ҘL'C诸事不宜.解除.坏垣.余事勿取.0ҘK c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.FҘJ'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|ҘIa'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. ҘSO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3Ҙ'Q诸事不宜.祭祀.出行.扫舍.余事勿取.Ҙo'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.Hҗ'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.mҗ~a 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."җ}}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0җ| c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,җ{'C诸事不宜.破屋.坏垣.余事勿取.#җz5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩. ob. N < _ (.k G%o0җy c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.WҗxE{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.җw''诸事不宜.诸事不宜.:җv'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._җuoa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. җtEe安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4җsE5入殓.安葬.开市.交易.祭祀.诸事不宜.{җrEA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.uҗq)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7җpE9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.IҗoE_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.җnEW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.Aҗm)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:җl)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.җk)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.Iҗj 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#җiQ嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}җh_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.җg}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%җf}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.җe}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.җE{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.hҗ'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,җ'C诸事不宜.破屋.坏垣.余事勿取.^җ'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)җ)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.Nҗ'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.җ嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.җ %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.җSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.җa_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒. #iY  Z z  _ .!E<Co0_җ}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.Fҗ)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gҗ)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`җ)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:җ'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5җ)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.Cҗ)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.MҗCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.Nҗ )开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.Rҗ ) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.Jҗ 7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.Cҗ )o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. җ  祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.җ 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. җ 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.VҗKq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.EҗSG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,җ'C诸事不宜.破屋.坏垣.余事勿取.nҗ a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.җoQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,җ'C诸事不宜.祭祀.解除.余事勿取.Җ;}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."Җ: G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.tҖ9_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^Җ8'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.mҖ7}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.iҖ6}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."Җ5 G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.Җ4E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,Җ3'C诸事不宜.破屋.坏垣.余事勿取.Җ2}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.Җ1oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.jҖ0a开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.JҖ/7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.CҖ.)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬. &xmj R !  d >v,)nay*xJҖ-)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^Җ,'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.JҖ+)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..Җ*)E开市.破土.祭祀.作灶.纳财.捕捉.RҖ)赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.YҖ()祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3Җ''Q诸事不宜.祭祀.破屋.坏垣.余事勿取.JҖ&7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,Җ%'C诸事不宜.沐浴.扫舍.余事勿取.PҖ$' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.Җ# !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.lҖ"a纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.dҖ!aw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.EҖ EW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.Җ-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,Җ'C诸事不宜.解除.坏垣.余事勿取.,Җ'C诸事不宜.祭祀.作灶.余事勿取.&ҕV}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.ҕUoQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,ҕT'C诸事不宜.破屋.坏垣.余事勿取.ҕSaQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)ҕR U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.rҕQa出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&ҕP)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.ҕOE{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,ҕN'C诸事不宜.祭祀.解除.余事勿取.ҕME安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.ҕLE{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,ҕK'C诸事不宜.祭祀.栽种.余事勿取.JҕJ)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.JҕI)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.ҕH''诸事不宜.诸事不宜.RҕG) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`ҕF5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;ҕE)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.YҕD)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.MҕC7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<ҕB7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬. $Ucz ! I U  Q gX'?e&f2U5ҕA)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Yҕ@)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@ҕ?'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.ҕ> #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.ҕ=Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:ҕ<)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:ҕ;'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%ҕ: M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)ҕ9 U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{Ҕs} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.BҔra5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.ҔqE嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,Ҕp'C诸事不宜.解除.扫舍.余事勿取.Ҕo7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.Ҕn'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,Ҕm'C诸事不宜.结网.解除.余事勿取."Ҕlas入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%Ҕk M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:Ҕj'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*ҔiC嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."Ҕh G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]Ҕg'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.EҔf)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`Ҕe)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,Ҕd'C诸事不宜.塞穴.结网.余事勿取.YҔc)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.CҔb)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<Ҕa7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.JҔ`)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`Ҕ_)'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.3Ҕ^'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.YҔ])开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.YҔ\'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.Ҕ[ 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.DҔZ's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.ҔY 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬. #~9 g + A < b R< qV pb~ ҔXo;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.LҔWEe开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.ҔVam嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.ҔUE{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,Ҕ'C诸事不宜.解除.破屋.余事勿取.Ҕ  +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,Ҕ 'C诸事不宜.塞穴.扫舍.余事勿取.:Ҕ '_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.Ҕ }Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.Ҕ  进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.FҔ'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.Ҕ}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%Ҕ}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.IҔ'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|Ҕ7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.ҔaW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,Ҕ'C诸事不宜.解除.坏垣.余事勿取.Ҕ' 诸事不宜..Ҕ77嫁娶.入宅.安葬.沐浴.结网.取渔.:ғ'_诸事不宜.祭祀.求医.治病.解除.余事勿取.Jғ~7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.Jғ}7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4ғ|)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.Fғ{7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Qғz7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jғyS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.ғxEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%ғwE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ғvQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.ғuEW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.*ғt W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ғsEe开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:ғr'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^ғq)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]ғ+)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络. G v R B ~ D6vw>_<ғ*EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Yғ)E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.4ғ(E5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.Xғ'E}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.hғ&E祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^ғ%E作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.Xғ$E}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.4ғ#E3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.Kғ"/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-ғ!'E诸事不宜.破屋.坏垣.求医.治病.0ғ E+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:ғ)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^ғE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%ғE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5ғE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>ғEG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.ғS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.Wғ)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.CғSE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4ғE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.ғ)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.ғ')诸事不宜.破屋.坏垣.ғE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Iғ赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XғSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3ғE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络. 5L 9  H $ c  B#I>OEB%ғS入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=ғ'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;ғ'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.nғ 75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.ҒDoC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."ҒC}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.BҒB'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.ҒA7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;Ғ@'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.Ғ?E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.Ғ>')诸事不宜.解除.沐浴.fҒ=C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.Ғ<5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.Ғ;)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.Ғ:oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.uҒ9 o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.Ғ8E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>Ғ7EG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XҒ6E}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;Ғ5)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.Ғ4')诸事不宜.求医.破屋.BҒ3EO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]Ғ2E造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.AҒ1_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XҒ0E}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0Ғ/U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[Ғ.Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.Ғ-EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EҒ,EU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易. wFo @ Y Tt<l\@X[&Ғ+ O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,Ғ*'C诸事不宜.祭祀.解除.余事勿取.^Ғ)'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.ґcE 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,ґb'C诸事不宜.破屋.坏垣.余事勿取. ґa}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.ґ`}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.Fґ_'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.ґ^'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.ґ]E 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=ґ\'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.ґ[Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. ґZE]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|ґYEC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.QґX) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.uґW)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3ґV'Q诸事不宜.解除.破屋.坏垣.余事勿取.ZґUE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%ґTE出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.UґSEw嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{ґREA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.BґQEO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,ґP'C诸事不宜.祭祀.解除.余事勿取.AґOEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bґNE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;ґM)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XґLE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LґKSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4ґJ7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.ґIE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.,ґH'C诸事不宜.祭祀.解除.余事勿取.ґGa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜. b  .>z2ґF'O诸事不宜.祭祀.修饰垣墙.余事勿取. ґE5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.ro开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.i';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)  U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v [嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑. 会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网. oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑. E2U ! 3wFfj;E7 S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎. Ee开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.EK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,'C诸事不宜.祭祀.沐浴.余事勿取.p:S开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.L9SU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.p8S安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.Z7Sq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.L6Ec造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.45)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.I4E]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.H3SM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.J2E_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^1S{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._0am开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.I/SQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.n.S嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;-S3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._,oa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.t+S%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{*S3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.I)){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取. i2 2 K 5 j Eq]zJi(am破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.E'EU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Q& %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.%祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.O$7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.V#Sk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.&")5行丧.安葬.作灶.造畜椆栖.?!)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬. Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.JEa栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.yE=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,W'C诸事不宜.破屋.坏垣.余事勿取.]VSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.nUS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\TE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{SS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.RE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EQSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. PgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.Og'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PNEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. MYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.jLS嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.BK)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EJKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.BISC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3H)O嫁娶.开市.祭祀.平治道涂.余事勿取.HGSM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服. kt< s V , r f BC-")MkFo]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.E1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.D}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VCSi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[BSu嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vAa探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.@oO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.7?E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.I>E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.=EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.A<)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:;)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.:)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.9Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.crS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!q))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xpa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Joo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7n=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4ma嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%l5'探病.余事勿取.余事勿取.mko}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%jS纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.ciaw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\hE嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.uga针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?fg)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.ueo 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.do-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服. w H E 6 z AS{,f vLcYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7b}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.SaEq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;`)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取._ 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.^u;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.U]Ew嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0\o斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3[a造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.RZ) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.JY7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.CX)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. W 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.V 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. U 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4)Q行丧.安葬.破屋.坏垣.治病.余事勿取.| S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.I E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.g E嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{ S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.ua开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.OS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.SC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬. ~~> ^ 0 > " 8 "hq^~4)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`E 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.ESG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.r}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.~-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?}m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&|a{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%{ay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*zI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:yo行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.VxEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4wa掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.Yv)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3u'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Jt7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,s'C诸事不宜.沐浴.扫舍.余事勿取.Pr' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.q !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.+S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.*Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.W)a_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.(aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.b'S开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.A&KG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.Z%Sq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;$)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.m#o}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6"S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.O!aO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂. (1 j # f , 8 OlC_L aG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]gc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&A嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Lo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<EE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.E}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.QS_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.M7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.  #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.FEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.BE)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^DS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dCE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uBK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.qAY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.R@Eo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.  c }  !  @M5jS 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.=Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.B<SC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.;a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.:Se作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.B97_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.78K3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.u7S'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.q6S开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{5a%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.J4QS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.E3EW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.2am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.71E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;0EC入宅.出行.掘井.安葬.祭祀.结网.余事勿取./S_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬..)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.E-KQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.3,'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Y+)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Y*'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.) 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.Dc's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.b 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4a)Q破土.安葬.塞穴.断蚁.结网.余事勿取.`''余事勿取.余事勿取.}_S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.P^aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.c]E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑. |:* { < 0 v HoSQk|;\EC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.B[)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."ZE移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:YE?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^XS{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~WS9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xVS-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>U)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."Tas入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]S7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;R7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7QS+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4P7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.BO)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.ONKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SMSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.LSs伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.K 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4Ja作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.WIa_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.jHS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.GEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%FE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:EQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.~EW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.}''诸事不宜.诸事不宜.f|S 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.{E 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@zKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮. F * Y 5 @,;UAp-OyS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:xa#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~wa+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.avoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fua}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.ntS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4s)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./r77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JqSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._pE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uoE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gnS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.KmK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.lae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.Hko1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.AjEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2ia移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.hE 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.Bg)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'f'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.Ie){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Qd) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.c')诸事不宜.破屋.坏垣.bE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Ia赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3E1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,'C诸事不宜.扫舍.塞穴.余事勿取.ta栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3S#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4S%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养. m5; A A + L $fdmTEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.E{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;EC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.j7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.J Ea嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.b au嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.c E嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土. E{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.m E%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.Ym嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.c7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.E动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.kE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.0U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.~EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.E}EU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&4S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.I3'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&2E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._17入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.0S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.E/o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土. z- + V  8J3q5LcA.EO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\-E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.u,S'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.j+S祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.n*S嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.q)S移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.c(E嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.C'SE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.&KQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Q%) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.g$7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.P#S_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.H"E]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.p!S嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7 S+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. }'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.XE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4S7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.RE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7Q)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sPa移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OOEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|No探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.HM7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.LSk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cKau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井. }~F w h 6 | 5<sl,/{JEA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.eIa{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. HSW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;G7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%F}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.EE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RDuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'C5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?Bs作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.yAo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7@ q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..?S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.Q>aS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.n=S嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.s<S#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.B;7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4:o 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#9C开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.8EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P7aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c6S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K5SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.,'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3 'Q诸事不宜.治病.破屋.坏垣.余事勿取.R ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅." )+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ 'A诸事不宜.平治道涂.余事勿取.N )嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬. oW # [  7 :rcD:oJ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.P~aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c}S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K|SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S{aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;za%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)yE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XxE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.wS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.vaW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.u)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,t'C诸事不宜.破屋.坏垣.余事勿取. s5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)r U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.q}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.*''诸事不宜.诸事不宜.V)!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.S(Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`')'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.&''诸事不宜.诸事不宜.,%'C诸事不宜.沐浴.扫舍.余事勿取.j$E嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤. n\x I  E u x1 $Rn^#)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:"'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. !Ee开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.% )1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.EK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,'C诸事不宜.祭祀.沐浴.余事勿取.pS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.ZSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.8'[诸事不宜.造畜椆栖.平治道涂.余事勿取. -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.gG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.g[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. }'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,G'C诸事不宜.祭祀.塞穴.余事勿取.gF)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.BE)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:D'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`C)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬. ": t  b * kUe} ]CB)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9A']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?@7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8?)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&>)5行丧.安葬.作灶.造畜椆栖.?=)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.<Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.J;Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.y:E=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. 9E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,8'C诸事不宜.破屋.坏垣.余事勿取.]7Sw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.n6S嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\5E嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{4S3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.3E 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.E2SG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. 1gA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.0g'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.H/'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.m.a 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."-}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0, c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,+'C诸事不宜.破屋.坏垣.余事勿取.#*5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0) c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.WbE{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.a''诸事不宜.诸事不宜.:`'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取.__oa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. ^Ee安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4]E5入殓.安葬.开市.交易.祭祀.诸事不宜.{\EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u[)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络. "Uim% G  i 5 U_u v`U7ZE9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.IYE_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.XEW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.AW)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:V)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.U)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.TEm造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cSS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!R))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xQa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.JPo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7O=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4Na嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%M5'探病.余事勿取.余事勿取.mLo}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%KS纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.)J)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.NI'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.H嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.G %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.FSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.Ea_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.F~)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.g})5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`|)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:{'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5z)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.Cy)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.MxCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.Nw)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.Rv) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.Ju7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.Ct)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. "k^ v ' u - o F  waLV% s 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.r 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. q 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7pS+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4o)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|nS5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.ImE]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.glE嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. kSO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{jS3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.uia开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.ha5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.OgS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.mf}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.ie}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."d G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.cE{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,b'C诸事不宜.破屋.坏垣.余事勿取.a}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.ja开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.J)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.J)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..)E开市.破土.祭祀.作灶.纳财.捕捉.R赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Y)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.J7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,'C诸事不宜.沐浴.扫舍.余事勿取.P' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.  !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒. #l R u 4 D e  T#bR S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基. Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.W a_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取. aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bS开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.AKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZSq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.ra出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,~'C诸事不宜.祭祀.解除.余事勿取.}E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.6E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,5'C诸事不宜.祭祀.栽种.余事勿取.J4)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.J3)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.2''诸事不宜.诸事不宜.R1) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`05作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;/)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Y.)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M-7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<,7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5+)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y*)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@)'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.( #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.'EI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.B&)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^%S{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.d$E开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑. ! c }  ! 5 N n du" ^ENu#K/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.q"Y安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.R!Eo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.< S7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&S 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.BSC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.,'C诸事不宜.结网.解除.余事勿取."as入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.% M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*SC嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."R G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]Q'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.EP)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`O)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,N'C诸事不宜.塞穴.结网.余事勿取.YM)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.CL)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑. %j& $ zAd1P5;=EC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.B<)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.";E移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.::E?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^9S{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.F8'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.7}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%6}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.I5'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|n7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.maW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,l'C诸事不宜.解除.坏垣.余事勿取.k' 诸事不宜..j77嫁娶.入宅.安葬.沐浴.结网.取渔.:i'_诸事不宜.祭祀.求医.治病.解除.余事勿取.Jh7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.Jg7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4f)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.Fe7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Qd7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jcS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.bEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%aE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:`Q5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取._EW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.^''诸事不宜.诸事不宜.f]S 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.\E 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@[KE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OZS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:Ya#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~Xa+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aWoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fVa}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nUS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4T)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取.XSE}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财. Q}b k  N 8 iL' Q4RE3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.KQ/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.- 'E诸事不宜.破屋.坏垣.求医.治病.0 E+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.: )[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^E造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%E出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5E7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>EG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.S_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.CSE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4E3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.')诸事不宜.破屋.坏垣.~E 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.I}赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.X|So动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3{E1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,z'C诸事不宜.扫舍.塞穴.余事勿取.tya栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3xS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4wS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TvEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.uE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jtS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;sEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.grS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~q=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬. LC 2 8 > >(/vpLp')诸事不宜.解除.沐浴.foC栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.n5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.m)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.%oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u$ o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.#E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>"EG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.X!E}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.; )]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.')诸事不宜.求医.破屋.BEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]E造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.A_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.I'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.Eo+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.AEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uS'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.j S祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.n S嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒. m a % N|x83SK; Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. E]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.| EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.QC) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.uB)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3A'Q诸事不宜.解除.破屋.坏垣.余事勿取.Z@E造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%?E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.U>Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{=EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.B<EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,;'C诸事不宜.祭祀.解除.余事勿取.A:EM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.b9E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;8)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.X7E}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.L6SU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.457C嫁娶.开市.安葬.破屋.坏垣.余事勿取.4E{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.73)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.s2a移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.O1Ei入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|0o探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.H/7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取..Sk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.c-au造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{,EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.e+a{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. *SW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬. %  0 *  ] 4Kmj]QH)a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3('Q诸事不宜.治病.破屋.坏垣.余事勿取.R') 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."&)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+%'A诸事不宜.平治道涂.余事勿取.NЯ)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JЯ~)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=Я}Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5Я|)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JЯ{)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<Яz)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uЯy m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ЯxSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:Яw'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ЯvEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ЯuEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PЯtaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cЯsS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KЯrSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SЯqaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;Яpa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ЯoE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XЯnE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ЯmS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Яla5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WЯka_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ЯjS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rЯio开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ЯhSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UЯgoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.   K  @ ` sHB8Яf''诸事不宜.诸事不宜.VЯe!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.SЯdEs嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`Яc)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.Яb''诸事不宜.诸事不宜.,Яa'C诸事不宜.沐浴.扫舍.余事勿取.jЯE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^Я)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:Я'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. ЯEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%Я)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.ЯEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FЯEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZЯE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,Я'C诸事不宜.祭祀.沐浴.余事勿取.pЯS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LЯSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pЯS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.ZЯSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LЯ Ec造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4Я )Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IЯ E]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HЯ SM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JЯ E_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^ЯS{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._Яam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖. !&5   1 6F[i8t&IЯSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nЯS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;ЯS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒. Я}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,Я'C诸事不宜.祭祀.塞穴.余事勿取.gЯ)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.BЯ)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:Ю'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`Ю~)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.CЮ})o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9Ю7']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?Ю67Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8Ю5)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&Ю4)5行丧.安葬.作灶.造畜椆栖.?Ю3)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.Ю2Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.JЮ1Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.yЮ0E=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. Ю/E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,Ю.'C诸事不宜.破屋.坏垣.余事勿取.]Ю-Sw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.nЮ,S嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\Ю+E嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{Ю*S3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.Ю)E 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EЮ(SG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. Ю'gA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.Ю&g'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PЮ%Em动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. Ю$YO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.jЮ#S嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.BЮ")m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EЮ!KO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬. !w_ @ -  N?$D T]BЮ SC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.0Ю c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.WЮE{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.Ю''诸事不宜.诸事不宜.:Ю'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._Юoa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. ЮEe安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4ЮE5入殓.安葬.开市.交易.祭祀.诸事不宜.{ЭREA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.uЭQ)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7ЭPE9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.IЭOE_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.ЭNEW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.AЭM)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:ЭL)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.ЭK)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.ЭJEm造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cЭIS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!ЭH))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xЭGa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.JЭFo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7ЭE=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4ЭDa嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%ЭC5'探病.余事勿取.余事勿取.mЭBo}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%ЭAS纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.cЭ@aw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\Э?E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.uЭ>a针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?Э=g)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.uЭ<o 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.Э;a_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.Э:}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒. "iY l 3 P { xi.t$_c=FЭ9)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gЭ8)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`Э7)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:Э6'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5Э5)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.CЬo)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.MЬnCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.NЬm)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.RЬl) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.JЬk7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.CЬj)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. Ьi 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.Ьh 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. Ьg 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7ЬfS+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4Ьe)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|ЬdS5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.IЬcE]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.gЬbE嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. ЬaSO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{Ь`S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.uЬ_a开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.Ь^a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.OЬ]S[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.Ь\S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>Ь[a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.ЬZSC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4ЬY)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`ЬXE 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.ЬW}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.ЬVoW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.jЬUa开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.JЬT7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.CЬS)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬. %|PT1 b  * c#C|#re}.|JЬR)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^ЬQ'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.JЬ )}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..Ь )E开市.破土.祭祀.作灶.纳财.捕捉.RЬ 赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.YЬ)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3Ь'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.JЬ7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,Ь'C诸事不宜.沐浴.扫舍.余事勿取.PЬ' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.Ь !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.ЬS;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.ЬEo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.WЬa_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.ЫaO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bЫ~S开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.AЫ}KG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZЫ|Sq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;Ы{)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mЫzo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6ЫyS)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OЫxaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LЫwaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nЫvS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lЫuE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uЫtS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)Ыs7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.ЫrE{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,Ыq'C诸事不宜.祭祀.栽种.余事勿取.JЫp)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.JЫo)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.Ыn''诸事不宜.诸事不宜.RЫm) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`Ы&5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;Ы%)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.YЫ$)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.MЫ#7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友. #b`l w / ; m iKdw.D;b<Ы"7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5Ы!)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.YЫ )开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@Ы'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.Ы #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.ЫEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.BЫ)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^ЫS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dЫE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uЫK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.qЫY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.RЫEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.<ЫS7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&ЫS 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.ЫSq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.BЫSC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.Ыa-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.ЫSe作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.BЫ7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7ЫK3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.uЫS'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬."Ы  G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]Ы '#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.EЫ )s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`Ы )'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,Ы 'C诸事不宜.塞穴.结网.余事勿取.YЪC)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.CЪB)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<ЪA7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.JЪ@)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`Ъ?)'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.3Ъ>'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.YЪ=)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.YЪ<'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.Ъ; 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶. #[A W R x ) h R ! <Vg~)&-DЪ:'s诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.Ъ9 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4Ъ8)Q破土.安葬.塞穴.断蚁.结网.余事勿取.Ъ7''余事勿取.余事勿取.}Ъ6S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.PЪ5aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.cЪ4E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;Ъ3EC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.BЪ2)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."Ъ1E移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:Ъ0E?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^Ъ/S{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~Ъ.S9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xЪ-S-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>Ъ,)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."Ъ+as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]Ъ*7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.Ъ)aW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,Ъ('C诸事不宜.解除.坏垣.余事勿取.Ъ'' 诸事不宜..Ъ&77嫁娶.入宅.安葬.沐浴.结网.取渔.:Ъ%'_诸事不宜.祭祀.求医.治病.解除.余事勿取.JЩ^7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.JЩ]7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4Щ\)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.FЩ[7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.QЩZ7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jЩYS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.ЩXEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%ЩWE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ЩVQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.ЩUEW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.ЩT''诸事不宜.诸事不宜.fЩSS 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.ЩRE 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓. V@ q  T / `3~Eg~j@ЩQKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OЩPS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:ЩOa#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~ЩNa+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aЩMoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fЩLa}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nЩKS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4ЩJ)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./ЩI77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JЩHSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._ЩGE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uЩFE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gЩES 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.:ЩD)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^ЩCE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%ЩBE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5ЩAE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>Ш{EG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.ШzS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.WШy)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.CШxSE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4ШwE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.Шv)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.Шu')诸事不宜.破屋.坏垣.ШtE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.IШs赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XШrSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3ШqE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,Шp'C诸事不宜.扫舍.塞穴.余事勿取.tШoa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口. TZ  M j ~`}_ ]P=3ШnS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4ШmS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TШlEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.ШkE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jШjS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;ШiEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gШhS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~Шg=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._ШfE 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.jШe7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JШdEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bШcau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cШbE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.uШa o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.Ш`E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>Ш_EG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XШ^E}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;Ш])]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.Ш')诸事不宜.求医.破屋.BШEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]ШE造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.AШ_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XШE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0ШU掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[ШSu祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.Ш EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EШ EU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&Ш S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.IШ '}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&Ш E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土. ) u o /  .kAc`_Ш7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.ШS]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.EШo+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.AШEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\ШE开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uШS'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jШS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nШS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qШS移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cЧE嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.CЧ~SE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.Ч}KQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.QЧ|) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.3Ч{'Q诸事不宜.解除.破屋.坏垣.余事勿取.ZЧzE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%ЧyE出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.UЧ3Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{Ч2EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.BЧ1EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,Ч0'C诸事不宜.祭祀.解除.余事勿取.AЧ/EM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bЧ.E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;Ч-)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XЧ,E}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LЧ+SU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4Ч*7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.Ч)E{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7Ч()W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sЧ'a移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OЧ&Ei入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|Ч%o探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓. 03 ! C  @ 3i'fk}0HЧ$7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.Ч#Sk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cЧ"au造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{Ч!EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.eЧ a{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. ЧSW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;Ч7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%Ч}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.ЧE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RЧuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'Ч5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?Чs作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.JЧ)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ЧQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5Ч)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JЧ)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.kEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.jEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PiaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.chS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KgSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SfaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ea%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)dE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XcE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍. n. ] W  7;DiYtnbS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.aa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W`a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0_S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r^o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]]Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U\oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T[Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iZ';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)Y U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vX[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.W会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.,V'C诸事不宜.沐浴.扫舍.余事勿取.jUE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^T)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:S'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. REe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%Q)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友. EK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.F EY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,'C诸事不宜.祭祀.沐浴.余事勿取.pS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土. P] ^  x 4 J  7 DK&eMwPpS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.ZSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.J~E_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^}S{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._|am开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.I{SQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nzS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;yS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._xoa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.twS%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{vS3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.Iu){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.tam破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.EsEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Cr)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9q']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?p7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8o)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&n)5行丧.安葬.作灶.造畜椆栖.?m)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.'Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.J&Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.y%E=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. $E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,#'C诸事不宜.破屋.坏垣.余事勿取.]"Sw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒. i S  H N  DSA@g en!S嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\ E嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{S3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.E 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.ESG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. gA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.g'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. YO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.jS嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.B)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.BSC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3)O嫁娶.开市.祭祀.平治道涂.余事勿取.HSM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.o]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬. Ee安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4E5入殓.安葬.开市.交易.祭祀.诸事不宜.{ EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u )Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7 E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.I E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取. EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.AB)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:A)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.@)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.?Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕. "X1w ' b f  e~x4YF3gXc>S动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!=))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.x<a嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.J;o7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7:=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.49a嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%85'探病.余事勿取.余事勿取.m7o}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%6S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.c5aw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\4E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.u3a针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?2g)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.u1o 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.0o-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.L/YQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7.}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.S-Eq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;,)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.:+'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5*)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.C))o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.M(Ci嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.N')开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.R&) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.J%7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.C_)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. ^ 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.] 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. \ 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7[S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4Z)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|YS5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.IXE]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬. jv ]  P h  _Q5`]NgWE嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. VSO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{US3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.uTa开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.Sa5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.ORS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.QS]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>Pa+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.OSC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4N)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`ME 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.ELSG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.rK}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.J-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?Im出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&Ha{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%Gay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.^F'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.JE)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..D)E开市.破土.祭祀.作灶.纳财.捕捉.RC赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.YB)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3A'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.J{7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,z'C诸事不宜.沐浴.扫舍.余事勿取.Py' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.x !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.wS;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.vEo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.Wua_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.taO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑. al R u 4 D av1!oabsS开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.ArKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZqSq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;p)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.moo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6nS)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OmaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LlaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nkS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.ljE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uiS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)h7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]ggc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KfYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YeSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4d)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&cA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Rb) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`a5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;`)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Y_)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M^7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<]7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取. #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.EI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.B)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^S{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑. HL f h m  7 Hxwe~HuK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.q Y安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.R Eo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.< S7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.& S 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船. Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.BSC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.Se作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.B7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7K3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.uS'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.qS开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{a%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.JQS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.EEW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.~am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.Y})赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.C|)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<{7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.Jz)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`y)'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.33'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Y2)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Y1'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.0 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.D/'s诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.. 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4-)Q破土.安葬.塞穴.断蚁.结网.余事勿取.,''余事勿取.余事勿取.}+S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.P*aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取. ZA ' = 8 ^  6a`c2rCZc)E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;(EC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.B')m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."&E移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:%E?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^$S{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~#S9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.x"S-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>!)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取." as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7S+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.47A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.OKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.J7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.F7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Q7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jNS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.MEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%LE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:KQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.JEW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.I''诸事不宜.诸事不宜.fHS 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.GE 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@FKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OES]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取. ZF * Y 5 %m'YhnZ:Da#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~Ca+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aBoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fAa}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.n@S祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4?)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./>77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.J=SS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._<E 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.u;E5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.g:S 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.K9K]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.8ae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.H7o1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.A6EO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.25a移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.4S_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W3)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.C2SE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.41E3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.k)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.j')诸事不宜.破屋.坏垣.iE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Ih赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XgSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3fE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,e'C诸事不宜.扫舍.塞穴.余事勿取.tda栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3cS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4bS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养. R5; A A + 1vp KdIRTaEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.`E{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.j_S塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;^EC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.g]S 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~\=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._[E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.jZ7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JYEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bXau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cWE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.VE{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.mUE%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.TYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cS7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;R)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&Q}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.BPEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]OE造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.AN_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XME}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.I'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&~E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._}7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.|S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.E{o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土. j ^ " K y u}6uKmjAzEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\yE开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uxS'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jwS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nvS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.quS移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.ctE嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.CsSE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.rKQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Qq) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.gp7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.PoS_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.HnE]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pmS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7lS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.BkEO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,j'C诸事不宜.祭祀.解除.余事勿取.AiEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.b#E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;")_开市.安床.祭祀.作灶.入殓.除服.余事勿取.X!E}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.L SU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.47C嫁娶.开市.安葬.破屋.坏垣.余事勿取.E{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sa移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|o探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.H7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.Sk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶. wq e L { = 1'j'z#ea{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. SW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.E开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?s作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.y o嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7  q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.. S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.Q aS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.n S嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.u m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>EG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ϓ_EQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.Pϓ^aQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cϓ]S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.Kϓ\SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.Sϓ[aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ϓZa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ϓYE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XϓXE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.ϓWS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.ϓVa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水. l  d 3 S   W tDv~lWϓUa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0ϓTS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rϓSo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]ϓRSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UϓQoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TϓPKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iϓO';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ϓN U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vϓM[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ϓL会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ϓKoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ϓJS+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4ϓI)Q移徙.入宅.破屋.坏垣.治病.余事勿取.ϓHKq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ϓGE开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.%ϓF)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.ϓEEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FϓDEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZϓCE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,ϓB'C诸事不宜.祭祀.沐浴.余事勿取.pϓAS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LϒzSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pϒyS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.ZϒxSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬. qr# H  < q~!`WLϒwEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4ϒv)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IϒuE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HϒtSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JϒsE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^ϒrS{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._ϒqam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.IϒpSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nϒoS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;ϒnS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._ϒmoa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.tϒlS%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{ϒkS3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.Iϒj){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.ϒiam破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.EϒhEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Qϒg %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.ϒf祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.Oϒe7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.VϒdSk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fϒcS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?ϒb)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.ϒaEm作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.Jϒ`Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.yϒ_E=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. ϒ^E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财. 9_ m q  5 SM;7,ϒ]'C诸事不宜.破屋.坏垣.余事勿取.]ϒSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.nϒS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\ϒE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{ϒS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.ϒE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EϒSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. ϒgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.ϒg'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PϒEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. ϒYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.jϒ S嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.Bϒ )m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.Eϒ KO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.Bϒ SC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3ϒ )O嫁娶.开市.祭祀.平治道涂.余事勿取.HϒSM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.ϒo]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.ϒ1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.ϒ}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VϒSi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[ϒSu嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vϒa探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.ϒoO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PϒS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.IϑE_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.ϑ~EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.Aϑ})i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易. p(  % F m _Y:'H9:ϑ|)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.ϑ{)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.ϑzEm造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cϑyS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!ϑ2))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xϑ1a嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Jϑ0o7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7ϑ/=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4ϑ.a嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%ϑ-5'探病.余事勿取.余事勿取.mϑ,o}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%ϑ+S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.cϑ*aw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\ϑ)E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.uϑ(a针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?ϑ'g)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.uϑ&o 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.ϑ%o-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.Lϑ$YQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7ϑ#}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.Sϑ"Eq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;ϑ!)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.ϑ  5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.ϑu;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.UϑEw嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0ϑo斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3ϑa造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.PϑEm动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.Jϑ7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.Cϑ)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. ϑ 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土. i$d ]  O 3^[LWiϑ 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. ϑ 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7ϑS+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4ϐO)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|ϐNS5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.IϐME]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.gϐLE嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. ϐKSO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{ϐJS3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.uϐIa开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.ϐHa5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.OϐGS[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.ϐFS]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>ϐEa+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.ϐDSC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4ϐC)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`ϐBE 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.EϐASG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.rϐ@}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.ϐ?-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?ϐ>m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&ϐ=a{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%ϐ<ay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*ϐ;I入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:ϐ:o行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.Vϐ9Ew入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬. T< k _ { U'@CO6a)4ϐ8a掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.Pϐ7aQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.3ϐ6'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Jϐ57o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,ϐ4'C诸事不宜.沐浴.扫舍.余事勿取.Pϐ3' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.ϐ2 !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.ϐ1S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.ϏkEo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.WϏja_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.ϏiaO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bϏhS开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.AϏgKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZϏfSq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;Ϗe)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mϏdo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6ϏcS)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OϏbaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LϏaaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nϏ`S嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lϏ_E#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uϏ^S'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)Ϗ]7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]Ϗ\gc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KϏ[YM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YϏZSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4ϏY)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&ϏXA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.  R q  Z  AJ<"ER{oLϏWo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<ϏVEE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.EϏU}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.QϏTS_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,ϏSM移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.<ϏR7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5ϏQ)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.YϏP)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@ϏO'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.ϏN #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.ϏMEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.BϏ)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^ϏS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dϏE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uϏK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.qϏY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.RϏEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.<ϏS7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&ώS 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.ώ~Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.Bώ}SC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.ώ|a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.ώ{Se作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.Bώz7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7ώyK3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.uώxS'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.qώwS开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{ώva%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服. 95 u ' b_<f}^S 9JώuQS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.EώtEW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.ώsam安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7ώrE9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;ώqEC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.ώpS_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.ώo)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.EώnKQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^ώmS{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.Yώl)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Yώk'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.ώj 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.Dώi's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.ώ# 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4ώ")Q破土.安葬.塞穴.断蚁.结网.余事勿取.ώ!''余事勿取.余事勿取.}ώ S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.PώaQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.cώE嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;ώEC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.Bώ)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."ώE移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:ώE?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^ώS{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~ώS9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xώS-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>ώ)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."ώas入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]ώ7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;ώ7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取. \g y  5 3/ i\7ώS+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4ώ7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.Bώ)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.OώKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SώSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.ώ Ss伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.ώ  嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4ώ a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Wώ a_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.ώ  安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.ώEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%ώE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ώQ5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.ώEW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.ύ>''诸事不宜.诸事不宜.fύ=S 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.ύ<E 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@ύ;KE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.Oύ:S]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:ύ9a#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~ύ8a+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aύ7oe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fύ6a}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nύ5S祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4ύ4)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./ύ377出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.Jύ2SS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._ύ1E 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uύ0E5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gύ/S 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬. bD q B 5 " i5W \prKύ.K]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ύ-ae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.Hύ,o1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.Aύ+EO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2ύ*a移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.ύ)E 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.Bύ()m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'ύ''5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.Iύ&){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Qύ%) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.ύ$)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.ύ#E 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.Iύ"赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.Xύ!So动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3ό[E1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,όZ'C诸事不宜.扫舍.塞穴.余事勿取.tόYa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3όXS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4όWS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TόVEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.όUE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jόTS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;όSEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gόRS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~όQ=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._όPE 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.jόO7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JόNEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bόMau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cόLE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.όKE{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩. ?] 7 U z 4 i ouuxiEYPmόJE%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.όIYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cόH7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;όG)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&όF}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.όEE动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~όD开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.όC'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.kόBE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.όAEy祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.[ό@Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.ό?EQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.Eό>EU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&ό=S 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.Iϋt'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&ϋsE安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._ϋr7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.ϋqS]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.Eϋpo+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.AϋoEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\ϋnE开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uϋmS'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jϋlS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nϋkS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qϋjS移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cϋiE嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.CϋhSE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.ϋgKQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Qϋf) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.gϋe7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.PϋdS_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产. ~;7  + B XV /$.@~HϋcE]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pϋbS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7ϋaS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. ϋ`}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|ϋ_} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.ϋ^{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{ϋ]%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._ϋ\)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. ϋ[u3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.LϋZSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4ϋY7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.ϋE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7ϋ)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sϋa移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.OϋEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|ϋo探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.Hϋ7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.ϋ Sk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cϋ au造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{ϋ EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.eϋ a{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. ϋ SW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;ϋ7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%ϋ}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.ϋE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RϋuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'ϋ5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?ϋs作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服. _&K ; V P D+ZqWN_yϋo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7ϋ q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..ϋS嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.QϊaS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.nϊ~S嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.sϊ}S#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.Bϊ|7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4ϊ{o 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#ϊzC开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]ϊy}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.PϊxaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cϊwS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KϊvSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SϊuaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;Oa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)NE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XME}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.LS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.Ka5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.WJa_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0IS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rHo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]GSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UFoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TEKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖. 0b Z 3 a V!+DiD';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)C U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vB[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.A会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.@oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7?S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4>)Q移徙.入宅.破屋.坏垣.治病.余事勿取.=Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]<E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.];Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q:a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S9Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.8S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.7aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.p6S开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.L5SU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.p4S安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.Z3Sq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.L2Ec造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.41)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IjE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HiSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JhE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕. L5 < Y ( l  =w1fszUL^gS{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._fam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.IeSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.ndS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;cS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._boa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.taS%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{`S3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.I_){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.^am破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.E]EU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Q\ %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.[祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.OZ7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.VYSk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fXS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?Wm伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.eVa{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. UgC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.cTY}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;S)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.,R'C诸事不宜.破屋.坏垣.余事勿取.]QSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.nPS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\OE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{NS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.ME 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.ESG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. 4% & F L Sw9H}65\ gA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.g'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. YO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.jS嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.B)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.BSC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3~)O嫁娶.开市.祭祀.平治道涂.余事勿取.H}SM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.|o]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.{1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.z}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VySi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[xSu嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vwa探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.voO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PuS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.t}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.esa{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.qra嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.Eq'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.p}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.oEm造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cnS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!m))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xla嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Jko7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉. F f Q C 3(KJ-I7j=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4ia嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%"5'探病.余事勿取.余事勿取.m!o}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.% S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.caw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.ua针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?g)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.uo 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.o-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.LYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.SEq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取. 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.u;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.UEw嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0o斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3a造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.PEm动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%S祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.ea{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取.  开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.# 5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.a S开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.7 S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4 )Q行丧.安葬.破屋.坏垣.治病.余事勿取.|S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒. ?= . R 7 $}Da z?IE]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.gE嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{?S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.u>a开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.=a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.O<S[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.;S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>:a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.9SC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.48)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`7E 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.E6SG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.r5}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.4-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?3m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&2a{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%1ay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*0I入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:/o行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.V.Ew入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4-a掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.P,aQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.f+E嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.S*Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.z)k嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶. u5" v = ^ wI )be qDuI( 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#'Q嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.&S;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.%Eo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.W$a_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.#aO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.b"S开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.A!KG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.Z[Sq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;Z)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mYo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6XS)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OWaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LVaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nUS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lTE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uSS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)R7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]Qgc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KPYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YOSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4N)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&MA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.LLo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.K/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.q=Y安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.RvEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕. )e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取." as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.] 7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑. P  < " }  uwa3Z>;7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7S+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.47A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.OKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.Ss伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜. 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Wοa_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.ο~ 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.Iο}}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.ο| ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.ο{Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:οz)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:οy'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.fοxS 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.οwE 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@οvKE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OοuS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:ο.a#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~ο-a+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aο,oe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fο+a}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nο*S祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4ο))Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./ο(77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.Jο'SS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔. !1s q z  =!Tv({4"f_ο&E 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uο%E5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gο$S 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.Kο#K]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ο"ae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.Hο!o1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.Aο EO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2οa移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.οE 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.Bο)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'ο'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.Iο){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Qο) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.ο)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.fοS 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]ο7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.ο}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. οo;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.LοEe开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.tοa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3οS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4οS%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TξKEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.ξJE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jξIS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;ξHEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gξGS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~ξF=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._ξEE 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.jξD7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.JξCEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.bξBau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.cξAE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土. p>j  0 ( dE8u!pξ@E{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.mξ?E%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.ξ>Ym嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cξ=7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;ξ<)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&ξ;}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.ξ:E动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~ξ9开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.ξ8'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.kξ7E!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.ξ6Ey祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.ξ5}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|ξ4EC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.lξ3K置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*ξ2 W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ξ1Ee开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.&ξ0E安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._ξ/7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.ξ.S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.Eξ-o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.AνeEO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\νdE开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.uνcS'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jνbS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nνaS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qν`S移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cν_E嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.Cν^SE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.ν]KQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Qν\) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.gν[7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土. K;7  + B XVFP0bKPνZS_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.HνYE]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pνXS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7νWS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. νV}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|νU} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.νT{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{νS%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._νR)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. νQu3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;νP)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.XνOaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)νNS开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?νM'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%νLS入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.OνKEi入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|νJo探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.HνI7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.νSk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cνau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{νEA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.eνa{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. μSW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;μ~7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%μ}}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.μ|E开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.Rμ{uA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'μz5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?μys作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服. &K ; V P Df[Za'yμxo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7μw q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..μvS嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.QμuaS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.nμtS嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.sμsS#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.Bμr7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4μqo 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#μpC开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]μo}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.μn}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&μmE入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.YμlE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.μk 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&μj O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.)μiE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.XμhE}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.μgS=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.μfa5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.Wμea_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.0?S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.r>o开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]=Sy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.U<oK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.T;Km破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.   K  R ! S(Ai:';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)9 U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v8[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.7会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.6oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.75S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.44)Q移徙.入宅.破屋.坏垣.治病.余事勿取.3Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]2E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]1Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q0a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S/Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门..S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.-aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.,5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.+伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,*'C诸事不宜.解除.扫舍.余事勿取.)EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:('_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,''C诸事不宜.祭祀.解除.余事勿取.I&E]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.H%SM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.J$E_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^#S{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._"am开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖. 5 j 5 U l o?u.`OI!SQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nZS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;YS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._Xoa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.tWS%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{VS3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.IU){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.Tam破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.ESEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.QR %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.Q祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.OP7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.VOSk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fNS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?Mm伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.eLa{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. KgC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.cJY}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;I)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.HQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.G7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.Fa_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. E5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. D)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.CE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EBSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. p/ [ }  n  | Db\J) AgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.@g'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.P?Em动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. >YO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.j=S嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.Bw)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.EvKO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.BuSC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3t)O嫁娶.开市.祭祀.平治道涂.余事勿取.HsSM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.ro]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.q1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.p}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VoSi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[nSu嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vma探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.loO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PkS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.j}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.eia{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.qha嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.Eg'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.f}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.ea]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.d)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.c)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.ua+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网./SC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4.)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`-E 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.E,SG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.r+}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.*-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?)m出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&(a{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%'ay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*&I入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:%o行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.V$Ew入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4#a掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.P"aQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.f!E嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.S Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.zk嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.I 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络. 5" v = ^ wI )b#xj#Q嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.E{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.AKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZSq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6S)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nKS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lJE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uIS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)H7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜.]Ggc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KFYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YESo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4D)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&CA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.LBo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.M移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|=a'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.B<o%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.;开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.V:Kq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.E9SG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,8'C诸事不宜.破屋.坏垣.余事勿取.n7 a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.6oQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,5'C诸事不宜.祭祀.解除.余事勿取.4}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."3 G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.R2Eo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.<1S7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&0S 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船./Sq合帐.上梁.经络.安葬.入殓.祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.B.SC开市.安葬.破土.修坟.掘井.祭祀.作灶.余事勿取.-a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.fSe作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.Be7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7dK3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.ucS'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.qbS开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{aa%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.J`QS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖. vC x 5 5  j # Eh7Lbp.b"evE_EW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.^am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7]E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;\EC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.[S_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.Z)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.EYKQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^XS{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.LW7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.kV7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.lUa纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.dTaw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.ESEW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.R-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,Q'C诸事不宜.解除.坏垣.余事勿取.,P'C诸事不宜.祭祀.作灶.余事勿取.&O}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.NoQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.;MEC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.BL)m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."KE移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.:JE?动土.破土.嫁娶.嫁娶.祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.^IS{祈福.嫁娶.入宅.安床.作灶.祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.~S9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xS-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]7入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;~7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7}S+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬. bg y  5  J SU?8cb4|7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B{)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.OzKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SySc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.xSs伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.w 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4va作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Wua_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.t 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.Is}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.r ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.qSm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:p)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:o'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%n M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)m U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{l} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Bka5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.jE嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.~ia+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.ahoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fga}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nfS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4e)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._E 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬. "]   Z s  X ' \5JWbN]KK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.Ho1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.AEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2a移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.E 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.B)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.''5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.I){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Q) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.fS 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.] 7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取. }祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. o;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L Ee开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取. am嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,'C诸事不宜.解除.破屋.余事勿取. +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,'C诸事不宜.塞穴.扫舍.余事勿取.jS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;EC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.gS 纳采.开光.安床.嫁娶.开市.祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.~=O纳畜.理发.合寿木.嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬._;E 开市.造屋.治病.作灶.嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.j:7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.J9Ea嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.b8au嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.c7E嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.6E{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.m5E%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.4Ym嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.c37嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑. FC, j . E \ B!eV2F;2)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&1}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.0E动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~/开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂..'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.k-E!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.,Ey祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.+}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|*EC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.l)K置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*( W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. 'Ee开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:&'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^%)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]$)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.<#EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Y"E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.\!E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.u S'开光.嫁娶.作灶.掘井.纳畜.祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.jS祭祀.移徙.入宅.动土.破土.纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.nS嫁娶.动土.开光.造屋.破土.祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.qS移徙.入宅.出火.安门.安葬.纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.cTE嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.CSSE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.RKQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.QQ) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.gP7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.POS_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.HNE]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pMS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7LS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. \7 H  0 ]s4  m\ K}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|J} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.I{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{H%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._G)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. Fu3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;E)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.XDaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)CS开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?B'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%AS入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=@'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;?'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.n>75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.=oC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."<}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.{;EA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.e:a{造庙.入宅.修造.安葬.行丧.嫁娶.祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取. 9SW祈福.嫁娶.安床.入宅.造船.沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.;s7Q斋醮.嫁娶.开市.祭祀.破屋.坏垣.余事勿取.%r}]纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.qE开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.RpuA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'o5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?ns作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.ymo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7l q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..kS嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.QjaS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.niS嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服. IC \  9 )e],NCBIshS#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.Bg7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4fo 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#eC开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]d}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.c}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&bE入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.YaE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.` 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&_ O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,^'C诸事不宜.祭祀.解除.余事勿取.^]'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.\E 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,['C诸事不宜.破屋.坏垣.余事勿取. Z}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.0YS出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅.rXo开市.纳采.订盟.作灶.造庙.造船.经络.嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.]WSy移徙.入宅.嫁娶.掘井.安葬.祭祀.平治道涂.修坟.除服.成服.余事勿取.UVoK祈福.出火.嫁娶.入宅.开市.动土.破土.订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.TUKm破土.安葬.行丧.开生坟.订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.iͩ/';入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.造畜椆栖.教牛马.)ͩ. U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.vͩ-[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.ͩ,会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.ͩ+oQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7ͩ*S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑. Hf  Q t @ n7}>L2YbH4ͩ))Q移徙.入宅.破屋.坏垣.治病.余事勿取.ͩ(Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]ͩ'E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]ͩ&Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qͩ%a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.Sͩ$Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.ͩ#S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.ͩ"aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.ͩ!5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.ͩ 伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,ͩ'C诸事不宜.解除.扫舍.余事勿取.ͩEQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:ͩ'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,ͩ'C诸事不宜.祭祀.解除.余事勿取.ͩa5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2ͩ'O诸事不宜.祭祀.修饰垣墙.余事勿取. ͩ5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ͩa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;ͩ'a余事勿取.安葬.启攒.移柩.入殓.除服.成服.IͩSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.nͩS嫁娶.入宅.安床.掘井.开光.祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.;ͩS3移徙.入宅.出火.入殓.安葬.开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒._ͩoa嫁娶.纳采.订盟.安床.动土.破土.安葬.祭祀.沐浴.捕捉.畋猎.结网.扫舍.tͩS%嫁娶.移徙.出火.开市.入宅.订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.{ͩS3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.IͨJ){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.ͨIam破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.EͨHEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.QͨG %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.ͨF祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网. f$ B t < * t <T#0;fOͨE7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.VͨDSk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.fͨCS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?ͨBm伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.eͨAa{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. ͨ@gC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.cͨ?Y}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;ͨ>)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.ͨ=Qs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.ͨ<7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.ͨ;a_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. ͨ:5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. ͨ9)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,ͨ8'C余事勿取.祭祀.沐浴.余事勿取.ͨ7}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%ͨ6'5余事勿取.解除.余事勿取.qͨ5o安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.ͨ4aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.ͨ3)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.jͨ2S嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.Bͨ1)m开市.嫁娶.祭祀.沐浴.解除.破屋.坏垣.余事勿取.Eͨ0KO开市.破土.掘井.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.Bͨ/SC开市.交易.祭祀.入宅.安葬.捕捉.畋猎.余事勿取.3ͨ.)O嫁娶.开市.祭祀.平治道涂.余事勿取.Hͨ-SM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.ͧgo]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.ͧf1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.ͧe}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VͧdSi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑. Uj  Z  Z5d-(HNU[ͧcSu嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vͧba探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.ͧaoO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.Pͧ`S_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.ͧ_}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.eͧ^a{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.qͧ]a嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.Eͧ\'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.ͧ[}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.ͧZa]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.ͧY)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.ͧX)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.<ͧWEE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. ͧV}'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{ͧUo上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:ͧT'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.aͧS'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.HͧR'{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8ͧQ'[诸事不宜.造畜椆栖.平治道涂.余事勿取.ͧP -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.\ͧOE嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.uͧNa针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.?ͧMg)嫁娶.入宅.修造.动土.会亲友.破土.祭祀.出行.uͧLo 嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.ͧKo-开市.祈福.动土.破土.入殓.安葬.造船.祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.LͧJYQ嫁娶.开市.造屋.作梁.合寿木.祭祀.冠笄.捕捉.余事勿取.7ͧI}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.SͧEq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;ͧ)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.ͧ 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.ͦu;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友. T v F * kOh)B-Uͦ~Ew嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0ͦ}o斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3ͦ|a造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.Pͦ{Em动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%ͦzS祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.eͦya{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. ͦx 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#ͦw5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.aͦvS开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:ͦu'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,ͦt'C诸事不宜.解除.坏垣.余事勿取.0ͦs c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.Fͦr'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|ͦqa'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. ͦpSO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3ͦo'Q诸事不宜.祭祀.出行.扫舍.余事勿取.ͦno'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.Hͦm'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.mͦla 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.ͦkS]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>ͦja+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.ͦiSC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.4ͦh)Q斋醮.开市.沐浴.破屋.坏垣.余事勿取.`ͦgE 开市.交易.入宅.嫁娶.祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.EͦfSG开市.立券.置产.作灶.造桥.嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.rͦe}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.ͦ-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?ͦm出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&ͦa{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒. XQf ! A / R!^ OsX%ͦay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*ͦI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:ͦo行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.VͦEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4ͦa掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.PͦaQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.fͦE嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.SͦSc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.zͦk嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.Iͦ 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#ͦQ嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}ͦ_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.ͦ}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%ͦ}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.ͦ}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.ͦ E{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.hͦ '9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,ͦ 'C诸事不宜.破屋.坏垣.余事勿取.^ͦ '%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)ͦ )9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.Nͦ'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.ͦ嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.LͦaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nͦS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.lͦE#动土.破土.掘井.安葬.祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.uͦS'开市.入宅.嫁娶.开光.造屋.祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.)ͦ7+出行.安葬.造桥.纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓磑.挂匾.掘井.纳畜. }Xx ] ,   C\I1`}]ͦgc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.Kͥ;YM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.Yͥ:So祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4ͥ9)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&ͥ8A嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Lͥ7o9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<ͥ6EE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.Eͥ5}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.Qͥ4S_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,ͥ3M移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|ͥ2a'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.Bͥ1o%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.ͥ0开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.Vͥ/Kq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.Eͥ.SG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,ͥ-'C诸事不宜.破屋.坏垣.余事勿取.nͥ, a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.ͥ+oQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,ͥ*'C诸事不宜.祭祀.解除.余事勿取.ͥ)}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."ͥ( G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.tͥ'_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^ͥ&'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.mͥ%}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.iͥ$}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."ͥ# G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬. i8 U Nw Mlͥ"a-斋醮.祭祀.移徙.入宅.上梁.嫁娶.纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.ͥ!Se作灶.理发.造桥.行丧.安葬.嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.Bͥ 7_入宅.嫁娶.移徙.祭祀.沐浴.破屋.坏垣.余事勿取.7ͥK3嫁娶.开市.合寿木.安葬.纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.uͥS'开光.作灶.造屋.架马.开仓.嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.qͥS开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{ͤVa%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.JͤUQS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.EͤTEW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.ͤSam安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7ͤRE9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;ͤQEC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.ͤPS_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.ͤO)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.EͤNKQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^ͤMS{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.LͤL7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.kͤK7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.lͤJa纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.dͤIaw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.EͤHEW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.ͤG-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,ͤF'C诸事不宜.解除.坏垣.余事勿取.,ͤE'C诸事不宜.祭祀.作灶.余事勿取.&ͤD}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.ͤCoQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,ͤB'C诸事不宜.破屋.坏垣.余事勿取.ͤAaQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙. {Qg g h[8MM*{)ͤ@ U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.rͤ?a出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&ͤ>)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.~ͤ=S9开市.作灶.动土.行丧.安葬.嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.xͤ<S-开市.出行.安床.作灶.安葬.嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.>ͤ;)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取."ͤ:as入宅.造屋.造桥.安门.安葬.上梁.嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.]ͤ97入宅.安门.安葬.祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓磑.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.;ͣs7Q探病.嫁娶.开市.祭祀.结网.捕捉.余事勿取.7ͣrS+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4ͣq7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.Bͣp)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.OͣoKc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.SͣnSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.ͣmSs伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.ͣl 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4ͣka作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Wͣja_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.ͣi 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.Iͣh}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.ͣg ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.ͣfSm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:ͣe)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:ͣd'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%ͣc M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)ͣb U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土. 1;  R t & y 2  d7}Ld{ͣa} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Bͣ`a5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.ͣ_E嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,ͣ^'C诸事不宜.解除.扫舍.余事勿取.ͣ]7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.ͣ\'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,ͣ['C诸事不宜.结网.解除.余事勿取."ͣZas入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%ͣY M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.JͣXSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._ͣWE 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.uͣVE5嫁娶.开市.纳财.出火.纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.gͣUS 移徙.入宅.嫁娶.出行.安床.祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.KͣK]安床.入宅.安碓磑.栽种.祭祀.作灶.平治道涂.余事勿取.ͣ ae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.Hͣ o1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.Aͣ EO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2ͣ a移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.ͣ E 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.Bͣ)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'ͣ'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.Iͣ){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Qͣ) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.ͣ)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.fͣS 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]ͣ7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.ͣ}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. ͣo;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L͢Ee开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.͢~am嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.͢}E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,͢|'C诸事不宜.解除.破屋.余事勿取. c & v  I :j*!Bm.c͢{ +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,͢z'C诸事不宜.塞穴.扫舍.余事勿取.:͢y'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.͢x}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.͢w 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.F͢v'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.͢u}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.j͢t7-移徙.入宅.栽种.纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.J͢sEa嫁娶.安葬.行丧.安门.祭祀.沐浴.解除.扫舍.塞穴.牧养.b͢rau嫁娶.动土.掘井.起基.定磉.破土.祭祀.会亲友.出行.立券.交易.冠笄.纳财.c͢qE嫁娶.祈福.出火.入宅.冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.͢+E{开市.交易.合帐.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.m͢*E%入宅.造屋.竖柱.安葬.纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.͢)Ym嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.c͢(7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;͢')_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&͢&}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.͢%E动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~͢$开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.͢#'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.k͢"E!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.͢!Ey祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.͢ }C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|͢EC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.l͢K置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*͢ W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ͢Ee开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:͢'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^͢)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]͢)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.<͢EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬. sXN K \ P  ~  y,jSRsY͢E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.4͢E5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.X͢E}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.h͢E祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^͢E作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.X͢E}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.c͢E嫁娶.开市.安葬.破土.纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.C͢SE嫁娶.安门.移徙.入宅.安葬.塞穴.结网.取渔.畋猎.͢KQ安床.作灶.造船.会亲友.纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.Q͢) 嫁娶.安葬.祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.g͢ 7'开市.入宅.斋醮.纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.P͡DS_经络.探病.造屋.作灶.动土.嫁娶.祭祀.冠笄.修饰垣墙.置产.H͡CE]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.p͡BS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7͡AS+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. ͡@}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.|͡?} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.͡>{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{͡=%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._͡<)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. ͡;u3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;͡:)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.X͡9aa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)͡8S开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?͡7'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%͡6S入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=͡5'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;͡4'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.n͡375词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.͡2oC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."͡1}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除. wc f 0 & & }|IY^:\wB͡0'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.͡/7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;͡.'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.͡-E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.͡,')诸事不宜.解除.沐浴.͡+E开市.出行.安葬.行丧.嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.R͡*uA开光.嫁娶.开仓.出货财.造船.安葬.探病.平治道涂.余事勿取.'͡)5'挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.?͠cs作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.y͠bo嫁娶.入宅.出行.动土.破土.安葬.行丧.祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.7͠a q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..͠`S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.Q͠_aS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.n͠^S嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.s͠]S#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.B͠\7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取.4͠[o 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#͠ZC开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]͠Y}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.͠X}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&͠WE入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.Y͠VE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.͠U 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&͠T O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,͠S'C诸事不宜.祭祀.解除.余事勿取.^͠R'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.͠QE 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,͠P'C诸事不宜.破屋.坏垣.余事勿取. ͠O}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.͠N}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口. b  <  Nk;\uF͠M'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.͠L'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.͠KE 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=͠J'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.͠IEk作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.)͠H U嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.v͠G[嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.͠F会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.͠EoQ伐木.作梁.动土.安床.破土.栽种.造桥.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.7S+作灶.安门.造桥.开市.安葬.安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.4)Q移徙.入宅.破屋.坏垣.治病.余事勿取.Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.qa嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.SSc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,'C诸事不宜.解除.扫舍.余事勿取.EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,'C诸事不宜.祭祀.解除.余事勿取.a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2'O诸事不宜.祭祀.修饰垣墙.余事勿取. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种. a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种. ` P p Z*I{:; 'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.# 5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m 37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,'C诸事不宜.解除.坏垣.余事勿取.a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.{S3祭祀.嫁娶.入宅.修造.动土.祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.I){嫁娶.安葬.祭祀.解除.破屋.坏垣.求医.治病.余事勿取.am破土.动土.安门.作灶.开市.交易.嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.EEU置产.掘井.词讼.栽种.嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.Q %造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.O:7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.V9Sk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.f8S 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?7m伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.e6a{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. 5gC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.c4Y}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;3)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.2Qs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.17{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.0a_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. /5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. .)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,-'C余事勿取.祭祀.沐浴.余事勿取.,}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%+'5余事勿取.解除.余事勿取.q*o安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.  x > s &L()aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.()探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,''C诸事不宜.破屋.坏垣.余事勿取. &5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)% U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.$}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.#''诸事不宜.诸事不宜.H"SM入宅.上梁.斋醮.出火.谢土.纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.!o]造庙.嫁娶.掘井.栽种.造桥.作灶.动土.祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍. 1出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.}C开市.出行.栽种.置产.词讼.安门.掘井.开光.嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.VSi安门.安床.裁衣.入宅.安葬.祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.[Su嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.vWa探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.VoO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.PUS_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.T}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.eSa{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.qRa嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.EQ'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.P}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.Oa]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.N)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.M)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.}安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.S=Eq开市.开仓.安门.安葬.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.;<)_移徙.入宅.破屋.坏垣.求医.治病.余事勿取.; 5出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.:u;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.U9Ew嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0ro斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3qa造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.PpEm动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%oS祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.ena{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. m 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#l5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.akS开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:j'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,i'C诸事不宜.解除.坏垣.余事勿取.0h c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.Fg'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|fa'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. eSO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍. ]tI z " b \@'l;k]3d'Q诸事不宜.祭祀.出行.扫舍.余事勿取.co'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.Hb'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.maa 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."`}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0_ c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,^'C诸事不宜.破屋.坏垣.余事勿取.#]5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0\ c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.W[E{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.rZ}y嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.Y-开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.?Xm出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.&Wa{栽种.掘井.动土.安床.破土.置产.嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.%Vay嫁娶.入宅.斋醮.开光.针灸.掘井.祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.*UI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:o行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.VEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4 a掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.P aQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.f E嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.S Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.z k嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.I 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#Q嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬. 8 . c " P k f2R@c%}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.E{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.h'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,'C诸事不宜.破屋.坏垣.余事勿取.^'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)~)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.N}'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.|嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.{ %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.zSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.ya_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.x}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.Fw)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.]vgc安葬.破土.开市.开仓.出货财.启攒.纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.KuYM入宅.开市.掘井.词讼.合寿木.嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓磑.筑堤.开池.破土.安葬.除服.成服.YtSo祭祀.祈福.探病.谢土.造桥.嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.4s)Q嫁娶.安葬.破屋.坏垣.解除.余事勿取.&rA嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.Lqo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<+EE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.E*}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.Q)S_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,(M移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|'a'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.B&o%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养. x ? % $ ? G1\;sb1f%开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.V$Kq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.E#SG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,"'C诸事不宜.破屋.坏垣.余事勿取.n! a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土. oQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,'C诸事不宜.祭祀.解除.余事勿取.}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍." G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.t_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.m}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.i}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口." G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,'C诸事不宜.破屋.坏垣.余事勿取.}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.ja开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.qS开市.入宅.出行.修造.词讼.祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.{a%嫁娶.安床.作灶.动土.破土.造船.安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓磑.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.JQS安葬.开生坟.合寿木.行丧.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.EEW斋醮.造屋.动土.破土.出行.教牛马.割蜜.余事勿取.am安床.祈福.出行.安葬.行丧.开光.嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.7 E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;FEC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.ES_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.D)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土. f_ j s 1 b?*~M{1GUfECKQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^BS{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.LA7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.k@7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.l?a纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.d>aw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.E=EW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.<-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,;'C诸事不宜.解除.坏垣.余事勿取.,:'C诸事不宜.祭祀.作灶.余事勿取.&9}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.8oQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,7'C诸事不宜.破屋.坏垣.余事勿取.6aQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)5 U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.r4a出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&3)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.2E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,1'C诸事不宜.祭祀.解除.余事勿取.0E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖./E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,.'C诸事不宜.祭祀.栽种.余事勿取.J-)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.7,S+安床.上梁.裁衣.入宅.嫁娶.祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.4+7A作灶.开市.经络.订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.B*)m开光.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取.O)Kc开市.立券.造船.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.ScSc作灶.嫁娶.移徙.入宅.理发.开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.bSs伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜. eH4 I ? P -e}Nddea 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4`a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.W_a_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.^ 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.I]}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.\ ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.[Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:Z)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:Y'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%X M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)W U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{V} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.BUa5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.TE嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,S'C诸事不宜.解除.扫舍.余事勿取.R7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.Q'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,P'C诸事不宜.结网.解除.余事勿取."Oas入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%N M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:M'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*LC嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."K G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]J'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.EI)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.Hae祈福.入宅.造屋.动土.破土.探病.祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.HGo1纳采.出行.修坟.安葬.开市.立券.作灶.嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.AFEO开光.修造.动土.破土.祭祀.修饰垣墙.余事勿取.2Ea移徙.入宅.作灶.理发.开光.安门.祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴. "Ya= Q H 2  g L {fXt@EY~E 作灶.安葬.祭祀.入殓.安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.B})m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'|'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.I{){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Qz) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.y)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.fxS 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]w7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.v}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. uo;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.LtEe开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.sam嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.rE{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,q'C诸事不宜.解除.破屋.余事勿取.p +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,o'C诸事不宜.塞穴.扫舍.余事勿取.:n'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.m}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.l 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.Fk'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.j}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%i}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.Ih'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|g7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.faW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,e'C诸事不宜.解除.坏垣.余事勿取.d' 诸事不宜.cYm嫁娶.定磉.合寿木.安葬.行丧.祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.cb7嫁娶.开光.作灶.纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.;a)_开光.嫁娶.破屋.坏垣.求医.治病.余事勿取.&}_开市.交易.作灶.纳财.上梁.安床.造屋.造船.嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.E动土.伐木.安葬.行丧.嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.~开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基. p>   [ ,vp-;kE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.Ey祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.}C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|EC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.lK置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.* W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. Ee开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.])!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.< EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Y E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.4 E5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.X E}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.h E祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^E作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.XE}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.4E3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.K/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-'E诸事不宜.破屋.坏垣.求医.治病.0E+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^E造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.HE]祭祀.祈福.安葬.安门.作灶.解除.平治道涂.余事勿取.pS嫁娶.开市.动土.作灶.安葬.会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.7~S+移徙.入宅.出火.作灶.掘井.祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬. }}'入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬. YM C n 2 '8.+<0^zY|4} 栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.3{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{2%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._1)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. 0u3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;/)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.X.aa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)-S开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?,'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%+S入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=*'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;)'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.n(75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.'oC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."&}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.B%'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.$7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;#'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍."E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.!')诸事不宜.解除.沐浴.f C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.7 q入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马..S嫁娶.合帐.入宅.行丧.安葬.纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓磑.掘井.开池.纳畜.牧养.造畜椆栖.QaS嫁娶.开市.入宅.安床.破土.安葬.祭祀.斋醮.纳财.捕捉.畋猎.nSS嫁娶.入宅.作灶.纳采.订盟.祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.sRS#祈福.造庙.祭祀.安床.谢土.嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.BQ7_开市.动土.破土.祭祀.破屋.坏垣.解除.余事勿取. Z'0 O  d  h &g6.QiZ4Po 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#OC开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]N}O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.M}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&LE入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.YKE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.J 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&I O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,H'C诸事不宜.祭祀.解除.余事勿取.^G'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.FE 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,E'C诸事不宜.破屋.坏垣.余事勿取. D}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.C}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.FB'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.A'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.@E 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=?'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.>Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. =E]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|<EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Q;) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.u:)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.39'Q诸事不宜.解除.破屋.坏垣.余事勿取.48)Q移徙.入宅.破屋.坏垣.治病.余事勿取.7Kq开生坟.破土.行丧.安葬.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.]6E开市.造庙.置产.掘井.纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.]5Sy嫁娶.入宅.纳采.订盟.掘井.祭祀.平治道涂.除服.成服.安葬.余事勿取.q̍a嫁娶.动土.破土.祈福.出火.入宅.纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.S̍Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门. !M` 7 : u @ E /RY gM̍ S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.̍ aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.̍ 5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.̍ 伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,̍ 'C诸事不宜.解除.扫舍.余事勿取.̍EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:̍'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,̍'C诸事不宜.祭祀.解除.余事勿取.̍a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2̍'O诸事不宜.祭祀.修饰垣墙.余事勿取. ̍5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.̍a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;̍'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ̍aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#̌5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m̌~37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,̌}'C诸事不宜.解除.坏垣.余事勿取.̌|a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3̌{'Q诸事不宜.治病.破屋.坏垣.余事勿取.Řz) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."̌y)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+̌x'A诸事不宜.平治道涂.余事勿取.Ňw)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.̌v祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.Ǒu7w作灶.经络.安床.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.V̌tSk开市.动土.破土.嫁娶.安葬.解除.修饰垣墙.冠笄.出行.余事勿取.f̌sS 置产.造船.开光.掘井.作灶.合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.?̌rm伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.ěqa{嫁娶.入宅.开市.安床.破土.修坟.沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取. ̌*gC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.č)Y}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;̌()_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.̌'Qs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲. oj0 e a >.W7ǒ&7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.̌%a_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. ̌$5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. ̌#)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,̌"'C余事勿取.祭祀.沐浴.余事勿取.̌!}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%̌ '5余事勿取.解除.余事勿取.q̌o安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.̌aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.̌)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,̌'C诸事不宜.破屋.坏垣.余事勿取. ̌5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)̌ U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.̌}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.̌''诸事不宜.诸事不宜.V̌!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.ŠEs嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`̌)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.̌''诸事不宜.诸事不宜.,̌'C诸事不宜.沐浴.扫舍.余事勿取.[̌Su嫁娶.开市.开池.作厕.破土.祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.v̌a探病.纳畜.伐木.起基.作梁.造屋.嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.̌oO祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.P̌S_嫁娶.入宅.上梁.出行.安葬.祭祀.沐浴.破屋.坏垣.余事勿取.̌}Q入宅.移徙.掘井.理发.伐木.交易.开市.作灶.嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.ě a{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.q̋Ga嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.E̋F'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.̋E}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.̋Da]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.̋C)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服. ! l  W  I 9[pCxS.]̋B)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.<̋AEE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. ̋@}'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{̋?o上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:̋>'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.a̋='+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.H̋<'{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8̋;'[诸事不宜.造畜椆栖.平治道涂.余事勿取.̋: -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.̋9}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.̋8gG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.̋7g[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. ̋6}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,̋5'C诸事不宜.祭祀.塞穴.余事勿取.g̋4)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.B̋3)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:̋2'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`̋1)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.C̋0)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.̋/u;作灶.出火.进人口.开渠.入宅.移徙.祭祀.开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.Ű.Ew嫁娶.入宅.安床.出行.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.0̋-o斋醮.嫁娶.行丧.动土.作灶.安葬.破土.纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.3̋,a造庙.行丧.安葬.伐木.作灶.造船.嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.P̋+Em动土.破土.置产.掘井.祭祀.出行.沐浴.扫舍.安葬.余事勿取.%̋*S祈福.开光.开市.入宅.动土.嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.e̋)a{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. ̊b 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#̊a5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.å`S开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:̊_'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,̊^'C诸事不宜.解除.坏垣.余事勿取.0̊] c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.F̊\'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取. EUG P w !axB d3}cUE|̊[a'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. ̊ZSO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3̊Y'Q诸事不宜.祭祀.出行.扫舍.余事勿取.̊Xo'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.H̊W'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.m̊Va 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."̊U}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0̊T c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,̊S'C诸事不宜.破屋.坏垣.余事勿取.#̊R5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0̊Q c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.W̊PE{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.̊O''诸事不宜.诸事不宜.:̊N'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._̊Moa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. ̊LEe安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4̊KE5入殓.安葬.开市.交易.祭祀.诸事不宜.*̊JI入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.:̊Io行丧.安葬.出行.作梁.纳畜.伐木.造桥.嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.V̊HEw入宅.嫁娶.掘井.牧养.安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.4̊Ga掘井.理发.作灶.动土.破土.开池.嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.P̊FaQ祈福.纳采.订盟.嫁娶.入宅.安葬.破屋.坏垣.治病.余事勿取.f̊EE嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.S̉Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.z̉~k嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.Ỉ} 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#̉|Q嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}̉{_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.̉z}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%̉y}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服. `\  O  E z 9gAc/O= `̉x}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.̉wE{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.h̉v'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,̉u'C诸事不宜.破屋.坏垣.余事勿取.^̉t'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)̉s)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.N̉r'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.̉q嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.̉p %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.̉oSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.̉na_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.̉m}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.F̉l)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.g̉k)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`̉j)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:̉i'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5̉h)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.C̉g)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.L̉fo9嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.<̉eEE动土.破土.治病.开渠.祭祀.嫁娶.畋猎.结网.Ẻd}上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.Q̉cS_开市.入宅.出行.安床.作灶.修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.,̉bM移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.|̉aa'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.B̉o%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.̉开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.V̉Kq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.ẺSG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,̉'C诸事不宜.破屋.坏垣.余事勿取.n̉ a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土. ![ g 2 ` }4$k%Ei*[̉oQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,̉'C诸事不宜.祭祀.解除.余事勿取.̉}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."̉ G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.t̉_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^̉'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.m̉}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.ỉ}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."̉  G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.̉ E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,̉ 'C诸事不宜.破屋.坏垣.余事勿取.̉ }嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.̉ oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.j̉a开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J̉7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C̉)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.J̉)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^̉'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.J̉)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.7̉E9行丧.置产.入宅.安葬.嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.;̉EC入宅.出行.掘井.安葬.祭祀.结网.余事勿取.̉S_作灶.出火.祭祀.嫁娶.入宅.开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.̈)k出火.入宅.祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.Ë~KQ移徙.入宅.开仓.出货财.祭祀.破屋.坏垣.余事勿取.^̈}S{嫁娶.开市.安葬.启攒.行丧.畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.L̈67q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.k̈57/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.l̈4a纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.d̈3aw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.Ë2EW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.̈1-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,̈0'C诸事不宜.解除.坏垣.余事勿取.,̈/'C诸事不宜.祭祀.作灶.余事勿取. d& '  / uGK(YH%vd&̈.}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.̈-oQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,̈,'C诸事不宜.破屋.坏垣.余事勿取.̈+aQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)̈* U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.r̈)a出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&̈()3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.̈'E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,̈&'C诸事不宜.祭祀.解除.余事勿取.̈%E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.̈$E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,̈#'C诸事不宜.祭祀.栽种.余事勿取.J̈")}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.J̈!)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.̈ ''诸事不宜.诸事不宜.R̈) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`̈5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;̈)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.̈Ss伐木.安葬.安床.祭祀.祈福.纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.̈ 嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.4̈a作灶.安床.开仓.造屋.动土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.Ẅa_嫁娶.安葬.入宅.出行.动土.词讼.塞穴.断蚁.结网.畋猎.余事勿取.̇S 安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.İR}%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.̇Q ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.̇PSm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:̇O)[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:̇N'_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%̇M M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)̇L U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{̇K} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服. $jze W  s  ?Dt6,|=RjḂJa5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.̇IE嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,̇H'C诸事不宜.解除.扫舍.余事勿取.̇G7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.̇F'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,̇E'C诸事不宜.结网.解除.余事勿取."̇Das入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%̇C M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:̇B'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*̇AC嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."̇@ G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]̇?'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.Ė>)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`̇=)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,̇<'C诸事不宜.塞穴.结网.余事勿取.Ẏ;)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.Ċ:)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<̇97S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.Ḃ8)m嫁娶.入宅.祭祀.修门.取渔.纳财.纳畜.余事勿取.'̇7'5纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.İ6){祈福.安葬.沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.Q̇5) 嫁娶.开市.祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.̆n)k动土.破土.祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.f̆mS 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]̆l7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.̆k}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. ̆jo;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L̆iEe开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.̆ham嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.̆gE{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,̆f'C诸事不宜.解除.破屋.余事勿取.̆e +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,̆d'C诸事不宜.塞穴.扫舍.余事勿取.:̆c'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.̆b}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.̆a 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.  t ; \  8 T  aB5<hoF̆`'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.̆_}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%̆^}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.Ĭ]'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|̆\7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.̆[aW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,̆Z'C诸事不宜.解除.坏垣.余事勿取.̆Y' 诸事不宜..̆X77嫁娶.入宅.安葬.沐浴.结网.取渔.:̆W'_诸事不宜.祭祀.求医.治病.解除.余事勿取.J̆V7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.J̆U7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4̆T)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.~̆S开仓.出货财.造屋.作灶.开市.交易.立券.栽种.祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.̆R'动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.k̆QE!嫁娶.作灶.掘井.安葬.塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.̆ Ey祈福.动土.移徙.入宅.祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.̆ }C嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.|̆ EC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.l̆K置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*̆ W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ̆Ee开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:̆'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^̆)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]̆)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.<̆EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Y̆E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.4̆E5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.X̅E}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.h̅~E祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^̅}E作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.X̅|E}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财. b"= K MW7ZA>4̅{E3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.K̅z/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-̅y'E诸事不宜.破屋.坏垣.求医.治病.0̅xE+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:̅w)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^̅vE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%̅uE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5̅tE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>̅sEG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.̅rS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W̅q)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.̅p{I入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.{̅o%a嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.祭祀.沐浴.理发.作灶.结网.栽种._̅n)%嫁娶.入宅.祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取. ̅mu3开市.嫁娶.安床.会亲友.入宅.作灶.上梁.祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.;̅%)_开市.嫁娶.求医.治病.破屋.坏垣.余事勿取.X̅$aa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)̅#S开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?̅"'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%̅!S入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=̅ 'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;̅'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.n̅75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.̅oC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."̅}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.B̅'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.̅7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;̅'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.̅E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬. z/ ) _  UU*E$g+̅')诸事不宜.解除.沐浴.f̅C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.̅5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.̅)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.̅oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u̅ o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.̅E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>̅EG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.X̅E}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;̅)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.̅ ')诸事不宜.求医.破屋.B̅ EO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.4̅ o 伐木.开市.交易.上梁.作灶.安门.造屋.嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.#̅ C开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.]̅ }O移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.解除.平治道涂.余事勿取.̄C}C掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.&̄BE入宅.安门.祭祀.谢土.沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.ȲAE嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.̄@ 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&̄? O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,̄>'C诸事不宜.祭祀.解除.余事勿取.^̄='%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.̄<E 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,̄;'C诸事不宜.破屋.坏垣.余事勿取. ̄:}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.̄9}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.F̄8'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.̄7'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.̄6E 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=̄5'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取. q0  t = D R8_2*̄4Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. ̄3E]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|̄2EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Q̄1) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.ū0)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3̄/'Q诸事不宜.解除.破屋.坏垣.余事勿取.Z̄.E造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%̄-E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.Ū,Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{̄+EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.B̄*EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.S̄)Sc斋醮.伐木.作梁.安葬.行丧.嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.̄(S;斋醮.入宅.修造.动土.破土.交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.̄'aO移徙.入宅.嫁娶.祈福.开光.掘井.沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓磑.筑堤.作厕.断蚁.̄&5嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.̄%伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.,˾'C诸事不宜.解除.扫舍.余事勿取.˾~EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:˾}'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,˾|'C诸事不宜.祭祀.解除.余事勿取.˾{a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2˾z'O诸事不宜.祭祀.修饰垣墙.余事勿取. ˾y5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.˾xa_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;˾w'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. ˾vaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#˾u5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.m˾t37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,˾s'C诸事不宜.解除.坏垣.余事勿取.˾ra_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3˾q'Q诸事不宜.治病.破屋.坏垣.余事勿取.R˾p) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅. "W # [  7 'yH"M $M i9"˾o)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+˾n'A诸事不宜.平治道涂.余事勿取.N˾m)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.J˾l)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=˾kQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5˾j)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J˾i)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<˾h)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u˾g m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ˾fgC嫁娶.进人口.入宅.移徙.出火.出行.祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.c˾eY}上梁.开仓.出货财.造屋.造船.纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.;˾d)_嫁娶.安葬.破屋.坏垣.求医.治病.余事勿取.˾cQs嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.祭祀.理发.针灸.解除.进人口.整手足甲.˾b7{栽种.掘井.置产.嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.˾aa_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. ˾5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. ˾)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,˾'C余事勿取.祭祀.沐浴.余事勿取.˾}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%˾'5余事勿取.解除.余事勿取.q˾o安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.˾aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.˾)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,˾'C诸事不宜.破屋.坏垣.余事勿取. ˾5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)˾ U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.˾}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.˾''诸事不宜.诸事不宜.V˾ !开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.S˾ Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`˾ )'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.˾ ''诸事不宜.诸事不宜.,˾ 'C诸事不宜.沐浴.扫舍.余事勿取.j˾E嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤. #xi%y; O  k <  u 8F6T!C.\x^˾)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:˾'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. ˾Ee开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%˾)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.e˾a{开市.入宅.祭祀.置产.补垣.塞穴.入殓.破土.启攒.安葬.除服.成服.余事勿取.q˾a嫁娶.开市.交易.入宅.入学.安葬.解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.E˾'q开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.˾}A嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.˽a]伐木.行丧.破土.嫁娶.安葬.开渠.祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.˽~)开光.栽种.嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.˽})安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.<˽7EE安葬.开市.修坟.立碑.嫁娶.祭祀.作灶.纳财. ˽6}'纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.{˽5o上梁.作灶.伐木.出行.安葬.安门.理发.嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.:˽4'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.a˽3'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.H˽2'{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8˽1'[诸事不宜.造畜椆栖.平治道涂.余事勿取.˽0 -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.˽/}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.˽.gG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.˽-g[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. ˽,}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,˽+'C诸事不宜.祭祀.塞穴.余事勿取.g˽*)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.B˽))m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:˽('_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`˽')'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.C˽&)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9˽%']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?˽$7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8˽#)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&˽")5行丧.安葬.作灶.造畜椆栖.?˽!)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.˽ Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜. '0 % + _ = O@tNg+e˽a{开市.入宅.嫁娶.动土.破土.安葬.祭祀.修坟.除服.成服.启攒.移柩.余事勿取. ˽ 开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.#˽5嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.a˽S开市.掘井.开渠.造桥.造船.嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.:˽'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.,˽'C诸事不宜.解除.坏垣.余事勿取.0˽ c嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.F˼R'w诸事不宜.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.|˼Qa'作灶.行丧.理发.乘船.嫁娶.安葬.开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁. ˼PSO伐木.行丧.作灶.作梁.安葬.嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.3˼O'Q诸事不宜.祭祀.出行.扫舍.余事勿取.˼No'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.H˼M'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.m˼La 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."˼K}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0˼J c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,˼I'C诸事不宜.破屋.坏垣.余事勿取.#˼H5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0˼G c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.W˼FE{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.˼E''诸事不宜.诸事不宜.:˼D'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._˼Coa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. ˼BEe安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4˼AE5入殓.安葬.开市.交易.祭祀.诸事不宜.{˼@EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u˼?)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7˼>E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.I˼=E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.˼<EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.f˼;E嫁娶.入宅.开市.交易.破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.S˼:Sc斋醮.开市.开仓.作灶.造船.嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服. b + >  ` Nn\+ HNz˼9k嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.修饰垣墙.平治道涂.祭祀.沐浴.作灶.I˼8 伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.#˼7Q嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.}˼6_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.˼5}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%˻o}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.˻n}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.˻mE{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.h˻l'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,˻k'C诸事不宜.破屋.坏垣.余事勿取.^˻j'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)˻i)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.N˻h'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.˻g嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.˻f %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.˻eSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.˻da_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.˻c}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.F˻b)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.g˻a)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`˻`)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:˻_'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5˻^)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.C˻])o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.M˻\Ci嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.N˻[)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.R˻Z) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.J˻Y7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.C˻X)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.|˻Wa'开光.治病.嫁娶.掘井.破土.安葬.经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.B˻Vo%移徙.栽种.出行.行丧.破土.安葬.词讼.嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.˻U开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口. !$ b * u B A ;C-X7o^-bV˻TKq掘井.伐木.纳畜.合寿木.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.E˻SSG入宅.移徙.作灶.祭祀.谢土.开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.,˻R'C诸事不宜.破屋.坏垣.余事勿取.n˻Q a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.˻ oQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,˻ 'C诸事不宜.祭祀.解除.余事勿取.˻ }5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."˻ G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.t˻_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^˻'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.m˻}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.i˻}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."˻ G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.˻E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,˻'C诸事不宜.破屋.坏垣.余事勿取.˻}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.˺oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.j˺~a开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J˺}7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C˺|)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.J˺{)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^˺z'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.J˺y)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..˺x)E开市.破土.祭祀.作灶.纳财.捕捉.R˺w赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Y˺v)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3˺u'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.J˺t7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,˺s'C诸事不宜.沐浴.扫舍.余事勿取.L˺r7q动土.掘井.破土.嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.k˺q7/破土.出行.栽种.嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.l˺pa纳采.订盟.安床.谢土.破土.动土.嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.d˺oaw行丧.安葬.破土.作灶.伐木.斋醮.纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种. "Qg g : m  j R!d>v,)E˺nEW斋醮.移徙.入宅.动土.祭祀.教牛马.断蚁.余事勿取.˺m-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,˺&'C诸事不宜.解除.坏垣.余事勿取.,˺%'C诸事不宜.祭祀.作灶.余事勿取.&˺$}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.˺#oQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,˺"'C诸事不宜.破屋.坏垣.余事勿取.˺!aQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)˺  U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.r˺a出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&˺)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.˺E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,˺'C诸事不宜.祭祀.解除.余事勿取.˺E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.˺E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,˺'C诸事不宜.祭祀.栽种.余事勿取.J˺)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.J˺)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.˺''诸事不宜.诸事不宜.R˺) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`˺5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;˺)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Y˺)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M˺7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<˺7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5˺)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y˺)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.I˺ }%入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.˺  ;祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.˺ Sm嫁娶.掘井.入宅.移徙.安葬.开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.:˺ )[开市.立券.纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.:˺ '_诸事不宜.破屋.坏垣.沐浴.解除.余事勿取.%˹C M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)˹B U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土. $[Q p  E Jr~4*z;Ph{˹A} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.B˹@a5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.˹?E嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,˹>'C诸事不宜.解除.扫舍.余事勿取.˹=7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.˹<'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,˹;'C诸事不宜.结网.解除.余事勿取."˹:as入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%˹9 M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:˹8'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*˹7C嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."˹6 G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]˹5'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.E˹4)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`˹3)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,˹2'C诸事不宜.塞穴.结网.余事勿取.Y˹1)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.C˹0)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<˹/7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.J˹.)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`˹-)'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.3˹,'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Y˹+)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Y˹*'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.f˹)S 斋醮.开光.嫁娶.入宅.上梁.沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.]˹(7嫁娶.安床.治病.祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.˹'}祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.开光.出行.交易.塞穴.嫁娶.理发.开市.安床. ˹&o;修坟.造桥.作灶.出行.安葬.造屋.入宅.祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.L˹%Ee开光.伐木.安葬.破土.祭祀.出行.教牛马.扫舍.余事勿取.˸^am嫁娶.掘井.探病.开市.开光.栽种.祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.˸]E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,˸\'C诸事不宜.解除.破屋.余事勿取.˸[ +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,˸Z'C诸事不宜.塞穴.扫舍.余事勿取.:˸Y'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.˸X}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬. . x r /=7d\AH\˸W 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.F˸V'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.˸U}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%˸T}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.I˸S'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|˸R7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.˸QaW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,˸P'C诸事不宜.解除.坏垣.余事勿取.˸O' 诸事不宜..˸N77嫁娶.入宅.安葬.沐浴.结网.取渔.:˸M'_诸事不宜.祭祀.求医.治病.解除.余事勿取.J˸L7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.J˸K7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4˸J)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.F˸I7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Q˸H7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.j˸GS掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.˸FEk掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%˸EE入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.|˸DEC合帐.开市.安葬.入殓.嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.l˸CK置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.理发.冠笄.嫁娶.进人口.*˸B W嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口. ˸AEe开光.作灶.斋醮.安葬.嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.:˷{'_诸事不宜.祭祀.治病.破屋.坏垣.余事勿取.^˷z)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]˷y)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.<˷xEE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Y˷wE}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.4˷vE5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.X˷uE}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.h˷tE祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^˷sE作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木. bs i ) f w k N) SX˷rE}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.4˷qE3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.K˷p/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-˷o'E诸事不宜.破屋.坏垣.求医.治病.0˷nE+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:˷m)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^˷lE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%˷kE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5˷jE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>˷iEG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.˷hS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W˷g)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.C˷fSE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4˷eE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.˷d)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.˷c')诸事不宜.破屋.坏垣.˷bE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.X˷aaa开市.作灶.安床.入宅.上梁.裁衣.动土.入殓.嫁娶.移柩.安葬.破土.)˷`S开光.造屋.动土.作灶.栽种.造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.?˷_'i诸事不宜.修饰垣墙.平治道涂.祭祀.余事勿取.%˷^S入宅.作灶.治病.安葬.移徙.嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.=˷]'c诸事不宜.嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.;˷'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.n˷75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.˷oC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."˷}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.B˷'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.˷7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒. s[q A  k  + C -4{uQs;˷'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.˷ E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.˷ ')诸事不宜.解除.沐浴.f˷ C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.˷ 5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.˷ )掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.˷oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u˷ o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.˷E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>˷EG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.X˷E}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;˷)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.˷')诸事不宜.求医.破屋.B˷EO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]˷E造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.A˶_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.X˶~E}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0˶}U掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[˶|Su祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.Y˶{E嫁娶.动土.开池.安葬.祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.˶z 置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.&˶y O嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.,˶3'C诸事不宜.祭祀.解除.余事勿取.^˶2'%余事勿取.祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.˶1E 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,˶0'C诸事不宜.破屋.坏垣.余事勿取. ˶/}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.˶.}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.F˶-'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.˶,'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.˶+E 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬. "X+ P  r ED0 =˶*'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.˶)Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. ˶(E]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|˶'EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Q˶&) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.u˶%)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3˶$'Q诸事不宜.解除.破屋.坏垣.余事勿取.Z˶#E造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%˶"E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.U˶!Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{˶ EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.B˶EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,˶'C诸事不宜.祭祀.解除.余事勿取.A˶EM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.b˶E嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;˶)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.X˶E}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.,˶'C诸事不宜.解除.扫舍.余事勿取.˶EQ安门.栽种.作灶.治病.安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.:˶'_诸事不宜.破屋.坏垣.祭祀.沐浴.余事勿取.,˶'C诸事不宜.祭祀.解除.余事勿取.˶a5嫁娶.开市.作灶.置产.作梁.伐木.入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.2o'O诸事不宜.祭祀.修饰垣墙.余事勿取. n5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.ma_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;l'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. kaA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#j5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mi37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,h'C诸事不宜.解除.坏垣.余事勿取.ga_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3f'Q诸事不宜.治病.破屋.坏垣.余事勿取.Re) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."d)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬. ", s  ?  w " SCd>K,q"W+c'A诸事不宜.平治道涂.余事勿取.Nb)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.Ja)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=`Q;入宅.动土.破土.余事勿取.教牛马.余事勿取.5_)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.J^)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<])a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.u\ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. [SW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:Z'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>YEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.XEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PWaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.Va_祈福.祭祀.伐木.掘井.作灶.谢土.嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种. U5u嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.开光.裁衣.安门.会亲友.安床.结网.理发. T)置产.安床.嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.,S'C余事勿取.祭祀.沐浴.余事勿取.R}入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.%Q'5余事勿取.解除.余事勿取.q o安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服. aW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,'C诸事不宜.破屋.坏垣.余事勿取. 5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.) U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.''诸事不宜.诸事不宜.V!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.SEs嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.''诸事不宜.诸事不宜.,~'C诸事不宜.沐浴.扫舍.余事勿取.j}E嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^|)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜. ".i%y; O  k <  u 8F6T m.:{'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. zEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%y)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.xEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FwEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZvE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,u'C诸事不宜.祭祀.沐浴.余事勿取.ptS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LsSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.r)安床.安葬.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.'C诸事不宜.破屋.坏垣.余事勿取.#=5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0< c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.W;E{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.:''诸事不宜.诸事不宜.:9'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._8oa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. 7Ee安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.46E5入殓.安葬.开市.交易.祭祀.诸事不宜.{5EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u4)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.73E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.I2E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.1EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.A0)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:/)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂..)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网. "vF X 1 5 t  X1pn m.u v-Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.c,S动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.}+_+安床.动土.安葬.开生坟.合寿木.祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.*}开光.出行.修造.上梁.入宅.安门.作灶.裁衣.祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.%)}]造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.(}I动土.破土.理发.出行.入宅.分居.安香.出火.祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.'E{栽种.作灶.针灸.出行.嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.h&'9诸事不宜.祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.,%'C诸事不宜.破屋.坏垣.余事勿取.^_'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)^)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.N]'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.\嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.[ %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.ZSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.Ya_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.X}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.FW)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gV)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`U)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:T'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5S)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.CR)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.MQCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.NP)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.RO) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.JN7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.CM)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. L 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.K 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. J 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7IS+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4H)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|GS5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒. %1T# & u h 17yPkunF a嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.解除.祭祀.理发.入殓.安葬.破土.EoQ嫁娶.栽种.行丧.理发.修坟.行丧.作灶.祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.,D'C诸事不宜.祭祀.解除.余事勿取.C}5作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍."B G嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.tA_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^{'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.mz}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.iy}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."x G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.wE{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,v'C诸事不宜.破屋.坏垣.余事勿取.u}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.toW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.jsa开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.Jr7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.Cq)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.Jp)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^o'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.Jn)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..m)E开市.破土.祭祀.作灶.纳财.捕捉.Rl赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Yk)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3j'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Ji7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,h'C诸事不宜.沐浴.扫舍.余事勿取.Pg' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.f !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.eS;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.dEo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.Wca_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.b-嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.,a'C诸事不宜.解除.坏垣.余事勿取.,`'C诸事不宜.祭祀.作灶.余事勿取.&_}_嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.^oQ嫁娶.造桥.词讼.移徙.安门.作灶.栽种.开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.,]'C诸事不宜.破屋.坏垣.余事勿取. $YU| F  t - S %JqS5`YaQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.) U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.ra出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.&)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.E{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,'C诸事不宜.祭祀.解除.余事勿取.E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,'C诸事不宜.祭祀.栽种.余事勿取.J )}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.J )}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬. ''诸事不宜.诸事不宜.R ) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.` 5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Y)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.M7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Y)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取. #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.EI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.B)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^~S{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.%} M祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.)| U嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.{{} 嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.Bza5塞穴.上梁.动土.伐木.安葬.词讼.进人口.会亲友.yE嫁娶.安床.探病.作灶.开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.,3'C诸事不宜.解除.扫舍.余事勿取.27{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.1'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,0'C诸事不宜.结网.解除.余事勿取."/as入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%. M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友. (Xb# @ # ~ ?  t CF`bg1QGX:-'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.*,C嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."+ G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]*'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.E))s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`()'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,''C诸事不宜.塞穴.结网.余事勿取.Y&)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.C%)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<$7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.J#)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.`")'祈福.斋醮.嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.3!'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Y )开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Y'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬. 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.D's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取. 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4)Q破土.安葬.塞穴.断蚁.结网.余事勿取.''余事勿取.余事勿取.}S7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.E{祭祀.入殓.安葬.探病.嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.,'C诸事不宜.解除.破屋.余事勿取. +祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.,'C诸事不宜.塞穴.扫舍.余事勿取.:N'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取.M}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.L 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.FK'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.J}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%I}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.IH'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|G7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.FaW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,E'C诸事不宜.解除.坏垣.余事勿取.D' 诸事不宜..C77嫁娶.入宅.安葬.沐浴.结网.取渔.:B'_诸事不宜.祭祀.求医.治病.解除.余事勿取.JA7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.J@7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬. <W 4 ~ L { d 5pVlg4?)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.F>7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Q=7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.j<S掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.;Ek掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%:E入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:9Q5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.8EW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.7''诸事不宜.诸事不宜.f6S 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.5E 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.^4)#入宅.安门.祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.]3)!伐木.作梁.祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.<2EE栽种.造屋.作灶.入宅.祭祀.嫁娶.纳婿.安葬.Y1E}出行.斋醮.安葬.嫁娶.开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.4kE5安门.作灶.安葬.嫁娶.塞穴.诸事不宜.XjE}掘井.动土.作灶.栽种.祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.hiE祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^hE作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.XgE}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.4fE3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.Ke/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-d'E诸事不宜.破屋.坏垣.求医.治病.0cE+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:b)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^aE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%`E出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5_E7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>^EG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱. y? y a % +!h7~!R5y]S_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.W\)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.C[SE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4ZE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.Y)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.X')诸事不宜.破屋.坏垣.WE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.IV赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XUSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3TE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,S'C诸事不宜.扫舍.塞穴.余事勿取.tRa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.;Q'a诸事不宜.裁衣.伐木.作梁.纳财.交易.立券.nP75词讼.出火.入宅.祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.OoC入宅.作灶.伐木.安葬.出火.出行.纳畜.嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒."N}W嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.BM'o诸事不宜.结网.入殓.除服.成服.移柩.安葬.破土.7 嫁娶.作灶.安床.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.;'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.')诸事不宜.解除.沐浴.fC栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.~)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.}oQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.u| o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.{E 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>zEG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XyE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑.;x)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水. &{ c   g jpcw')诸事不宜.求医.破屋.BvEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]uE造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.At_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XsE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0rU掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[qSu祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.pEQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EoEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&nS 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.Im'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&lE安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.kE 安床.伐木.祈福.纳畜.嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.,j'C诸事不宜.破屋.坏垣.余事勿取. i}-掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.#}A掘井.安葬.栽种.出行.作灶.开市.入宅.安门.嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.F"'w余事勿取.祭祀.解除.修饰垣墙.平治道涂.余事勿取.!'修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床. E 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.='e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.Ek作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. E]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|EC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Q) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.u)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3'Q诸事不宜.解除.破屋.坏垣.余事勿取.ZE造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.UEw嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口. #_wt g & [ R hU.#X'_BEO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,'C诸事不宜.祭祀.解除.余事勿取.AEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4 7C嫁娶.开市.安葬.破屋.坏垣.余事勿取. E{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7 )W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.s a移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.O Ei入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓. 5入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.a_作灶.塑绘.行丧.词讼.伐木.安葬.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.;'a余事勿取.安葬.启攒.移柩.入殓.除服.成服. aA嫁娶.祈福.掘井.行丧.安葬.安床.诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.#ʢ_5嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.mʢ^37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ʢ]'C诸事不宜.解除.坏垣.余事勿取.ʢ\a_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ʢ['Q诸事不宜.治病.破屋.坏垣.余事勿取.RʢZ) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."ʢY)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+ʢX'A诸事不宜.平治道涂.余事勿取.NʢW)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JʢV)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=ʢUQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5ʢT)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JʢS)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.<ʢR)a开市.破土.祭祀.沐浴.安床.纳财.畋猎.捕捉.uʢQ m塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土. ʢPSW开光.栽种.治病.安门.作灶.祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.:ʢO'_诸事不宜.祭祀.求医.破屋.坏垣.余事勿取.>ʢNEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.ʢMEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.   $ R n ~ M * mntC kPʢLaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.cʢKS嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.KʢJSS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.SʢIaW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;ʢHa%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)ʢGE移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.%ʢF'5余事勿取.解除.余事勿取.qʢEo安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.祭祀.沐浴.结网.移柩.入殓.除服.成服.ʢDaW入宅.作灶.词讼.移徙.出行.赴任.祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.ʢC)探病.安葬.嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.,ʢB'C诸事不宜.破屋.坏垣.余事勿取. ʢA5嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)ʡz U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.ʡy}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.ʡx''诸事不宜.诸事不宜.Vʡw!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.SʡvEs嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`ʡu)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.ʡt''诸事不宜.诸事不宜.,ʡs'C诸事不宜.沐浴.扫舍.余事勿取.jʡrE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^ʡq)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:ʡp'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. ʡoEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%ʡn)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.ʡmEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FʡlEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.ZʡkE入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木. !] ^  x 4 J  ^  zKGe,ʡj'C诸事不宜.祭祀.沐浴.余事勿取.pʡiS开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.LʡhSU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.pʡgS安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.ZʡfSq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LʡeEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4ʡd)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IʡcE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.aʡb'+余事勿取.祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.Hʡa'{余事勿取.入殓.破土.安葬.启攒.除服.成服.余事勿取.8ʡ`'[诸事不宜.造畜椆栖.平治道涂.余事勿取.ʡ_ -嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.ʡ^}5安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.ʡ]gG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.ʡg[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. ʡ}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,ʡ'C诸事不宜.祭祀.塞穴.余事勿取.gʡ)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.Bʡ)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:ʡ'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`ʡ)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.Cʡ)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9ʡ']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?ʡ7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8ʡ )Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&ʡ )5行丧.安葬.作灶.造畜椆栖.?ʡ )g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.ʡ Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.Jʡ Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎.yʡE=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. ʡE]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,ʡ'C诸事不宜.破屋.坏垣.余事勿取.]ʡSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒. !S4%  x * m s :C&?%OL'SnʡS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\ʡE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{ʡS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.ʡE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EʡSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.3ʠ'Q诸事不宜.祭祀.出行.扫舍.余事勿取.ʠ~o'掘井.祈福.安床.开市.入宅.挂匾.开光.嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.Hʠ}'{余事勿取.祭祀.立碑.修坟.启攒.除服.成服.余事勿取.mʠ|a 探病.开渠.安葬.伐木.作灶.入宅.祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩."ʠ{}W嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.0ʠz c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,ʠy'C诸事不宜.破屋.坏垣.余事勿取.#ʠ25嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0ʠ1 c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.Wʠ0E{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.ʠ/''诸事不宜.诸事不宜.:ʠ.'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._ʠ-oa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. ʠ,Ee安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4ʠ+E5入殓.安葬.开市.交易.祭祀.诸事不宜.{ʠ*EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.uʠ))Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7ʠ(E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.Iʠ'E_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.ʠ&EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.Aʠ%)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:ʠ$)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂.ʠ#)e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.ʠ"Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cʠ!S动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!ʠ ))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xʠa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Jʠo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉. "uw < 2  m q)K m9YG2u7ʠ=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4ʠa嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%ʠ5'探病.余事勿取.余事勿取.,ʠ'C诸事不宜.破屋.坏垣.余事勿取.^ʠ'%诸事不宜.祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.)ʠ)9嫁娶.移徙.祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.Nʠ'诸事不宜.祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.ʠ嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.ʠ %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.ʟOSm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.ʟNa_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.ʟM}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.FʟL)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.gʟK)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`ʟJ)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:ʟI'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5ʟH)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.CʟG)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.MʟFCi嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.NʟE)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.RʟD) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.JʟC7o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.CʟB)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. ʟA 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.ʟ@ 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. ʟ? 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.7ʟ>S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.4ʟ=)Q行丧.安葬.破屋.坏垣.治病.余事勿取.|ʟ<S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.Iʟ;E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.gʟ:E嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. ʟ9SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{ʟ8S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.uʟ7a开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任. #C + . : !L_,z+%-Btʟ6_嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.祭祀.出行.交易.割蜜.造畜椆栖.^ʟ5'%余事勿取.祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.mʟ4}o嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.祭祀.祈福.求嗣.开光.开市.牧养.理发.iʟ3}g安葬.经络.修坟.破土.开市.安床.启攒.立碑.祭祀.作灶.纳财.栽种.纳畜.进人口."ʟ2 G嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.ʟ1E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,ʞk'C诸事不宜.破屋.坏垣.余事勿取.ʞj}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.ʞioW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.jʞha开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.Jʞg7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.Cʞf)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.Jʞe)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^ʞd'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.Jʞc)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..ʞb)E开市.破土.祭祀.作灶.纳财.捕捉.Rʞa赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.Yʞ`)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3ʞ_'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Jʞ^7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,ʞ]'C诸事不宜.沐浴.扫舍.余事勿取.Pʞ\' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.ʞ[ !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.ʞZS;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.ʞYEo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.WʞXa_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.ʞWaO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bʞVS开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.AʞUKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZʞTSq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;ʞS)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.,ʞR'C诸事不宜.破屋.坏垣.余事勿取.ʞQaQ嫁娶.开市.交易.行丧.安葬.修坟.祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.)ʞP U嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.rʞOa出行.安门.修造.嫁娶.上梁.入宅.祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍. "n=  [  B K =#FUY6g%V&ʞN)3置产.安床.开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.ʞME{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,ʞ'C诸事不宜.祭祀.解除.余事勿取.ʞE安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.ʞE{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,ʞ'C诸事不宜.祭祀.栽种.余事勿取.Jʞ)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.Jʞ)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.ʞ''诸事不宜.诸事不宜.Rʝ) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`ʝ~5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;ʝ})_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Yʝ|)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.Mʝ{7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.<ʝz7S上梁.动土.破土.祭祀.入殓.移柩.启攒.安葬.5ʝy)S嫁娶.安葬.裁衣.作灶.移徙.入宅.纳畜.Yʝx)开市.安门.嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.@ʝw'k诸事不宜.祭祀.捕捉.取渔.修饰垣墙.余事勿取.ʝv #订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.ʝuEI开市.安门.掘井.作灶.嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.Bʝt)m嫁娶.入宅.破屋.坏垣.求医.治病.畋猎.余事勿取.^ʝsS{开市.交易.嫁娶.安葬.行丧.祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.dʝrE开市.伐木.作梁.作灶.安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.uʝqK/斋醮.出行.治病.合寿木.祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.qʝpY安床.出货财.作灶.动土.破土.开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.RʝoEo行丧.伐木.作梁.作灶.嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.<ʝnS7斋醮.开渠.上梁.动土.破土.祭祀.交易.纳财.&ʝmS 祈福.开光.掘井.开市.安葬.嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.ʝl7{开光.掘井.开仓.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.ʝk'纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.,ʝj'C诸事不宜.结网.解除.余事勿取."ʝias入宅.移徙.理发.出火.嫁娶.出行.开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.%ʝ# M嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.:ʝ"'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. &Yr?)^ C r % `]:d{)Q] Y*ʝ!C嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服."ʝ  G嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.]ʝ'#诸事不宜.沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.Eʝ)s开市.安葬.订盟.纳采.会亲友.安床.作灶.造畜椆栖.`ʝ)'移徙.入宅.嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.,ʝ'C诸事不宜.塞穴.结网.余事勿取.Yʝ)赴任.捕捉.嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.Cʝ)o嫁娶.安葬.订盟.纳采.祭祀.动土.破土.交易.立券.<ʝ7S动土.破土.安葬.嫁娶.纳采.出行.移徙.入宅.Jʝ)}嫁娶.安葬.纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.Yʝ)祈福.斋醮.嫁娶.纳采.祭祀.出行.动土.上梁.移徙.入宅.破土.安葬.3ʝ'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.Yʝ)开市.开光.嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.Yʝ'安门.嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.ʝ 7会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.开光.出行.嫁娶.Dʝ's诸事不宜.进人口.牧养.置产.塞穴.结网.余事勿取.ʝ 1开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.4ʝ)Q破土.安葬.塞穴.断蚁.结网.余事勿取.ʝ''余事勿取.余事勿取.}ʝS7开市.入宅.探病.出火.造屋.嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.Pʝ aQ开市.动土.祭祀.斋醮.安葬.探病.栽种.捕捉.畋猎.余事勿取.cʝ E嫁娶.出火.移徙.入宅.开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.;ʝ EC斋醮.开市.嫁娶.作灶.沐浴.扫舍.余事勿取.Bʝ )m行丧.安葬.祭祀.沐浴.解除.破屋.坏垣.余事勿取."ʝ E移徙.入宅.造屋.架马.嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.ʝ}Q动土.破土.纳财.掘井.挂匾.开市.伐木.交易.祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.ʝ 进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.Fʝ'w诸事不宜.祭祀.平治道涂.解除.修饰垣墙.余事勿取.ʝ}I谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.%ʜ>}]嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.Iʜ='}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|ʜ<7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.ʜ;aW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,ʜ:'C诸事不宜.解除.坏垣.余事勿取.ʜ9' 诸事不宜..ʜ877嫁娶.入宅.安葬.沐浴.结网.取渔.:ʜ7'_诸事不宜.祭祀.求医.治病.解除.余事勿取.Jʜ67o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医. <W 4 ~ L { d '>~*dT1f%`Jʜ57o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4ʜ4)Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.Fʜ37g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Qʜ27}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.jʜ1S掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.ʜ0Ek掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%ʜ/E入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:ʜ.Q5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取.ʜ-EW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.ʜ,''诸事不宜.诸事不宜.fʜ+S 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.ʜ*E 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@ʜ)KE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.Oʜ(S]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:ʜ'a#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~ʜ&a+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aʜ%oe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fʜ$a}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.hʜ#E祭祀.开光.嫁娶.入宅.订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.^ʜ"E作灶.安葬.开市.造屋.祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.Xʜ!E}作灶.开市.安葬.作梁.裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.4ʛ[E3嫁娶.栽种.伐木.安葬.祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.KʛZ/w开光.出货财.祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.-ʛY'E诸事不宜.破屋.坏垣.求医.治病.0ʛXE+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:ʛW)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^ʛVE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.%ʛUE出行.嫁娶.入宅.安葬.开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.5ʛTE7栽种.作灶.安葬.嫁娶.祭祀.扫舍.塞穴.>ʛSEG作灶.掘井.动土.栽种.祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱. : " { W y 9 ,`,nlʛRS_作灶.开光.嫁娶.开市.入宅.订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.WʛQ)栽种.安葬.祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.CʛPSE嫁娶.入宅.移徙.作灶.安葬.祭祀.沐浴.捕捉.栽种.4ʛOE3造庙.嫁娶.伐木.安葬.祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.ʛN)作梁.造庙.祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.ʛM')诸事不宜.破屋.坏垣.ʛLE 安床.嫁娶.作灶.入宅.祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.IʛK赴任.祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.XʛJSo动土.作灶.入宅.开光.安床.祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.3ʛIE1作灶.出行.入宅.安葬.塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.,ʛH'C诸事不宜.扫舍.塞穴.余事勿取.tʛGa栽种.动土.安葬.掘井.修坟.探病.祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.3ʛFS#祭祀.嫁娶.出行.上梁.掘井.裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.4ʛES%纳采.动土.开市.交易.安门.开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.TʛDEu纳财.开市.安葬.破土.理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.ʛCE{祈福.嫁娶.安葬.破土.开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.jʛBS塑绘.开光.造桥.除服.成服.嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.;ʛAEC嫁娶.移徙.开市.入宅.破屋.坏垣.余事勿取.;ʛ@'a余事勿取.祭祀.解除.治病.破屋.坏垣.扫舍.ʛ?E{开市.立券.理发.作灶.嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.ʛ>')诸事不宜.解除.沐浴.fʛ=C栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.作灶.解除.平治道涂.ʚt5入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.ʚs)掘井.词讼.嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.ʚroQ嫁娶.出行.动土.开渠.入宅.祭祀.掘井.安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.uʚq o开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.ʚpE 入殓.安葬.作灶.入宅.祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.>ʚoEG安葬.作灶.伐木.作梁.祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.XʚnE}嫁娶.上梁.入宅.作灶.取渔.入殓.除服.成服.移柩.破土.安葬.立碑. Uu= m ] A 9)/d{h"?wS;ʚm)]作灶.安床.祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.ʚl')诸事不宜.求医.破屋.BʚkEO栽种.动土.开市.作灶.祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.]ʚjE造屋.栽种.安葬.作灶.塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.Aʚi_5祭祀.祈福.安葬.安门.余事勿取.作灶.平治道涂.XʚhE}斋醮.作灶.安床.安葬.安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.0ʚgU掘井.祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.[ʚfSu祭祀.祈福.移徙.嫁娶.入宅.裁衣.合帐.入殓.除服.成服.会亲友.纳财.ʚeEQ出行.嫁娶.入宅.动土.祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.EʚdEU安葬.上梁.入宅.作灶.祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓磑.放水.开市.立券.交易.&ʚcS 伐木.作灶.安葬.取渔.入宅.塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.Iʚb'}余事勿取.祭祀.结网.入殓.除服.成服.移柩.安葬.破土.&ʚaE安床.栽种.治病.作灶.祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土._ʚ`7入宅.开市.安葬.祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.ʚ_S]开光.开市.入宅.动土.造屋.入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.Eʚ^o+置产.造屋.合脊.开光.探病.安门.作灶.祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.Aʚ]EO嫁娶.祈福.掘井.安葬.祭祀.平治道涂.余事勿取.\ʚ\E开市.动土.安葬.破土.会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.ʚ['修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.ʚZE 嫁娶.祭祀.出行.置产.开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.=ʚY'e余事勿取.解除.扫舍.祭祀.教牛马.余事勿取.ʚEk作灶.掘井.嫁娶.入宅.祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易. ʚE]栽种.嫁娶.入殓.安葬.祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓磑.纳畜.|ʚEC开仓.造屋.安葬.安床.祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.Qʚ) 破土.伐木.入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.uʚ)Q入宅.安床.塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.3ʚ'Q诸事不宜.解除.破屋.坏垣.余事勿取.Zʚ E造屋.开市.作灶.入宅.祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.%ʚ E出行.治病.安葬.开市.会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜. "xmc) E  m  @   4JHs!yKRxUʚ Ew嫁娶.移徙.入宅.开光.修饰垣墙.平治道涂.入殓.移柩.余事勿取.{ʚ EA作灶.掘井.谢土.入宅.出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.Bʚ EO作灶.祭祀.上梁.出行.沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.,ʚ'C诸事不宜.祭祀.解除.余事勿取.AʚEM开仓.嫁娶.移徙.入宅.祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.bʚE嫁娶.入殓.安葬.出行.塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.;ʚ)_开市.安床.祭祀.作灶.入殓.除服.余事勿取.XʚE}开市.伐木.嫁娶.作梁.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.LʚSU祈福.嫁娶.造庙.安床.谢土.纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.4ʚ7C嫁娶.开市.安葬.破屋.坏垣.余事勿取.ʚE{造屋.开市.动土.破土.嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.7ʚ)W嫁娶.安葬.祭祀.安碓磑.结网.余事勿取.sʙa移徙.入宅.造庙.作灶.治病.安葬.祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.Oʙ~Ei入宅.开光.开市.动土.嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.|ʙ}o探病.祭祀.出行.上梁.造屋.谢土.安葬.纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.Hʙ|7k破土.动土.安葬.祭祀.解除.教牛马.会亲友.余事勿取.ʙ{Sk开光.嫁娶.开市.动土.破土.交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.cʙzau造庙.嫁娶.出行.动土.安葬.行丧.订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.{ʙyEA开市.安床.安葬.修坟.嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.mʙx37伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.沐浴.理发.扫舍.,ʙw'C诸事不宜.解除.坏垣.余事勿取.ʙva_造桥.安门.理发.造庙.栽种.作灶.祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.3ʙu'Q诸事不宜.治病.破屋.坏垣.余事勿取.RO) 开市.安葬.嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅."N)+开市.嫁娶.求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.+M'A诸事不宜.平治道涂.余事勿取.NL)嫁娶.祈福.开市.立券.开光.解除.安机械.上梁.启攒.安葬.JK)}开市.安葬.嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.=JQ;入宅.动土.破土.余事勿取.教牛马.余事勿取.5I)S入宅.安葬.出行.沐浴.理发.补垣.塞穴.JH)}嫁娶.作灶.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.CEG出行.安葬.修坟.开市.祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.BEQ掘井.伐木.斋醮.作灶.塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.PAaQ入宅.修造.动土.破土.安门.上梁.祭祀.入殓.移柩.余事勿取.c@S嫁娶.祈福.出火.移徙.入宅.纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.K?SS斋醮.作梁.掘井.行丧.安葬.纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.S>aW入宅.动土.破土.嫁娶.作灶.造船.合帐.裁衣.教牛马.余事勿取.;=a%嫁娶.祈福.开光.掘井.安葬.行丧.纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.)<E移徙.开市.入宅.安葬.祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.X;E}开市.斋醮.破土.安葬.祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.:S=嫁娶.动土.安床.造桥.掘井.纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.9a5安门.动土.破土.行丧.安葬.成服.冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.W8a_嫁娶.移徙.入宅.探病.出行.造屋.祭祀.沐浴.破屋.坏垣.余事勿取.07S出行.掘井.破土.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓磑.动土.上梁.移徙.入宅. 65嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.)5 U嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.4}Q栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.3''诸事不宜.诸事不宜.V2!开市.祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.S1Es嫁娶.动土.安葬.作灶.祭祀.沐浴.出行.冠笄.进人口.余事勿取.`j)'入宅.作灶.祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.i''诸事不宜.诸事不宜.,h'C诸事不宜.沐浴.扫舍.余事勿取.jgE嫁娶.入宅.治病.赴任.祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.^f)#造屋.治病.祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.:e'_诸事不宜.祭祀.解除.破屋.坏垣.余事勿取. dEe开市.交易.破土.作灶.祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.%c)1作灶.治病.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友. Ln* ? M  X %$UJj#}RLbEK作灶.治病.伐木.作梁.祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.FaEY嫁娶.入宅.安门.移徙.理发.会亲友.补垣.塞穴.结网.Z`E入宅.作灶.安床.开仓.祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.,_'C诸事不宜.祭祀.沐浴.余事勿取.p^S开光.掘井.安葬.谢土.修坟.嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.L]SU移徙.入宅.安门.作梁.安葬.祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓磑.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.p\S安床.安门.破土.修坟.安葬.捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.Z[Sq嫁娶.开市.入宅.出火.移徙.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.LZEc造屋.造船.动土.破土.嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.4Y)Q嫁娶.安葬.破屋.坏垣.祭祀.余事勿取.IXE]开市.造庙.动土.破土.嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.HWSM嫁娶.安葬.掘井.置产.造船.订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.JVE_开仓.造屋.造桥.祭祀.纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.^US{嫁娶.开市.祈福.斋醮.安葬.塑绘.会亲友.安机械.塞穴.结网.裁衣.经络._Tam开市.纳采.造庙.安床.开渠.安葬.嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.ISSQ开市.动土.破土.行丧.安葬.祭祀.沐浴.出行.余事勿取.RgG动土.伐木.作梁.行丧.安葬.开生坟.祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.Qg[嫁娶.开光.会亲友.掘井.安门.栽种.祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍. P}'嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.,O'C诸事不宜.祭祀.塞穴.余事勿取.gN)5斋醮.安门.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.BM)m祈福.安葬.订盟.纳采.会亲友.安机械.纳财.牧养.:'_余事勿取.祭祀.解除.破屋.坏垣.余事勿取.`)'开市.赴任.嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.C)o移徙.入宅.入殓.除服.成服.移柩.破土.启攒.安葬.9']余事勿取.祭祀.结网.造畜椆栖.余事勿取.?7Y开市.动土.破土.开光.针灸.会亲友.启攒.安葬.8)Y嫁娶.入宅.沐浴.理发.入学.习艺.进人口.&)5行丧.安葬.作灶.造畜椆栖.?)g动土.上梁.嫁娶.祭祀.安机械.入殓.破土.安葬.Em作灶.入殓.安葬.安床.祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.J~Ea栽种.动土.安葬.开市.祭祀.作灶.入殓.除服.成服.畋猎. cn c i 0 9 { 54[Yx"bcy}E=开仓.冠笄.伐木.作梁.祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财. |E]出行.祈福.安葬.作灶.会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.,{'C诸事不宜.破屋.坏垣.余事勿取.]zSw开光.嫁娶.掘井.伐木.作梁.祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.nyS嫁娶.祭祀.入宅.造屋.移徙.捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.\xE嫁娶.开市.安床.掘井.祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.{wS3移徙.入宅.出行.祈福.嫁娶.沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.vE 嫁娶.动土.破土.修坟.出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.EuSG造庙.造船.动土.破土.安葬.纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜. tgA开光.嫁娶.会亲友.栽种.针灸.安葬.冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.sg'开市.开仓.出货财.安床.安门.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.PrEm动土.破土.开市.安葬.祭祀.作灶.纳财.捕捉.畋猎.余事勿取. qYO上梁.开光.造屋.架马.合寿木.造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.jpS嫁娶.开市.入宅.祈福.安葬.订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.0o c嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.,n'C诸事不宜.破屋.坏垣.余事勿取.#m5嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.0l c嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.WkE{嫁娶.移徙.入宅.开市.沐浴.入殓.移柩.除服.成服.破土.平治道涂.j''诸事不宜.诸事不宜.:i'_诸事不宜.祭祀.沐浴.赴任.出行.余事勿取._"oa动土.冠笄.移徙.入宅.开市.竖柱.上梁.祭祀.出行.成服.除服.沐浴.入殓. !Ee安床.开光.开市.交易.祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.4 E5入殓.安葬.开市.交易.祭祀.诸事不宜.{EA移徙.入宅.作灶.安葬.祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.u)Q定磉.安葬.祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.7E9造桥.冠笄.造屋.掘井.祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.IE_移徙.入宅.出行.栽种.祭祀.沐浴.破屋.坏垣.余事勿取.EW作灶.祭祀.入宅.嫁娶.祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.A)i入宅.伐木.祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.:)]嫁娶.入宅.祭祀.沐浴.修饰垣墙.平治道涂. " w I  [  n 4 $ P~;:}.  )e嫁娶.安葬.祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.Em造庙.安门.行丧.安葬.出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.cS动土.作灶.行丧.安葬.修坟.祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.!))开光.安床.祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.xa嫁娶.开市.动土.掘井.开池.安葬.祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.Jo7开光.动土.破土.开市.修造.入宅.安门.祭祀.嫁娶.捕捉.7=A行丧.安葬.合寿木.开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.4a嫁娶.造庙.造桥.造船.作灶.安葬.订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.%5'探病.余事勿取.余事勿取.mo}祭祀.嫁娶.安床.开市.入宅.探病.上梁.沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.%S纳采.订盟.架马.词讼.开渠.嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.c aw斋醮.嫁娶.移徙.出行.上梁.入宅.祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.\ E嫁娶.安葬.动土.造桥.出行.开市.交易.立券.安机械.出火.上梁.移徙.u a针灸.伐木.作梁.造庙.行丧.安葬.嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.  %嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍. Sm破土.置产.掘井.动土.安床.祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.a_造屋.开光.理发.造船.掘井.作灶.嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.}入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.F)u动土.安葬.订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.g)5开光.针灸.嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.`?)'动土.破土.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.:>'_诸事不宜.沐浴.治病.破屋.坏垣.余事勿取.5=)S嫁娶.入宅.捕捉.结网.入殓.破土.安葬.C<)o开市.安葬.嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.M;Ci嫁娶.祈福.余事勿取.沐浴.修饰垣墙.平治道涂.余事勿取.N:)开市.安葬.订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.R9) 嫁娶.开市.订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.J87o作灶.动土.破土.嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.C7)o动土.破土.嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅. 6 祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.5 3塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养. 4 祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.73S+动土.破土.订盟.安床.开池.祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.42)Q行丧.安葬.破屋.坏垣.治病.余事勿取. "| p ! 4  O iYyJG8||1S5嫁娶.纳采.订盟.开市.入宅.祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.I0E]开市.立券.纳财.作灶.纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.g/E嫁娶.安门.动土.安葬.出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养. .SO祈福.开市.动土.行丧.安葬.塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.{-S3嫁娶.出行.入宅.开市.安门.祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.u,a开市.动土.破土.安床.开仓.上梁.嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.+a5动土.破土.掘井.开光.上梁.词讼.嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.O*S[出火.入宅.造屋.安门.安葬.嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.)S]掘井.出行.破土.行丧.安葬.嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.>(a+纳采.订盟.经络.行丧.安葬.探病.嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.'SC动土.破土.嫁娶.掘井.安床.订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.&E{伐木.祭祀.纳畜.祭祀.嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.,%'C诸事不宜.破屋.坏垣.余事勿取.$}嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.#oW嫁娶.破土.置产.栽种.安葬.修坟.行丧.入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.j"a开仓.出货财.置产.安葬.动土.破土.掘井.栽种.嫁娶.祭祀.裁衣.结网.冠笄.沐浴.J!7o祈福.动土.破土.嫁娶.出行.开市.安床.入殓.启攒.安葬.C[)o开市.入宅.嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.JZ)}动土.安葬.嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.^Y'%诸事不宜.补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.JX)}造庙.安葬.嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅..W)E开市.破土.祭祀.作灶.纳财.捕捉.RV赴任.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.YU)祭祀.祈福.嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.3T'Q诸事不宜.祭祀.破屋.坏垣.余事勿取.JS7o嫁娶.移徙.入宅.纳采.祭祀.祈福.解除.动土.破土.安葬.,R'C诸事不宜.沐浴.扫舍.余事勿取.PQ' 余事勿取.祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.P !塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.OS;开市.斋醮.安床.出行.经络.移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.NEo动土.破土.安葬.治病.开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.WMa_移徙.开市.入宅.嫁娶.开光.安门.祭祀.塞穴.结网.畋猎.余事勿取.LaO造屋.入宅.作灶.入学.安葬.行丧.祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓磑.bKS开市.入宅.安床.动土.安葬.祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取. !(1 j # f , ;?~M <u5UAJKG嫁娶.开市.栽种.合寿木.祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.ZISq祈福.上梁.开仓.掘井.牧养.纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.;H)_嫁娶.出行.求医.治病.破屋.坏垣.余事勿取.mGo}出火.嫁娶.入宅.作灶.破土.上梁.动土.沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.6FS)嫁娶.安葬.行丧.破土.修坟.订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.OEaO开市.动土.破土.嫁娶.修造.安葬.祭祀.修饰垣墙.平治道涂.LDaG斋醮.入宅.安门.安葬.破土.行丧.纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.nCS嫁娶.出行.纳采.入宅.作灶.祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.BE{安葬.行丧.伐木.作梁.嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.,A'C诸事不宜.祭祀.解除.余事勿取.@E安葬.出行.祈福.栽种.求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.?E{安葬.开市.交易.立券.嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.,>'C诸事不宜.祭祀.栽种.余事勿取.J=)}嫁娶.开光.开光.求医.治病.动土.上梁.入殓.破土.安葬.Jv)}开光.开市.嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.u''诸事不宜.诸事不宜.Rt) 开市.安葬.订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.`s5作灶.嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.;r)_行丧.安葬.嫁娶.祭祀.沐浴.扫舍.修饰垣墙.Yq)动土.破土.嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.Mp7u移徙.入宅.安葬.订盟.纳采.出行.祈福.斋醮.安床.会亲友.y)e嫁娶.安葬.祭祀.解除.断蚁.会亲友.余事勿取.Ix'}诸事不宜.出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.|w7Q词讼.开光.开市.嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.vaW祈福.入殓.祭祀.作灶.安葬.探病.嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.,u'C诸事不宜.解除.坏垣.余事勿取..' 诸事不宜..-77嫁娶.入宅.安葬.沐浴.结网.取渔.:,'_诸事不宜.祭祀.求医.治病.解除.余事勿取.J+7o开市.动土.破土.嫁娶.纳采.祭祀.祈福.出行.移徙.求医.J*7o嫁娶.移徙.入宅.祭祀.斋醮.开市.动土.入殓.破土.安葬.4))Q嫁娶.安葬.祭祀.作灶.掘井.平治道涂.F(7g嫁娶.动土.破土.祭祀.会亲友.开市.安床.启攒.安葬.Q'7}嫁娶.开市.安葬.纳采.开光.求医.治病.动土.上梁.移徙.入宅.j&S掘井.动土.破土.安葬.开光.祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.%Ek掘井.安门.嫁娶.纳采.祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.%$E入殓.安葬.入宅.安床.订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.:#Q5造庙.嫁娶.安床.余事勿取.祭祀.余事勿取."EW出火.入宅.安葬.伐木.祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.!''诸事不宜.诸事不宜.f S 嫁娶.开市.交易.入宅.安葬.祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.E 开市.动土.掘井.开池.祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.@KE入宅.动土.开仓.出货财.造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.OS]嫁娶.安葬.动土.安床.治病.祭祀.作灶.平治道涂.余事勿取.:a#祈福.开市.修造.动土.破土.谢土.求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.~a+开市.嫁娶.移徙.入宅.掘井.安葬.沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.aoe动土.破土.行丧.开光.作梁.安葬.探病.祭祀.解除.教牛马.出行.余事勿取.fa}开光.嫁娶.掘井.安葬.安门.探病.祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.nS祈福.动土.破土.安葬.入殓.纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.4)Q嫁娶.安葬.祭祀.捕捉.解除.余事勿取./77出火.嫁娶.开市.祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.JSS祭祀.嫁娶.入宅.作灶.安葬.沐浴.捕捉.畋猎.结网.取渔._E 祈福.斋醮.开市.安葬.祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.-'E诸事不宜.破屋.坏垣.求医.治病.0E+安床.开市.立券.作灶.祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.:)[栽种.伐木.祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓磑.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.^KE造屋.作灶.治病.探病.冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.dde-calendar-5.9.1/calendar-service/assets/dde-calendar-service.desktop000066400000000000000000000004551423264401600261040ustar00rootroot00000000000000[Desktop Entry] Exec=/bin/bash -c "dbus-send --session --print-reply --dest=com.deepin.dataserver.Calendar /com/deepin/dataserver/Calendar com.deepin.dataserver.Calendar.updateRemindJob boolean:true" Name=dde-calendar-service NoDisplay=true Terminal=false Type=Application X-Deepin-Vendor=user-custom dde-calendar-5.9.1/calendar-service/assets/pinyin.dict000066400000000000000000021363101423264401600227250ustar00rootroot000000000000000x3007:líng,yuán,xīng 0x3400:qiū 0x3401:tiàn 0x3404:kuà 0x3405:wǔ 0x3406:yǐn 0x340C:yí 0x3416:xié 0x341C:chóu 0x3421:nuò 0x3424:dān,qiú 0x3428:xù 0x3429:xíng 0x342B:xiōng 0x342C:liú 0x342D:lǐn 0x342E:xiāng 0x342F:yōng 0x3430:xìn 0x3431:zhěn 0x3432:dài 0x3433:wù 0x3434:pān 0x3435:rú 0x3437:mǎ 0x3438:qiàn,cì 0x3439:yì 0x343A:yín,zhòng 0x343B:nèi 0x343C:chèng 0x343D:fēng 0x3441:zhuō 0x3442:fǎng 0x3443:ǎo 0x3444:wǔ 0x3445:zuò 0x3447:zhòu 0x3448:dòng 0x3449:sù 0x344A:yì 0x344B:qióng 0x344C:kuāng,wāng 0x344D:lèi 0x344E:nǎo 0x344F:zhù 0x3450:shū 0x3454:xǔ 0x3457:shēn 0x3458:jiè 0x3459:dié 0x345A:nuó 0x345B:sù 0x345C:yì,chì 0x345D:lòng 0x345E:yìng 0x345F:běng 0x3463:lán 0x3464:miáo 0x3465:yì 0x3466:lì 0x3467:jì 0x3468:yǔ 0x3469:luó 0x346A:chái 0x346E:hún 0x346F:xǔ 0x3470:huì 0x3471:rǎo 0x3473:zhòu,zhū 0x3475:hàn 0x3476:xì 0x3477:tài 0x3478:yáo 0x3479:huì 0x347A:jùn 0x347B:mà 0x347C:lüè 0x347D:táng 0x347E:yáo 0x347F:zhào 0x3480:zhāi,zhǎ 0x3481:yǔ 0x3482:zhuó 0x3483:èr 0x3484:rǎn 0x3485:qǐ 0x3486:chì 0x3487:wǔ 0x3488:hàn 0x3489:tǎng 0x348A:sè 0x348C:qióng 0x348D:léi 0x348E:sà 0x3491:kuǐ,huì 0x3492:pú 0x3493:tà 0x3494:shú,dú,tù 0x3495:yāng 0x3496:ǒu 0x3497:tái 0x3499:mián 0x349A:yìn,wěn 0x349B:diào 0x349C:yǔ 0x349D:miè,wà 0x349E:jùn 0x349F:niǎo 0x34A0:xiè 0x34A1:yóu 0x34A4:chè 0x34A5:fēng 0x34A6:lěi,lèi 0x34A7:lì 0x34A9:luǒ 0x34AB:jì 0x34B0:quán 0x34B2:cái 0x34B3:liǎng 0x34B4:gǔ 0x34B5:mào 0x34B7:guǎ 0x34B8:suì 0x34BB:mào 0x34BC:mán 0x34BD:quān 0x34BE:shì 0x34BF:lí 0x34C1:wǎng 0x34C2:kòu 0x34C3:dù 0x34C4:zhèn 0x34C5:tīng 0x34C8:bìng 0x34C9:huò 0x34CA:dòng 0x34CB:gòng 0x34CC:chēng 0x34CE:qīn,qìn,qǐn 0x34CF:jiǒng 0x34D0:lù 0x34D1:xìng 0x34D3:nán 0x34D4:xiè 0x34D6:bì 0x34D7:jié 0x34D8:sù 0x34DA:gōng 0x34DC:yòu 0x34DD:xíng 0x34DE:qià 0x34DF:pí 0x34E0:diàn,diǎn 0x34E1:fǔ,guā 0x34E2:luò 0x34E3:qià,gē 0x34E4:qià 0x34E5:tāng 0x34E6:bāi 0x34E7:gān 0x34E8:cí 0x34E9:xuān,jiē 0x34EA:lǎng 0x34ED:shé 0x34EF:lí 0x34F0:huà 0x34F1:tóu,shū 0x34F2:piān 0x34F3:dī 0x34F4:ruǎn 0x34F5:è 0x34F6:qiè 0x34F7:yì 0x34F8:zhuō,dōu 0x34F9:ruì,cuì,jì 0x34FA:jiān,qián 0x34FC:chì 0x34FD:chóng 0x34FE:xī,chí 0x3500:lüè 0x3501:dēng 0x3502:lín 0x3503:jué,xuē 0x3504:sù 0x3505:xiào 0x3506:zàn 0x3509:zhǔ 0x350A:zhǎn,dǎn 0x350B:jiān,lán 0x350C:zòu,cǒu 0x350D:chuā,zhá 0x350E:xiè 0x350F:lì,luǒ 0x3511:chì 0x3512:xí 0x3513:jiǎn 0x3515:jí 0x3517:fèi,bèi,fú 0x3518:chù 0x3519:bēng 0x351A:jié 0x351C:bá 0x351D:liǎng,liáng 0x351E:kuài 0x3520:xiā,hé 0x3521:biē 0x3522:jué,xuē 0x3523:léi 0x3524:xìn 0x3525:bài,pí 0x3526:yǎng 0x3527:lǜ 0x3528:bèi 0x3529:è 0x352A:lǔ 0x352D:chè 0x352E:nuó 0x352F:xuán,suǎn 0x3530:héng 0x3531:yǔ 0x3533:guǐ 0x3534:yì 0x3535:xuǎn 0x3536:gòng,gǎn 0x3537:lòu 0x3538:tī 0x3539:lè 0x353A:shì 0x353C:sǔn 0x353D:yào 0x353E:xiān,jié 0x353F:zòu 0x3541:què 0x3542:yín,qín 0x3543:xī 0x3544:zhǐ 0x3545:jiá 0x3546:hù 0x3547:lā 0x3548:yǐ 0x3549:kè 0x354A:fū 0x354B:qín 0x354C:ài 0x354E:kè 0x354F:chú 0x3550:xiě,xiè 0x3551:chú 0x3552:wēi 0x3555:huàn 0x3556:sù 0x3557:yòu 0x3559:jùn 0x355A:zhǎo 0x355B:xù 0x355C:shǐ 0x355E:shuā 0x355F:kuì,kuài 0x3560:shuāng 0x3561:hé 0x3562:gài,hài 0x3563:yǎn 0x3564:qiú 0x3565:shēn 0x3566:huà 0x3567:xī 0x3568:fàn 0x3569:pàng 0x356A:dǎn 0x356B:fǎng,fēng 0x356C:gōng,sòng 0x356D:āo,ào 0x356E:fǔ 0x356F:nè 0x3570:xuè,ma 0x3571:yóu 0x3572:huá,yíng 0x3574:chén 0x3575:guó 0x3576:ň,ňg 0x3577:huà,pā 0x3578:lì 0x3579:fá 0x357A:xiāo 0x357B:pǒu 0x357D:sì 0x3580:lè 0x3581:lìn 0x3582:yì 0x3583:hǒu,hòu 0x3585:xù 0x3586:qú 0x3587:ér 0x358A:xún 0x358F:niè 0x3590:wěi 0x3591:xiè 0x3592:tí 0x3593:hóng 0x3594:tǔn 0x3595:niè,xīn 0x3596:niè 0x3597:yín 0x3598:zhēn 0x359E:wāi 0x359F:shòu 0x35A0:nuò 0x35A1:yè 0x35A2:qí 0x35A3:tòu 0x35A4:hán 0x35A5:jùn 0x35A6:dǒng 0x35A7:hūn,wěn 0x35A8:lù 0x35A9:jū,sǒu 0x35AA:huò,guó,xù 0x35AB:líng 0x35AD:tiǎn 0x35AE:lún 0x35B5:gé 0x35B6:yān,yè,yīn 0x35B7:shí,tí 0x35B8:xué,niā 0x35B9:pēn,fèn 0x35BA:chǔn 0x35BB:niú,ròu 0x35BC:duǒ 0x35BD:zé 0x35BE:è 0x35BF:xié,yé 0x35C0:yōu 0x35C1:è 0x35C2:shěng 0x35C3:wěn,hūn 0x35C4:kū 0x35C5:hú 0x35C6:gé 0x35C7:xiá,ya 0x35C8:màn 0x35C9:lüè,è 0x35CA:jí,léi 0x35CB:hóu 0x35CC:zhì 0x35CF:wāi 0x35D1:bai 0x35D2:ài 0x35D3:zhuī 0x35D4:qiān 0x35D5:gòu,gōu 0x35D6:dàn 0x35D7:bēi 0x35D8:bó 0x35D9:chū,nà,zhōu 0x35DA:lì 0x35DB:xiào 0x35DC:xiù 0x35E2:hóng,dòng,hòng 0x35E3:tì 0x35E4:cù 0x35E5:kuò,guō 0x35E6:láo 0x35E7:zhì,dié 0x35E8:xiē,ǎi 0x35E9:xī 0x35EB:qiè 0x35EC:zhā 0x35ED:xī 0x35F0:cóng 0x35F1:jí 0x35F2:huò 0x35F3:tǎ,dā 0x35F4:yán 0x35F5:xù 0x35F6:pō 0x35F7:sǎi 0x35FB:guō 0x35FC:yè 0x35FD:xiǎng 0x35FE:xuē 0x35FF:hé,xià,xiā 0x3600:zuò 0x3601:yì 0x3602:cí 0x3604:lēng 0x3605:xián 0x3606:tǎi 0x3607:róng 0x3608:yì,nǐ 0x3609:zhì 0x360A:xī,yì 0x360B:xián 0x360C:jù 0x360D:jí 0x360E:hǎn 0x3610:pào 0x3611:lì 0x3613:lán 0x3614:sǎi 0x3615:hǎn,lán 0x3616:yán 0x3617:qū 0x3619:yán 0x361A:hǎn 0x361B:kān 0x361C:chǐ 0x361D:niè 0x361E:huò 0x3620:bì 0x3621:xiá 0x3622:wěng 0x3623:xuán,yuán 0x3624:wān 0x3625:yóu 0x3626:qín 0x3627:xù 0x3628:niè 0x3629:bì 0x362A:hào 0x362B:jǐng 0x362C:ào,wù 0x362D:ào 0x3630:zhēn 0x3631:tān 0x3632:jú 0x3634:zuò 0x3635:bù 0x3636:jié 0x3637:ài 0x3638:zàng,zuò 0x3639:cí 0x363A:fá 0x363F:niè 0x3640:liù,jiù 0x3641:méi,mù 0x3642:duì,wèng 0x3643:bāng 0x3644:bì 0x3645:bǎo 0x3647:chù 0x3648:xià 0x3649:tiǎn 0x364A:cháng,zhàng 0x364D:duō 0x364E:wēi 0x364F:fù 0x3650:duǒ 0x3651:yǔ 0x3652:yě 0x3653:kuí 0x3654:wěi,hán 0x3655:kuài 0x3657:wēi 0x3658:yāo 0x3659:lǒng 0x365A:xīng 0x365B:bǔ 0x365C:chí 0x365D:xié 0x365E:niè 0x365F:lǎng 0x3660:yī,yì 0x3661:zōng 0x3662:mán 0x3663:zhàng 0x3664:xià 0x3665:gùn 0x3666:xié 0x3668:jì 0x3669:liáo 0x366A:yì 0x366B:jí 0x366C:yín 0x366E:dā,da 0x366F:yì 0x3670:xiè 0x3671:hào 0x3672:yǒng 0x3673:kǎn,hǎn 0x3674:chàn 0x3675:tái 0x3676:táng 0x3677:zhí,zhé 0x3678:bào 0x3679:méng 0x367A:kuí,guì 0x367B:chán 0x367C:lěi 0x367E:xì 0x3680:xī 0x3681:qiào 0x3682:nàng 0x3683:yūn 0x3685:lóng 0x3686:fù 0x3687:zōng 0x3689:gǔ 0x368A:kāi 0x368B:diāo 0x368C:huà 0x368D:kuǐ,kuì 0x368F:gǎo 0x3690:tào 0x3692:shǎn 0x3693:lǎi 0x3694:niè,xìng 0x3695:fú 0x3696:gǎo,zé 0x3697:qié 0x3698:bàn,hè,fú 0x3699:jiā 0x369A:kōng,kuāng 0x369B:xì 0x369C:yù,xù 0x369D:zhuī 0x369E:shěn 0x369F:chuò 0x36A0:xiāo 0x36A1:jǐ 0x36A2:nú,wǔ 0x36A3:xiáo 0x36A4:yì 0x36A5:yú 0x36A6:yí 0x36A7:yǎn 0x36A8:shěn 0x36A9:rǎn 0x36AA:hào 0x36AB:sà 0x36AC:jūn 0x36AD:yóu 0x36AF:xín 0x36B0:pēi,bǐ 0x36B1:qiū 0x36B2:chān,diǎn,diàn 0x36B4:bù 0x36B5:dōng 0x36B6:sì,yí 0x36B7:ěr 0x36B9:mǎo,liǔ 0x36BA:yùn 0x36BB:jī 0x36BD:qiǎo 0x36BE:xiōng 0x36BF:páo 0x36C0:chú 0x36C1:pēng 0x36C2:nuǒ 0x36C3:jié 0x36C4:yī 0x36C5:èr 0x36C6:duò,duǒ 0x36CA:duǒ 0x36CD:qiè,xiǎn,xiá 0x36CE:lǚ 0x36CF:qiú 0x36D0:sǒu 0x36D1:càn 0x36D2:dòu 0x36D3:xī 0x36D4:fēng,péng 0x36D5:yì,è 0x36D6:suō 0x36D7:qiē,zuō,suō 0x36D8:pò 0x36D9:xīn,qiè 0x36DA:tǒng,yǒng 0x36DB:xìn 0x36DC:yóu 0x36DD:bèi 0x36DE:lòng 0x36E3:yún 0x36E4:lí 0x36E5:tà 0x36E6:lǎn 0x36E7:mǎn 0x36E8:qiǎng 0x36E9:zhóu 0x36EA:yàn,yān 0x36EB:xī 0x36EC:lù 0x36ED:xī 0x36EE:sǎo 0x36EF:fàn,miǎn,zhuàn 0x36F1:wěi,wēi 0x36F2:fà 0x36F3:yì 0x36F4:nǎo 0x36F5:chēng 0x36F6:tàn 0x36F7:jī 0x36F8:shù 0x36F9:pián 0x36FA:ān 0x36FB:kuā 0x36FC:chā,shà 0x36FE:xián 0x36FF:zhì 0x3702:fēng 0x3703:liàn 0x3704:xún 0x3705:xù 0x3706:mì 0x3707:huì,yè 0x3708:mù 0x3709:yōng 0x370A:zhǎn 0x370B:yì 0x370C:nǒu,gòu,kòu 0x370D:táng 0x370E:xī,xì 0x370F:yún 0x3710:shù 0x3711:fú 0x3712:yì 0x3713:dá 0x3715:lián 0x3716:cáo 0x3717:cān,sēn 0x3718:jù,qù,chá 0x3719:lù 0x371A:sù 0x371B:nèn 0x371C:ào 0x371D:ǎn,yǎn 0x371E:qiàn,cán 0x3720:cuī 0x3721:cōng 0x3723:rán,rǎn 0x3724:niǎn,tiǎn,tán 0x3725:mái 0x3726:xín 0x3727:yuè 0x3728:nái 0x3729:ào 0x372A:shēn 0x372B:mà 0x372E:làn,lán 0x372F:xī 0x3730:yuè 0x3731:zhì 0x3732:wěng 0x3733:huái 0x3734:mèng 0x3735:niǎo 0x3736:wǎn 0x3737:mí,xiǎn 0x3738:niè 0x3739:qú 0x373A:zàn 0x373B:liàn 0x373C:zhí 0x373D:zǐ 0x373E:hái 0x373F:xù 0x3740:hào 0x3741:xuān,qióng 0x3742:zhì,zhè 0x3743:miǎn 0x3744:chún 0x3745:gòu 0x3747:chún 0x3748:luán 0x3749:zhù 0x374A:shǒu 0x374B:liǎo 0x374C:jiù 0x374D:xiě 0x374E:dìng 0x374F:jiè 0x3750:róng 0x3751:máng 0x3753:kè 0x3754:yǎo 0x3755:níng 0x3756:yí 0x3757:láng,lǎng 0x3758:yóng 0x3759:yín 0x375A:yán 0x375B:sù 0x375D:lín 0x375E:yā,yà 0x375F:máo 0x3760:míng 0x3761:zuì 0x3762:yǔ 0x3763:yì 0x3764:gòu 0x3765:mǐ 0x3766:jùn 0x3767:wěn 0x3769:kāng 0x376A:diàn 0x376B:lóng 0x376D:xǐng 0x376E:cuì 0x376F:qiáo 0x3770:mián 0x3771:mèng 0x3772:qǐn 0x3774:wán 0x3775:dé,ài 0x3776:ài 0x3778:biàn 0x3779:nóu 0x377A:lián 0x377B:jǐn 0x377C:yū 0x377D:chuí 0x377E:zuǒ 0x377F:bǒ 0x3780:huī 0x3781:yào 0x3782:tuǐ,tuì 0x3783:jì 0x3784:ān 0x3785:luò 0x3786:jǐ 0x3787:wěi 0x3788:bō 0x3789:zā 0x378A:xù 0x378B:niǎn,jí 0x378C:yùn 0x378E:bǎ,pā 0x378F:zhé,jié 0x3790:jū 0x3791:wěi 0x3792:xiè,xì 0x3793:qì,jī 0x3794:yí 0x3795:xiè 0x3796:cí,cì 0x3797:qiú 0x3798:dū 0x3799:niào 0x379A:qì,zhǎ 0x379B:jǐ 0x379C:tuī 0x379E:sóng 0x379F:diàn,dǐng 0x37A0:láo 0x37A1:zhǎn 0x37A4:yín,cén 0x37A5:cén 0x37A6:jǐ 0x37A7:huì 0x37A8:zǐ 0x37A9:lán 0x37AA:náo 0x37AB:jù 0x37AC:qìn 0x37AD:dài 0x37AF:jié 0x37B0:xǔ 0x37B1:cōng 0x37B2:yòng 0x37B3:dǒu 0x37B4:chí,mín 0x37B6:mǐn 0x37B7:huáng 0x37B8:suì 0x37B9:kě 0x37BA:zú 0x37BB:hào 0x37BC:chéng 0x37BD:xuè 0x37BE:ní 0x37BF:chì 0x37C0:lián 0x37C1:àn 0x37C2:mǔ 0x37C3:sī 0x37C4:xiáng 0x37C5:yáng 0x37C6:huá 0x37C7:cuò,cuó 0x37C8:qiú 0x37C9:láo 0x37CA:fú 0x37CB:duì 0x37CC:máng 0x37CD:láng,lǎng 0x37CE:tuǒ,tuǐ 0x37CF:hán 0x37D0:mǎng 0x37D1:bó 0x37D2:qūn 0x37D3:qí 0x37D4:hán 0x37D6:lòng,lóng 0x37D8:tiáo 0x37D9:zé 0x37DA:qí 0x37DB:zàn 0x37DC:mí 0x37DD:péi 0x37DE:zhàn 0x37DF:xiàng 0x37E0:gǎng 0x37E2:qí 0x37E4:lù 0x37E6:yùn 0x37E7:è 0x37E8:duān 0x37E9:mín 0x37EA:wēi,wěi 0x37EB:quán 0x37EC:sǒu 0x37ED:mín 0x37EE:tū 0x37F0:mǐng 0x37F1:yǎo 0x37F2:jué 0x37F3:lì 0x37F4:kuài 0x37F5:gǎng 0x37F6:yuán 0x37F7:da 0x37F9:láo 0x37FA:lóu 0x37FB:qiàn,zhǎn 0x37FC:áo 0x37FD:biǎo,biāo 0x37FE:yōng 0x37FF:mǎng,máng 0x3800:dǎo 0x3802:áo 0x3804:xí 0x3805:fú,fù 0x3806:dān 0x3807:jiù 0x3808:rùn 0x3809:tóng 0x380A:qū 0x380B:è 0x380C:qī 0x380D:jí 0x380E:jí,jié 0x380F:huá 0x3810:jiào 0x3811:zuì 0x3812:biǎo 0x3813:méng 0x3814:bài 0x3815:wěi 0x3816:yǐ 0x3817:ào 0x3818:yǔ 0x3819:háo 0x381A:duì 0x381B:wò 0x381C:nì 0x381D:cuán 0x381F:lí 0x3820:lú 0x3821:niǎo 0x3822:huái 0x3823:lì 0x3825:lǜ,léi,lěi 0x3826:fēng 0x3827:mǐ 0x3828:yù 0x382A:jù 0x382D:zhǎn 0x382E:pēng,gāng 0x382F:yǐ 0x3831:jì,qǐ 0x3832:bǐ 0x3834:rèn 0x3835:huāng 0x3836:fán 0x3837:gé 0x3838:kù 0x3839:jiè 0x383A:shā,miáo 0x383C:sī 0x383D:tóng 0x383E:yuān 0x383F:zī,cǐ 0x3840:bì 0x3841:kuǎ 0x3842:lì 0x3843:huāng 0x3844:xún 0x3845:nuǒ 0x3847:zhé,jiē 0x3848:wèn,mén,miǎn 0x3849:xián 0x384A:qià 0x384B:yé,ān 0x384C:mào 0x384F:shù,xū,tóu,shū 0x3851:qiāo,jiǎo 0x3852:zhūn 0x3853:kūn 0x3854:wù 0x3855:yīng 0x3856:chuáng 0x3857:tí 0x3858:lián,lín 0x3859:bī 0x385A:gōu 0x385B:máng 0x385C:xiè,xuě 0x385D:fèng 0x385E:lóu,lǚ 0x385F:zāo 0x3860:zhèng 0x3861:chú 0x3862:màn 0x3863:lóng 0x3865:yìn 0x3866:pīn 0x3867:zhèng 0x3868:jiān,qiān 0x3869:luán 0x386A:nié 0x386B:yì 0x386D:jì 0x386E:jí 0x386F:zhái,dù,duó 0x3870:yǔ 0x3871:jiǔ 0x3872:huán 0x3873:zhǐ 0x3874:lā 0x3875:líng 0x3876:zhǐ 0x3877:běn 0x3878:zhà,zhǎ,chá 0x3879:jū 0x387A:dàn 0x387B:liào 0x387C:yì 0x387D:zhào 0x387E:xiàn 0x387F:chì 0x3880:cì 0x3881:chǐ,shǐ 0x3882:yǎn,tuí,duī 0x3883:láng 0x3884:dòu 0x3885:lòng 0x3886:chán 0x3888:tuí,duī 0x3889:chá 0x388A:ǎi,yǐ 0x388B:chǐ 0x388D:yǐng 0x388E:zhé 0x388F:tóu,yǔ,yú 0x3891:tuí 0x3892:chá 0x3893:yǎo 0x3894:zǒng 0x3896:pān,bān 0x3897:qiào 0x3898:lián 0x3899:qín 0x389A:lǔ 0x389B:yàn,qiān 0x389C:kāng,kàng 0x389D:sū 0x389E:yì 0x389F:chān 0x38A0:jiǒng 0x38A1:jiǎng 0x38A3:jìng 0x38A5:dòng 0x38A7:juàn 0x38A8:hàn 0x38A9:dì 0x38AC:hóng 0x38AE:chí 0x38AF:diāo,mín 0x38B0:bì 0x38B2:xùn 0x38B3:lú 0x38B5:xié,shè 0x38B6:bì 0x38B8:bì 0x38BA:xián 0x38BB:ruì 0x38BC:biè 0x38BD:ěr 0x38BE:juàn 0x38C0:zhèn 0x38C1:bèi 0x38C2:è 0x38C3:yǔ 0x38C4:qú 0x38C5:zàn 0x38C6:mí 0x38C7:yì 0x38C8:sì 0x38CC:shàn 0x38CD:tái 0x38CE:mù 0x38CF:jìng 0x38D0:biàn 0x38D1:róng 0x38D2:cèng 0x38D3:càn 0x38D4:dīng 0x38D9:dí,zhòu 0x38DA:tǒng,tóng,dòng 0x38DB:tà,huì 0x38DC:xíng 0x38DD:sōng 0x38DE:duó 0x38DF:xì 0x38E0:tāo,tóng 0x38E2:tí 0x38E3:shàn 0x38E4:jiàn 0x38E5:zhì 0x38E6:wēi 0x38E7:yìn 0x38EA:huǎn 0x38EB:zhǒng,dòng 0x38EC:qì 0x38ED:zōng 0x38EF:xiè 0x38F0:xiè 0x38F1:zé 0x38F2:wéi 0x38F5:tà 0x38F6:zhān 0x38F7:nìng 0x38FB:yì 0x38FC:rěn 0x38FD:shù,nù 0x38FE:chà 0x38FF:zhuó,diǎo 0x3901:miǎn 0x3902:jí 0x3903:fáng 0x3904:pèi 0x3905:ài,xì,jì 0x3906:fàn 0x3907:ǎo 0x3908:qìn 0x3909:qiā,yà 0x390A:xiào 0x390B:fēn 0x390C:gān 0x390D:qiāo,qiǎo 0x390E:gē 0x390F:tóng 0x3910:chān 0x3911:yòu 0x3912:gāo 0x3913:bèn 0x3914:fù 0x3915:chù,pò 0x3916:zhù 0x3918:zhòu 0x391A:háng 0x391B:nín 0x391C:jué 0x391D:chōng 0x391E:chà,duó,zé 0x391F:kǒng 0x3920:liè 0x3921:lì,liè 0x3922:yù 0x3924:yú 0x3925:hài 0x3926:lì 0x3927:hóu 0x3928:gǒng 0x3929:kè 0x392A:yuàn 0x392B:dé 0x392C:huì 0x392E:guàng 0x392F:jiǒng 0x3930:zuò 0x3931:fù,dòu 0x3932:qiè 0x3933:běi 0x3934:chè,shè,dié 0x3935:cí 0x3936:máng,màng 0x3937:hān 0x3938:xì 0x3939:qiú,jiù 0x393A:huǎng 0x393D:chóu 0x393E:sàn,tàn 0x393F:yān 0x3940:zhí,dé 0x3941:dé 0x3942:tè 0x3943:mèn 0x3944:líng 0x3945:shòu 0x3946:tuì 0x3947:cán 0x3948:dié 0x3949:chè 0x394A:péng,pēng 0x394B:yī 0x394C:jú 0x394D:jì 0x394E:lái 0x394F:tiǎn 0x3950:yuàn 0x3952:cǎi,cāi 0x3953:qī 0x3954:yù 0x3955:lián 0x3956:cōng 0x395A:yú,yǔ 0x395B:jí,kè 0x395C:wèi 0x395D:mǐ 0x395E:suì 0x395F:xié 0x3960:xū 0x3961:chì 0x3962:qiú,jiū 0x3963:huì 0x3965:yú 0x3966:qiè 0x3967:shùn 0x3968:shuì,wěi 0x3969:duǒ 0x396A:lóu 0x396C:páng 0x396D:tài 0x396E:zhòu,chǎo 0x396F:yǐn 0x3970:sāo 0x3971:fěi 0x3972:chēn,shèn 0x3973:yuán 0x3974:yí,tí 0x3975:hùn 0x3976:sè,qiān 0x3977:yè 0x3978:mǐn 0x3979:fěn 0x397A:hé 0x397C:yìn,yān 0x397D:cè,zé 0x397E:nì 0x397F:ào 0x3980:féng 0x3981:lián,liǎn 0x3982:cháng 0x3983:chǎn 0x3984:má 0x3985:diē,dì,chài 0x3986:hū,xiā 0x3987:lù 0x3989:yì 0x398A:huá 0x398B:zhā 0x398C:hū,xù 0x398D:è 0x398E:huò 0x398F:sǔn,xuàn 0x3990:nì 0x3991:xiàn,hān 0x3992:lí 0x3993:xiàn,rǎn 0x3994:yàn 0x3995:lóng 0x3996:mèn 0x3997:jīn,jìn 0x3998:jī 0x399A:biǎn 0x399B:yǔ,yú 0x399C:huò,xuè 0x399D:miǎo 0x399E:chóu 0x399F:mái 0x39A1:lè 0x39A2:jié 0x39A3:wèi 0x39A4:yì 0x39A5:xuān,xiǎn 0x39A6:xì 0x39A7:cǎn 0x39A8:lán 0x39A9:yǐn 0x39AA:xiè 0x39AB:zā 0x39AC:luǒ 0x39AD:líng 0x39AE:qián 0x39AF:huò 0x39B0:jiān 0x39B1:wǒ 0x39B4:gé 0x39B5:zhū 0x39B6:dié,yǒng 0x39B7:yǒng 0x39B8:jǐ 0x39B9:yáng 0x39BA:rù 0x39BB:xí 0x39BC:shuàng 0x39BD:yù 0x39BE:yí 0x39BF:qiǎn,hù 0x39C0:jí 0x39C1:qù,hé 0x39C2:tián 0x39C3:shōu,jiū 0x39C4:qiǎn 0x39C5:mù,dāo 0x39C6:jīn 0x39C7:mǎo 0x39C8:yǐn 0x39C9:gài,hài,yè 0x39CA:pō,bá 0x39CB:xuǎn 0x39CC:mào 0x39CD:fǎng,bēng 0x39CE:yá,yà,qiā 0x39CF:gāng 0x39D0:sǒng 0x39D1:huī 0x39D2:yù 0x39D3:guā 0x39D4:guài 0x39D5:liǔ 0x39D6:è 0x39D7:zǐ,jǐ,zhǐ 0x39D8:zì 0x39D9:bì,bié 0x39DA:wǎ 0x39DC:liè 0x39DF:kuǎi 0x39E1:hài,wèi 0x39E2:yīn 0x39E3:zhū 0x39E4:chòng 0x39E5:xiǎn 0x39E6:xuàn,hōng 0x39E8:qiú 0x39E9:pèi 0x39EA:guǐ,wěi 0x39EB:ér,ruán,ruí 0x39EC:gǒng 0x39ED:qióng 0x39EE:hū 0x39EF:lǎo 0x39F0:lì 0x39F1:chèn 0x39F2:sǎn 0x39F3:zhuò,bāi 0x39F4:wǒ,é 0x39F5:póu 0x39F6:kēng 0x39F7:tùn 0x39F8:pēng 0x39F9:tè 0x39FA:tà 0x39FB:zhuó,zú,dū 0x39FC:biào 0x39FD:gù 0x39FE:hū 0x3A00:bǐng 0x3A01:zhì,zhí 0x3A02:dǒng 0x3A03:duǐ,chéng 0x3A04:zhōu,zhào,tiáo 0x3A05:nèi,ruì 0x3A06:lǐn 0x3A07:pó 0x3A08:jǐ 0x3A09:mín,wěn 0x3A0A:wěi,tuǒ,duò 0x3A0B:chě 0x3A0C:gòu 0x3A0D:bāng 0x3A0E:rú 0x3A0F:tān 0x3A10:bǔ 0x3A11:zōng 0x3A12:kuī 0x3A13:láo 0x3A14:hàn 0x3A15:yíng 0x3A16:zhì 0x3A17:jié 0x3A18:xǐng 0x3A19:xié,xì 0x3A1A:xún,sǔn 0x3A1B:shǎn,shàn 0x3A1C:qián 0x3A1D:xiē 0x3A1E:sù 0x3A1F:hāi 0x3A20:mì 0x3A21:hún 0x3A22:pī 0x3A24:huì 0x3A25:nà 0x3A26:sǒng 0x3A27:bèn 0x3A28:chōu,liù 0x3A29:jié 0x3A2A:huàng,huǎng 0x3A2B:lǎn 0x3A2D:hù 0x3A2E:dōu 0x3A2F:huò 0x3A30:gǔn 0x3A31:yáo 0x3A32:cè 0x3A33:guǐ,jì 0x3A34:jiàn 0x3A35:jiǎn 0x3A36:dǎo 0x3A37:jìn 0x3A38:mà 0x3A39:huì,xuě 0x3A3A:miǎn,mén 0x3A3B:cán,shǎn,zàn,chàn 0x3A3C:lüè 0x3A3D:pì 0x3A3E:yàng 0x3A3F:jù 0x3A40:jù 0x3A41:què 0x3A43:qiān 0x3A44:shāi 0x3A46:jiù,zú 0x3A47:huò,zuó,huá 0x3A48:yǔn 0x3A49:dá,lā,xī,xié 0x3A4A:xuān 0x3A4B:xiāo,sù 0x3A4C:fèi 0x3A4D:cè 0x3A4E:yè 0x3A50:dèn 0x3A52:qín 0x3A53:huǐ 0x3A54:tún 0x3A56:qiáng 0x3A57:xí 0x3A58:nǐ 0x3A59:sāi 0x3A5A:méng 0x3A5B:tuán 0x3A5C:lǎn 0x3A5D:háo 0x3A5E:cì 0x3A5F:zhài 0x3A60:āo,piǎo,póu 0x3A61:luǒ 0x3A62:miè,mì 0x3A64:fū 0x3A66:xié,xī 0x3A67:bó 0x3A68:huì 0x3A69:qǐng 0x3A6A:xié 0x3A6D:bó 0x3A6E:qián 0x3A6F:pó 0x3A70:jiǎo 0x3A71:jué 0x3A72:kǔn 0x3A73:sǒng 0x3A74:jú,qú 0x3A75:è 0x3A76:niè 0x3A77:qiān 0x3A78:dié 0x3A79:dié 0x3A7B:qī,guì,guǐ 0x3A7C:zhī 0x3A7D:qí,chì,è 0x3A7E:zhuì,qí 0x3A7F:kū 0x3A80:yú 0x3A81:qín,kān,qiàn,qián 0x3A82:kū 0x3A83:hé 0x3A84:fú 0x3A86:dǐ 0x3A87:xiàn 0x3A88:guì 0x3A89:hé 0x3A8A:qún 0x3A8B:hàn,hě 0x3A8C:tǒng 0x3A8D:bó,bèi 0x3A8E:shǎn,nà 0x3A8F:bǐ 0x3A90:lù 0x3A91:yè 0x3A92:ní 0x3A93:chuái 0x3A94:sàn 0x3A95:diào,chuò 0x3A96:lù 0x3A97:tǒu 0x3A98:liǎn 0x3A99:kě 0x3A9A:sàn 0x3A9B:zhěn 0x3A9C:chuǎi,duǒ 0x3A9D:liàn 0x3A9E:mào 0x3AA0:qiān,qiàn,jiān 0x3AA1:kài,kě 0x3AA2:shǎo 0x3AA3:xiāo,qiāo 0x3AA4:bì 0x3AA5:zhā 0x3AA6:yìn 0x3AA7:xī 0x3AA8:shàn 0x3AA9:sù 0x3AAA:sà 0x3AAB:ruì 0x3AAC:chuō,zhuó 0x3AAD:lú 0x3AAE:líng 0x3AAF:chá 0x3AB1:huàn 0x3AB4:jiá 0x3AB5:bàn 0x3AB6:hú 0x3AB7:dǒu 0x3AB9:lǒu 0x3ABA:jū 0x3ABB:juàn 0x3ABC:kě 0x3ABD:suǒ 0x3ABE:luò,gé 0x3ABF:zhé 0x3AC0:dǐng 0x3AC1:duàn 0x3AC2:zhù 0x3AC3:yǎn 0x3AC4:páng 0x3AC5:chá 0x3ACA:yǐ,ě 0x3ACD:yóu,yǎo 0x3ACE:huī,gǔn 0x3ACF:yǎo 0x3AD0:yǎo 0x3AD1:zhǐ,shí 0x3AD2:gǒng 0x3AD3:qǐ 0x3AD4:gèn 0x3AD7:hòu 0x3AD8:mì 0x3AD9:fú 0x3ADA:hū 0x3ADB:guàng 0x3ADC:tǎn 0x3ADD:dī 0x3ADF:yán 0x3AE2:qù 0x3AE4:chǎng 0x3AE5:mǐng 0x3AE6:tāo 0x3AE7:bào 0x3AE8:ān 0x3AEB:xiǎn 0x3AEF:mào 0x3AF0:làng,lǎng 0x3AF1:nǎn,nàn 0x3AF2:bèi 0x3AF3:chén 0x3AF5:fēi 0x3AF6:zhǒu 0x3AF7:jī 0x3AF8:jiē 0x3AF9:shù 0x3AFB:kùn 0x3AFC:dié 0x3AFD:lù 0x3B02:yú 0x3B03:tái 0x3B04:chàn 0x3B05:màn 0x3B06:mǐn 0x3B07:huàn 0x3B08:wēn 0x3B09:nuǎn 0x3B0A:huàn,huǎn 0x3B0B:hóu 0x3B0C:jìng 0x3B0D:bó 0x3B0E:xiǎn 0x3B0F:lì 0x3B10:jìn,zī 0x3B12:mǎng 0x3B13:piào 0x3B14:háo 0x3B15:yáng 0x3B17:xiàn 0x3B18:sù 0x3B19:wěi 0x3B1A:chè 0x3B1B:xī 0x3B1C:jìn 0x3B1D:céng,sōng 0x3B1E:hè 0x3B1F:fēn 0x3B20:shài,shà 0x3B21:líng 0x3B23:duì 0x3B24:qī 0x3B25:pù,bó 0x3B26:yuè 0x3B27:bó 0x3B29:huì 0x3B2A:dié 0x3B2B:yàn 0x3B2C:jù 0x3B2D:jiào 0x3B2E:nàn 0x3B2F:liè 0x3B30:yú 0x3B31:tì 0x3B32:tiān 0x3B33:wǔ 0x3B34:hǒng 0x3B35:xiáo 0x3B36:hào 0x3B38:tiāo 0x3B39:zhēng 0x3B3B:huāng,hāng,huǎng 0x3B3C:fù 0x3B3F:tūn 0x3B41:réng 0x3B42:jiǎo 0x3B44:xìn 0x3B47:yuàn 0x3B48:jué 0x3B49:huá 0x3B4B:bàng 0x3B4C:móu 0x3B4E:gāng 0x3B4F:wěi 0x3B51:mèi 0x3B52:sì 0x3B53:biàn 0x3B54:lú 0x3B55:qū 0x3B58:gé,hé 0x3B59:zhé 0x3B5A:lǚ 0x3B5B:pài,bà 0x3B5C:róng 0x3B5D:qiú,òu 0x3B5E:liè 0x3B5F:gǒng 0x3B60:xiǎn 0x3B61:xì,xìn 0x3B62:xīn 0x3B64:niǎo 0x3B68:xié 0x3B69:liè 0x3B6A:fū 0x3B6B:cuó,cuán 0x3B6C:zhuó 0x3B6D:bā,bèi,biē 0x3B6E:zuò,zǎn 0x3B6F:zhé,dié 0x3B70:zuī,zuǐ 0x3B71:hé 0x3B72:jí 0x3B74:jiān 0x3B78:tú 0x3B79:xián 0x3B7A:yǎn,yàn,ān 0x3B7B:táng 0x3B7C:tà 0x3B7D:dǐ 0x3B7E:jué 0x3B7F:áng 0x3B80:hán 0x3B81:xiáo 0x3B82:jú 0x3B83:wēi,ruí 0x3B84:bǎng 0x3B85:zhuī 0x3B86:niè 0x3B87:tiàn 0x3B88:nài 0x3B8B:yǒu 0x3B8C:mián 0x3B8F:nài,nì,nà 0x3B90:shěng,sì 0x3B91:chā,qì 0x3B92:yān,yīn 0x3B93:gèn 0x3B94:chòng,tóng 0x3B95:ruǎn 0x3B96:jiá 0x3B97:qín 0x3B98:máo 0x3B99:è 0x3B9A:lì 0x3B9B:chí,yí 0x3B9C:zāng 0x3B9D:hé 0x3B9E:jié 0x3B9F:niǎn,kā 0x3BA1:guàn 0x3BA2:hóu 0x3BA3:gài 0x3BA5:bèn,fàn 0x3BA6:suǒ,sè 0x3BA7:wū,wēn 0x3BA8:jì 0x3BA9:xī 0x3BAA:qióng 0x3BAB:hé,xiá,qià 0x3BAC:wēng 0x3BAD:xián 0x3BAE:jié 0x3BAF:hún,huá 0x3BB0:pí 0x3BB1:shēn 0x3BB2:chōu 0x3BB3:zhèn 0x3BB5:zhān 0x3BB6:shuò 0x3BB7:jī 0x3BB8:sòng 0x3BB9:zhǐ 0x3BBA:běn 0x3BBE:lǎng 0x3BBF:bì 0x3BC0:xuàn 0x3BC1:péi 0x3BC2:dài 0x3BC4:zhī 0x3BC5:pí,bī 0x3BC6:chǎn,shàn 0x3BC7:bì 0x3BC8:sù 0x3BC9:huò 0x3BCA:hén 0x3BCB:jiǒng,yǐng 0x3BCC:chuán 0x3BCD:jiǎng 0x3BCE:nèn 0x3BCF:gǔ 0x3BD0:fǎng 0x3BD3:tà,dá 0x3BD4:cuì 0x3BD5:xī 0x3BD6:dé 0x3BD7:xián 0x3BD8:kuǎn 0x3BD9:zhé 0x3BDA:tā 0x3BDB:hú 0x3BDC:cuì 0x3BDD:lù 0x3BDE:juàn 0x3BDF:lù 0x3BE0:qiàn 0x3BE1:pào,páo 0x3BE2:zhèn 0x3BE4:lì 0x3BE5:cáo,zāo 0x3BE6:qí 0x3BE9:tì 0x3BEA:líng 0x3BEB:qú 0x3BEC:liǎn 0x3BED:lǔ 0x3BEE:shú 0x3BEF:gòng,dǎn,jù 0x3BF0:zhé 0x3BF1:pāo 0x3BF2:jìn 0x3BF3:qíng 0x3BF6:zōng 0x3BF7:pú 0x3BF8:jǐn 0x3BF9:biǎo 0x3BFA:jiàn 0x3BFB:gǔn 0x3BFE:zāo 0x3BFF:liè,là 0x3C00:lí 0x3C01:luǒ 0x3C02:shěn 0x3C03:mián,miàn 0x3C04:jiàn 0x3C05:dí,zhé 0x3C06:bèi 0x3C08:liǎn 0x3C0A:xián 0x3C0B:pín 0x3C0C:què 0x3C0D:lóng 0x3C0E:zuì 0x3C10:jué 0x3C11:shān 0x3C12:xué 0x3C14:xiè 0x3C16:lǎn 0x3C17:qí 0x3C18:yí 0x3C19:nuó 0x3C1A:lí 0x3C1B:yuè 0x3C1D:yǐ 0x3C1E:chī 0x3C1F:jì,qì 0x3C20:hāng 0x3C21:xiè 0x3C22:kēng 0x3C23:zī 0x3C24:hē,qiè 0x3C25:xì,huì 0x3C26:qù 0x3C27:hāi 0x3C28:xiā 0x3C29:hāi 0x3C2A:guī 0x3C2B:chān 0x3C2C:xún 0x3C2D:xū 0x3C2E:shèn 0x3C2F:kòu,tòu,tǒu,hòu 0x3C30:xiā,qiè,hē 0x3C31:shà 0x3C32:yū,xù 0x3C33:yà,yā 0x3C34:pǒu 0x3C35:zú 0x3C36:yǒu,ǒu 0x3C37:zì 0x3C38:liǎn 0x3C39:xiān,xiàn,hǎn 0x3C3A:xià,xiá 0x3C3B:yǐ,xī,hòu 0x3C3C:shà,qiè 0x3C3D:yàn 0x3C3E:jiào 0x3C3F:xī 0x3C40:chǐ 0x3C41:shì,kuǎn 0x3C42:kāng 0x3C43:yǐn 0x3C44:hēi,mò 0x3C45:yì 0x3C46:xī 0x3C47:sè,xì 0x3C48:jìn 0x3C49:yè 0x3C4A:yōu 0x3C4B:què 0x3C4C:yé,chè 0x3C4D:luán 0x3C4E:kūn 0x3C4F:zhèng 0x3C54:xiē 0x3C56:cuì 0x3C57:xiū 0x3C58:àn 0x3C59:xiǔ,guǎ 0x3C5A:cán 0x3C5B:chuǎn,bù 0x3C5C:zhá 0x3C5E:yì,lā 0x3C5F:pī,pǐ 0x3C60:kū,gū 0x3C61:shēng 0x3C62:láng 0x3C63:tuǐ 0x3C64:xī 0x3C65:líng,lèng 0x3C66:qī 0x3C67:wò,yuǎn 0x3C68:liàn 0x3C69:dú 0x3C6A:mèn 0x3C6B:làn 0x3C6C:wěi 0x3C6D:duàn 0x3C6E:kuài 0x3C6F:ái 0x3C70:zǎi 0x3C71:huì 0x3C72:yì 0x3C73:mò 0x3C74:zì 0x3C75:fèn 0x3C76:péng,bēng 0x3C78:bì 0x3C79:lì 0x3C7A:lú 0x3C7B:luò 0x3C7C:hāi 0x3C7D:zhěn,qín 0x3C7E:gāi,kāi 0x3C7F:què,hù,qiǎng 0x3C80:zhēn,chēn 0x3C81:kōng,zhōng 0x3C82:chéng 0x3C83:jiù 0x3C84:jué,kū 0x3C85:jì 0x3C86:líng 0x3C88:sháo,táo 0x3C89:què 0x3C8A:ruì 0x3C8B:chuò 0x3C8C:nèng 0x3C8D:zhī 0x3C8E:lóu 0x3C8F:pāo 0x3C92:bào,qú 0x3C93:róng,shù 0x3C94:xiān 0x3C95:lèi 0x3C96:xiāo 0x3C97:fū 0x3C98:qú 0x3C9A:shā 0x3C9B:zhǐ 0x3C9C:tán 0x3C9D:rǒng 0x3C9E:sū,zú 0x3C9F:yǐng 0x3CA0:máo 0x3CA1:nài 0x3CA2:biàn 0x3CA4:shuāi 0x3CA5:táng 0x3CA6:hàn 0x3CA7:sào 0x3CA8:róng 0x3CAA:dēng 0x3CAB:pú 0x3CAC:jiāo 0x3CAD:tǎn 0x3CAF:rán 0x3CB0:níng 0x3CB1:liè 0x3CB2:dié 0x3CB3:dié,zhì 0x3CB4:zhòng 0x3CB6:lǜ 0x3CB7:dàn 0x3CB8:xī 0x3CB9:guǐ 0x3CBA:jí 0x3CBB:nì 0x3CBC:yì,chà 0x3CBD:niàn,rěn 0x3CBE:yǔ 0x3CBF:wǎng 0x3CC0:guò 0x3CC1:zè 0x3CC2:yán,yàn 0x3CC3:cuì 0x3CC4:xián 0x3CC5:jiǎo 0x3CC6:tǒu 0x3CC7:fù 0x3CC8:pèi 0x3CCA:yōu,zhōng 0x3CCB:qiū 0x3CCC:yā 0x3CCD:bù 0x3CCE:biàn 0x3CCF:shì 0x3CD0:zhá 0x3CD1:yì 0x3CD2:biàn 0x3CD4:duì 0x3CD5:lán 0x3CD6:yī 0x3CD7:chài,chà 0x3CD8:chōng 0x3CD9:xuàn 0x3CDA:xù 0x3CDB:yú,yóu 0x3CDC:xiū 0x3CE0:tà 0x3CE1:guō 0x3CE5:lòng 0x3CE6:xiè 0x3CE7:chè,rè 0x3CE8:jiǎn 0x3CE9:tān 0x3CEA:pì 0x3CEB:zǎn 0x3CEC:xuán 0x3CED:xián 0x3CEE:niào 0x3CF4:mì 0x3CF5:jì 0x3CF6:nǒu,rǔ 0x3CF7:hū,mǐn,wěn,tuì 0x3CF8:huā 0x3CF9:wǎng,wāng 0x3CFA:yóu 0x3CFB:zé 0x3CFC:bì,yù 0x3CFD:mǐ 0x3CFE:qiāng 0x3CFF:xiè 0x3D00:fàn,fān 0x3D01:yì 0x3D02:tān 0x3D03:lèi 0x3D04:yǒng 0x3D06:jìn 0x3D07:shè,máng 0x3D08:yìn 0x3D09:jǐ 0x3D0B:sù 0x3D0E:nài 0x3D0F:wǎng 0x3D10:miàn,miǎn 0x3D11:sù 0x3D12:yì 0x3D13:shāi 0x3D14:xī,yì,sè 0x3D15:jí 0x3D16:luò 0x3D17:yōu 0x3D18:mào 0x3D19:zhǎ,zhá 0x3D1A:suì 0x3D1B:zhì 0x3D1C:biàn 0x3D1D:lí 0x3D25:qiào 0x3D26:guàn 0x3D27:xī 0x3D28:zhèn 0x3D29:yōng 0x3D2A:niè 0x3D2B:jùn,yá 0x3D2C:xiè 0x3D2D:yǎo 0x3D2E:xiè 0x3D2F:zhī 0x3D30:néng 0x3D32:sī 0x3D33:lǒng 0x3D34:chén 0x3D35:mì 0x3D36:què,hú 0x3D37:dān 0x3D38:shǎn 0x3D3C:sù 0x3D3D:xiè 0x3D3E:bó 0x3D3F:dǐng 0x3D40:zú 0x3D42:shù 0x3D43:shé 0x3D44:hàn,yù 0x3D45:tān,tàn 0x3D46:gǎo 0x3D4A:nà 0x3D4B:mì 0x3D4C:xún 0x3D4D:mèn 0x3D4E:jiàn 0x3D4F:cuǐ 0x3D50:jué 0x3D51:hè 0x3D52:fèi,pài,bì 0x3D53:shí 0x3D54:chě 0x3D55:shèn 0x3D56:nǜ 0x3D57:píng 0x3D58:màn 0x3D5D:yì 0x3D5E:chóu 0x3D60:kū 0x3D61:báo 0x3D62:léi 0x3D63:kě 0x3D64:shà 0x3D65:bì 0x3D66:suí 0x3D67:gé,yì 0x3D68:pì,bó 0x3D69:yì 0x3D6A:xián,yàn,yán 0x3D6B:nì 0x3D6C:yíng 0x3D6D:zhǔ 0x3D6E:chún 0x3D6F:féng 0x3D70:xù 0x3D71:piǎo 0x3D72:wǔ 0x3D73:liáo 0x3D74:cáng 0x3D75:zòu,jù 0x3D76:zuō 0x3D77:biàn 0x3D78:yào 0x3D79:huán,mò 0x3D7A:pài 0x3D7B:xiū 0x3D7D:lěi 0x3D7E:qìng,jìng 0x3D7F:xiào 0x3D80:jiāo 0x3D81:guó,huò 0x3D84:yán 0x3D85:xué 0x3D86:zhū,chú 0x3D87:héng 0x3D88:yíng 0x3D89:xī 0x3D8C:lián 0x3D8D:xiǎn 0x3D8E:huán 0x3D8F:yīn 0x3D91:liàn 0x3D92:shǎn,shěn,tàn 0x3D93:cáng 0x3D94:bèi 0x3D95:jiǎn 0x3D96:shù 0x3D97:fàn,fán 0x3D98:diàn 0x3D9A:bà 0x3D9B:yú 0x3D9E:nǎng 0x3D9F:lěi 0x3DA0:yì 0x3DA1:dài,huǒ 0x3DA3:chán,yín 0x3DA4:chǎo 0x3DA5:gān 0x3DA6:jìn 0x3DA7:nèn 0x3DAB:liǎo 0x3DAC:mò 0x3DAD:yǒu 0x3DAF:liù 0x3DB0:hán 0x3DB2:yòng 0x3DB3:jìn 0x3DB4:chǐ 0x3DB5:rèn 0x3DB6:nóng 0x3DB9:hòng 0x3DBA:tiàn 0x3DBC:āi,xī 0x3DBD:guā 0x3DBE:biāo 0x3DBF:bó 0x3DC0:qióng 0x3DC2:shù 0x3DC3:chuǐ 0x3DC4:huǐ 0x3DC5:chǎo 0x3DC6:fù 0x3DC7:huī,guài 0x3DC8:è 0x3DC9:wèi 0x3DCA:fén 0x3DCB:tán 0x3DCD:lún 0x3DCE:hè 0x3DCF:yǒng 0x3DD0:huǐ 0x3DD2:yú 0x3DD3:zǒng 0x3DD4:yàn 0x3DD5:qiú 0x3DD6:zhào 0x3DD7:jiǒng 0x3DD8:tái 0x3DDF:tuì 0x3DE0:lín 0x3DE1:jiǒng 0x3DE2:zhǎ 0x3DE3:xīng 0x3DE4:hù,xuè 0x3DE6:xù 0x3DEA:cuì 0x3DEB:qǐng 0x3DEC:mò 0x3DEE:zāo 0x3DEF:bèng 0x3DF0:chī,lí 0x3DF3:yàn 0x3DF4:gé 0x3DF5:mò 0x3DF6:bèi 0x3DF7:juǎn 0x3DF8:dié 0x3DF9:zhào,shào 0x3DFB:wú 0x3DFC:yàn 0x3DFE:jué 0x3DFF:xiān 0x3E00:tái 0x3E01:hǎn 0x3E03:diǎn 0x3E04:jì 0x3E05:jié,jí 0x3E06:kào 0x3E07:zuǎn 0x3E09:xiè 0x3E0A:lài,là 0x3E0B:fán 0x3E0C:huò 0x3E0D:xì 0x3E0E:niè 0x3E0F:mí 0x3E10:rán 0x3E11:cuàn 0x3E12:yín,jīng 0x3E13:mì 0x3E15:jué 0x3E16:qū 0x3E17:tóng 0x3E18:wàn 0x3E19:zhē 0x3E1A:lǐ,lì 0x3E1B:sháo 0x3E1C:kòng 0x3E1D:xiān,kǎn 0x3E1E:zhé 0x3E1F:zhī 0x3E20:tiǎo 0x3E21:shū 0x3E22:bèi 0x3E23:yè 0x3E24:piàn 0x3E25:chàn 0x3E26:hù,jià 0x3E27:kèn 0x3E28:jiū 0x3E29:ān 0x3E2A:chún 0x3E2B:qián 0x3E2C:bèi 0x3E2D:bā 0x3E2E:fén 0x3E2F:kē 0x3E30:tuó 0x3E31:tuó 0x3E32:zuó 0x3E33:líng 0x3E35:guǐ 0x3E36:yān 0x3E37:shì 0x3E38:hǒu,ǒu,kǒu 0x3E39:liè,luō 0x3E3A:shā 0x3E3B:sì 0x3E3D:bèi 0x3E3E:rèn 0x3E3F:dú 0x3E40:bó 0x3E41:liáng 0x3E42:qiǎn 0x3E43:fèi 0x3E44:jì 0x3E45:zǒng 0x3E46:huī 0x3E47:hé,jiān 0x3E48:lí 0x3E49:yuán,wán 0x3E4A:yuè 0x3E4B:xiū 0x3E4C:chǎn,shèng 0x3E4D:dí 0x3E4E:léi 0x3E4F:jǐn 0x3E50:chóng 0x3E51:sì 0x3E52:pǔ 0x3E53:yǎo 0x3E54:jiāng 0x3E55:huān 0x3E56:huàn 0x3E57:tāo 0x3E58:rù 0x3E59:wěng 0x3E5A:yíng 0x3E5B:ráo 0x3E5C:yín 0x3E5D:shì 0x3E5E:yín,yǐn,yá 0x3E5F:jué,kuài 0x3E60:tún 0x3E61:xuán 0x3E62:jiā,gā 0x3E63:zhōng 0x3E64:qiè 0x3E65:zhù 0x3E66:diāo 0x3E68:yòu 0x3E6B:yí 0x3E6C:shǐ 0x3E6D:yì 0x3E6E:mò 0x3E71:què 0x3E72:xiāo,xiào 0x3E73:wú 0x3E74:gēng 0x3E75:yǐng 0x3E76:tíng 0x3E77:shǐ 0x3E78:ní 0x3E79:gēng 0x3E7A:tà 0x3E7B:wō,wēi 0x3E7C:jú 0x3E7D:chǎn 0x3E7E:piǎo,jiào 0x3E7F:zhuó,zhào 0x3E80:hū,náo 0x3E81:nǎo 0x3E82:yán,gǎn 0x3E83:gǒu 0x3E84:yǔ,yú 0x3E85:hóu 0x3E87:sī 0x3E88:chī 0x3E89:hù 0x3E8A:yàng 0x3E8B:wēng 0x3E8C:xiàn 0x3E8D:pín 0x3E8E:róng 0x3E8F:lóu 0x3E90:lǎo,sāo 0x3E91:shān,shàn,sāo,shǎn 0x3E92:xiāo,nǎo,qiāo,xiào 0x3E93:zé 0x3E94:hài,huī 0x3E95:fán,biàn 0x3E96:hǎn 0x3E97:chān 0x3E98:zhàn 0x3E9A:tǎ 0x3E9B:zhù 0x3E9C:nóng 0x3E9D:hàn 0x3E9E:yú 0x3E9F:zhuó 0x3EA0:yòu 0x3EA1:lì 0x3EA2:huò,huō 0x3EA3:xī 0x3EA4:xiān 0x3EA5:chán 0x3EA6:lián 0x3EA8:sī 0x3EA9:jiù,qiú 0x3EAA:pú 0x3EAB:qiú 0x3EAC:gǒng 0x3EAD:zǐ 0x3EAE:yú 0x3EB1:réng 0x3EB2:niǔ 0x3EB3:méi 0x3EB4:bā 0x3EB5:jiú 0x3EB7:xù 0x3EB8:píng 0x3EB9:biàn 0x3EBA:mào 0x3EBF:yí 0x3EC0:yú 0x3EC2:píng 0x3EC3:qū 0x3EC4:bǎo 0x3EC5:huì 0x3EC9:bù 0x3ECA:máng 0x3ECB:là 0x3ECC:tú 0x3ECD:wú 0x3ECE:lì 0x3ECF:líng 0x3ED1:jì 0x3ED2:jùn 0x3ED3:zōu 0x3ED4:duǒ 0x3ED5:jué 0x3ED6:dài 0x3ED7:bèi 0x3EDD:là 0x3EDE:bīn,bān 0x3EDF:suí 0x3EE0:tú 0x3EE1:xuē,dié 0x3EE7:duò 0x3EEA:suì 0x3EEB:bì 0x3EEC:tū 0x3EED:sè 0x3EEE:càn 0x3EEF:tú 0x3EF0:miǎn 0x3EF1:jīn 0x3EF2:lǚ 0x3EF5:zhàn 0x3EF6:bǐ 0x3EF7:jí 0x3EF8:zēn 0x3EF9:xuān 0x3EFA:lì 0x3EFD:suì,xuán 0x3EFE:yōng 0x3EFF:shǔ 0x3F02:é 0x3F07:qióng 0x3F08:luó 0x3F09:zhèn 0x3F0A:tún 0x3F0B:gū,rǔ 0x3F0C:yǔ 0x3F0D:lěi 0x3F0E:bó 0x3F0F:něi 0x3F10:pián 0x3F11:liàn 0x3F12:tǎng 0x3F13:lián 0x3F14:wēn 0x3F15:dāng 0x3F16:lì 0x3F17:tíng 0x3F18:wǎ 0x3F19:zhòu 0x3F1A:gāng 0x3F1B:xíng 0x3F1C:àng 0x3F1D:fàn 0x3F1E:pèng,bèng 0x3F1F:bó 0x3F20:tuó 0x3F21:shū 0x3F22:yí 0x3F23:bó 0x3F24:qiè 0x3F25:tǒu,kǎo 0x3F26:gǒng 0x3F27:tóng 0x3F28:hán 0x3F29:chéng,shèng 0x3F2A:jié 0x3F2B:huàn,huà 0x3F2C:xìng 0x3F2D:diàn 0x3F2E:chāi,qì 0x3F2F:dòng 0x3F30:pí 0x3F31:ruǎn,jùn 0x3F32:liè 0x3F33:shěng 0x3F34:ǒu 0x3F35:dì 0x3F36:yú 0x3F37:chuán,zhuān 0x3F38:róng 0x3F39:kāng,huāng 0x3F3A:táng 0x3F3B:cóng 0x3F3C:piáo 0x3F3D:chuǎng,shuǎng 0x3F3E:lù 0x3F3F:tóng,zhòng 0x3F40:zhèng 0x3F41:lì 0x3F42:sà 0x3F43:pān 0x3F44:sī 0x3F46:dāng 0x3F47:hú 0x3F48:yì 0x3F49:xiàn 0x3F4A:xiè 0x3F4B:luó 0x3F4C:liù 0x3F4E:tán,xīn 0x3F4F:gàn 0x3F51:tán 0x3F55:yóu 0x3F56:nán 0x3F58:gǎng 0x3F59:jùn 0x3F5A:chì 0x3F5B:gōu,qú 0x3F5C:wǎn 0x3F5D:lì 0x3F5E:liú 0x3F5F:liè 0x3F60:xiá 0x3F61:bēi 0x3F62:ǎn 0x3F63:yù 0x3F64:jú 0x3F65:róu 0x3F66:xún 0x3F67:zī 0x3F68:cuó 0x3F69:càn 0x3F6A:zěng 0x3F6B:yōng 0x3F6C:fù,pì 0x3F6D:ruǎn 0x3F6F:xí 0x3F70:shù 0x3F71:jiǎo,jiū,niú 0x3F72:jiǎo,xiǔ 0x3F73:xū 0x3F74:zhàng 0x3F77:shuì 0x3F78:chén 0x3F79:fǎn,fàn 0x3F7A:jí 0x3F7B:zhī 0x3F7D:gù 0x3F7E:wù 0x3F80:qiè,qǔ 0x3F81:shù 0x3F82:hāi 0x3F83:tuó 0x3F84:dú,chóu 0x3F85:zǐ 0x3F86:rán 0x3F87:mù 0x3F88:fù 0x3F89:líng 0x3F8A:jí,cì,sè 0x3F8B:xiū,xiù 0x3F8C:xuǎn 0x3F8D:nái 0x3F8E:yā,xiā 0x3F8F:jiè,yá 0x3F90:lì 0x3F91:dá,hè,da 0x3F92:rú,rù 0x3F93:yuān 0x3F94:lǚ 0x3F95:shěn 0x3F96:lǐ 0x3F97:liàng 0x3F98:gěng 0x3F99:xìn,xì 0x3F9A:xiē 0x3F9B:qǐn 0x3F9C:qiè 0x3F9D:chè 0x3F9E:yóu 0x3F9F:bù 0x3FA0:kuáng 0x3FA1:què 0x3FA2:ài 0x3FA3:qīn 0x3FA4:qiāng 0x3FA5:chù 0x3FA6:pèi,pēi 0x3FA7:kuò,luǒ 0x3FA8:yī,qǐ,ǎi 0x3FA9:guāi 0x3FAA:shěng 0x3FAB:piān 0x3FAD:zhòu 0x3FAE:huáng 0x3FAF:huī,tuí 0x3FB0:hú 0x3FB1:bèi 0x3FB4:zhā 0x3FB5:jì 0x3FB6:gǔ 0x3FB7:xī 0x3FB8:gǎo 0x3FB9:chái,zhài,chí 0x3FBA:mà 0x3FBB:zhù,chú 0x3FBC:tuǐ 0x3FBD:zhuì,tuí 0x3FBE:xiān,lián 0x3FBF:láng 0x3FC3:zhì,dài 0x3FC4:ài 0x3FC5:xiǎn 0x3FC6:guō 0x3FC7:xí,xì 0x3FC9:tuǐ 0x3FCA:cǎn 0x3FCB:sào 0x3FCC:xiān 0x3FCD:jiè 0x3FCE:fèn,fén 0x3FCF:qún 0x3FD1:yào 0x3FD2:dǎo,zhòu,chóu 0x3FD3:jiá 0x3FD4:lěi 0x3FD5:yán 0x3FD6:lú,lù 0x3FD7:tuí 0x3FD8:yíng 0x3FD9:pì 0x3FDA:luò 0x3FDB:lì 0x3FDC:biě 0x3FDE:mào 0x3FDF:bái 0x3FE0:huàng 0x3FE2:yào 0x3FE3:hē 0x3FE4:chǔn 0x3FE5:hé 0x3FE6:nìng 0x3FE7:chóu 0x3FE8:lì 0x3FE9:tǎng 0x3FEA:huán 0x3FEB:bì 0x3FEC:bā 0x3FED:chè,lè 0x3FEE:yàng 0x3FEF:dá 0x3FF0:áo,bì 0x3FF1:xué 0x3FF3:zī 0x3FF4:dā 0x3FF5:rǎn 0x3FF6:bāng 0x3FF7:cuó,cāo 0x3FF8:wǎn,mán 0x3FF9:tà 0x3FFA:báo 0x3FFB:gān 0x3FFC:yán 0x3FFD:xī 0x3FFE:zhù 0x3FFF:yǎ 0x4000:fàn 0x4001:yòu 0x4002:ān 0x4003:tuí 0x4004:méng 0x4005:shè 0x4006:jìn 0x4007:gǔ 0x4008:jì 0x4009:qiáo 0x400A:jiǎo 0x400B:yán 0x400C:xì 0x400D:kàn 0x400E:miǎn 0x400F:xuàn,xún 0x4010:shān 0x4011:wò 0x4012:qiān 0x4013:huàn 0x4014:rèn 0x4015:zhèn 0x4016:tiān 0x4017:jué,xuè 0x4018:xié,jī 0x4019:qì 0x401A:áng 0x401B:mèi,wù,mà 0x401C:gǔ 0x401E:tāo 0x401F:fán 0x4020:jù 0x4021:chàn,diān,tàn 0x4022:shùn 0x4023:bì,mà 0x4024:mào 0x4025:shuò 0x4026:gǔ 0x4027:hǒng 0x4028:huà,guā 0x4029:luò 0x402A:háng 0x402B:jiá,tǔn 0x402C:quán 0x402D:gāi 0x402E:huāng 0x402F:bǔ 0x4030:gǔ 0x4031:fēng 0x4032:mù 0x4033:ài 0x4034:yǐng,yà,kēng 0x4035:shùn 0x4036:liàng,lǎng 0x4037:jié 0x4038:chì 0x4039:jié,zhǎ,shè,jiá,yà 0x403A:chōu,tāo 0x403B:pìng 0x403C:chēn,rèn 0x403D:yán 0x403E:dǔ 0x403F:dì 0x4041:liàng 0x4042:xiàn 0x4043:biāo 0x4044:xìng 0x4045:měng,mèng 0x4046:yè 0x4047:mì 0x4048:qì 0x4049:qì 0x404A:wò 0x404B:xiè,zhé 0x404C:yù 0x404D:qià,kān 0x404E:chéng,tíng,chēng 0x404F:yǎo 0x4050:yīng,yìng 0x4051:yáng 0x4052:jí,zí 0x4053:zōng,zǒng,jiè 0x4054:xuān,hàn 0x4055:mín 0x4056:lōu 0x4057:kǎi 0x4058:yǎo 0x4059:yǎn 0x405A:sǔn,qióng 0x405B:guì 0x405C:huàng,huǎng 0x405D:yíng,yǐng 0x405E:shěng 0x405F:chá 0x4060:lián 0x4062:xuán 0x4063:chuán 0x4064:chè,zhé,huǐ 0x4065:nì 0x4066:qù 0x4067:miáo 0x4068:huò 0x4069:yú 0x406A:zhǎn 0x406B:hú,méng 0x406C:céng 0x406D:biāo 0x406E:qián 0x406F:xī,xié 0x4070:jiǎng 0x4071:kōu 0x4072:mái 0x4073:mǎng 0x4074:zhǎn,shǎn 0x4075:biǎn,huán 0x4076:jī,jiǎo 0x4077:jué,wù 0x4078:náng,nǒng 0x4079:bì 0x407A:shì,yì 0x407B:shuò,lì 0x407C:mò 0x407D:liè 0x407E:miè 0x407F:mò 0x4080:xī 0x4081:chán 0x4082:qú 0x4083:jiào 0x4084:huò 0x4085:xiān 0x4086:xù 0x4087:niǔ 0x4088:tóng 0x4089:hóu 0x408A:yù 0x408C:chōng 0x408D:bó 0x408E:zuǎn,cuān 0x408F:diāo 0x4090:zhuō 0x4091:jī 0x4092:qià 0x4094:xìng 0x4095:huì 0x4096:shí 0x4097:kū 0x4099:duī 0x409A:yáo 0x409B:yú 0x409C:bàng 0x409D:jié 0x409E:zhè 0x409F:jiā 0x40A0:shǐ 0x40A1:dǐ 0x40A2:dǒng 0x40A3:cí 0x40A4:fù 0x40A5:mín 0x40A6:zhēn,zhěn 0x40A7:zhěn 0x40A9:yàn,qìng 0x40AA:qiǎo,diào 0x40AB:hāng,hóng 0x40AC:gǒng 0x40AD:qiāo 0x40AE:lüè 0x40AF:guài 0x40B0:là 0x40B1:ruì 0x40B2:fǎ 0x40B3:cuǒ,chǎ 0x40B4:yán 0x40B5:gōng 0x40B6:jié 0x40B7:guāi 0x40B8:guó 0x40B9:suǒ 0x40BA:wǒ,kē 0x40BB:zhèng 0x40BC:niè 0x40BD:diào 0x40BE:lǎi 0x40BF:tà 0x40C0:cuì 0x40C1:yā 0x40C2:gǔn 0x40C5:dī 0x40C7:mián 0x40C8:jiē 0x40C9:mín 0x40CA:jǔ 0x40CB:yú 0x40CC:zhēn,yīn 0x40CD:zhào 0x40CE:zhà,zhǎ 0x40CF:xīng 0x40D1:bān,pán 0x40D2:hé 0x40D3:gòu,gōu 0x40D4:hóng,qióng 0x40D5:láo,luò 0x40D6:wù 0x40D7:bō,zhuó 0x40D8:kēng 0x40D9:lù 0x40DA:cù,zú 0x40DB:lián 0x40DC:yī 0x40DD:qiào 0x40DE:shú 0x40E0:xuàn 0x40E1:jīn,qín 0x40E2:qīn 0x40E3:huǐ 0x40E4:sù 0x40E5:chuáng 0x40E6:dūn 0x40E7:lóng 0x40E9:náo 0x40EA:tán 0x40EB:dǎn 0x40EC:wěi,kuǐ,lěi 0x40ED:gǎn 0x40EE:dá 0x40EF:lì 0x40F0:cā 0x40F1:xiàn 0x40F2:pán 0x40F3:là,liè 0x40F4:zhū 0x40F5:niǎo 0x40F6:huái,guī,guài 0x40F7:yíng 0x40F8:xiàn,jīn 0x40F9:làn 0x40FA:mó 0x40FB:bà 0x40FD:guǐ,zhī,fú 0x40FE:bǐ 0x40FF:fū 0x4100:huò 0x4101:yì 0x4102:liù 0x4104:yīn 0x4105:juàn 0x4106:huó,huàn 0x4107:chéng 0x4108:dòu,xiáng 0x4109:é 0x410B:yǎn,yàn 0x410C:zhuì,chuò 0x410D:zhà 0x410E:qǐ 0x410F:yú 0x4110:quàn 0x4111:huó 0x4112:niè 0x4113:huáng 0x4114:jǔ 0x4115:shè 0x4118:péng 0x4119:míng 0x411A:cáo 0x411B:lóu 0x411C:lí,chī 0x411D:chuāng 0x411F:cuī 0x4120:shàn 0x4121:dān 0x4122:qí 0x4124:lài,lǎn 0x4125:líng 0x4126:liǎo 0x4127:réng 0x4128:yú 0x4129:yì 0x412A:diǎo 0x412B:qǐ 0x412C:yí 0x412D:nián 0x412E:fū 0x412F:jiǎn 0x4130:yá 0x4131:fāng 0x4132:ruì 0x4133:xiān 0x4136:bì,bó 0x4137:shí 0x4138:pò 0x4139:nián 0x413A:zhì,tí 0x413B:táo,cháo,tiāo 0x413C:tiǎn 0x413D:tiǎn 0x413E:rù,rǒng 0x413F:yì 0x4140:liè 0x4141:àn 0x4142:hé 0x4143:qióng,jiòng 0x4144:lì 0x4145:guī,wā 0x4146:zì 0x4147:sù 0x4148:yuàn 0x4149:yà 0x414A:chá 0x414B:wǎn 0x414C:juān 0x414D:tǐng 0x414E:yǒu 0x414F:huì 0x4150:jiǎn 0x4151:ruí 0x4152:máng 0x4153:jǔ 0x4154:zī 0x4155:jū 0x4156:ān,ǎn,yān,yǎn,yè 0x4157:suì 0x4158:lái 0x4159:hùn 0x415A:quǎn 0x415B:chāng 0x415C:duò,chuí,tuǒ 0x415D:kōng 0x415E:nè 0x415F:cǎn 0x4160:tí 0x4161:xǔ 0x4162:jiù 0x4163:huáng 0x4164:qì 0x4165:jié,gé 0x4166:máo 0x4167:yān,yìn 0x4169:zhǐ,qí 0x416A:tuí 0x416C:ài 0x416D:páng 0x416E:càng 0x416F:táng 0x4170:ěn 0x4171:hùn 0x4172:qí 0x4173:chú,zōu 0x4174:suǒ 0x4175:zhuó 0x4176:nòu 0x4177:tú,chú 0x4178:shēn,zú 0x4179:lǒu 0x417A:biāo,miǎo 0x417B:lí 0x417C:mán,màn 0x417D:xīn,gǔ 0x417E:cén,qián 0x417F:huá,huáng 0x4180:měi 0x4181:gāo 0x4182:lián 0x4183:dào 0x4184:zhǎn 0x4185:zī 0x4188:zhì 0x4189:bà 0x418A:cuì,mèi 0x418B:qiū 0x418D:lóng 0x418E:xiān 0x418F:fèi,fèn 0x4190:guó 0x4191:chéng 0x4192:jiù 0x4193:è,ruǎn 0x4194:chōng 0x4195:yuè 0x4196:hóng 0x4197:yǎo 0x4198:yā,zā 0x4199:yáo 0x419A:tóng,dòng 0x419B:zhà 0x419C:yòu 0x419D:xuè,zhú 0x419E:yǎo 0x419F:kè,āo 0x41A0:huàn 0x41A1:láng 0x41A2:yuè 0x41A3:chén 0x41A6:shèn 0x41A8:níng 0x41A9:míng 0x41AA:hōng 0x41AB:chuāng 0x41AC:yǔn 0x41AD:xuān 0x41AE:jìn 0x41AF:zhuó 0x41B0:yū 0x41B1:tān 0x41B2:kāng 0x41B3:qióng 0x41B5:chéng 0x41B6:jiū 0x41B7:xuè 0x41B8:zhēng 0x41B9:chōng,tǒng 0x41BA:pān 0x41BB:qiào 0x41BD:qú 0x41BE:lán,làn 0x41BF:yì 0x41C0:róng 0x41C1:sī 0x41C2:qiān 0x41C3:sì 0x41C5:fá 0x41C7:méng 0x41C8:huà 0x41CB:hài 0x41CC:qiào 0x41CD:chù,qì 0x41CE:què 0x41CF:duì 0x41D0:lì 0x41D1:bà,pī 0x41D2:jiè 0x41D3:xū 0x41D4:luò,nuò 0x41D6:yǔn 0x41D7:zhōng 0x41D8:hù 0x41D9:yǐn 0x41DB:zhǐ 0x41DC:qiǎn,qiàn 0x41DE:gān,gǎn 0x41DF:jiàn 0x41E0:zhù 0x41E1:zhù 0x41E2:kǔ,gù 0x41E3:niè 0x41E4:ruì 0x41E5:zé 0x41E6:ǎng,yīng 0x41E7:zhì,jī 0x41E8:gòng,xiáng 0x41E9:yì,yè 0x41EA:chī 0x41EB:jī 0x41EC:zhū,shū,chuǎng 0x41ED:lǎo 0x41EE:rèn 0x41EF:róng 0x41F0:zhēng 0x41F1:nà 0x41F2:cè,jiā 0x41F5:yí 0x41F6:jué,wò 0x41F7:bié 0x41F8:chéng,tīng 0x41F9:jùn 0x41FA:dòu 0x41FB:wěi 0x41FC:yì 0x41FD:zhé,zhì 0x41FE:yán 0x4200:sān 0x4201:lún 0x4202:píng 0x4203:zhǎo 0x4204:hán 0x4205:yù 0x4206:dài 0x4207:zhào 0x4208:féi,bā 0x4209:shà,qiè 0x420A:líng 0x420B:tà 0x420C:qū 0x420D:máng,méng 0x420E:yè 0x420F:báo,fú 0x4210:guì 0x4211:guǎ 0x4212:nǎn,lǎn 0x4213:gé,qià 0x4215:shí,tí,jī,yí 0x4216:kē 0x4217:suǒ 0x4218:cí 0x4219:zhòu 0x421A:tái 0x421B:kuài 0x421C:qìn 0x421D:xū 0x421E:dǔ 0x421F:cè,zhá 0x4220:huǎn,yuàn 0x4221:cōng,sōng 0x4222:sǎi,xǐ 0x4223:zhèng 0x4224:qián 0x4225:jīn 0x4226:zōng 0x4227:wěi 0x422A:xì 0x422B:nà 0x422C:pú 0x422D:sōu,huái 0x422E:jù 0x422F:zhēn 0x4230:shāo 0x4231:tāo 0x4232:bān,pán 0x4233:tà 0x4234:qiàn 0x4235:wēng 0x4236:róng 0x4237:luò 0x4238:hú 0x4239:sǒu 0x423A:zhōng 0x423B:pú 0x423C:miè,mì 0x423D:jīn 0x423E:shāo,shuò 0x423F:mì 0x4240:shù 0x4241:líng 0x4242:lěi 0x4243:jiǎng 0x4244:léng 0x4245:zhì 0x4246:diǎo 0x4248:sǎn 0x4249:gū,hú 0x424A:fàn 0x424B:mèi 0x424C:suì 0x424D:jiǎn 0x424E:táng 0x424F:xiè 0x4250:kū 0x4251:wú 0x4252:fán 0x4253:luò 0x4254:cān 0x4255:céng 0x4256:líng 0x4257:yī 0x4258:cóng 0x4259:yún 0x425A:méng 0x425B:yù,ǎo 0x425C:zhì 0x425D:yǐ 0x425E:dǎn 0x425F:huò 0x4260:wéi 0x4261:tán 0x4262:sè 0x4263:xiè 0x4264:sǒu 0x4265:sǒng 0x4266:qiān 0x4267:liú,liǔ 0x4268:yì 0x426A:lèi 0x426B:lí 0x426C:fèi 0x426D:liè 0x426E:lìn 0x426F:xiàn 0x4270:xiào,jiǎo 0x4271:ōu 0x4272:mí 0x4273:xiān,xiǎn 0x4274:ráng 0x4275:zhuàn,zuǎn 0x4276:shuāng 0x4277:yán 0x4278:biàn 0x4279:líng 0x427A:hóng 0x427B:qí 0x427C:liào 0x427D:bǎn 0x427E:bì 0x427F:hú 0x4280:hú 0x4282:cè,sè 0x4283:pèi 0x4284:qióng 0x4285:míng 0x4286:jiù,qiǔ 0x4287:bù 0x4288:méi 0x4289:sǎn 0x428A:wèi 0x428D:lí 0x428E:quǎn,qún 0x4290:hún 0x4291:xiǎng 0x4293:shì 0x4294:yíng 0x4296:nǎn 0x4297:huáng 0x4298:jiù 0x4299:yān 0x429B:sà 0x429C:tuán 0x429D:xiè 0x429E:zhé,chè 0x429F:mén 0x42A0:xì 0x42A1:mán 0x42A3:huáng 0x42A4:tán,dàn 0x42A5:xiào 0x42A6:yè 0x42A7:bì 0x42A8:luó 0x42A9:fán 0x42AA:lì 0x42AB:cuǐ 0x42AC:chuā 0x42AD:dào,chóu 0x42AE:dí 0x42AF:kuàng 0x42B0:chú 0x42B1:xiān 0x42B2:chàn,chǎn 0x42B3:mí,mó 0x42B4:qiàn 0x42B5:qiú 0x42B6:zhèn 0x42BA:hù 0x42BB:gān 0x42BC:chǐ 0x42BD:guài,jué 0x42BE:mù 0x42BF:bó 0x42C0:huà 0x42C1:gěng 0x42C2:yáo 0x42C3:mào 0x42C4:wǎng 0x42C8:rú,nǎ 0x42C9:xué 0x42CA:zhēng 0x42CB:mín 0x42CC:jiǎng 0x42CE:zhàn 0x42CF:zuó,zhà 0x42D0:yuè 0x42D1:liè 0x42D3:zhòu 0x42D4:bì 0x42D5:rèn 0x42D6:yù 0x42D8:chuò 0x42D9:ěr 0x42DA:yì 0x42DB:mǐ 0x42DC:qìng 0x42DE:wǎng 0x42DF:jì 0x42E0:bǔ 0x42E2:biē 0x42E3:fán,pó 0x42E4:yuè 0x42E5:lí 0x42E6:fán 0x42E7:qú 0x42E8:fǔ 0x42E9:ér 0x42EA:ē 0x42EB:zhēng 0x42EC:tiān 0x42ED:yù 0x42EE:jìn 0x42EF:qǐ 0x42F0:jú 0x42F1:lái 0x42F2:chě 0x42F3:běi 0x42F4:niù 0x42F5:yì,yè 0x42F6:xǔ,xié 0x42F7:móu 0x42F8:xún 0x42F9:fú 0x42FB:nín 0x42FC:tīng,yíng 0x42FD:běng 0x42FE:zhǎ,nà 0x42FF:wēi 0x4300:kē 0x4301:yāo 0x4302:òu 0x4303:xiāo,shuò 0x4304:gěng 0x4305:táng 0x4306:guì 0x4307:huì 0x4308:tā,tà 0x430A:yáo 0x430B:dā 0x430C:qì 0x430D:jǐn 0x430E:lüè 0x430F:mì 0x4310:mì 0x4311:jiān 0x4312:lù 0x4313:fán 0x4314:ōu 0x4315:mí 0x4316:jié 0x4317:fǔ 0x4318:biè,bì 0x4319:huàng 0x431A:sū 0x431B:yáo 0x431C:niè 0x431D:jīn,jìn 0x431E:liǎn 0x431F:bó,bì 0x4320:jiān 0x4321:tǐ 0x4322:líng 0x4323:zuǎn 0x4324:shī,zhǐ 0x4325:yǐn 0x4326:dào 0x4327:chóu 0x4328:cā,cài 0x4329:miè 0x432A:yǎn 0x432B:lǎn 0x432C:chóng 0x432D:jiāo 0x432E:shuāng 0x432F:quān,quán,guàn 0x4330:niè 0x4331:luò 0x4333:shī 0x4334:luò 0x4335:zhú 0x4337:chōu,chóu 0x4338:juàn 0x4339:jiǒng 0x433A:ěr 0x433B:yì 0x433C:ruì 0x433D:cǎi 0x433E:rén 0x433F:fú 0x4340:lán 0x4341:suì 0x4342:yú 0x4343:yóu 0x4344:diǎn 0x4345:líng 0x4346:zhù 0x4347:tà 0x4348:píng 0x4349:zhǎi 0x434A:jiāo 0x434B:chuí 0x434C:bù 0x434D:kòu 0x434E:cùn,xiǎn 0x4350:hǎn 0x4351:hǎn 0x4352:mǒu 0x4353:hù 0x4354:gōng 0x4355:dī,dǐ 0x4356:fú 0x4357:xuàn 0x4358:mí 0x4359:méi,mǒu 0x435A:làng 0x435B:gù 0x435C:zhào 0x435D:tà 0x435E:yù 0x435F:zòng 0x4360:lí 0x4361:lù 0x4362:wú 0x4363:léi 0x4364:jǐ 0x4365:lì 0x4366:lí 0x4368:pō,fèi 0x4369:yǎng 0x436A:wà 0x436B:tuó 0x436C:pēng 0x436E:zhào 0x436F:guǐ 0x4371:xú 0x4372:nái 0x4373:què,jué,chuò 0x4374:wěi 0x4375:zhēng 0x4376:dōng 0x4377:wěi 0x4378:bó 0x437A:huàn 0x437B:xuàn 0x437C:zān,cán 0x437D:lì 0x437E:yǎn 0x437F:huáng 0x4380:xuè 0x4381:hú 0x4382:bǎo 0x4383:rǎn 0x4384:xiāo,tiáo 0x4385:pò 0x4386:liào 0x4387:zhōu 0x4388:yì 0x4389:xù 0x438A:luò,pò 0x438B:kào 0x438C:chù 0x438E:nà 0x438F:hán 0x4390:chǎo 0x4391:lù 0x4392:zhǎn 0x4393:tà 0x4394:fū 0x4395:hōng 0x4396:zēng 0x4397:qiáo 0x4398:sù 0x4399:pīn 0x439A:guàn 0x439C:hūn 0x439D:chú 0x439F:ér 0x43A0:ér,nuò 0x43A1:ruǎn 0x43A2:qǐ 0x43A3:sì 0x43A4:jú 0x43A6:yǎn 0x43A7:bàng,póu 0x43A8:yè,àn 0x43A9:zī 0x43AA:nè 0x43AB:chuàng 0x43AC:bà 0x43AD:cāo 0x43AE:tì 0x43AF:hàn,hǎn 0x43B0:zuó 0x43B1:bà,bēi 0x43B2:zhé 0x43B3:wà 0x43B4:gēng,shèng 0x43B5:bì 0x43B6:èr 0x43B7:zhù 0x43B8:wù 0x43B9:wén 0x43BA:zhì 0x43BB:zhòu 0x43BC:lù 0x43BD:wén 0x43BE:gǔn 0x43BF:qiú 0x43C0:là 0x43C1:zǎi 0x43C2:sǒu 0x43C3:mián,míng 0x43C4:dǐ,zhì 0x43C5:qì 0x43C6:cáo 0x43C7:piào 0x43C8:lián,luán 0x43C9:shī 0x43CA:lóng 0x43CB:sù 0x43CC:qì,yì 0x43CD:yuàn,yuān 0x43CE:féng 0x43CF:xū 0x43D0:jué 0x43D1:dì 0x43D2:piàn,pàn 0x43D3:guǎn 0x43D4:niǔ,zhǒu,ròu,nǜ 0x43D5:rèn 0x43D6:zhèn,yǐn 0x43D7:gài 0x43D8:pì 0x43D9:tǎn,dàn,zhuàn 0x43DA:chǎo,miǎo 0x43DB:chǔn 0x43DC:hē 0x43DD:zhuān 0x43DE:mò 0x43DF:bié,bì 0x43E0:qì,lā 0x43E1:shì 0x43E2:bǐ 0x43E3:jué 0x43E4:sì 0x43E6:guā,tián 0x43E7:nà,ná,chǐ 0x43E8:huǐ,duī 0x43E9:xī 0x43EA:èr 0x43EB:xiū 0x43EC:móu 0x43EE:xí 0x43EF:zhì 0x43F0:rùn 0x43F1:jú 0x43F2:dié,tī 0x43F3:zhè 0x43F4:shào 0x43F5:měng,mǎng,máng 0x43F6:bì 0x43F7:hàn 0x43F8:yú 0x43F9:xiàn,chēn 0x43FA:pāng 0x43FB:néng 0x43FC:cán,zhàn 0x43FD:bù,péi 0x43FF:qǐ 0x4400:jì 0x4401:zhuó,dū 0x4402:lù 0x4403:jùn,zhūn 0x4404:xiàn,hàn 0x4405:xī 0x4406:cǎi 0x4407:wěn,chún 0x4408:zhí 0x4409:zì,nǎo 0x440A:kūn,hún,hùn 0x440B:cōng 0x440C:tiǎn 0x440D:chù 0x440E:dī 0x440F:chǔn,shǔn 0x4410:qiū 0x4411:zhé 0x4412:zhā 0x4413:róu 0x4414:bǐn,biàn 0x4415:jí 0x4416:xī 0x4417:zhū,dǔ 0x4418:jué 0x4419:gé 0x441A:jī 0x441B:dā 0x441C:chēn 0x441D:suò 0x441E:ruò 0x441F:xiǎng,gōu 0x4420:huǎng 0x4421:qí 0x4422:zhù,zhòu,chù 0x4423:sǔn 0x4424:chāi,cuó 0x4425:wěng 0x4426:kē 0x4427:kào,hè 0x4428:gǔ,què 0x4429:gāi,guī,kǎi 0x442A:fàn 0x442B:cōng 0x442C:cáo 0x442D:zhì,dì 0x442E:chǎn 0x442F:léi,lěi 0x4430:xiū 0x4431:zhài 0x4432:zhé 0x4433:yú 0x4434:guì 0x4435:gōng,huáng 0x4436:zān,jǐn,qián 0x4437:dān 0x4438:huò,guó 0x4439:sōu,sào,xiào 0x443A:tàn,tán 0x443B:gū 0x443C:xì 0x443D:mán 0x443E:duó 0x443F:ào,ǎo 0x4440:pì,pǐ 0x4441:wù 0x4442:ǎi 0x4443:méng 0x4444:pì,yì 0x4445:méng 0x4446:yǎng 0x4447:zhì 0x4448:bó 0x4449:yíng 0x444A:wéi,wèi 0x444B:rǎng 0x444C:lán,làn 0x444D:yān,yàn,yǐng 0x444E:chǎn 0x444F:quán,huān 0x4450:zhěn 0x4451:pú 0x4453:tái 0x4454:fèi 0x4455:shǔ 0x4457:dàng 0x4458:cuó 0x4459:tān,rán,tiàn 0x445A:tián 0x445B:chǐ 0x445C:tà,tiè 0x445D:jiǎ 0x445E:shùn 0x445F:huáng 0x4460:liǎo 0x4463:chēn 0x4464:jìn 0x4465:è,sà 0x4466:gōu 0x4467:fú 0x4468:duò 0x446A:è 0x446B:bēng 0x446C:tāo,yào,tiāo 0x446D:dì 0x446F:dì 0x4470:bù 0x4471:wǎn 0x4472:zhào 0x4473:lún 0x4474:qí 0x4475:mù 0x4476:qiàn 0x4478:zōng 0x4479:sōu,sāo 0x447B:yóu 0x447C:zhōu 0x447D:tà 0x447F:sù 0x4480:bù 0x4481:xí 0x4482:jiǎng 0x4483:cào 0x4484:fù 0x4485:téng 0x4486:chè 0x4487:fù 0x4488:fèi 0x4489:wǔ 0x448A:xī 0x448B:yǎng 0x448C:mìng 0x448D:pǎng 0x448E:mǎng 0x448F:sēng 0x4490:méng,mèng 0x4491:cǎo 0x4492:tiáo 0x4493:kǎi 0x4494:bài 0x4495:xiǎo 0x4496:xìn 0x4497:qì 0x449A:shǎo 0x449B:huàn 0x449C:niú 0x449D:xiáo 0x449E:chén,yín 0x449F:dān 0x44A0:fēng,xiá 0x44A1:yǐn 0x44A2:áng 0x44A3:rǎn 0x44A4:rì 0x44A5:mán 0x44A6:fàn 0x44A7:qū,qù 0x44A8:shǐ,sì 0x44A9:hé 0x44AA:biàn 0x44AB:dài 0x44AC:mò 0x44AD:děng 0x44B0:kuāng 0x44B2:chà 0x44B3:duǒ 0x44B4:yǒu 0x44B5:hào 0x44B7:guā 0x44B8:xuè 0x44B9:lèi 0x44BA:jǐn 0x44BB:qǐ 0x44BC:qū 0x44BD:wǎng 0x44BE:yī 0x44BF:liáo 0x44C2:yán 0x44C3:yì 0x44C4:yín 0x44C5:qí 0x44C6:zhé 0x44C7:xì,hè,kè 0x44C8:yì 0x44C9:yé,yē 0x44CA:wú,yú 0x44CB:zhī 0x44CC:zhì 0x44CD:hǎn 0x44CE:chuò 0x44CF:fū 0x44D0:chún 0x44D1:píng 0x44D2:kuǎi 0x44D3:chóu 0x44D5:tuǒ 0x44D6:qióng 0x44D7:cōng 0x44D8:gāo,jiù 0x44D9:kuā,guāi 0x44DA:qū,cú 0x44DB:qū 0x44DC:zhī 0x44DD:mèng 0x44DE:lì 0x44DF:zhōu,liè 0x44E0:tà 0x44E1:zhī 0x44E2:gù 0x44E3:liǎng 0x44E4:hū 0x44E5:là 0x44E6:diǎn 0x44E7:cì 0x44E8:yīng 0x44EB:qí 0x44EC:zhuó 0x44ED:chà 0x44EE:mào 0x44EF:dú 0x44F0:yīn 0x44F1:chái,zuī 0x44F2:ruì 0x44F3:hěn,xié 0x44F4:ruǎn 0x44F5:fū 0x44F6:lài 0x44F7:xìng 0x44F8:jiān 0x44F9:yì 0x44FA:měi 0x44FC:máng,hè 0x44FD:jì 0x44FE:suō 0x44FF:hàn 0x4501:lì 0x4502:zǐ,zǎi 0x4503:zǔ 0x4504:yáo,yào 0x4505:gē 0x4506:lí 0x4507:qǐ,ái 0x4508:gòng 0x4509:lì,suàn 0x450A:bīng 0x450B:suō 0x450E:sù 0x450F:chòu 0x4510:jiān 0x4511:xié,yé,tú 0x4512:bèi 0x4513:xǔ 0x4514:jìng 0x4515:pú 0x4516:líng 0x4517:xiáng 0x4518:zuò 0x4519:diào 0x451A:chún 0x451B:qǐng 0x451C:nán 0x451D:zhāi 0x451E:lǜ 0x451F:yí 0x4520:shǎo,shāo,shuò 0x4521:yú 0x4522:huá 0x4523:lí 0x4524:pā 0x4527:lí 0x452A:shuǎng 0x452C:yì 0x452D:nìng 0x452E:sī 0x452F:kù 0x4530:fù 0x4531:yī 0x4532:dēng,chéng 0x4533:rán 0x4534:cè,cuì,chuà 0x4536:tí,tái 0x4537:qín 0x4538:biǎo,biāo 0x4539:suì 0x453A:wéi,wěi 0x453B:dūn,duī 0x453C:sè,zé 0x453D:ài 0x453E:qì,è 0x453F:zǔn 0x4540:kuǎn 0x4541:fěi 0x4543:yìn 0x4545:sǎo 0x4546:dòu 0x4547:huì 0x4548:xiè 0x4549:zé 0x454A:tán 0x454B:táng 0x454C:zhì 0x454D:yì 0x454E:fú 0x454F:é 0x4551:jùn 0x4552:jiā 0x4553:chá,chuì 0x4554:xián 0x4555:màn 0x4557:bì 0x4558:líng,lǐng 0x4559:jié 0x455A:kuì 0x455B:jiá 0x455D:chēng 0x455E:làng 0x455F:xīng 0x4560:fèi 0x4561:lǘ 0x4562:zhǎ 0x4563:hé 0x4564:jī 0x4565:nǐ 0x4566:yíng 0x4567:xiào,jiǎo 0x4568:téng 0x4569:lǎo 0x456A:zé 0x456B:kuí 0x456D:qián,xián 0x456E:jú,qū 0x456F:piáo 0x4570:fán 0x4571:tóu 0x4572:lǐn 0x4573:mí 0x4574:zhuó 0x4575:xié 0x4576:hù 0x4577:mí 0x4578:jiē 0x4579:zá 0x457A:cóng 0x457B:lì 0x457C:rán 0x457D:zhú 0x457E:yín,yán 0x457F:hàn 0x4581:yì 0x4582:luán 0x4583:yuè,lǎ 0x4584:rán 0x4585:líng 0x4586:niàng 0x4587:yù 0x4588:nüè 0x458A:yì 0x458B:nüè 0x458C:yì 0x458D:qián 0x458E:xiá 0x458F:chǔ,chù 0x4590:yín 0x4591:mì 0x4592:xī 0x4593:nà 0x4594:kǎn,hàn 0x4595:zǔ 0x4596:xiá 0x4597:yán 0x4598:tú 0x4599:tī 0x459A:wū 0x459B:suǒ 0x459C:yín 0x459D:chóng 0x459E:zhǒu 0x459F:mǎng 0x45A0:yuán 0x45A1:nǜ 0x45A2:miáo 0x45A3:zǎo 0x45A4:wǎn 0x45A5:lí 0x45A6:qū,zhuō 0x45A7:nà 0x45A8:shí,zhì 0x45A9:bì 0x45AA:zī,cī 0x45AB:bàng 0x45AD:juàn,juān 0x45AE:xiǎng 0x45AF:kuí,wā 0x45B0:pài 0x45B1:kuāng 0x45B2:xún,zōng 0x45B3:zhà,zhé 0x45B4:yáo 0x45B5:kūn 0x45B6:huī 0x45B7:xī 0x45B8:é 0x45B9:yáng,mǐ 0x45BA:tiáo 0x45BB:yóu 0x45BC:jué 0x45BD:lí 0x45BF:lí 0x45C0:chēng 0x45C1:jì,qī 0x45C2:hǔ 0x45C3:zhàn 0x45C4:fǔ 0x45C5:cháng 0x45C6:guǎn,guān 0x45C7:jú,qū 0x45C8:méng 0x45C9:chāng 0x45CA:tàn 0x45CB:móu 0x45CC:xīng 0x45CD:lǐ,luó 0x45CE:yān 0x45CF:sōu 0x45D0:shī 0x45D1:yì 0x45D2:bìng 0x45D3:cōng 0x45D4:hóu,hòu 0x45D5:wǎn 0x45D6:dì 0x45D7:jī 0x45D8:gé 0x45D9:hán 0x45DA:bó 0x45DB:xiū 0x45DC:liú 0x45DD:cán 0x45DE:cán 0x45DF:yì 0x45E0:xuán 0x45E1:yán,yān 0x45E2:zǎo 0x45E3:hàn 0x45E4:yóng 0x45E5:zōng 0x45E7:kāng 0x45E8:yú 0x45E9:qī 0x45EA:zhè 0x45EB:má 0x45EE:shuǎng 0x45EF:jìn 0x45F0:guàn 0x45F1:pú,pù,pǔ 0x45F2:lìn 0x45F4:tíng 0x45F5:jiāng 0x45F6:là 0x45F7:yì 0x45F8:yōng 0x45F9:cì 0x45FA:yǎn,dàn 0x45FB:jié 0x45FC:xūn 0x45FD:wèi 0x45FE:xiǎn 0x45FF:níng,nǐng 0x4600:fù 0x4601:gé 0x4603:mò 0x4604:zhù 0x4605:nái 0x4606:xiǎn 0x4607:wén 0x4608:lì 0x4609:cán 0x460A:miè 0x460B:jiān 0x460C:nì 0x460D:chài 0x460E:wān 0x460F:xù 0x4610:nǜ 0x4611:mài 0x4612:zuī 0x4613:kàn 0x4614:kā 0x4615:háng 0x4618:yù,sù 0x4619:wèi 0x461A:zhú 0x461D:yì 0x461F:diāo 0x4620:fú 0x4621:bǐ 0x4622:zhǔ 0x4623:zǐ,zhì 0x4624:shù 0x4625:xiá,jiá 0x4626:ní,nǐ 0x4628:jiǎo 0x4629:xún,xuàn 0x462A:chōng 0x462B:nòu 0x462C:róng 0x462D:zhì 0x462E:sāng,sàng 0x4630:shān 0x4631:yù 0x4633:jīn 0x4635:lù 0x4636:hān,hàn 0x4637:biē 0x4638:yì 0x4639:zuì,cuì 0x463A:zhàn 0x463B:yù 0x463C:wǎn 0x463D:ní 0x463E:guǎn,guàn 0x463F:jué 0x4640:běng 0x4641:cán 0x4643:duò 0x4644:qì,zhǎ 0x4645:yāo,yào 0x4646:kuì 0x4647:ruán,nuǎn 0x4648:hóu 0x4649:xún 0x464A:xiè 0x464C:kuì 0x464E:xié,xì 0x464F:bó 0x4650:kè 0x4651:cuī 0x4652:xù 0x4653:bǎi 0x4654:ōu 0x4655:zǒng 0x4657:tì 0x4658:chǔ,zú 0x4659:chí 0x465A:niǎo 0x465B:guàn 0x465C:féng 0x465D:xiè 0x465E:dēng 0x465F:wéi 0x4660:jué 0x4661:kuì,huì 0x4662:zèng 0x4663:sà 0x4664:duǒ 0x4665:líng 0x4666:méng 0x4668:guǒ 0x4669:méng 0x466A:lóng 0x466C:yìng 0x466E:guàn 0x466F:cù 0x4670:lí 0x4671:dú 0x4673:biāo,è 0x4675:xī 0x4677:dé 0x4678:dé 0x4679:xiàn 0x467A:lián 0x467C:shào,jiāo 0x467D:xié 0x467E:shī 0x467F:wèi 0x4682:hè 0x4683:yóu 0x4684:lù 0x4685:lài,lái 0x4686:yǐng 0x4687:shěng 0x4688:juàn 0x4689:qì 0x468A:jiǎn 0x468B:yùn 0x468D:qì 0x468F:lìn 0x4690:jí 0x4691:mái 0x4692:chuáng,zhuàng 0x4693:niǎn 0x4694:bīn 0x4695:lì 0x4696:líng 0x4697:gāng 0x4698:chéng 0x4699:xuān,xī 0x469A:xiǎn 0x469B:hú 0x469C:bī,bēi 0x469D:zú 0x469E:dǎi 0x469F:dǎi 0x46A0:hùn,hún 0x46A1:sāi 0x46A2:chè 0x46A3:tí 0x46A5:nuò,ruò 0x46A6:zhì 0x46A7:liú 0x46A8:fèi 0x46A9:jiǎo,jiào,qiáo 0x46AA:guān 0x46AB:xí,áo 0x46AC:lín 0x46AD:xuān 0x46AE:réng 0x46AF:tǎo,xuān 0x46B0:pǐ,é 0x46B1:xìn 0x46B2:shàn 0x46B3:zhì 0x46B4:wà 0x46B5:tǒu 0x46B6:tiān 0x46B7:yī,yǐ,xì 0x46B8:xiè 0x46B9:pǐ 0x46BA:yáo 0x46BB:yáo,yóu 0x46BC:nǜ 0x46BD:hào 0x46BE:rén,nín 0x46BF:yìn,xī 0x46C0:fǎn,fàn,bàn 0x46C1:nán 0x46C2:yāo 0x46C3:wàn 0x46C4:yuǎn 0x46C5:xiá 0x46C6:zhòu 0x46C7:yuǎn 0x46C8:shì 0x46C9:miàn 0x46CA:xī,zhī 0x46CB:jì 0x46CC:táo,páo 0x46CD:fèi 0x46CE:xuè 0x46CF:ní,nǐ,nì 0x46D0:cí 0x46D1:mì 0x46D2:biàn 0x46D4:ná 0x46D5:yù 0x46D6:è 0x46D7:zhǐ 0x46D8:rén,nín 0x46D9:xù 0x46DA:lüè 0x46DB:huì 0x46DC:xùn 0x46DD:náo 0x46DE:hàn 0x46DF:jiá 0x46E0:dòu 0x46E1:huà 0x46E2:tū 0x46E3:pīng,chōu 0x46E4:cù 0x46E5:xī,xì,xīn 0x46E6:sòng 0x46E7:mí 0x46E8:xìn 0x46E9:wù,qià,è 0x46EA:qióng 0x46EB:zhāng,zhèng 0x46EC:táo 0x46ED:xìng 0x46EE:jiù 0x46EF:jù 0x46F0:hùn 0x46F1:tí 0x46F2:mán 0x46F3:yàn,yān 0x46F4:jī,qǐ 0x46F5:shòu 0x46F6:lěi 0x46F7:wǎn 0x46F8:chè 0x46F9:càn,xuàn 0x46FA:jiè 0x46FB:yòu 0x46FC:huǐ 0x46FD:zhǎ,chā,sà 0x46FE:sù 0x46FF:gé 0x4700:nǎo 0x4701:xì 0x4703:duī 0x4704:chí 0x4705:wéi,chuī 0x4706:zhé,niè,mò 0x4707:gǔn,gùn 0x4708:chāo,zhāo 0x4709:chī 0x470A:zāo,zào 0x470B:huì 0x470C:luán 0x470D:liáo 0x470E:láo,lào 0x470F:tuō 0x4710:huī 0x4711:wù 0x4712:ào 0x4713:shè 0x4714:suí 0x4715:mài,hài 0x4716:tàn 0x4717:xìn,hàn 0x4718:jǐng 0x4719:án,è 0x471A:tà 0x471B:chán 0x471C:wèi 0x471D:tuǎn 0x471E:jì 0x471F:chén 0x4720:chè 0x4721:yù 0x4722:xiǎn 0x4723:xīn 0x4727:nǎo 0x4729:yàn 0x472A:qiú 0x472B:jiāng,hóng 0x472C:sǒng 0x472D:jùn,ruì 0x472E:liáo,láo 0x472F:jú 0x4731:mǎn 0x4732:liè 0x4734:chù,shì 0x4735:chǐ 0x4736:xiáng 0x4737:qīn 0x4738:měi,méi 0x4739:shù 0x473A:chǎi,cè 0x473B:chǐ 0x473C:gú,móu 0x473D:yú 0x473E:yīn 0x4740:liú,liáo 0x4741:láo 0x4742:shù 0x4743:zhé 0x4744:shuāng 0x4745:huī 0x4748:è 0x474A:shà 0x474B:zòng 0x474C:jué 0x474D:jùn,jūn 0x474E:tuān 0x474F:lóu 0x4750:wéi,duò 0x4751:chōng 0x4752:zhù 0x4753:liè 0x4755:zhé 0x4756:zhǎo 0x4758:yì 0x4759:chū 0x475A:ní 0x475B:bō 0x475C:suān 0x475D:yǐ 0x475E:hào 0x475F:yà 0x4760:huán 0x4761:màn 0x4762:màn 0x4763:qú 0x4764:lǎo,liáo 0x4765:háo 0x4766:zhōng 0x4767:mín 0x4768:xián 0x4769:zhèn 0x476A:shǔ 0x476B:zuó 0x476C:zhù 0x476D:gòu 0x476E:xuàn 0x476F:yì 0x4770:zhì 0x4771:xié 0x4772:jìn 0x4773:cán,hài 0x4775:bù 0x4776:liáng 0x4777:zhī,zhì 0x4778:jì 0x4779:wǎn 0x477A:guàn 0x477B:jū 0x477C:jìng,qíng 0x477D:ài 0x477E:fù 0x477F:guì 0x4780:hòu 0x4781:yàn 0x4782:ruǎn 0x4783:zhì 0x4784:biào 0x4785:yí 0x4786:suǒ 0x4787:dié 0x4788:guì 0x4789:shèng 0x478A:xùn 0x478B:chèn 0x478C:shé 0x478D:qíng 0x4790:chǔn 0x4791:hóng 0x4792:dòng 0x4793:chēng 0x4794:wěi 0x4795:rú,yú 0x4796:shǔ 0x4797:cāi,chāi 0x4798:jí 0x4799:zá 0x479A:qí,kuí 0x479B:yān 0x479C:fù 0x479D:yù 0x479E:fú 0x479F:pò 0x47A0:zhī 0x47A1:tǎn 0x47A2:zuó 0x47A3:chě,chè,qiè 0x47A4:qú,fǔ,qǔ 0x47A5:yòu 0x47A6:hé 0x47A7:hòu 0x47A8:guǐ 0x47A9:è,xiá 0x47AA:jiàng 0x47AB:yǔn 0x47AC:tòu 0x47AD:cūn,qiǔ 0x47AE:tū 0x47AF:fù,fú 0x47B0:zuó 0x47B1:hú 0x47B3:bó 0x47B4:zhāo 0x47B5:juě,zhuò 0x47B6:tāng,tàng 0x47B7:jué 0x47B8:fù 0x47B9:huáng 0x47BA:chūn 0x47BB:yǒng 0x47BC:chuǐ 0x47BD:suǒ 0x47BE:chí,dì 0x47BF:qiān 0x47C0:cāi 0x47C1:xiāo,chāo 0x47C2:mán 0x47C3:cān,cà 0x47C4:qì,zuó,zè 0x47C5:jiàn,zàn 0x47C6:bì 0x47C7:jī,xī 0x47C8:zhí 0x47C9:zhú,shǔ 0x47CA:qú 0x47CB:zhǎn 0x47CC:jí 0x47CD:biān,dián 0x47CF:lì 0x47D0:lì 0x47D1:yuè 0x47D2:quán 0x47D3:chēng,zhēng,dīng 0x47D4:fù,bó 0x47D5:chà 0x47D6:tàng 0x47D7:shì 0x47D8:hàng 0x47D9:qiè 0x47DA:qí 0x47DB:bó,fèi,bèi 0x47DC:nà 0x47DD:tòu 0x47DE:chú 0x47DF:cù 0x47E0:yuè 0x47E1:zhī,dì 0x47E2:chén 0x47E3:chù 0x47E4:bì,bié 0x47E5:méng 0x47E6:bá 0x47E7:tián 0x47E8:mín,mǐn 0x47E9:liě,què 0x47EA:fěng,fǎn 0x47EB:chēng,shàng 0x47EC:qiù 0x47ED:tiáo,zuò 0x47EE:fú,bó 0x47EF:kuò 0x47F0:jiǎn 0x47F4:zhèn 0x47F5:qiú 0x47F6:zuò,cuò 0x47F7:chì,qì 0x47F8:kuí,guī 0x47F9:liè 0x47FA:bèi,pèi 0x47FB:dù,zhà 0x47FC:wǔ 0x47FE:zhuó,juě 0x47FF:lù 0x4800:tāng,chǎng,tàng 0x4802:chú 0x4803:liǎng 0x4804:tiǎn 0x4805:kǔn 0x4806:cháng 0x4807:jué 0x4808:tú 0x4809:huàn 0x480A:fèi 0x480B:bì,bǐ,bāi 0x480D:xiā,qiá,qié 0x480E:wò 0x480F:jì,kuí 0x4810:qù 0x4811:kuǐ,kuí,wěi 0x4812:hú 0x4813:qiū,cù 0x4814:suì 0x4815:cāi 0x4817:qiù,xiòng 0x4818:pì 0x4819:páng 0x481A:wà,wǎ 0x481B:yáo 0x481C:róng,rǒng 0x481D:xūn 0x481E:cù 0x481F:dié 0x4820:chì,dài 0x4821:cuó,chá 0x4822:mèng 0x4823:xuǎn 0x4824:duǒ,duò 0x4825:bié 0x4826:zhè 0x4827:chú 0x4828:chàn 0x4829:guì 0x482A:duàn 0x482B:zòu 0x482C:dèng 0x482D:lái 0x482E:téng 0x482F:yuè 0x4830:quán 0x4831:zhú 0x4832:líng 0x4833:chēn 0x4834:zhěn 0x4835:fù 0x4836:shè 0x4837:tiǎo 0x4838:kuā 0x4839:ái 0x483B:qióng 0x483C:shù 0x483D:hái,kǎi 0x483E:shǎn 0x483F:wài,kuì 0x4840:zhǎn,zhàn 0x4841:lǒng 0x4842:jiū,jiù 0x4843:lì 0x4845:chūn,xún 0x4846:róng 0x4847:yuè 0x4848:jué,jiào 0x4849:kǎng 0x484A:fǎn 0x484B:qí 0x484C:hóng 0x484D:fú 0x484E:lú 0x484F:hóng 0x4850:tuó 0x4851:mín 0x4852:tián 0x4853:juàn,xuān 0x4854:qǐ 0x4855:zhěng 0x4856:qìng 0x4857:gǒng,gòng 0x4858:tián 0x4859:láng 0x485A:mào 0x485B:yìn 0x485C:lù 0x485D:yuān,yǔn 0x485E:jú 0x485F:pì 0x4861:xié 0x4862:biàn 0x4863:hūn,xuān 0x4864:zhū 0x4865:róng 0x4866:sǎng 0x4867:wū,wǔ 0x4868:chà 0x4869:kēng,zhěn 0x486A:shàn 0x486B:péng 0x486C:màn 0x486D:xiū 0x486F:cōng,zǒng 0x4870:kēng,kěng,gǔ 0x4871:zhuǎn 0x4872:chán,dān 0x4873:sī 0x4874:chōng 0x4875:suì 0x4876:bèi 0x4877:kài,kě 0x4879:zhì 0x487A:wèi 0x487B:mín 0x487C:líng 0x487D:zuān 0x487E:niè,yè,yǐ 0x487F:líng 0x4880:qì 0x4881:yuè 0x4883:yì 0x4884:xǐ 0x4885:chén 0x4887:rǒng 0x4888:chén,huì 0x4889:nóng 0x488A:yóu 0x488B:jì 0x488C:bó 0x488D:fǎng 0x4890:cú 0x4891:dǐ,dì 0x4892:jiāo 0x4893:yú 0x4894:hé 0x4895:xù 0x4896:yù,lǜ 0x4897:qū 0x4899:bài 0x489A:gēng,háng 0x489B:jiǒng 0x489D:yà 0x489E:shù 0x489F:yóu 0x48A0:sòng 0x48A1:yè,xiè,zhuì 0x48A2:càng 0x48A3:yáo 0x48A4:shù 0x48A5:yán 0x48A6:shuài 0x48A7:liào 0x48A8:cōng,zōng 0x48A9:yù 0x48AA:bó 0x48AB:suí 0x48AD:yàn,xiàn 0x48AE:lèi 0x48AF:lín 0x48B0:tī 0x48B1:dú 0x48B2:yuè 0x48B3:jǐ 0x48B5:yún 0x48B8:jū 0x48B9:jǔ,qú 0x48BA:chū 0x48BB:chén 0x48BC:gōng 0x48BD:xiàng 0x48BE:xiǎn 0x48BF:ān 0x48C0:guǐ,qī,wéi 0x48C1:yǔ 0x48C2:lěi 0x48C4:tú 0x48C5:chén 0x48C6:xíng 0x48C7:qiú 0x48C8:hàng 0x48CA:dǎng 0x48CB:cǎi 0x48CC:dǐ 0x48CD:yǎn,yān 0x48CE:zī 0x48D0:yīng 0x48D1:chán 0x48D3:lí,lì 0x48D4:suǒ 0x48D5:mǎ 0x48D6:mǎ 0x48D8:táng 0x48D9:péi,pěng,bēi 0x48DA:lóu 0x48DB:qī,xī 0x48DC:cuó 0x48DD:tú 0x48DE:è 0x48DF:cán,cǎn,tì 0x48E0:jié,tì,zá 0x48E1:yí 0x48E2:jí 0x48E3:dǎng 0x48E4:jué 0x48E5:bǐ 0x48E6:lèi 0x48E7:yì 0x48E8:chún 0x48E9:chún 0x48EA:pò 0x48EB:lí 0x48EC:zǎi,gē 0x48ED:tài 0x48EE:pò 0x48EF:cú,tiǎn 0x48F0:jù 0x48F1:xù 0x48F2:fàn 0x48F4:xù 0x48F5:èr 0x48F6:huó,tián 0x48F7:zhū 0x48F8:rǎn,nǎn,nàn 0x48F9:fá 0x48FA:juān 0x48FB:hān 0x48FC:liáng 0x48FD:zhī,tǐ 0x48FE:mì 0x48FF:yū 0x4901:cén 0x4902:méi 0x4903:yīn,ān,yìn 0x4904:miǎn 0x4905:tú 0x4906:kuí,guì 0x4909:mì 0x490A:róng 0x490B:yù,guó 0x490C:qiāng 0x490D:mí 0x490E:jú,jué 0x490F:pǐ 0x4910:jǐn 0x4911:wàng 0x4912:jì,jǐ 0x4913:méng 0x4914:jiàn 0x4915:xuè,hù 0x4916:bào 0x4917:gǎn 0x4918:chǎn,qiǎn 0x4919:lì 0x491A:lǐ 0x491B:qiú 0x491C:dùn 0x491D:yìng 0x491E:yǔn 0x491F:chén 0x4920:zhǐ 0x4921:rǎn 0x4923:lüè 0x4924:kāi 0x4925:guǐ,wěi 0x4926:yuè 0x4927:huì 0x4928:pì 0x4929:chá 0x492A:duǒ 0x492B:chán 0x492C:shā 0x492D:shì 0x492E:shè 0x492F:xíng 0x4930:yíng 0x4931:shì 0x4932:chì 0x4933:yè 0x4934:hán 0x4935:fèi,pī,fēi 0x4936:yè,ān 0x4937:yǎn 0x4938:zuàn 0x4939:sōu 0x493A:jīn,yǐn 0x493B:duò 0x493C:xiàn 0x493D:guān 0x493E:tāo 0x493F:qiè 0x4940:chǎn 0x4941:hán 0x4942:mèng 0x4943:yuè 0x4944:cù 0x4945:qiàn 0x4946:jǐn 0x4947:shàn 0x4948:mǔ 0x4949:yuān 0x494B:pēng 0x494C:zhèng 0x494D:zhì 0x494E:chún 0x494F:yǔ 0x4950:móu 0x4951:wàn 0x4952:jiàng 0x4953:qī 0x4954:sù 0x4955:piě 0x4956:tián 0x4957:kuǎn 0x4958:cù 0x4959:suì 0x495B:jiē,jié,qì 0x495C:jiàn 0x495D:áo 0x495E:jiǎo 0x495F:yè 0x4961:yè 0x4962:lóng,qī 0x4963:záo 0x4964:báo 0x4965:lián 0x4967:huán 0x4968:lǜ,lú 0x4969:wéi 0x496A:xiǎn 0x496B:tiě 0x496C:bó 0x496D:zhèng 0x496E:zhú 0x496F:bēi,bà 0x4970:méng 0x4971:xiě 0x4972:ōu 0x4973:yōu 0x4975:xiǎo 0x4976:lì 0x4977:zhá 0x4978:mí 0x497A:yé 0x497D:pō 0x497E:xiě 0x4982:shàn 0x4983:zhuō 0x4985:shàn 0x4986:jué 0x4987:jì 0x4988:jiē,zuǒ 0x498A:niǎo 0x498B:áo 0x498C:chù 0x498D:wù 0x498E:guǎn,kàng 0x498F:xiè 0x4990:tǐng 0x4991:xuè 0x4992:dàng,qiāo 0x4993:zhān,chān 0x4994:tǎn,dǎn 0x4995:pēng 0x4996:xié,xiá 0x4997:xù 0x4998:xiàn 0x4999:sì,shì 0x499A:kuà 0x499B:zhèng 0x499C:wú 0x499D:huō 0x499E:rùn 0x499F:wěn,chuài 0x49A0:dū 0x49A1:huán 0x49A2:kuò 0x49A3:fù 0x49A4:chuài 0x49A5:xián 0x49A6:qín 0x49A7:qié 0x49A8:lán 0x49AA:yà 0x49AB:yīng 0x49AC:què 0x49AD:hāng 0x49AE:chǔn 0x49AF:zhì 0x49B1:wěi,kuā 0x49B2:yán,qiàn,chàn 0x49B3:xiàng 0x49B4:yì 0x49B5:nǐ 0x49B6:zhèng 0x49B7:chuài 0x49B9:shí 0x49BA:dīng 0x49BB:zǐ 0x49BC:jué,pì 0x49BD:xù 0x49BE:yuán 0x49C1:xǔ 0x49C2:dào 0x49C3:tián 0x49C4:gè 0x49C5:yí 0x49C6:hóng 0x49C7:yī,yǐ 0x49C9:lǐ 0x49CA:kū 0x49CB:xiǎn,xiàn 0x49CC:suī 0x49CD:xì 0x49CE:xuàn 0x49D1:dī 0x49D2:lái 0x49D3:zhōu 0x49D4:niàn 0x49D5:chéng 0x49D6:jiàn 0x49D7:bì 0x49D8:zhuàn 0x49D9:líng 0x49DA:hào 0x49DB:bàng,péng 0x49DC:táng 0x49DD:chī,zhì 0x49DE:mà,fù 0x49DF:xiàn 0x49E0:shuàn 0x49E1:yōng 0x49E2:qū,ōu 0x49E4:pú 0x49E5:huì 0x49E6:wéi 0x49E7:yǐ 0x49E8:yè 0x49EA:chè 0x49EB:háo 0x49EC:bīn 0x49EE:xiàn,xiǎn 0x49EF:chán,zhàn 0x49F0:hùn 0x49F2:hàn 0x49F3:cí,zhuī 0x49F4:zhī 0x49F5:qí 0x49F6:kuí 0x49F7:róu 0x49F9:yīng 0x49FA:xióng 0x49FC:hú 0x49FD:cuǐ 0x49FF:què,xī 0x4A00:dí 0x4A01:wù 0x4A02:qiū 0x4A04:yàn 0x4A05:liáo 0x4A06:bí 0x4A08:bīn 0x4A0A:yuān 0x4A0B:nüè 0x4A0C:báo 0x4A0D:yǐng 0x4A0E:hóng 0x4A0F:cí 0x4A10:qià 0x4A11:tí 0x4A12:yù 0x4A13:léi 0x4A14:báo 0x4A16:jì 0x4A17:fú 0x4A18:xiàn 0x4A19:cén 0x4A1A:hū 0x4A1B:sè,xī 0x4A1C:bēng 0x4A1D:qīng 0x4A1E:yǔ,yù 0x4A1F:wā 0x4A20:ǎi 0x4A21:hán 0x4A22:dàn 0x4A23:gé 0x4A24:dí 0x4A25:huò,shuāng 0x4A26:pāng 0x4A28:zhuī 0x4A29:líng 0x4A2A:mái 0x4A2B:mài 0x4A2C:lián 0x4A2D:xiāo 0x4A2E:xuě 0x4A2F:zhèn 0x4A30:pò 0x4A31:fù 0x4A32:nóu,wàn 0x4A33:xì,xī 0x4A34:duì 0x4A35:dàn 0x4A36:yǔn 0x4A37:xiàn 0x4A38:yǐn 0x4A39:shū 0x4A3A:duì 0x4A3B:bèng 0x4A3C:hù 0x4A3D:fěi 0x4A3E:fèi 0x4A3F:zá 0x4A40:bèi 0x4A41:fēi 0x4A42:xiān 0x4A43:shì 0x4A44:miǎn,tiǎn 0x4A45:zhǎn,nǎn 0x4A46:zhǎn 0x4A47:zhān,diān 0x4A48:huì 0x4A49:fǔ 0x4A4A:wǎn,wò 0x4A4B:mǒ 0x4A4C:qiáo 0x4A4D:liǎo 0x4A4F:miè 0x4A50:hū,jí,gé 0x4A51:hóng 0x4A52:yú 0x4A53:qí 0x4A54:duò,shān,pán 0x4A55:áng,yìng 0x4A57:bà 0x4A58:dì 0x4A59:xuàn,xiǎn 0x4A5A:dì,dī 0x4A5B:bì,pèi 0x4A5C:zhòu 0x4A5D:páo 0x4A5E:tié,diē 0x4A5F:yí,tì 0x4A61:jiá,gé 0x4A62:zhì,dá 0x4A63:tú 0x4A64:xié 0x4A65:dàn,chān 0x4A66:tiáo 0x4A67:xiè 0x4A68:chàng,zhāng 0x4A69:yuǎn 0x4A6A:guǎn 0x4A6B:liǎng 0x4A6C:běng,fěng 0x4A6E:lù 0x4A6F:jí,qì 0x4A70:xuàn 0x4A71:shù,yú,shū 0x4A72:dū 0x4A73:sōu 0x4A74:hú 0x4A75:yùn 0x4A76:chǎn 0x4A77:bāng 0x4A78:róng,rǒng 0x4A79:é,kuò 0x4A7A:wēng 0x4A7B:bà 0x4A7C:féng 0x4A7D:yū 0x4A7E:zhè 0x4A7F:fén 0x4A80:guǎn 0x4A81:bǔ 0x4A82:gé 0x4A83:dūn 0x4A84:huáng 0x4A85:dú 0x4A86:tǐ 0x4A87:bó 0x4A88:qiàn 0x4A89:liè 0x4A8A:lóng 0x4A8B:wèi 0x4A8C:zhàn,shān 0x4A8D:lán 0x4A8E:suī 0x4A8F:nà,dā 0x4A90:bì 0x4A91:tuó 0x4A92:zhù 0x4A93:diē 0x4A94:bǔ,fù 0x4A95:jú 0x4A96:pò 0x4A97:xiá 0x4A98:wěi,dī 0x4A99:pò,fú,fù 0x4A9A:dā,tà 0x4A9B:fān,fán 0x4A9C:chān,chàn,yán 0x4A9D:hù 0x4A9E:zá 0x4AA4:fán 0x4AA5:xiè 0x4AA6:hóng 0x4AA7:chí 0x4AA8:báo 0x4AA9:yín 0x4AAB:jīng 0x4AAC:bó 0x4AAD:ruǎn 0x4AAE:chǒu 0x4AAF:yīng 0x4AB0:yī 0x4AB1:gǎi,hái 0x4AB2:kūn 0x4AB3:yǔn 0x4AB4:zhěn,dǎn,dàn 0x4AB5:yǎ 0x4AB6:jū 0x4AB7:hòu,gòu 0x4AB8:mín,mén 0x4AB9:bāi,pī,péi 0x4ABA:gé 0x4ABB:biàn,fàn 0x4ABC:zhuō 0x4ABD:hào 0x4ABE:zhěn 0x4ABF:shěng 0x4AC0:gěn 0x4AC1:bì 0x4AC2:duǒ 0x4AC3:chún,zhèn 0x4AC4:chuà 0x4AC5:sàn 0x4AC6:chéng 0x4AC7:rán 0x4AC8:chěn,zèn,cén 0x4AC9:mào 0x4ACA:péi 0x4ACB:wēi,tuí 0x4ACC:pǐ 0x4ACD:fǔ 0x4ACE:zhuō 0x4ACF:qī 0x4AD0:lín 0x4AD1:yī,qī 0x4AD2:mén 0x4AD3:wú 0x4AD4:qì,qiè,yà,kuí 0x4AD5:dié 0x4AD6:chěn,shèn 0x4AD7:xiá 0x4AD8:hé,jié,kě 0x4AD9:sǎng 0x4ADA:guā 0x4ADB:hóu 0x4ADC:āo 0x4ADD:fǔ 0x4ADE:qiāo,fén 0x4ADF:hùn 0x4AE0:pī 0x4AE1:yán,qiàn,qiān,jiàn 0x4AE2:sī 0x4AE3:xí 0x4AE4:míng 0x4AE5:kuǐ 0x4AE6:gé,kài 0x4AE8:ào 0x4AE9:sǎn 0x4AEA:shuǎng 0x4AEB:lóu 0x4AEC:zhěn,qǐn 0x4AED:huì 0x4AEE:chán 0x4AF0:lìn 0x4AF1:ná 0x4AF2:hàn,kǎn 0x4AF3:dú 0x4AF4:jìn 0x4AF5:mián 0x4AF6:fán 0x4AF7:è 0x4AF8:chāo 0x4AF9:hóng 0x4AFA:hóng 0x4AFB:yù 0x4AFC:xuè 0x4AFD:pāo 0x4AFE:bī,bì 0x4AFF:chāo 0x4B00:yǒu 0x4B01:yí 0x4B02:xuè 0x4B03:sà 0x4B04:xù 0x4B05:lì,liè,xié 0x4B06:lì 0x4B07:yuàn 0x4B08:duì 0x4B09:huò 0x4B0A:shà 0x4B0B:léng 0x4B0C:pōu 0x4B0D:hū 0x4B0E:guó,xù 0x4B0F:bù,fǒu 0x4B10:ruí 0x4B11:wèi,yù 0x4B12:sōu,xiāo 0x4B13:àn 0x4B14:yú 0x4B15:xiāng,shǎng 0x4B16:héng 0x4B17:yáng 0x4B18:xiāo 0x4B19:yáo 0x4B1B:bì 0x4B1D:héng 0x4B1E:táo 0x4B1F:liú,liǔ 0x4B21:zhù 0x4B23:xì,qì,gē 0x4B24:zàn,zhān 0x4B25:yì 0x4B26:dòu,shè 0x4B27:yuán 0x4B28:jiù 0x4B2A:bó 0x4B2B:tí 0x4B2C:yǐng 0x4B2E:yí 0x4B2F:nián,tiǎn 0x4B30:shào 0x4B31:bèn 0x4B32:gōu 0x4B33:bǎn 0x4B34:mò 0x4B35:gāi,ài 0x4B36:èn 0x4B37:shě 0x4B39:zhì 0x4B3A:yàng 0x4B3B:jiàn 0x4B3C:yuàn 0x4B3D:shuì,duì 0x4B3E:tí 0x4B3F:wěi,wèi 0x4B40:xùn 0x4B41:zhì 0x4B42:yì 0x4B43:rěn,niè 0x4B44:shì 0x4B45:hú 0x4B46:nè 0x4B47:yē,yì 0x4B48:jiàn 0x4B49:suǐ 0x4B4A:yǐng 0x4B4B:bǎo 0x4B4C:hú 0x4B4D:hú 0x4B4E:yè 0x4B50:yàng 0x4B51:lián,qiàn,xiàn 0x4B52:xī 0x4B53:èn 0x4B54:duī 0x4B55:zǎn,jiǎn 0x4B56:zhù 0x4B57:yǐng 0x4B58:yǐng 0x4B59:jǐn,jiàn 0x4B5A:chuáng 0x4B5B:dàn 0x4B5D:kuài 0x4B5E:yì 0x4B5F:yè 0x4B60:jiǎn 0x4B61:èn 0x4B62:níng 0x4B63:cí 0x4B64:qiǎn 0x4B65:xuè 0x4B66:bō 0x4B67:mǐ 0x4B68:shuì 0x4B69:mó 0x4B6A:liáng 0x4B6B:qǐ 0x4B6C:qǐ 0x4B6D:shǒu 0x4B6E:fú 0x4B6F:bó 0x4B70:bèng 0x4B71:bié 0x4B72:yǐ 0x4B73:wèi 0x4B74:huán 0x4B75:fán 0x4B76:qí 0x4B77:máo 0x4B78:fù 0x4B79:áng 0x4B7A:ǎng 0x4B7B:fēn,fù 0x4B7C:qí 0x4B7D:qún 0x4B7E:tuó 0x4B7F:yì 0x4B80:bó 0x4B81:pián 0x4B82:bá 0x4B84:xuán 0x4B87:yù 0x4B88:chí 0x4B89:lú 0x4B8A:yí 0x4B8B:lì 0x4B8D:niǎo 0x4B8E:xì 0x4B8F:wú 0x4B91:lèi,luò 0x4B92:pū 0x4B93:zhuō,chào 0x4B94:zuī 0x4B95:zhuó 0x4B96:chāng 0x4B97:àn,yàn 0x4B98:ér 0x4B99:yù 0x4B9A:lèng,líng 0x4B9B:fù 0x4B9C:zhá,yè 0x4B9D:hún 0x4B9E:chǔn 0x4B9F:sōu,sǒu 0x4BA0:bī 0x4BA1:bì,bó 0x4BA2:zhá 0x4BA4:hé 0x4BA5:lì 0x4BA7:hàn,hán 0x4BA8:zǎi 0x4BA9:gú 0x4BAA:chéng 0x4BAB:lóu,lǘ 0x4BAC:mò 0x4BAD:mì 0x4BAE:mài 0x4BAF:ào 0x4BB0:zhé 0x4BB1:zhú 0x4BB2:huáng 0x4BB3:fán 0x4BB4:dèng,tēng 0x4BB5:tóng 0x4BB7:dú 0x4BB8:wò 0x4BB9:wèi,guì 0x4BBA:jì 0x4BBB:chì 0x4BBC:lín 0x4BBD:biāo 0x4BBE:lóng,lòng 0x4BBF:jiǎn 0x4BC0:niè 0x4BC1:luó 0x4BC2:shēn,jí 0x4BC4:guā 0x4BC5:niè 0x4BC6:yì 0x4BC7:kū 0x4BC8:wán 0x4BC9:wā 0x4BCA:qià,kē 0x4BCB:bó,fèi 0x4BCC:kāo 0x4BCD:líng 0x4BCE:gàn 0x4BCF:guā,huá 0x4BD0:hái 0x4BD1:kuāng 0x4BD2:héng 0x4BD3:kuī 0x4BD4:zé 0x4BD5:tīng 0x4BD6:láng 0x4BD7:bì 0x4BD8:huàn 0x4BD9:pò 0x4BDA:yǎo 0x4BDB:wàn 0x4BDC:tì,xī 0x4BDD:suǐ 0x4BDE:kuā 0x4BDF:duì,xiá 0x4BE0:ǎo 0x4BE1:jiàn 0x4BE2:mó,mǒ 0x4BE3:kuì,guì 0x4BE4:kuài 0x4BE5:àn,qì 0x4BE6:mà 0x4BE7:qǐng,qìng 0x4BE8:qiāo,hè 0x4BEA:kǎo,kào 0x4BEB:hào 0x4BEC:duǒ 0x4BED:xiān 0x4BEE:nái 0x4BEF:suō 0x4BF0:jiè 0x4BF1:pī,pēi,fù 0x4BF2:pā,bà 0x4BF3:sōng 0x4BF4:cháng 0x4BF5:niè 0x4BF6:mán,mián 0x4BF7:sōng 0x4BF8:cì 0x4BF9:xiān 0x4BFA:kuò 0x4BFC:dí 0x4BFD:póu,pǒu,bǎo 0x4BFE:tiáo,diāo 0x4BFF:zú,suì,zuì 0x4C00:wǒ 0x4C01:fèi 0x4C02:cài 0x4C03:péng,pèng,fǎng 0x4C04:sāi,shì 0x4C06:róu 0x4C07:qí 0x4C08:cuó 0x4C09:pán,bān 0x4C0A:bó 0x4C0B:mán 0x4C0C:zǒng,cōng 0x4C0D:cì 0x4C0E:kuì 0x4C0F:jì 0x4C10:lán 0x4C12:méng 0x4C13:mián 0x4C14:pán 0x4C15:lú 0x4C16:zuǎn 0x4C18:liú,jiǎo 0x4C19:yǐ 0x4C1A:wén 0x4C1B:lì,gé 0x4C1C:lì 0x4C1D:zèng 0x4C1E:zhǔ 0x4C1F:hún 0x4C20:shén 0x4C21:chì 0x4C22:xìng 0x4C23:wǎng 0x4C24:dōng 0x4C25:huò,yù 0x4C26:pǐ 0x4C27:hū 0x4C28:mèi 0x4C29:chě,dū 0x4C2A:mèi 0x4C2B:chāo,cháo,zhào 0x4C2C:jú 0x4C2D:nòu 0x4C2F:yì 0x4C30:rú 0x4C31:líng,lóng 0x4C32:yà 0x4C34:qì 0x4C35:zī 0x4C37:bàng 0x4C38:gōng 0x4C39:zé 0x4C3A:jiè 0x4C3B:yú 0x4C3C:qín,yín,shèn 0x4C3D:bèi 0x4C3E:bā,bà 0x4C3F:tuó 0x4C40:yāng 0x4C41:qiáo 0x4C42:yǒu 0x4C43:zhì 0x4C44:jiè 0x4C45:mò 0x4C46:shéng 0x4C47:shàn 0x4C48:qí 0x4C49:shàn 0x4C4A:mǐ 0x4C4B:gǒng 0x4C4C:yí 0x4C4D:gèng 0x4C4E:gèng 0x4C4F:tǒu 0x4C50:fū 0x4C51:xué 0x4C52:yè 0x4C53:tíng,tǐng 0x4C54:tiáo,chóu 0x4C55:móu,méi 0x4C56:liú 0x4C57:cān 0x4C58:lí 0x4C59:shū 0x4C5A:lù 0x4C5B:huò,xù,yì 0x4C5C:cuò 0x4C5D:pái,bēi 0x4C5E:liú 0x4C5F:jù,jū 0x4C60:zhàn 0x4C61:jú 0x4C62:zhēng 0x4C63:zú 0x4C64:xiàn 0x4C65:zhì,jì 0x4C68:là 0x4C6B:là 0x4C6C:xū 0x4C6D:gèng 0x4C6E:é 0x4C6F:mú 0x4C70:zhòng 0x4C71:tí,dì 0x4C72:yuán 0x4C73:zhān 0x4C74:gèng 0x4C75:wēng 0x4C76:láng 0x4C77:yú 0x4C78:sōu,qiū 0x4C79:zhǎ 0x4C7A:hái 0x4C7B:huá 0x4C7C:zhǎn 0x4C7E:lóu 0x4C7F:chàn 0x4C80:zhì 0x4C81:wèi 0x4C82:xuán 0x4C83:zǎo,suǒ,cháo 0x4C84:mín 0x4C85:guī 0x4C86:sū 0x4C89:sī 0x4C8A:duò,wěi,tuò 0x4C8B:cén 0x4C8C:kuǎn 0x4C8D:téng 0x4C8E:něi 0x4C8F:láo 0x4C90:lǔ 0x4C91:yí 0x4C92:xiè 0x4C93:yǎn,yán 0x4C94:qíng 0x4C95:pū 0x4C96:chóu 0x4C97:xián 0x4C98:guǎn 0x4C99:jié 0x4C9A:lài 0x4C9B:méng 0x4C9C:yè 0x4C9E:lì 0x4C9F:yìn 0x4CA0:chūn 0x4CA1:qiū 0x4CA2:téng 0x4CA3:yú 0x4CA6:dài 0x4CA7:dù 0x4CA8:hóng 0x4CAA:xì 0x4CAC:qí 0x4CAE:yuán 0x4CAF:jí 0x4CB0:yùn 0x4CB1:fǎng 0x4CB2:gōng,sōng 0x4CB3:háng 0x4CB4:zhèn 0x4CB5:què 0x4CB8:jiè 0x4CB9:pí 0x4CBA:gàn 0x4CBB:xuán,yuān 0x4CBC:shēng 0x4CBD:shí,diǎo 0x4CBE:qiǎo 0x4CBF:cí 0x4CC0:dié,yì 0x4CC1:bó 0x4CC2:diāo,chāo,tiáo,xiāo 0x4CC3:wǎn 0x4CC4:cí 0x4CC5:zhǐ,zhì 0x4CC6:bái 0x4CC7:wǔ 0x4CC8:bǎo 0x4CC9:dōng,dàn 0x4CCA:bá 0x4CCB:tóng,tōng,xiāo 0x4CCD:gōng 0x4CCE:jiù 0x4CCF:guì,jué 0x4CD0:cì 0x4CD1:yǒu 0x4CD2:yuán 0x4CD3:lǎo 0x4CD4:jú,jiù 0x4CD5:fú 0x4CD6:niè 0x4CD7:é 0x4CD8:é 0x4CD9:xǐng 0x4CDA:kàn,hé 0x4CDB:yàn 0x4CDC:tú 0x4CDD:pǒu,bù 0x4CDE:běng 0x4CDF:míng 0x4CE0:shuì,zhù 0x4CE1:yàn,zhuī 0x4CE2:qí 0x4CE3:yuán 0x4CE4:biē 0x4CE6:xuān 0x4CE7:hóu 0x4CE8:huáng 0x4CE9:yāo 0x4CEA:juàn 0x4CEB:kuí 0x4CEC:è 0x4CED:jí 0x4CEE:mò 0x4CEF:chóng,chǒng 0x4CF0:bǎo 0x4CF1:wù 0x4CF2:zhèn 0x4CF3:xù 0x4CF4:tà,dá 0x4CF5:chì 0x4CF6:xī,qī,jī 0x4CF7:cóng 0x4CF8:má 0x4CF9:kòu 0x4CFA:yàn 0x4CFB:cán,zhàn 0x4CFD:hè 0x4CFE:dēng 0x4CFF:rán 0x4D00:tóng 0x4D01:yù,yú 0x4D02:xiàng 0x4D03:náo 0x4D04:shùn 0x4D05:fén 0x4D06:pú,pū 0x4D07:líng 0x4D08:ǎo 0x4D09:huán,xuán 0x4D0A:yí 0x4D0B:huán,xuán 0x4D0C:méng 0x4D0D:yīng 0x4D0E:lěi 0x4D0F:yàn 0x4D10:bǎo 0x4D11:dié 0x4D12:líng 0x4D13:shī 0x4D14:jiāo 0x4D15:liè 0x4D16:jīng 0x4D17:jú 0x4D18:tī 0x4D19:pì 0x4D1A:gǎng 0x4D1B:xiāo 0x4D1C:wāi 0x4D1D:chuài 0x4D1E:dí 0x4D1F:huán 0x4D20:yǎo 0x4D21:lì 0x4D22:mí 0x4D23:hū 0x4D24:shēng 0x4D25:jiā 0x4D26:yín 0x4D27:wēi 0x4D29:piáo 0x4D2A:lù 0x4D2B:líng 0x4D2C:yì 0x4D2D:cái 0x4D2E:shàn 0x4D2F:hū 0x4D30:shú,yì 0x4D31:tuō 0x4D32:mò 0x4D33:huá 0x4D34:tiè,nián 0x4D35:bǐng 0x4D36:péng 0x4D37:hún,huàn 0x4D38:fū 0x4D39:guǒ,luǒ,hún 0x4D3A:bù 0x4D3B:lí 0x4D3C:chàn 0x4D3D:pí 0x4D3E:cuó 0x4D3F:méng 0x4D40:suǒ,suò 0x4D41:qiàng 0x4D42:zhí 0x4D43:kuàng,huáng 0x4D44:bí 0x4D45:áo 0x4D46:méng 0x4D47:xiàn 0x4D48:kù 0x4D49:tóu 0x4D4A:tuān 0x4D4B:wěi 0x4D4C:xiān 0x4D4E:tuān 0x4D4F:lǎo 0x4D50:chǎn 0x4D51:nì 0x4D52:nì 0x4D53:lí 0x4D54:dǒng 0x4D55:jù 0x4D56:qiàn,qīn 0x4D57:bó,bí 0x4D58:shài 0x4D59:zhā,zhǎ 0x4D5A:tǎo 0x4D5B:qiàn 0x4D5C:nǒng 0x4D5D:yì,yà 0x4D5E:jìng 0x4D5F:gǎn 0x4D60:dí,zhuó 0x4D61:jiǎn 0x4D62:mèi 0x4D63:dá 0x4D64:jiǎn,xiàn 0x4D65:yù 0x4D66:xiè,wū 0x4D67:zài 0x4D68:máng 0x4D69:lí 0x4D6A:gùn,hùn 0x4D6B:xūn,yù 0x4D6C:tà 0x4D6D:zhè 0x4D6E:yàng 0x4D6F:tuǎn 0x4D70:shāng 0x4D71:xì,xī 0x4D72:qiāo 0x4D73:wèi 0x4D74:yìng,zèng,yùn 0x4D75:chuā,zhuó 0x4D76:qú,gōu 0x4D77:wā 0x4D79:zhī 0x4D7A:tǐng,dǐng,tiǎn 0x4D7B:huì,gǔ 0x4D7C:shāng 0x4D7D:cà 0x4D7E:fú,fǔ 0x4D7F:tiè 0x4D80:tà 0x4D81:tà 0x4D82:zhuó,jué 0x4D83:hán 0x4D84:píng 0x4D85:hé 0x4D86:zhuī 0x4D87:zhòu 0x4D88:bó 0x4D89:liú 0x4D8A:nǜ 0x4D8B:xī 0x4D8C:pào 0x4D8D:dì 0x4D8E:hē 0x4D8F:tì,tǐ 0x4D90:wài,huì 0x4D91:tì 0x4D92:qí 0x4D93:jì 0x4D94:chí 0x4D95:bà,bā 0x4D96:jìn 0x4D97:kè,qiā,qiǎ 0x4D98:lì 0x4D99:jù 0x4D9A:qǔ 0x4D9B:là 0x4D9C:gǔ 0x4D9D:qià 0x4D9E:qí 0x4D9F:xiàn 0x4DA0:jiǎn 0x4DA1:shí,zé 0x4DA2:jiān,xián 0x4DA3:ái,gāi 0x4DA4:huá 0x4DA5:zhā,jǔ,chǔ 0x4DA6:zé 0x4DA7:yǎo 0x4DA8:zhān 0x4DA9:jì 0x4DAA:chà 0x4DAB:yàn,yán 0x4DAC:jiān 0x4DAE:yǎn 0x4DB0:jiāo 0x4DB1:tóng 0x4DB2:nán 0x4DB3:yuè 0x4DB5:chí 0x4E00:yī,yí,yì 0x4E01:dīng,zhēng 0x4E02:kǎo,qiǎo,yú 0x4E03:qī,qí 0x4E04:shàng 0x4E05:xià 0x4E06:hǎn 0x4E07:wàn,mò 0x4E08:zhàng 0x4E09:sān 0x4E0A:shàng,shǎng 0x4E0B:xià 0x4E0C:jī,qí 0x4E0D:bù,fǒu,fōu,fū,bú 0x4E0E:yǔ,yú,yù 0x4E0F:miǎn 0x4E10:gài 0x4E11:chǒu 0x4E12:chǒu 0x4E13:zhuān 0x4E14:qiě,jū,cú 0x4E15:pī 0x4E16:shì 0x4E17:shì 0x4E18:qiū 0x4E19:bǐng,bìng 0x4E1A:yè 0x4E1B:cóng 0x4E1C:dōng 0x4E1D:sī 0x4E1E:chéng,shèng,zhēng,zhěng 0x4E1F:diū 0x4E20:qiū 0x4E21:liǎng 0x4E22:diū 0x4E23:yǒu 0x4E24:liǎng 0x4E25:yán 0x4E26:bìng,bàn,bàng 0x4E27:sàng,sāng 0x4E28:gǔn 0x4E29:jiū 0x4E2A:gè,gàn,gě 0x4E2B:yā 0x4E2C:qiáng 0x4E2D:zhōng,zhòng 0x4E2E:jǐ 0x4E2F:jiè 0x4E30:fēng 0x4E31:guàn,kuàng 0x4E32:chuàn,guàn,quàn 0x4E33:chǎn,chuàn 0x4E34:lín 0x4E35:zhuó 0x4E36:zhǔ 0x4E37:bā 0x4E38:wán 0x4E39:dān 0x4E3A:wèi,wéi 0x4E3B:zhǔ,zhù 0x4E3C:jǐng,dǎn 0x4E3D:lì,lí 0x4E3E:jǔ 0x4E3F:piě,yì 0x4E40:fú 0x4E41:yí,jí 0x4E42:yì,ài 0x4E43:nǎi,ǎi 0x4E44:wǔ 0x4E45:jiǔ 0x4E46:jiǔ 0x4E47:tuō,zhé 0x4E48:me,yāo,mó,ma 0x4E49:yì 0x4E4A:yī 0x4E4B:zhī,zhū,zhì 0x4E4C:wū,wù 0x4E4D:zhà,zuò 0x4E4E:hū 0x4E4F:fá 0x4E50:lè,yuè 0x4E51:yín,pān,zhòng 0x4E52:pīng 0x4E53:pāng 0x4E54:qiáo 0x4E55:hǔ 0x4E56:guāi 0x4E57:chéng 0x4E58:chéng,shèng 0x4E59:yǐ,yì,jué 0x4E5A:yǐn 0x4E5B:ya 0x4E5C:miē,niè 0x4E5D:jiǔ,jiū 0x4E5E:qǐ,qì 0x4E5F:yě,yí 0x4E60:xí 0x4E61:xiāng 0x4E62:gài 0x4E63:jiǔ 0x4E64:xià 0x4E65:hù 0x4E66:shū 0x4E67:dǒu 0x4E68:shǐ 0x4E69:jī 0x4E6A:náng 0x4E6B:jiā 0x4E6C:jù 0x4E6D:shí 0x4E6E:mǎo 0x4E6F:hū 0x4E70:mǎi 0x4E71:luàn 0x4E72:zī 0x4E73:rǔ 0x4E74:xué 0x4E75:yǎn 0x4E76:fǔ 0x4E77:shā 0x4E78:nǎ 0x4E79:gān 0x4E7A:suǒ 0x4E7B:yú 0x4E7C:cui 0x4E7D:zhě 0x4E7E:qián,gān 0x4E7F:zhì,luàn 0x4E80:guī 0x4E81:gān 0x4E82:luàn 0x4E83:lǐn,lìn 0x4E84:yì 0x4E85:jué 0x4E86:le,liǎo,liào 0x4E87:ma 0x4E88:yǔ,yú,zhù 0x4E89:zhēng 0x4E8A:shì 0x4E8B:shì,zì 0x4E8C:èr 0x4E8D:chù 0x4E8E:yú,wéi,yū,xū 0x4E8F:kuī,yú 0x4E90:yú 0x4E91:yún 0x4E92:hù 0x4E93:qí 0x4E94:wǔ 0x4E95:jǐng,jìng 0x4E96:sì 0x4E97:suì 0x4E98:gèn,xuān,gèng 0x4E99:gèn,gèng 0x4E9A:yà 0x4E9B:xiē,suò,suō 0x4E9C:yà 0x4E9D:qí,zhāi 0x4E9E:yà,yā,è 0x4E9F:jí,qì 0x4EA0:tóu 0x4EA1:wáng,wú 0x4EA2:kàng,gāng,gēng 0x4EA3:dà 0x4EA4:jiāo 0x4EA5:hài,jiē 0x4EA6:yì 0x4EA7:chǎn 0x4EA8:hēng,xiǎng,pēng 0x4EA9:mǔ 0x4EAA:ye 0x4EAB:xiǎng 0x4EAC:jīng 0x4EAD:tíng 0x4EAE:liàng,liáng 0x4EAF:xiǎng 0x4EB0:jīng 0x4EB1:yè 0x4EB2:qīn,qìng 0x4EB3:bó 0x4EB4:yòu 0x4EB5:xiè 0x4EB6:dǎn,dàn,chán,zhān 0x4EB7:lián 0x4EB8:duǒ 0x4EB9:wěi,mén 0x4EBA:rén 0x4EBB:rén 0x4EBC:jí 0x4EBD:jí 0x4EBE:wáng 0x4EBF:yì 0x4EC0:shén,shí 0x4EC1:rén 0x4EC2:lè,lì 0x4EC3:dīng,dǐng 0x4EC4:zè 0x4EC5:jǐn,fù,nú,jìn 0x4EC6:pū,pú 0x4EC7:chóu,qiú,jū 0x4EC8:bā 0x4EC9:zhǎng 0x4ECA:jīn 0x4ECB:jiè,gè 0x4ECC:bīng 0x4ECD:réng 0x4ECE:cóng,cōng 0x4ECF:fó 0x4ED0:sǎn 0x4ED1:lún 0x4ED2:bīng 0x4ED3:cāng 0x4ED4:zǎi,zǐ,zī 0x4ED5:shì 0x4ED6:tā,tuó 0x4ED7:zhàng 0x4ED8:fù 0x4ED9:xiān,xiǎn 0x4EDA:xiān 0x4EDB:tuō,duó,chà,zhé 0x4EDC:hóng 0x4EDD:tóng 0x4EDE:rèn 0x4EDF:qiān 0x4EE0:gǎn,hàn 0x4EE1:gē,yì,wù 0x4EE2:bó 0x4EE3:dài 0x4EE4:lìng,líng,lián,lǐng 0x4EE5:yǐ,sì 0x4EE6:chào 0x4EE7:cháng 0x4EE8:sā 0x4EE9:cháng 0x4EEA:yí 0x4EEB:mù 0x4EEC:men 0x4EED:rèn 0x4EEE:fǎn 0x4EEF:chào,miǎo 0x4EF0:yǎng,áng 0x4EF1:qián,jīng 0x4EF2:zhòng 0x4EF3:pǐ,pí,bì 0x4EF4:wò 0x4EF5:wǔ 0x4EF6:jiàn,móu 0x4EF7:jià,jiè,jie 0x4EF8:yǎo,fó 0x4EF9:fēng 0x4EFA:cāng 0x4EFB:rèn,rén,lìn 0x4EFC:wáng 0x4EFD:fèn,bīn 0x4EFE:dī 0x4EFF:fǎng,páng 0x4F00:zhōng 0x4F01:qǐ 0x4F02:pèi 0x4F03:yú,yǔ,xù 0x4F04:diào 0x4F05:dùn 0x4F06:wù 0x4F07:yì 0x4F08:xǐn,lǐn 0x4F09:kàng,gāng,kǎng 0x4F0A:yī 0x4F0B:jí,fán 0x4F0C:ài 0x4F0D:wǔ 0x4F0E:jì,zhì,qí,qì 0x4F0F:fú,fù 0x4F10:fá 0x4F11:xiū,xù 0x4F12:jìn,yín 0x4F13:pī 0x4F14:dǎn 0x4F15:fū 0x4F16:tǎng 0x4F17:zhòng,yín 0x4F18:yōu,yóu 0x4F19:huǒ,huo 0x4F1A:huì,kuài 0x4F1B:yǔ 0x4F1C:cuì 0x4F1D:yún 0x4F1E:sǎn 0x4F1F:wěi 0x4F20:chuán,zhuàn 0x4F21:chē 0x4F22:yá 0x4F23:qiàn,xiàn 0x4F24:shāng 0x4F25:chāng 0x4F26:lún 0x4F27:cāng,chen 0x4F28:xùn 0x4F29:xìn 0x4F2A:wěi 0x4F2B:zhù 0x4F2C:ze 0x4F2D:xián 0x4F2E:nǔ 0x4F2F:bó,mò,bà,bǎi 0x4F30:gū,gù 0x4F31:nǐ 0x4F32:nì,nǐ 0x4F33:xiè 0x4F34:bàn,pàn 0x4F35:xù 0x4F36:líng 0x4F37:zhòu 0x4F38:shēn 0x4F39:qū,zù 0x4F3A:cì,sì 0x4F3B:bēng 0x4F3C:shì,sì 0x4F3D:gā,jiā,qié 0x4F3E:pī 0x4F3F:yì 0x4F40:sì 0x4F41:yǐ,ǎi,sì,chì 0x4F42:zhēng 0x4F43:diàn,tián 0x4F44:hān,gàn 0x4F45:mài 0x4F46:dàn,tǎn,yàn 0x4F47:zhù 0x4F48:bù 0x4F49:qū,qiā 0x4F4A:bǐ 0x4F4B:zhāo,sháo,shào 0x4F4C:cǐ 0x4F4D:wèi,lì 0x4F4E:dī 0x4F4F:zhù 0x4F50:zuǒ 0x4F51:yòu 0x4F52:yǎng,yāng 0x4F53:tǐ,bèn,cuì,tī 0x4F54:zhàn,chān,diān 0x4F55:hé,hè 0x4F56:bì 0x4F57:tuó,tuō,tuò,yí 0x4F58:shé 0x4F59:yú,tú,xú,yù 0x4F5A:yì,dié 0x4F5B:fú,bó,bì,fó 0x4F5C:zuò,zuō,zuó 0x4F5D:gōu,kòu,jū 0x4F5E:nìng 0x4F5F:tóng 0x4F60:nǐ 0x4F61:xiān 0x4F62:qú 0x4F63:yōng,yòng 0x4F64:wǎ 0x4F65:qiān 0x4F66:shi 0x4F67:kǎ 0x4F68:bāo 0x4F69:pèi 0x4F6A:huí,huái 0x4F6B:hè,gé 0x4F6C:lǎo,liáo 0x4F6D:xiáng 0x4F6E:gé,é 0x4F6F:yáng 0x4F70:bǎi,mò 0x4F71:fǎ 0x4F72:mǐng 0x4F73:jiā 0x4F74:èr,nài 0x4F75:bìng 0x4F76:jí 0x4F77:hěn,héng 0x4F78:huó 0x4F79:guǐ,guī 0x4F7A:quán 0x4F7B:tiāo,tiáo,tiào,diǎo,yáo,dào,zhào 0x4F7C:jiǎo,jiāo,xiáo 0x4F7D:cì 0x4F7E:yì 0x4F7F:shǐ 0x4F80:xíng 0x4F81:shēn 0x4F82:tuō 0x4F83:kǎn 0x4F84:zhí 0x4F85:gāi,hài 0x4F86:lái,lài 0x4F87:yí 0x4F88:chǐ 0x4F89:kuǎ,huá,è,wú 0x4F8A:guāng 0x4F8B:lì,liè 0x4F8C:yīn 0x4F8D:shì 0x4F8E:mǐ 0x4F8F:zhū,zhōu 0x4F90:xù 0x4F91:yòu 0x4F92:ān,ǎn 0x4F93:lù 0x4F94:móu,máo 0x4F95:ér 0x4F96:lún,lùn 0x4F97:dòng,tōng,tóng,tǒng 0x4F98:chà 0x4F99:chī 0x4F9A:xùn,xún 0x4F9B:gōng,gòng 0x4F9C:zhōu 0x4F9D:yī,yǐ 0x4F9E:rú 0x4F9F:cún,jiàn 0x4FA0:xiá 0x4FA1:sì 0x4FA2:dài 0x4FA3:lǚ 0x4FA4:ta 0x4FA5:jiǎo,yáo 0x4FA6:zhēn 0x4FA7:cè,zè,zhāi 0x4FA8:qiáo 0x4FA9:kuài 0x4FAA:chái 0x4FAB:nìng 0x4FAC:nóng 0x4FAD:jǐn 0x4FAE:wǔ 0x4FAF:hóu,hòu 0x4FB0:jiǒng 0x4FB1:chěng,tǐng 0x4FB2:zhèn,zhēn,chēn 0x4FB3:zuò 0x4FB4:chǒu 0x4FB5:qīn,qǐn 0x4FB6:lǚ 0x4FB7:jú 0x4FB8:shù,dōu 0x4FB9:tǐng 0x4FBA:shèn 0x4FBB:tuì,tuō 0x4FBC:bó 0x4FBD:nán 0x4FBE:xiāo 0x4FBF:biàn,pián,biān 0x4FC0:tuǐ 0x4FC1:yǔ 0x4FC2:xì 0x4FC3:cù,chuò 0x4FC4:é 0x4FC5:qiú 0x4FC6:xú,shū 0x4FC7:guàng 0x4FC8:kù 0x4FC9:wǔ,wú 0x4FCA:jùn,shùn,dūn 0x4FCB:yì 0x4FCC:fǔ 0x4FCD:liáng,lǎng 0x4FCE:zǔ 0x4FCF:qiào,xiào,xiāo 0x4FD0:lì 0x4FD1:yǒng 0x4FD2:hùn 0x4FD3:jìng,yíng 0x4FD4:qiàn,xiàn 0x4FD5:sàn 0x4FD6:pěi 0x4FD7:sú 0x4FD8:fú 0x4FD9:xī 0x4FDA:lǐ,lì 0x4FDB:fǔ,miǎn 0x4FDC:pīng 0x4FDD:bǎo 0x4FDE:yú,shù 0x4FDF:qí,sì 0x4FE0:xiá 0x4FE1:xìn,shēn 0x4FE2:xiū 0x4FE3:yǔ 0x4FE4:dì 0x4FE5:chē,jū 0x4FE6:chóu 0x4FE7:zhì 0x4FE8:yǎn 0x4FE9:liǎ,liǎng 0x4FEA:lì 0x4FEB:lái 0x4FEC:sī 0x4FED:jiǎn 0x4FEE:xiū 0x4FEF:fǔ 0x4FF0:huò 0x4FF1:jù,jū 0x4FF2:xiào 0x4FF3:pái 0x4FF4:jiàn 0x4FF5:biào 0x4FF6:chù,shū,tì 0x4FF7:fèi 0x4FF8:fèng,běng 0x4FF9:yà,yā 0x4FFA:ǎn,yàn 0x4FFB:bèi 0x4FFC:yù 0x4FFD:xīn 0x4FFE:bǐ,bì,bēi,pì 0x4FFF:hǔ,chí 0x5000:chāng,chéng,zhèng 0x5001:zhī 0x5002:bìng 0x5003:jiù 0x5004:yáo 0x5005:cuì,zú 0x5006:liǎ,liǎng 0x5007:wǎn 0x5008:lái,lài,liē 0x5009:cāng,chuàng 0x500A:zòng 0x500B:gè,gě 0x500C:guān 0x500D:bèi,péi 0x500E:tiǎn 0x500F:shū 0x5010:shū 0x5011:men,mèn,mén 0x5012:dào,dǎo 0x5013:tán,dàn,tàn 0x5014:jué,juè 0x5015:chuí,zhuì 0x5016:xìng 0x5017:péng,pěng,píng 0x5018:tǎng,cháng 0x5019:hòu 0x501A:yǐ,jī,yī 0x501B:qī,qí,qì 0x501C:tì,diào,zhōu 0x501D:gàn 0x501E:jìng,liàng 0x501F:jiè 0x5020:suī 0x5021:chàng,chāng 0x5022:jié,qiè 0x5023:fǎng 0x5024:zhí 0x5025:kōng,kǒng 0x5026:juàn 0x5027:zōng 0x5028:jù 0x5029:qiàn,qìng 0x502A:ní,nì,niè 0x502B:lún 0x502C:zhuō 0x502D:wō,wēi,wǒ 0x502E:luǒ 0x502F:sōng 0x5030:lèng,líng 0x5031:hùn 0x5032:dōng,dòng 0x5033:zì 0x5034:bèn,bēn 0x5035:wǔ 0x5036:jù 0x5037:nǎi 0x5038:cǎi 0x5039:jiǎn 0x503A:zhài 0x503B:yē 0x503C:zhí 0x503D:shà 0x503E:qīng 0x503F:nìng 0x5040:yīng 0x5041:chēng 0x5042:qián 0x5043:yǎn 0x5044:ruǎn,rú 0x5045:zhòng,chōng,tóng 0x5046:chǔn 0x5047:jiǎ,jià,jie,xià,xiá,gé 0x5048:jì,jié,qì 0x5049:wěi 0x504A:yǔ 0x504B:bìng,bǐng 0x504C:ruò,rè 0x504D:tí 0x504E:wēi 0x504F:piān 0x5050:yàn 0x5051:fēng 0x5052:tǎng,dàng 0x5053:wò 0x5054:è 0x5055:xié,jiē 0x5056:chě 0x5057:shěng 0x5058:kǎn 0x5059:dì 0x505A:zuò 0x505B:chā 0x505C:tíng 0x505D:bèi 0x505E:xiè,yè,zhá 0x505F:huáng 0x5060:yǎo 0x5061:zhàn 0x5062:chǒu,qiào,zōu 0x5063:yān 0x5064:yóu 0x5065:jiàn 0x5066:xǔ,xū 0x5067:zhā 0x5068:cī 0x5069:fù 0x506A:bī,fù 0x506B:zhì 0x506C:zǒng,cōng 0x506D:miǎn 0x506E:jí 0x506F:yǐ 0x5070:xiè 0x5071:xún 0x5072:cāi,sī,sǐ 0x5073:duān 0x5074:cè,zè,zhāi 0x5075:zhēn,zhēng 0x5076:ǒu 0x5077:tōu 0x5078:tōu 0x5079:bèi 0x507A:zá,zán,zan 0x507B:lóu,lǚ 0x507C:jié 0x507D:wěi,wéi,é,guì 0x507E:fèn 0x507F:cháng 0x5080:guī,kuài,kuǐ 0x5081:sǒu 0x5082:zhì,sī 0x5083:sù 0x5084:xiā 0x5085:fù,fū 0x5086:yuàn,yuán 0x5087:rǒng 0x5088:lì 0x5089:nù 0x508A:yùn 0x508B:jiǎng,gòu 0x508C:mà,mǎ 0x508D:bàng,páng,bēng,péng 0x508E:diān 0x508F:táng 0x5090:hào 0x5091:jié 0x5092:xī,xì 0x5093:shàn 0x5094:qiàn,jiān 0x5095:jué,què 0x5096:cāng,chéng,chen 0x5097:chù 0x5098:sǎn 0x5099:bèi 0x509A:xiào 0x509B:yǒng,róng 0x509C:yáo 0x509D:tàn,tà 0x509E:suō 0x509F:yǎng 0x50A0:fá 0x50A1:bìng 0x50A2:jiā,xiàng 0x50A3:dǎi 0x50A4:zài 0x50A5:tǎng 0x50A6:gǔ 0x50A7:bīn 0x50A8:chǔ 0x50A9:nuó 0x50AA:cān,sǎn,càn,cā,sēn 0x50AB:lěi 0x50AC:cuī 0x50AD:yōng,chōng,yòng 0x50AE:zāo,cáo 0x50AF:zǒng 0x50B0:bēng,péng 0x50B1:sǒng,shuǎng 0x50B2:ào,áo 0x50B3:chuán,zhuàn 0x50B4:yǔ 0x50B5:zhài 0x50B6:zú,qī 0x50B7:shāng 0x50B8:chuǎng 0x50B9:jìng 0x50BA:chì 0x50BB:shǎ 0x50BC:hàn 0x50BD:zhāng 0x50BE:qīng,qǐng 0x50BF:yàn,yān,yìn 0x50C0:dì 0x50C1:xiè,sù 0x50C2:lóu,liǔ,lǚ 0x50C3:bèi 0x50C4:piào,biāo 0x50C5:jǐn,jìn 0x50C6:liàn,lián 0x50C7:lù,liáo 0x50C8:mán,màn 0x50C9:qiān 0x50CA:xiān 0x50CB:tàn,làn,tǎn 0x50CC:yíng 0x50CD:dòng 0x50CE:zhuàn,zūn 0x50CF:xiàng 0x50D0:shàn 0x50D1:qiáo,jiǎo 0x50D2:jiǒng 0x50D3:tuǐ,tuí 0x50D4:zǔn,cuán 0x50D5:pú,pū,bú 0x50D6:xī 0x50D7:láo,lào 0x50D8:chǎng 0x50D9:guāng 0x50DA:liáo,liǎo,lǎo 0x50DB:qī 0x50DC:chēng,dèng,dēng,téng 0x50DD:chán,zhuàn 0x50DE:wěi 0x50DF:jī 0x50E0:bō 0x50E1:huì 0x50E2:chuǎn,chǔn 0x50E3:tiě,jiàn 0x50E4:dàn,chán,chǎn,shàn,dá 0x50E5:jiǎo,yáo,jiāo 0x50E6:jiù 0x50E7:sēng,céng 0x50E8:fèn 0x50E9:xiàn 0x50EA:jú,yù 0x50EB:è 0x50EC:jiāo,jiào,jiǎo 0x50ED:jiàn,zèn 0x50EE:tóng,zhuàng,chòng 0x50EF:lìn,lǐn 0x50F0:bó 0x50F1:gù 0x50F2:xiān 0x50F3:sù 0x50F4:xiàn 0x50F5:jiāng 0x50F6:mǐn 0x50F7:yè 0x50F8:jìn 0x50F9:jià,qiǎ,jie 0x50FA:qiào 0x50FB:pì 0x50FC:fēng 0x50FD:zhòu,zhōu 0x50FE:ài 0x50FF:sài 0x5100:yí 0x5101:jùn 0x5102:nóng 0x5103:chán,shàn,tǎn,dàn,zhǎn 0x5104:yì,yī 0x5105:dàng,dāng 0x5106:jǐng 0x5107:xuān,xuán 0x5108:kuài 0x5109:jiǎn 0x510A:chù 0x510B:dān,dàn,shàn 0x510C:jiǎo,jiāo 0x510D:shǎ 0x510E:zài 0x510F:càn 0x5110:bīn,bìn 0x5111:án,àn 0x5112:rú 0x5113:tái,tài 0x5114:chóu,dào 0x5115:chái 0x5116:lán 0x5117:nǐ,yí,yì,ài 0x5118:jǐn,jìn 0x5119:qiàn 0x511A:méng 0x511B:wǔ 0x511C:níng 0x511D:qióng 0x511E:nǐ 0x511F:cháng 0x5120:liè,là 0x5121:lěi,léi,lèi 0x5122:lǚ 0x5123:kuǎng 0x5124:bào 0x5125:yù,dí,dú 0x5126:biāo 0x5127:zǎn 0x5128:zhì 0x5129:sì 0x512A:yōu 0x512B:háo 0x512C:qìng 0x512D:chèn,qìn,qīn 0x512E:lì 0x512F:téng 0x5130:wěi 0x5131:lǒng,lòng,lóng 0x5132:chǔ,chú 0x5133:chán,chàn 0x5134:ráng,xiāng 0x5135:shū,tiáo 0x5136:huì,xié 0x5137:lì,lí 0x5138:luó 0x5139:zǎn 0x513A:nuó 0x513B:tǎng,tàng,chǎng 0x513C:yǎn 0x513D:léi,lěi,luǒ 0x513E:nàng 0x513F:ér,rén 0x5140:wù,wū 0x5141:yǔn,yuán 0x5142:zān 0x5143:yuán 0x5144:xiōng,kuàng 0x5145:chōng 0x5146:zhào 0x5147:xiōng 0x5148:xiān 0x5149:guāng,guàng 0x514A:duì 0x514B:kè 0x514C:duì 0x514D:miǎn,wèn,wǎn 0x514E:tù 0x514F:cháng 0x5150:ér 0x5151:duì,ruì,duó 0x5152:ér,ní 0x5153:jīn,zàn 0x5154:tù,tú,chān 0x5155:sì 0x5156:yǎn 0x5157:yǎn 0x5158:shǐ 0x515A:dǎng 0x515B:qiān 0x515C:dōu 0x515D:fēn 0x515E:máo 0x515F:shēn 0x5160:dōu 0x5162:jīng 0x5163:lǐ 0x5164:huǎng 0x5165:rù 0x5166:wáng 0x5167:nèi 0x5168:quán 0x5169:liǎng,liàng 0x516A:yú,yù,shù,shū,zhū 0x516B:bā,bá 0x516C:gōng 0x516D:liù,lù 0x516E:xī 0x516F:han 0x5170:lán 0x5171:gòng,gōng,gǒng,hóng 0x5172:tiān 0x5173:guān 0x5174:xìng,xīng 0x5175:bīng 0x5176:qí,jī,jì 0x5177:jù 0x5178:diǎn,tiǎn 0x5179:zī,cí 0x517A:fēn 0x517B:yǎng 0x517C:jiān 0x517D:shòu 0x517E:jì 0x517F:yì 0x5180:jì 0x5181:chǎn 0x5182:jiōng,jiǒng 0x5183:mào 0x5184:rǎn 0x5185:nèi,nà,ruì 0x5186:yuán 0x5187:mǎo 0x5188:gāng 0x5189:rǎn,nán,dān 0x518A:cè 0x518B:jiōng,jiǒng 0x518C:cè,zhà 0x518D:zài 0x518E:guǎ 0x518F:jiǒng,jiōng 0x5190:mào 0x5191:zhòu 0x5192:mào,mò 0x5193:gòu,gōu 0x5194:xǔ 0x5195:miǎn 0x5196:mì 0x5197:rǒng 0x5198:yín,yóu 0x5199:xiě,xiè 0x519A:kǎn 0x519B:jūn 0x519C:nóng 0x519D:yí 0x519E:mí 0x519F:shì 0x51A0:guān,guàn 0x51A1:méng 0x51A2:zhǒng 0x51A3:jù 0x51A4:yuān 0x51A5:míng,mián,miàn 0x51A6:kòu 0x51A7:lín 0x51A8:fù 0x51A9:xiě 0x51AA:mì 0x51AB:bīng 0x51AC:dōng 0x51AD:tài 0x51AE:gāng 0x51AF:féng,píng 0x51B0:bīng,níng 0x51B1:hù 0x51B2:chōng,chòng 0x51B3:jué 0x51B4:hù 0x51B5:kuàng 0x51B6:yě 0x51B7:lěng,líng,lǐng 0x51B8:pàn 0x51B9:fú 0x51BA:mǐn 0x51BB:dòng 0x51BC:xiǎn,shěng 0x51BD:liè 0x51BE:qià 0x51BF:jiān 0x51C0:jìng,chēng 0x51C1:sōu 0x51C2:měi 0x51C3:tú 0x51C4:qī 0x51C5:gù 0x51C6:zhǔn 0x51C7:sōng 0x51C8:jìng 0x51C9:liáng,liàng 0x51CA:qìng 0x51CB:diāo 0x51CC:líng,lìng 0x51CD:dòng 0x51CE:gàn 0x51CF:jiǎn 0x51D0:yīn 0x51D1:còu 0x51D2:ái 0x51D3:lì 0x51D4:chuàng,cāng 0x51D5:mǐng 0x51D6:zhǔn 0x51D7:cuī 0x51D8:sī 0x51D9:duó 0x51DA:jìn 0x51DB:lǐn 0x51DC:lǐn 0x51DD:níng 0x51DE:xī 0x51DF:dú 0x51E0:jǐ,jī 0x51E1:fán 0x51E2:fán 0x51E3:fán 0x51E4:fèng 0x51E5:jū 0x51E6:chǔ,chù 0x51E7:zhēng 0x51E8:fēng 0x51E9:mù 0x51EA:zhǐ 0x51EB:fú 0x51EC:fēng 0x51ED:píng 0x51EE:fēng 0x51EF:kǎi 0x51F0:huáng 0x51F1:kǎi 0x51F2:gān 0x51F3:dèng 0x51F4:píng 0x51F5:qiǎn,kǎn 0x51F6:xiōng 0x51F7:kuài 0x51F8:tū 0x51F9:āo,wā 0x51FA:chū 0x51FB:jī 0x51FC:dàng 0x51FD:hán 0x51FE:hán 0x51FF:záo,zuò 0x5200:dāo,diāo 0x5201:diāo 0x5202:dāo 0x5203:rèn 0x5204:rèn 0x5205:chuāng 0x5206:fēn,fèn,fén 0x5207:qiè,qiē,qì 0x5208:yì 0x5209:jī 0x520A:kān 0x520B:qiàn 0x520C:cǔn 0x520D:chú 0x520E:wěn 0x520F:jī 0x5210:dǎn 0x5211:xíng 0x5212:huà,guò,guǒ,huá,huai 0x5213:wán 0x5214:jué 0x5215:lí 0x5216:yuè 0x5217:liè,lì 0x5218:liú 0x5219:zé 0x521A:gāng 0x521B:chuàng,chuāng 0x521C:fú 0x521D:chū 0x521E:qù 0x521F:diāo 0x5220:shān 0x5221:mǐn 0x5222:líng 0x5223:zhōng 0x5224:pàn 0x5225:bié 0x5226:jié 0x5227:jié 0x5228:páo,bào 0x5229:lì 0x522A:shān 0x522B:bié,biè 0x522C:chǎn,chàn 0x522D:jǐng 0x522E:guā 0x522F:gēng 0x5230:dào 0x5231:chuàng 0x5232:kuī 0x5233:kū,kōu 0x5234:duò 0x5235:èr 0x5236:zhì 0x5237:shuā,shuà 0x5238:quàn,xuàn 0x5239:shā,chà 0x523A:cì,qì,cī 0x523B:kè,kēi 0x523C:jié 0x523D:guì 0x523E:cì 0x523F:guì 0x5240:kǎi 0x5241:duò 0x5242:jì 0x5243:tì 0x5244:jǐng 0x5245:lóu,dōu 0x5246:luǒ 0x5247:zé 0x5248:yuān 0x5249:cuò 0x524A:xuē,qiào,xiāo,shào 0x524B:kè,kēi 0x524C:lá,là 0x524D:qián,jiǎn 0x524E:shā 0x524F:chuàng 0x5250:guǎ 0x5251:jiàn 0x5252:cuò 0x5253:lí 0x5254:tī,tì 0x5255:fèi 0x5256:pōu,pǒ 0x5257:chǎn,chàn 0x5258:qí 0x5259:chuàng 0x525A:zì 0x525B:gāng 0x525C:wān 0x525D:bō 0x525E:jī 0x525F:duō,chì 0x5260:qíng,lüè 0x5261:shàn,yǎn 0x5262:dū,zhuó 0x5263:jiàn 0x5264:jì 0x5265:bō,bāo,pū 0x5266:yān 0x5267:jù 0x5268:huō,huò 0x5269:shèng 0x526A:jiǎn 0x526B:duó,dù 0x526C:duān,tuán,zhì 0x526D:wū 0x526E:guǎ 0x526F:fù,pì 0x5270:shèng 0x5271:jiàn 0x5272:gē 0x5273:dá,zhá 0x5274:kǎi,āi 0x5275:chuàng,chuāng,qiāng 0x5276:chuān 0x5277:chǎn 0x5278:tuán,zhuān,zhuàn 0x5279:lù,jiū 0x527A:lí 0x527B:pěng 0x527C:shān 0x527D:piāo,piào,piáo,biǎo,biāo 0x527E:kōu 0x527F:jiǎo,chāo 0x5280:guā 0x5281:qiāo,qiáo 0x5282:jué 0x5283:huà,huá,huai 0x5284:zhā,zhá 0x5285:zhuó 0x5286:lián 0x5287:jù 0x5288:pī,pǐ 0x5289:liú 0x528A:guì 0x528B:jiǎo,chāo 0x528C:guì 0x528D:jiàn 0x528E:jiàn 0x528F:tāng 0x5290:huō,huò,huá 0x5291:jì 0x5292:jiàn 0x5293:yì 0x5294:jiàn 0x5295:zhì 0x5296:chán 0x5297:jiǎn,zuān 0x5298:mó,mí 0x5299:lí 0x529A:zhǔ 0x529B:lì 0x529C:yà 0x529D:quàn 0x529E:bàn 0x529F:gōng 0x52A0:jiā 0x52A1:wù 0x52A2:mài 0x52A3:liè 0x52A4:jìn 0x52A5:kēng 0x52A6:xié,liè 0x52A7:zhǐ 0x52A8:dòng 0x52A9:zhù,chú 0x52AA:nǔ 0x52AB:jié 0x52AC:qú 0x52AD:shào 0x52AE:yì 0x52AF:zhū 0x52B0:mò 0x52B1:lì 0x52B2:jìn,jìng 0x52B3:láo 0x52B4:láo 0x52B5:juàn 0x52B6:kǒu 0x52B7:yáng 0x52B8:wā 0x52B9:xiào 0x52BA:móu 0x52BB:kuāng 0x52BC:jié 0x52BD:liè 0x52BE:hé,kài 0x52BF:shì 0x52C0:kè 0x52C1:jìn,jìng 0x52C2:gào 0x52C3:bó 0x52C4:mǐn 0x52C5:chì 0x52C6:láng 0x52C7:yǒng 0x52C8:yǒng 0x52C9:miǎn 0x52CA:kè 0x52CB:xūn 0x52CC:juàn,juān 0x52CD:qíng 0x52CE:lù 0x52CF:bù 0x52D0:měng 0x52D1:chì,lài 0x52D2:lēi,lè,lei 0x52D3:kài 0x52D4:miǎn 0x52D5:dòng 0x52D6:xù,mào 0x52D7:xù 0x52D8:kān 0x52D9:wù,wǔ,wú,máo,mào 0x52DA:yì 0x52DB:xūn 0x52DC:wěng,yǎng 0x52DD:shèng 0x52DE:láo,lào,liáo 0x52DF:mù,bó 0x52E0:lù 0x52E1:piào 0x52E2:shì 0x52E3:jī 0x52E4:qín,qí 0x52E5:jiàng,qiǎng,jiǎng 0x52E6:chāo,jiǎo,cháo 0x52E7:quàn 0x52E8:xiàng 0x52E9:yì 0x52EA:jué 0x52EB:fān 0x52EC:juān 0x52ED:tóng,dòng 0x52EE:jù 0x52EF:dān 0x52F0:xié 0x52F1:mài 0x52F2:xūn 0x52F3:xūn 0x52F4:lǜ 0x52F5:lì 0x52F6:chè 0x52F7:ráng,xiāng 0x52F8:quàn 0x52F9:bāo 0x52FA:sháo,shuò,zhuó,dì 0x52FB:yún 0x52FC:jiū 0x52FD:bào 0x52FE:gōu,gòu 0x52FF:wù,mò 0x5300:yún,jūn,yùn 0x5301:wén 0x5302:xiōng 0x5303:gài 0x5304:gài 0x5305:bāo,páo,fú 0x5306:cōng 0x5307:yì 0x5308:xiōng 0x5309:pēng 0x530A:jū 0x530B:táo,yáo 0x530C:gé 0x530D:pú 0x530E:è 0x530F:páo 0x5310:fú 0x5311:gōng 0x5312:dá 0x5313:jiù 0x5314:gōng 0x5315:bǐ,pìn 0x5316:huà,huā,huò 0x5317:běi,bèi 0x5318:nǎo 0x5319:shi,chí 0x531A:fāng,fàng 0x531B:jiù 0x531C:yí 0x531D:zā 0x531E:jiàng 0x531F:kàng 0x5320:jiàng 0x5321:kuāng,wāng 0x5322:hū 0x5323:xiá 0x5324:qū 0x5325:fán 0x5326:guǐ 0x5327:qiè 0x5328:zāng,cáng 0x5329:kuāng 0x532A:fěi,fēi,fēn 0x532B:hū 0x532C:yǔ 0x532D:guǐ 0x532E:kuì 0x532F:huì 0x5330:dān 0x5331:guì,kuì 0x5332:lián 0x5333:lián 0x5334:suǎn 0x5335:dú 0x5336:jiù 0x5337:jué 0x5338:xì 0x5339:pǐ 0x533A:qū,ōu 0x533B:yī,yì 0x533C:kē,ē,ǎn 0x533D:yǎn,yàn 0x533E:biǎn 0x533F:nì,tè 0x5340:qū,ōu,gōu,qiū,kòu 0x5341:shí 0x5342:xùn 0x5343:qiān 0x5344:niàn 0x5345:sà 0x5346:zú 0x5347:shēng 0x5348:wǔ 0x5349:huì 0x534A:bàn,pàn 0x534B:shì 0x534C:xì 0x534D:wàn 0x534E:huá,huà 0x534F:xié 0x5350:wàn 0x5351:bēi,bǐ,bì,pí,bān 0x5352:zú,cù,cuì 0x5353:zhuó,zhuō 0x5354:xié 0x5355:dān,chán,shàn 0x5356:mài 0x5357:nán,nā 0x5358:dān 0x5359:jí,chì 0x535A:bó 0x535B:shuài 0x535C:bo,bǔ,pū 0x535D:kuàng,guàn 0x535E:biàn,pán 0x535F:bǔ,jī 0x5360:zhàn,zhān,tiē 0x5361:kǎ,qiǎ 0x5362:lú 0x5363:yǒu 0x5364:lǔ,xī 0x5365:xī 0x5366:guà 0x5367:wò 0x5368:xiè 0x5369:jié 0x536A:jié 0x536B:wèi 0x536C:áng,yǎng 0x536D:qióng 0x536E:zhī 0x536F:mǎo 0x5370:yìn,yì 0x5371:wēi 0x5372:shào 0x5373:jí 0x5374:què 0x5375:luǎn,kūn 0x5376:chǐ 0x5377:juǎn,juàn,quán,quān,gǔn,jùn 0x5378:xiè 0x5379:xù,sū 0x537A:jǐn 0x537B:què,jiǎo,xì 0x537C:wù 0x537D:jí 0x537E:è 0x537F:qīng 0x5380:xī 0x5381:sān 0x5382:chǎng,hǎn,yán,ān 0x5383:wěi,yán 0x5384:è,ě 0x5385:tīng 0x5386:lì 0x5387:zhé,zhái 0x5388:hǎn,àn 0x5389:lì 0x538A:yǎ 0x538B:yā,yà 0x538C:yàn 0x538D:shè 0x538E:dǐ,zhǐ 0x538F:zhǎ,zhǎi 0x5390:páng 0x5391:yá 0x5392:qiè 0x5393:yá,ái 0x5394:zhì,shī 0x5395:cè,si 0x5396:páng,máng 0x5397:tí 0x5398:lí,chán 0x5399:shè 0x539A:hòu 0x539B:tīng 0x539C:zuī 0x539D:cuò,jí 0x539E:fèi 0x539F:yuán 0x53A0:cè 0x53A1:yuán 0x53A2:xiāng 0x53A3:yǎn 0x53A4:lì 0x53A5:jué 0x53A6:shà,xià 0x53A7:diān 0x53A8:chú 0x53A9:jiù 0x53AA:jǐn 0x53AB:áo 0x53AC:guǐ 0x53AD:yàn,yā,yǎn,yān,yì 0x53AE:sī 0x53AF:lì 0x53B0:chǎng 0x53B1:lán,qiān 0x53B2:lì,lài 0x53B3:yán 0x53B4:yǎn 0x53B5:yuán 0x53B6:sī,mǒu 0x53B7:gōng,hóng 0x53B8:lín,min 0x53B9:róu,qiú 0x53BA:qù 0x53BB:qù,qū 0x53BC:ěr 0x53BD:lěi 0x53BE:dū,dǔ 0x53BF:xiàn 0x53C0:zhuān,huì 0x53C1:sān 0x53C2:cān,cēn,shēn 0x53C3:cān,shēn,sān,cēn,càn,sǎn 0x53C4:cān 0x53C5:cān 0x53C6:ài 0x53C7:dài 0x53C8:yòu 0x53C9:chā,chá,chǎ,chà 0x53CA:jí 0x53CB:yǒu 0x53CC:shuāng 0x53CD:fǎn,fàn 0x53CE:shōu 0x53CF:guài 0x53D0:bá 0x53D1:fā,fà 0x53D2:ruò 0x53D3:shì,lì 0x53D4:shū 0x53D5:zhuó,yǐ,lì,jué 0x53D6:qǔ,qū 0x53D7:shòu,dào 0x53D8:biàn 0x53D9:xù 0x53DA:jiǎ,xiá 0x53DB:pàn 0x53DC:sǒu 0x53DD:jí 0x53DE:wèi 0x53DF:sǒu,sōu,xiāo 0x53E0:dié 0x53E1:ruì 0x53E2:cóng 0x53E3:kǒu 0x53E4:gǔ,gù,kū 0x53E5:jù,gōu,gòu,qú 0x53E6:lìng 0x53E7:guǎ 0x53E8:dāo,tāo,dáo 0x53E9:kòu 0x53EA:zhǐ,zhī 0x53EB:jiào 0x53EC:zhào,shào 0x53ED:bā,pā,ba 0x53EE:dīng 0x53EF:kě,gē,kè 0x53F0:tái,yí,sì,tāi 0x53F1:chì,huà,é 0x53F2:shǐ 0x53F3:yòu 0x53F4:qiú 0x53F5:pǒ 0x53F6:yè,xié 0x53F7:hào,háo,xiāo 0x53F8:sī,cí,sì 0x53F9:tàn,yǐ,yòu 0x53FA:chǐ 0x53FB:lè,lì 0x53FC:diāo 0x53FD:jī,jiào 0x53FE:liǎo 0x53FF:hōng,hóng 0x5400:miē 0x5401:xū,yù,yū 0x5402:máng,màng 0x5403:chī,qī 0x5404:gè,gě 0x5405:xuān,sòng 0x5406:yāo 0x5407:zǐ,jí 0x5408:hé,gě 0x5409:jí 0x540A:diào 0x540B:cùn,dòu,yīng 0x540C:tóng,tòng 0x540D:míng,mìng 0x540E:hòu 0x540F:lì 0x5410:tǔ,tù 0x5411:xiàng 0x5412:zhā,zhà 0x5413:xià,hà,hè 0x5414:yě,yē 0x5415:lǚ 0x5416:yā,ā 0x5417:ma,má,mǎ 0x5418:ǒu 0x5419:huō 0x541A:yī,xī 0x541B:jūn 0x541C:chǒu 0x541D:lìn 0x541E:tūn,tiān 0x541F:yín,yǐn,jìn 0x5420:fèi 0x5421:bǐ,bì,pǐ 0x5422:qìn 0x5423:qìn 0x5424:jiè,gè,xiè 0x5425:bù,pōu 0x5426:fǒu,pǐ 0x5427:ba,bā,pā 0x5428:dūn,tún,tǔn 0x5429:fēn,pèn 0x542A:é,huā 0x542B:hán,hàn 0x542C:tīng,yǐn,yí 0x542D:kēng,háng,hàng 0x542E:shǔn 0x542F:qǐ 0x5430:hóng 0x5431:zhī,zī,qì 0x5432:yǐn,shěn 0x5433:wú,yú 0x5434:wú,tūn 0x5435:chǎo,miǎo,chāo,chào 0x5436:nà 0x5437:xuè,chuò,jué 0x5438:xī 0x5439:chuī,chuì 0x543A:dōu,rú 0x543B:wěn 0x543C:hǒu 0x543D:hōng,ōu,hǒu 0x543E:wú,yú,yá 0x543F:gào 0x5440:ya,xiā,yā 0x5441:jùn 0x5442:lǚ 0x5443:è,ài,e 0x5444:gé 0x5445:méi,wěn 0x5446:dāi,bǎo,ái 0x5447:qǐ 0x5448:chéng,kuáng,chěng 0x5449:wú 0x544A:gào,jū,gù 0x544B:fū 0x544C:jiào 0x544D:hōng 0x544E:chǐ,yīng 0x544F:shēng 0x5450:nà,nè,na,nuò,ne 0x5451:tūn 0x5452:wǔ,ḿ 0x5453:yì 0x5454:dāi,tǎi 0x5455:ǒu,òu 0x5456:lì 0x5457:bei,bài 0x5458:yuán,yún,yùn 0x5459:guō 0x545A:wen 0x545B:qiāng,qiàng 0x545C:wū 0x545D:è 0x545E:shī 0x545F:juǎn 0x5460:pěn 0x5461:wěn,mǐn 0x5462:ne,ní,nǐ,nī 0x5463:ḿ,móu,m̀ 0x5464:lìng,líng 0x5465:rán 0x5466:yōu 0x5467:dǐ 0x5468:zhōu 0x5469:shì 0x546A:zhòu 0x546B:tiè,chè 0x546C:xì,chì 0x546D:yì 0x546E:qì,zhī 0x546F:píng 0x5470:zǐ,cī,jī,xì 0x5471:gū,guā,guǎ 0x5472:cī,cí,zī 0x5473:wèi,mèi 0x5474:xǔ,hǒu,hōu,gòu,gōu,gū 0x5475:hē,hā,ā,a,kē,huō,á,à 0x5476:náo,ná,nǔ 0x5477:gā,xiā,jiǎ 0x5478:pēi 0x5479:yì,chì 0x547A:xiāo,háo 0x547B:shēn 0x547C:hū,xiāo,xū,hè,xià 0x547D:mìng 0x547E:dá,yà,tǎ,dàn 0x547F:qù,kā 0x5480:jǔ,zuǐ 0x5481:hán,xián,gàn 0x5482:zā 0x5483:tuō 0x5484:duō 0x5485:pǒu 0x5486:páo 0x5487:bié,bì 0x5488:fú 0x5489:yāng,yǎng 0x548A:hé 0x548B:zǎ,zé,zhà,zhā 0x548C:hé,hè,huò,huó,hú 0x548D:hāi,tāi 0x548E:jiù,gāo 0x548F:yǒng 0x5490:fù,fú 0x5491:dā 0x5492:zhòu 0x5493:wǎ 0x5494:kā,nòng,kǎ 0x5495:gū,gu 0x5496:kā,jiā,gā 0x5497:zuo 0x5498:bù 0x5499:lóng 0x549A:dōng 0x549B:níng 0x549C:ta 0x549D:sī 0x549E:xiàn,xián 0x549F:huò 0x54A0:qì 0x54A1:èr,ér 0x54A2:è 0x54A3:guāng,gōng 0x54A4:zhà 0x54A5:xì,xī,dié,zhì 0x54A6:yí,xī 0x54A7:liě,liè,liē,lié,lie 0x54A8:zī 0x54A9:miē,mie 0x54AA:mī,miē,mǎi,mǐ 0x54AB:zhǐ 0x54AC:yǎo,jiāo,yāo,jiǎo 0x54AD:jī,xī,qià 0x54AE:zhòu,zhù,zhū,rú 0x54AF:gē,luò,kǎ,kā,lo 0x54B0:shù,xún 0x54B1:zán,zá,zǎ,zan 0x54B2:xiào 0x54B3:hāi,hái,ké,gāi 0x54B4:huī,hái 0x54B5:kuǎ 0x54B6:huài,shì,guō,guā,huà 0x54B7:táo,tiào 0x54B8:xián,jiǎn,jiān 0x54B9:è,àn,ń 0x54BA:xuǎn,xuān 0x54BB:xiū,xǔ,xiāo,xù 0x54BC:guō,wāi,hé,wǒ,wō,guǎ 0x54BD:yàn,yān,yè,yuān 0x54BE:lǎo 0x54BF:yī 0x54C0:āi 0x54C1:pǐn 0x54C2:shěn 0x54C3:tóng 0x54C4:hōng,hòng,hǒng 0x54C5:xiōng,hōng 0x54C6:duō,chǐ,zhà,chì,duò,diě 0x54C7:wa,wā,guī,huá,wá 0x54C8:hā,hà,hē,hé,hǎ,tà,shà 0x54C9:zāi 0x54CA:yòu 0x54CB:diè,dì 0x54CC:pài,gū 0x54CD:xiǎng 0x54CE:āi 0x54CF:gén,hěn,ǹ 0x54D0:kuāng,qiāng 0x54D1:yǎ,yā 0x54D2:dá 0x54D3:xiāo 0x54D4:bì 0x54D5:huì,yuě 0x54D6:nián 0x54D7:huā,huá 0x54D8:xing 0x54D9:kuài 0x54DA:duǒ 0x54DB:fēn 0x54DC:jì 0x54DD:nóng 0x54DE:mōu 0x54DF:yō,yo 0x54E0:hào 0x54E1:yuán,yún,yùn 0x54E2:lòng 0x54E3:pǒu 0x54E4:máng 0x54E5:gē 0x54E6:ó,é,ò 0x54E7:chī,xià,hè 0x54E8:shào,sāo,xiāo,xiào,sào 0x54E9:lī,lì,li,lǐ,mái,yīng 0x54EA:nǎ,nuó,na,nǎi,nà,niè,né,něi 0x54EB:zú 0x54EC:hé 0x54ED:kū 0x54EE:xiāo,xiào,xuē 0x54EF:xiàn 0x54F0:láo 0x54F1:bō,pò,bèi,bā,bó 0x54F2:zhé 0x54F3:zhā 0x54F4:liàng,láng 0x54F5:bā 0x54F6:miē 0x54F7:liè,lǜ 0x54F8:suī 0x54F9:fú 0x54FA:bǔ,bū,fǔ 0x54FB:hān 0x54FC:hēng,hng 0x54FD:gěng,yǐng,yìng,ńg,ń 0x54FE:shuō,yuè 0x54FF:gě 0x5500:yòu 0x5501:yàn 0x5502:gū 0x5503:gǔ 0x5504:bei,bài 0x5505:hán 0x5506:suō,shuà 0x5507:chún,zhēn,zhèn 0x5508:yì 0x5509:āi,ǎi,ài 0x550A:jiá,qiǎn 0x550B:tū 0x550C:xián,yán,dàn 0x550D:wǎn 0x550E:lì 0x550F:xī,xiè 0x5510:táng 0x5511:zuò,shì 0x5512:qiú 0x5513:chē 0x5514:wú,wù,ńg,ḿ,ń 0x5515:zào 0x5516:yǎ 0x5517:dōu 0x5518:qǐ 0x5519:dí 0x551A:qìn,qīn 0x551B:mà 0x551C:mò 0x551D:gòng,hǒng 0x551E:dǒu 0x551F:qù 0x5520:láo,lào 0x5521:liǎng,yīng 0x5522:suǒ 0x5523:zào 0x5524:huàn 0x5525:lang 0x5526:shā 0x5527:jī,jié 0x5528:zǔ 0x5529:wō,wěi 0x552A:fěng,běng 0x552B:jìn,yín 0x552C:hǔ,xiāo,guó,xià,háo 0x552D:qì 0x552E:shòu,shú 0x552F:wéi,wěi 0x5530:shuā 0x5531:chàng 0x5532:ér,wā 0x5533:lì 0x5534:qiàng 0x5535:ǎn,ng,n 0x5536:zé,jiè 0x5537:yō,yù 0x5538:niàn,diàn 0x5539:yū 0x553A:tiǎn 0x553B:lài,lái 0x553C:shà,qiè 0x553D:xī 0x553E:tuò 0x553F:hū 0x5540:ái 0x5541:zhāo,dāo,zhōu,tiáo,diào 0x5542:nǒu 0x5543:kěn 0x5544:zhuó,zhòu 0x5545:zhuó,zhào 0x5546:shāng 0x5547:dì,shì,zhāi 0x5548:hēng,hèng,è,zá 0x5549:lín,lán,lèn 0x554A:a,è,ā,á,ǎ,à 0x554B:cǎi,cāi,xiāo 0x554C:xiāng,qiāng 0x554D:tūn,zhūn,xiāng,tuī,duǐ 0x554E:wǔ 0x554F:wèn 0x5550:cuì,zú,zá,è,chuài 0x5551:shà,zā,jié,dié,tì 0x5552:gǔ 0x5553:qǐ 0x5554:qǐ 0x5555:táo 0x5556:dàn 0x5557:dàn 0x5558:yè,wā 0x5559:zǐ,cī 0x555A:bǐ,tú 0x555B:cuì 0x555C:chuài,chuò,zhuó 0x555D:hé 0x555E:yǎ,è,yā 0x555F:qǐ 0x5560:zhé 0x5561:fēi,pèi,pái,pēi,bài 0x5562:liǎng,yīng 0x5563:xián 0x5564:pí 0x5565:shá,shà 0x5566:la,lā 0x5567:zé 0x5568:yīng,qíng 0x5569:guà 0x556A:pā 0x556B:zhě 0x556C:sè 0x556D:zhuàn 0x556E:niè 0x556F:guō 0x5570:luō 0x5571:yán 0x5572:dī 0x5573:quán,jué 0x5574:chǎn,tān 0x5575:bō,bo 0x5576:dìng 0x5577:lāng 0x5578:xiào 0x5579:jú 0x557A:táng 0x557B:chì,dì 0x557C:tí 0x557D:án,ān 0x557E:jiū 0x557F:dàn 0x5580:kā,kè,ke 0x5581:yóng,yú 0x5582:wèi 0x5583:nán,nǎn 0x5584:shàn 0x5585:yù 0x5586:zhé 0x5587:lǎ,lá,lā,la 0x5588:jiē,xiè 0x5589:hóu 0x558A:hǎn,kàn,jiān 0x558B:dié,zhá,qiè 0x558C:zhōu 0x558D:chái 0x558E:wāi 0x558F:nuò,rě 0x5590:yù 0x5591:yīn,yǐn,yìn 0x5592:zá,zǎn,zán,zà,zan 0x5593:yāo 0x5594:ō,wō,wū,o,ò 0x5595:miǎn 0x5596:hú 0x5597:yǔn 0x5598:chuǎn 0x5599:huì,zhòu 0x559A:huàn 0x559B:huàn,yuán,xuǎn,hé 0x559C:xǐ,xī,chì 0x559D:hē,yè,hè,kài 0x559E:jī 0x559F:kuì,huài 0x55A0:zhǒng,chǒng 0x55A1:wéi,wèi 0x55A2:shà,chè 0x55A3:xù 0x55A4:huáng 0x55A5:duó,zhà 0x55A6:niè,yì 0x55A7:xuān,xuǎn 0x55A8:liàng 0x55A9:yù 0x55AA:sàng,sāng 0x55AB:chī,kài 0x55AC:qiáo,jiǎo 0x55AD:yàn,yǎn 0x55AE:dān,dǎn,chán,shàn,chǎn,dàn,zhàn,tán 0x55AF:pèn,bēn 0x55B0:cān,sūn,qī 0x55B1:lí 0x55B2:yō,yo 0x55B3:zhā,zha,chā 0x55B4:wēi 0x55B5:miāo 0x55B6:yíng 0x55B7:pēn,pèn 0x55B8:bǔ 0x55B9:kuí 0x55BA:xí 0x55BB:yù,yú 0x55BC:jiē 0x55BD:lóu,lou 0x55BE:kù 0x55BF:zào,qiāo 0x55C0:hù 0x55C1:tí 0x55C2:yáo 0x55C3:hè,xiāo,xiào,hù 0x55C4:á,shà,a,xià 0x55C5:xiù 0x55C6:qiāng,qiàng,chéng 0x55C7:sè 0x55C8:yōng 0x55C9:sù 0x55CA:hǒng,gǒng,gòng 0x55CB:xié 0x55CC:ài,yì,wò 0x55CD:suō,shuò 0x55CE:ma,mà,má,mǎ 0x55CF:chā 0x55D0:hài 0x55D1:kē,kè,hé,xiá 0x55D2:dā,tà,da 0x55D3:sǎng 0x55D4:chēn,tián 0x55D5:rù 0x55D6:sōu,sù,sòu 0x55D7:wā,gū 0x55D8:jī 0x55D9:pǎng,bēng,bàng 0x55DA:wū,wù 0x55DB:qiǎn,xián,qiàn,qiān,qiè 0x55DC:shì 0x55DD:gé 0x55DE:zī 0x55DF:jiē,jiè,juē 0x55E0:lào 0x55E1:wēng,wěng 0x55E2:wà 0x55E3:sì 0x55E4:chī 0x55E5:háo 0x55E6:suo,suō 0x55E8:hāi,hēi 0x55E9:suǒ 0x55EA:qín 0x55EB:niè 0x55EC:hē 0x55ED:zhí 0x55EE:sài 0x55EF:ń,ńg,ňg,ň,ǹg,ǹ 0x55F0:gě 0x55F1:ná 0x55F2:diē,diǎ 0x55F3:āi,ǎi,ài 0x55F4:qiāng 0x55F5:tōng 0x55F6:bì 0x55F7:áo 0x55F8:áo 0x55F9:lián 0x55FA:zuī,suī,zuǐ 0x55FB:zhē,zhè,zhù,zhe 0x55FC:mò 0x55FD:sòu,shuò,shù 0x55FE:sǒu 0x55FF:tǎn 0x5600:dí,zhé,dī 0x5601:qī,zú,zā 0x5602:jiào 0x5603:chōng 0x5604:jiāo,jiào,dǎo 0x5605:kǎi,kài,gé 0x5606:tàn 0x5607:shān,càn,shěn 0x5608:cáo 0x5609:jiā 0x560A:ái 0x560B:xiào 0x560C:piào,piāo 0x560D:lóu,lǒu,lou 0x560E:gā,gá,gǎ 0x560F:gǔ,jiǎ 0x5610:xiāo,jiāo,láo,bào,miù 0x5611:hū,hù 0x5612:huì 0x5613:guō 0x5614:ǒu,ōu,òu,xū,chū,ou 0x5615:xiān 0x5616:zé 0x5617:cháng 0x5618:xū,shī 0x5619:pó 0x561A:dē,dé,dāi,dēi 0x561B:ma,má 0x561C:mà 0x561D:hú 0x561E:lei,lē 0x561F:dū 0x5620:gā 0x5621:tāng 0x5622:yě 0x5623:bēng 0x5624:yīng 0x5625:sāi 0x5626:jiào 0x5627:mì 0x5628:xiào 0x5629:huā,huá 0x562A:mǎi 0x562B:rán 0x562C:chuài,zuō 0x562D:pēng 0x562E:láo,chāo,lào,xiāo 0x562F:xiào,chì 0x5630:jī 0x5631:zhǔ 0x5632:cháo,zhāo 0x5633:kuì 0x5634:zuǐ 0x5635:xiāo 0x5636:sī 0x5637:háo 0x5638:fǔ,wǔ,m̄,ḿ 0x5639:liáo,liào 0x563A:qiáo,qiào 0x563B:xī 0x563C:chù,xù,shòu 0x563D:chǎn,tān,chān,tuō,dǎn 0x563E:dàn,tán 0x563F:hēi,mò,mù 0x5640:xùn 0x5641:ě,wù,wò 0x5642:zǔn 0x5643:fān,bo 0x5644:chī 0x5645:huī 0x5646:zǎn,cǎn 0x5647:chuáng 0x5648:cù,zā,hé 0x5649:dàn 0x564A:yù 0x564B:tūn,kuò 0x564C:cēng,chēng 0x564D:jiào,jiāo,jiū 0x564E:yē,yì,shà 0x564F:xī 0x5650:qì 0x5651:háo 0x5652:lián 0x5653:xū 0x5654:dēng 0x5655:huī 0x5656:yín 0x5657:pū 0x5658:juē 0x5659:qín 0x565A:xún 0x565B:niè 0x565C:lū 0x565D:sī 0x565E:yǎn 0x565F:yìng 0x5660:dā,dá 0x5661:zhān,dān 0x5662:ō,yǔ,yù,ào 0x5663:zhòu,zhuó,zhú,dú 0x5664:jìn 0x5665:nóng,náng 0x5666:yuě,huì 0x5667:xiè 0x5668:qì 0x5669:è 0x566A:zào 0x566B:yī,ǎi,yì 0x566C:shì 0x566D:jiào,qiào,chī 0x566E:yuàn 0x566F:āi,ǎi,ài 0x5670:yōng,yǒng 0x5671:jué,xué 0x5672:kuài,guài,kuò,wèi 0x5673:yǔ 0x5674:pēn,pèn,fèn 0x5675:dào 0x5676:gá,gé 0x5677:hm,xīn,hēn 0x5678:dūn 0x5679:dāng 0x567A:xīn 0x567B:sāi 0x567C:pī 0x567D:pǐ 0x567E:yīn 0x567F:zuǐ 0x5680:níng 0x5681:dí 0x5682:làn,hǎn 0x5683:tā,tà 0x5684:huō,huò,wò,ǒ 0x5685:rú 0x5686:hāo 0x5687:xià,hè 0x5688:yè 0x5689:duō 0x568A:pì,xì,xiù 0x568B:chóu,zhōu 0x568C:jì,jiē,zhāi 0x568D:jìn 0x568E:háo 0x568F:tì 0x5690:cháng 0x5691:xūn 0x5692:mē 0x5693:cā,chā 0x5694:tì,zhì 0x5695:lǔ,lū 0x5696:huì 0x5697:bó,pào,bào 0x5698:yōu 0x5699:niè,yǎo 0x569A:yín 0x569B:hù,yo 0x569C:me,mèi,ma 0x569D:hōng 0x569E:zhé 0x569F:lí 0x56A0:liú 0x56A1:hai 0x56A2:náng 0x56A3:xiāo,áo 0x56A4:mó 0x56A5:yàn 0x56A6:lì 0x56A7:lú 0x56A8:lóng 0x56A9:mó 0x56AA:dàn 0x56AB:chèn 0x56AC:pín 0x56AD:pǐ 0x56AE:xiàng,xiǎng 0x56AF:huò,xuè 0x56B0:mó 0x56B1:xì 0x56B2:duǒ 0x56B3:kù 0x56B4:yán,yǎn 0x56B5:chán,chān 0x56B6:yīng 0x56B7:rǎng,rāng 0x56B8:diǎn 0x56B9:lá,la 0x56BA:tà 0x56BB:xiāo 0x56BC:jué,jiáo,jiào 0x56BD:chuò 0x56BE:huān,huàn 0x56BF:huò 0x56C0:zhuàn 0x56C1:niè,zhé 0x56C2:xiāo,áo 0x56C3:cà,zhā,zǎ 0x56C4:lí 0x56C5:chǎn 0x56C6:chài 0x56C7:lì 0x56C8:yì 0x56C9:luō,luó,luo 0x56CA:náng,nāng 0x56CB:zá,zàn,cān 0x56CC:sū 0x56CD:xǐ 0x56CE:zen 0x56CF:jiān 0x56D0:zá,niè,yàn,è 0x56D1:zhǔ 0x56D2:lán 0x56D3:niè 0x56D4:nāng,nang 0x56D5:lǎn 0x56D6:lo 0x56D7:wéi,guó 0x56D8:huí 0x56D9:yīn 0x56DA:qiú 0x56DB:sì 0x56DC:nín 0x56DD:jiǎn,nān,yuè 0x56DE:huí 0x56DF:xìn 0x56E0:yīn 0x56E1:nān,niè 0x56E2:tuán,qiú 0x56E3:tuán 0x56E4:dùn,tún 0x56E5:kàng 0x56E6:yuān 0x56E7:jiǒng 0x56E8:piān 0x56E9:yún 0x56EA:cōng 0x56EB:hú 0x56EC:huí 0x56ED:yuán,wán 0x56EE:é 0x56EF:guó 0x56F0:kùn 0x56F1:cōng,chuāng 0x56F2:tōng 0x56F3:tú 0x56F4:wéi 0x56F5:lún 0x56F6:guó 0x56F7:qūn 0x56F8:rì 0x56F9:líng 0x56FA:gù 0x56FB:guó 0x56FC:tāi 0x56FD:guó 0x56FE:tú 0x56FF:yòu 0x5700:guó 0x5701:yín 0x5702:hùn,huàn 0x5703:pǔ 0x5704:yǔ 0x5705:hán 0x5706:yuán 0x5707:lún 0x5708:quān,juàn,juān,quán,juǎn 0x5709:yǔ 0x570A:qīng 0x570B:guó 0x570C:chuán,chuí 0x570D:wéi 0x570E:yuán 0x570F:quān 0x5710:kū 0x5711:pǔ 0x5712:yuán 0x5713:yuán 0x5714:yà 0x5715:tú 0x5716:tú 0x5717:tú 0x5718:tuán,chuán 0x5719:lüè 0x571A:huì 0x571B:yì 0x571C:huán,yuán 0x571D:luán 0x571E:luán 0x571F:tǔ,dù,chǎ,tú 0x5720:yà 0x5721:tǔ 0x5722:tǐng 0x5723:shèng,kū 0x5724:pú 0x5725:lù 0x5726:kuài 0x5727:yā 0x5728:zài 0x5729:wéi,yú,xū 0x572A:gē,yì 0x572B:yù,zhūn 0x572C:wū 0x572D:guī 0x572E:pǐ 0x572F:yí 0x5730:de,dì 0x5731:qiān,sú 0x5732:qiān 0x5733:zhèn,quǎn,chóu,huái 0x5734:zhuó 0x5735:dàng 0x5736:qià 0x5737:xià 0x5738:shān 0x5739:kuàng 0x573A:chǎng,cháng 0x573B:qí,yín 0x573C:niè 0x573D:mò 0x573E:jī,jí,jié 0x573F:jiá 0x5740:zhǐ 0x5741:zhǐ,zhì 0x5742:bǎn 0x5743:xūn 0x5744:yì 0x5745:qǐn 0x5746:méi,fén 0x5747:jūn,yùn 0x5748:rǒng,kēng 0x5749:tún,dùn 0x574A:fāng,fáng 0x574B:bèn,fèn 0x574C:bèn 0x574D:tān 0x574E:kǎn,kàn 0x574F:huài,pī,péi 0x5750:zuò 0x5751:kēng,kàng 0x5752:bì 0x5753:jǐng,xíng 0x5754:dì,làn 0x5755:jīng 0x5756:jì 0x5757:kuài,yué 0x5758:dǐ 0x5759:jīng 0x575A:jiān 0x575B:tán 0x575C:lì 0x575D:bà 0x575E:wù 0x575F:fén 0x5760:zhuì 0x5761:pō 0x5762:bàn,pǎn,pàn 0x5763:táng 0x5764:kūn 0x5765:qū,jù 0x5766:tǎn 0x5767:zhī 0x5768:tuó,yí 0x5769:gān 0x576A:píng 0x576B:diàn,zhēn 0x576C:guà 0x576D:ní 0x576E:tái 0x576F:pī,huài 0x5770:jiōng 0x5771:yǎng 0x5772:fó 0x5773:ào,āo,yǒu 0x5774:lù 0x5775:qiū 0x5776:mǔ,mù,méi 0x5777:kě,kē,jiōng 0x5778:gòu 0x5779:xuè 0x577A:bá 0x577B:chí,dǐ 0x577C:chè 0x577D:líng 0x577E:zhù 0x577F:fù,fú 0x5780:hū 0x5781:zhì 0x5782:chuí,zhuì 0x5783:lā,la 0x5784:lǒng 0x5785:lǒng 0x5786:lú 0x5787:ào 0x5788:dài 0x5789:páo 0x578A:min 0x578B:xíng 0x578C:dòng,tǒng,tóng 0x578D:jì,jī 0x578E:hè 0x578F:lǜ 0x5790:cí 0x5791:chǐ 0x5792:lěi 0x5793:gāi 0x5794:yīn 0x5795:hòu 0x5796:duī 0x5797:zhào 0x5798:fú 0x5799:guāng 0x579A:yáo 0x579B:duǒ,duò 0x579C:duǒ,duò 0x579D:guǐ 0x579E:chá 0x579F:yáng 0x57A0:yín,kèn 0x57A1:fá 0x57A2:gòu 0x57A3:yuán 0x57A4:dié 0x57A5:xié 0x57A6:kěn,yín 0x57A7:shǎng,jiōng 0x57A8:shǒu 0x57A9:è,shèng 0x57AA:bìng 0x57AB:diàn 0x57AC:hóng 0x57AD:yā 0x57AE:kuǎ 0x57AF:da 0x57B0:kǎ 0x57B1:dàng 0x57B2:kǎi 0x57B3:háng 0x57B4:nǎo 0x57B5:ǎn 0x57B6:xīng 0x57B7:xiàn 0x57B8:yuàn,huán 0x57B9:bāng 0x57BA:fū,fóu,pēi,póu 0x57BB:bà,bèi 0x57BC:yì 0x57BD:yìn 0x57BE:hàn,àn 0x57BF:xù 0x57C0:chuí 0x57C1:qín 0x57C2:gěng 0x57C3:āi,zhì 0x57C4:běng,fēng 0x57C5:fáng,fāng,dì 0x57C6:què,jué 0x57C7:yǒng 0x57C8:jùn 0x57C9:jiā,xiá 0x57CA:dì 0x57CB:mái,mán 0x57CC:làng 0x57CD:juǎn 0x57CE:chéng 0x57CF:shān,yán 0x57D0:jīn,qín 0x57D1:zhé 0x57D2:liè 0x57D3:liè 0x57D4:pǔ,bù 0x57D5:chéng 0x57D6:huā 0x57D7:bù 0x57D8:shí 0x57D9:xūn 0x57DA:guō 0x57DB:jiōng 0x57DC:yě 0x57DD:niàn,diàn,niè 0x57DE:dī 0x57DF:yù 0x57E0:bù 0x57E1:yā,è,wǔ,yà 0x57E2:quán,juǎn 0x57E3:suì,sù 0x57E4:pí,bì,pì,bēi 0x57E5:qīng,zhēng 0x57E6:wǎn,wān 0x57E7:jù 0x57E8:lǔn,lùn 0x57E9:zhēng,chéng 0x57EA:kōng 0x57EB:chǒng,shǎng 0x57EC:dōng 0x57ED:dài 0x57EE:tàn,tán 0x57EF:ǎn,yǎn 0x57F0:cài,cǎi 0x57F1:chù,tòu 0x57F2:běng,bàng 0x57F3:kǎn,xiàn 0x57F4:zhí 0x57F5:duǒ 0x57F6:yì,shì 0x57F7:zhí 0x57F8:yì 0x57F9:péi,pǒu,pī 0x57FA:jī 0x57FB:zhǔn,duī,guó 0x57FC:qí 0x57FD:sào,sǎo 0x57FE:jù 0x57FF:ní,nì,bàn 0x5800:kū 0x5801:kè 0x5802:táng 0x5803:kūn 0x5804:nì 0x5805:jiān 0x5806:duī,zuī 0x5807:jǐn,qín,jìn 0x5808:gāng 0x5809:yù 0x580A:è,yà 0x580B:péng,bèng,pēng,pīng 0x580C:gù 0x580D:tù 0x580E:lèng 0x580F:fang 0x5810:yá 0x5811:qiàn 0x5812:kūn 0x5813:àn 0x5814:shēn 0x5815:duò,huī 0x5816:nǎo 0x5817:tū 0x5818:chéng 0x5819:yīn 0x581A:hún 0x581B:bì 0x581C:liàn 0x581D:guō,wō 0x581E:dié 0x581F:zhuàn 0x5820:hòu 0x5821:bǎo,bǔ,pù 0x5822:bǎo 0x5823:yú 0x5824:dī,tí,dǐ,shí,wéi 0x5825:máo,móu,wǔ 0x5826:jiē 0x5827:ruán,nuò 0x5828:yè,ài,è 0x5829:gèng 0x582A:kān,chěn 0x582B:zōng 0x582C:yú 0x582D:huáng 0x582E:è 0x582F:yáo 0x5830:yàn 0x5831:bào,fù 0x5832:cí,jí 0x5833:méi 0x5834:chǎng,cháng,shāng,dàng 0x5835:dǔ,zhě,dū 0x5836:tuó 0x5837:yìn,pǒu 0x5838:féng 0x5839:zhòng 0x583A:jiè 0x583B:jīn 0x583C:hèng 0x583D:gāng 0x583E:chūn 0x583F:jiǎn,kǎn,xián 0x5840:píng 0x5841:lěi 0x5842:xiàng,jiǎng 0x5843:huāng 0x5844:léng 0x5845:duàn 0x5846:wān 0x5847:xuān 0x5848:jì,xì 0x5849:jí 0x584A:kuài 0x584B:yíng 0x584C:tā,dā 0x584D:chéng 0x584E:yǒng 0x584F:kǎi 0x5850:sù 0x5851:sù 0x5852:shí 0x5853:mì 0x5854:tǎ,dā,da 0x5855:wěng 0x5856:chéng 0x5857:tú,dù 0x5858:táng 0x5859:què,qiāo 0x585A:zhǒng 0x585B:lì 0x585C:zhǒng,péng 0x585D:bàng 0x585E:sāi,sè,sài 0x585F:zàng 0x5860:duī 0x5861:tián 0x5862:wù,wǔ 0x5863:zhèng 0x5864:xūn 0x5865:gé 0x5866:zhèn 0x5867:ài 0x5868:gōng 0x5869:yán 0x586A:kǎn 0x586B:tián,tiǎn,chén,zhèn 0x586C:yuán 0x586D:wēn 0x586E:xiè 0x586F:liù 0x5870:hǎi 0x5871:lǎng 0x5872:cháng,shāng,chǎng 0x5873:péng 0x5874:bèng 0x5875:chén 0x5876:lù 0x5877:lǔ 0x5878:ōu 0x5879:qiàn,jiàn 0x587A:méi 0x587B:mò 0x587C:zhuān,tuán 0x587D:shuǎng 0x587E:shú 0x587F:lǒu 0x5880:chí 0x5881:màn 0x5882:biāo 0x5883:jìng 0x5884:cè 0x5885:shù,yě 0x5886:zhì,dì 0x5887:zhàng 0x5888:kàn 0x5889:yōng 0x588A:diàn 0x588B:chěn 0x588C:zhí,zhuó 0x588D:xì 0x588E:guō 0x588F:qiǎng 0x5890:jìn,qín 0x5891:dì 0x5892:shāng 0x5893:mù 0x5894:cuī 0x5895:yàn 0x5896:tǎ 0x5897:zēng 0x5898:qián 0x5899:qiáng 0x589A:liáng 0x589B:wèi 0x589C:zhuì 0x589D:qiāo,qiào 0x589E:zēng,zèng,céng 0x589F:xū 0x58A0:shàn,chǎn 0x58A1:shàn 0x58A2:bá,fèi 0x58A3:pú 0x58A4:kuài,tuí 0x58A5:dǒng,tuǎn 0x58A6:fán,fān 0x58A7:què,qiáo 0x58A8:mò,mèi 0x58A9:dūn 0x58AA:dūn 0x58AB:zūn,cūn 0x58AC:dì 0x58AD:shèng 0x58AE:duò,huī,huì 0x58AF:duò 0x58B0:tán 0x58B1:dèng,dēng 0x58B2:mú,wú 0x58B3:fén,fèn 0x58B4:huáng 0x58B5:tán 0x58B6:da 0x58B7:yè 0x58B8:zhù 0x58B9:jiàn 0x58BA:ào 0x58BB:qiáng 0x58BC:jī 0x58BD:qiāo,qiào,áo 0x58BE:kěn 0x58BF:yì,tú 0x58C0:pí 0x58C1:bì 0x58C2:diàn 0x58C3:jiāng 0x58C4:yě 0x58C5:yōng,wèng 0x58C6:xué,jué,bó 0x58C7:tán,shàn,dàn,tǎn 0x58C8:lǎn 0x58C9:jù 0x58CA:huài 0x58CB:dàng 0x58CC:rǎng 0x58CD:qiàn 0x58CE:xūn,xùn 0x58CF:xiàn,làn 0x58D0:xǐ 0x58D1:hè,huò 0x58D2:ài 0x58D3:yā,yà 0x58D4:dǎo 0x58D5:háo 0x58D6:ruán 0x58D7:jìn 0x58D8:lěi,léi,lǜ 0x58D9:kuàng,kuǎng 0x58DA:lú 0x58DB:yán 0x58DC:tán 0x58DD:wěi 0x58DE:huài,huì,huái 0x58DF:lǒng 0x58E0:lǒng 0x58E1:ruì 0x58E2:lì 0x58E3:lín 0x58E4:rǎng 0x58E5:chán 0x58E6:xūn 0x58E7:yán 0x58E8:léi 0x58E9:bà 0x58EA:wān 0x58EB:shì 0x58EC:rén 0x58ED:san 0x58EE:zhuàng 0x58EF:zhuàng,zhuāng 0x58F0:shēng,qìng 0x58F1:yī 0x58F2:mài 0x58F3:ké,qiào 0x58F4:zhù 0x58F5:zhuàng 0x58F6:hú 0x58F7:hú 0x58F8:kǔn 0x58F9:yī,yīn 0x58FA:hú 0x58FB:xù 0x58FC:kǔn 0x58FD:shòu 0x58FE:mǎng 0x58FF:zūn 0x5900:shòu 0x5901:yī 0x5902:zhǐ,zhōng 0x5903:gǔ,yíng 0x5904:chù,chǔ 0x5905:jiàng 0x5906:féng,páng 0x5907:bèi 0x5908:zhāi 0x5909:biàn 0x590A:suī 0x590B:qūn 0x590C:líng 0x590D:fù 0x590E:cuò 0x590F:xià,jiǎ 0x5910:xiòng,xuàn 0x5911:xiè 0x5912:náo 0x5913:xià 0x5914:kuí 0x5915:xī,yì 0x5916:wài 0x5917:yuàn,wǎn,wān,yuān 0x5918:mǎo,wān 0x5919:sù 0x591A:duō 0x591B:duō 0x591C:yè 0x591D:qíng 0x591E:wài 0x591F:gòu 0x5920:gòu 0x5921:qì 0x5922:mèng,méng 0x5923:mèng 0x5924:yín 0x5925:huǒ 0x5926:chěn 0x5927:dà,dài,tài 0x5928:zè 0x5929:tiān 0x592A:tài,tā 0x592B:fū,fú 0x592C:guài,jué 0x592D:yāo,wò,wāi 0x592E:yāng,yīng 0x592F:hāng,bèn 0x5930:gǎo 0x5931:shī,yì 0x5932:tāo,běn 0x5933:tài 0x5934:tóu,tou 0x5935:yǎn,tāo 0x5936:bǐ 0x5937:yí 0x5938:kuā,kuà,kuǎ 0x5939:jiā,gā,jiá 0x593A:duó 0x593B:huà 0x593C:kuǎng 0x593D:yǔn 0x593E:jiā,jiá,xié,xiá,gā 0x593F:bā 0x5940:ēn 0x5941:lián 0x5942:huàn 0x5943:dī,tì 0x5944:yǎn,yān 0x5945:pào 0x5946:juàn 0x5947:qí,jī,ǎi,yǐ 0x5948:nài 0x5949:fèng 0x594A:xié,liè,xǐ,pí 0x594B:fèn,kǎng 0x594C:diǎn 0x594D:quān 0x594E:kuí,kuǐ 0x594F:zòu,còu 0x5950:huàn 0x5951:qì,xiè,qiè,jié 0x5952:kāi 0x5953:zhā,shē,chǐ,zhà 0x5954:bēn,bèn,fèn 0x5955:yì 0x5956:jiǎng 0x5957:tào,tǎo 0x5958:zàng,zhuǎng 0x5959:běn 0x595A:xī 0x595B:huǎng 0x595C:fěi,fēi 0x595D:diāo 0x595E:xùn 0x595F:bēng,kēng 0x5960:diàn,tíng,dìng,zhèng,zūn 0x5961:ào,xiào 0x5962:shē 0x5963:wěng 0x5964:hǎ,pò,tǎi 0x5965:ào,yù,yōu 0x5966:wù 0x5967:ào 0x5968:jiǎng 0x5969:lián 0x596A:duó,duì 0x596B:yūn 0x596C:jiǎng 0x596D:shì 0x596E:fèn 0x596F:huò 0x5970:bì 0x5971:luán 0x5972:duǒ,chě 0x5973:nǚ,nǜ,rǔ 0x5974:nú 0x5975:dǐng,dīng,tiǎn 0x5976:nǎi 0x5977:qiān 0x5978:jiān,gān 0x5979:tā,jiě,chí 0x597A:jiǔ 0x597B:nuán 0x597C:chà 0x597D:hǎo,hào 0x597E:xiān 0x597F:fàn 0x5980:jǐ 0x5981:shuò,yuē 0x5982:rú 0x5983:fēi,pèi 0x5984:wàng,wáng 0x5985:hóng 0x5986:zhuāng 0x5987:fù 0x5988:mā 0x5989:dān 0x598A:rèn,rén 0x598B:fū,yōu 0x598C:jìng 0x598D:yán 0x598E:hài,jiè 0x598F:wèn 0x5990:zhōng 0x5991:pā 0x5992:dù 0x5993:jì,jī 0x5994:kēng,háng 0x5995:zhòng 0x5996:yāo,jiǎo 0x5997:jìn,xiān 0x5998:yún 0x5999:miào,miǎo 0x599A:fǒu,pēi,pī 0x599B:chī 0x599C:yuè,jué 0x599D:zhuāng 0x599E:niū,hào 0x599F:yàn 0x59A0:nà,nàn 0x59A1:xīn 0x59A2:fén 0x59A3:bǐ 0x59A4:yú 0x59A5:tuǒ 0x59A6:fēng 0x59A7:wàn,yuán 0x59A8:fáng,fāng 0x59A9:wǔ 0x59AA:yù 0x59AB:guī 0x59AC:dù 0x59AD:bá,bō 0x59AE:nī,ní 0x59AF:zhóu,chōu 0x59B0:zhuó 0x59B1:zhāo 0x59B2:dá 0x59B3:nǐ,nǎi 0x59B4:yuàn 0x59B5:tǒu 0x59B6:xián,xuán,xù 0x59B7:zhí,yì 0x59B8:ē,ě 0x59B9:mèi 0x59BA:mò 0x59BB:qī,qì 0x59BC:bì 0x59BD:shēn 0x59BE:qiè 0x59BF:ē 0x59C0:hé 0x59C1:xǔ,xū 0x59C2:fá 0x59C3:zhēng 0x59C4:mín 0x59C5:bàn 0x59C6:mǔ 0x59C7:fū,fú 0x59C8:líng 0x59C9:zǐ 0x59CA:zǐ 0x59CB:shǐ 0x59CC:rǎn 0x59CD:shān,xiān,pān 0x59CE:yāng 0x59CF:mán 0x59D0:jiě,jù,xù,zū 0x59D1:gū 0x59D2:sì 0x59D3:xìng,shēng 0x59D4:wěi,wēi,wèi 0x59D5:zī,cǐ,cī 0x59D6:jù 0x59D7:shān 0x59D8:pīn,pín 0x59D9:rèn 0x59DA:yáo,tiào,táo,yào 0x59DB:dòng 0x59DC:jiāng 0x59DD:shū 0x59DE:jí 0x59DF:gāi 0x59E0:xiàng 0x59E1:huá,huó 0x59E2:juān 0x59E3:jiāo,jiǎo,xiáo 0x59E4:gòu 0x59E5:lǎo,mǔ 0x59E6:jiān 0x59E7:jiān 0x59E8:yí 0x59E9:niàn,nián 0x59EA:zhí 0x59EB:jī,zhěn 0x59EC:jī,yí 0x59ED:xiàn 0x59EE:héng 0x59EF:guāng 0x59F0:jūn,xūn,xuàn,xīn 0x59F1:kuā,hù 0x59F2:yàn 0x59F3:mǐng 0x59F4:liè 0x59F5:pèi 0x59F6:è,yà 0x59F7:yòu 0x59F8:yán 0x59F9:chà 0x59FA:shēn,xiān 0x59FB:yīn 0x59FC:shí,tí,jì 0x59FD:guǐ,wá 0x59FE:quán 0x59FF:zī,zì 0x5A00:sōng 0x5A01:wēi 0x5A02:hóng 0x5A03:wá,wā,guì 0x5A04:lóu 0x5A05:yà 0x5A06:ráo,rǎo 0x5A07:jiāo 0x5A08:luán 0x5A09:pīng,pìn 0x5A0A:xiàn,dān 0x5A0B:shào,shāo 0x5A0C:lǐ 0x5A0D:chéng,shèng 0x5A0E:xiè 0x5A0F:máng 0x5A10:fū 0x5A11:suō,suǒ,suò 0x5A12:méi,mǔ,wǔ 0x5A13:wěi 0x5A14:kè 0x5A15:chuò,cù,lài 0x5A16:chuò,cù 0x5A17:tǐng,tiǎn 0x5A18:niáng 0x5A19:xíng 0x5A1A:nán 0x5A1B:yú 0x5A1C:nà,nuó 0x5A1D:pōu,bǐ 0x5A1E:něi,suī 0x5A1F:juān 0x5A20:shēn 0x5A21:zhì 0x5A22:hán 0x5A23:dì 0x5A24:zhuāng 0x5A25:é 0x5A26:pín 0x5A27:tuì 0x5A28:xiàn 0x5A29:miǎn,wǎn,wèn 0x5A2A:wú,wù,yú 0x5A2B:yán 0x5A2C:wǔ 0x5A2D:āi,xī 0x5A2E:yán 0x5A2F:yú 0x5A30:sì 0x5A31:yú 0x5A32:wā 0x5A33:lì 0x5A34:xián 0x5A35:jū 0x5A36:qǔ,jū,shū 0x5A37:zhuì,shuì 0x5A38:qī 0x5A39:xián 0x5A3A:zhuó 0x5A3B:dōng,dòng 0x5A3C:chāng 0x5A3D:lù 0x5A3E:ǎi,ái,è 0x5A3F:ē,ě 0x5A40:ē,ě 0x5A41:lóu,lǚ,lǘ,léi 0x5A42:mián 0x5A43:cóng 0x5A44:pǒu,péi,bù 0x5A45:jú 0x5A46:pó 0x5A47:cǎi 0x5A48:líng 0x5A49:wǎn 0x5A4A:biǎo 0x5A4B:xiāo 0x5A4C:shú 0x5A4D:qǐ 0x5A4E:huī 0x5A4F:fàn,fù 0x5A50:wǒ 0x5A51:ruí,wǒ,něi 0x5A52:tán 0x5A53:fēi 0x5A54:fēi 0x5A55:jié,qiè 0x5A56:tiān 0x5A57:ní,nǐ 0x5A58:quán,juàn 0x5A59:jìng 0x5A5A:hūn 0x5A5B:jīng 0x5A5C:qiān,jǐn 0x5A5D:diàn 0x5A5E:xìng 0x5A5F:hù 0x5A60:wān,guàn 0x5A61:lái,lài 0x5A62:bì 0x5A63:yīn 0x5A64:chōu,zhōu 0x5A65:nào,chuò 0x5A66:fù 0x5A67:jìng 0x5A68:lún 0x5A69:àn,nüè 0x5A6A:lán,lǎn 0x5A6B:kūn,hùn 0x5A6C:yín 0x5A6D:yà,yā,yǎ 0x5A6E:jū 0x5A6F:lì 0x5A70:diǎn 0x5A71:xián 0x5A72:huā 0x5A73:huà 0x5A74:yīng 0x5A75:chán 0x5A76:shěn 0x5A77:tíng 0x5A78:dàng,yáng 0x5A79:yǎo 0x5A7A:wù,móu,mù 0x5A7B:nàn 0x5A7C:chuò,ruò 0x5A7D:jiǎ 0x5A7E:tōu 0x5A7F:xù 0x5A80:yù,yú 0x5A81:wéi,wěi 0x5A82:dì,tí 0x5A83:róu 0x5A84:měi 0x5A85:dān 0x5A86:ruǎn,nèn,nùn 0x5A87:qīn 0x5A88:huī 0x5A89:wò 0x5A8A:qián 0x5A8B:chūn 0x5A8C:miáo 0x5A8D:fù 0x5A8E:jiě 0x5A8F:duān 0x5A90:yí,xī 0x5A91:zhòng 0x5A92:méi,mèi 0x5A93:huáng 0x5A94:mián,miǎn 0x5A95:ān,yǎn,è 0x5A96:yīng 0x5A97:xuān 0x5A98:jiē 0x5A99:wēi 0x5A9A:mèi 0x5A9B:yuàn,yuán 0x5A9C:zhēng 0x5A9D:qiū 0x5A9E:shì,tí,zhī,dài 0x5A9F:xiè 0x5AA0:tuǒ,duò,nuǒ 0x5AA1:liàn 0x5AA2:mào 0x5AA3:rǎn 0x5AA4:sī 0x5AA5:piān 0x5AA6:wèi 0x5AA7:wā 0x5AA8:cù 0x5AA9:hú 0x5AAA:ǎo,yǔn,wò 0x5AAB:jié 0x5AAC:bǎo 0x5AAD:xū 0x5AAE:tōu,yú 0x5AAF:guī,guì 0x5AB0:chú,zòu 0x5AB1:yáo 0x5AB2:pì,bī,pí 0x5AB3:xí 0x5AB4:yuán 0x5AB5:yìng,shèng 0x5AB6:róng 0x5AB7:rù 0x5AB8:chī 0x5AB9:liú 0x5ABA:měi 0x5ABB:pán 0x5ABC:ǎo 0x5ABD:mā 0x5ABE:gòu 0x5ABF:kuì,chǒu 0x5AC0:qín,shēn 0x5AC1:jià 0x5AC2:sǎo 0x5AC3:zhēn,zhěn 0x5AC4:yuán 0x5AC5:jiē,suǒ 0x5AC6:róng 0x5AC7:míng,mǐng,méng 0x5AC8:yīng,xīng,yíng 0x5AC9:jí 0x5ACA:sù 0x5ACB:niǎo 0x5ACC:xián 0x5ACD:tāo 0x5ACE:páng,bàng 0x5ACF:láng 0x5AD0:nǎo 0x5AD1:báo 0x5AD2:ài 0x5AD3:pì 0x5AD4:pín 0x5AD5:yì 0x5AD6:piáo,piào,biāo 0x5AD7:yù,yǔ,kōu 0x5AD8:léi 0x5AD9:xuán 0x5ADA:mān,màn,yuān 0x5ADB:yī 0x5ADC:zhāng 0x5ADD:kāng 0x5ADE:yōng 0x5ADF:nì 0x5AE0:lí 0x5AE1:dí 0x5AE2:guī,zuī 0x5AE3:yān 0x5AE4:jǐn,jìn 0x5AE5:zhuān,tuán 0x5AE6:cháng 0x5AE7:zé,cè 0x5AE8:hān,nǎn 0x5AE9:nèn 0x5AEA:lào,láo 0x5AEB:mó 0x5AEC:zhē 0x5AED:hù 0x5AEE:hù 0x5AEF:ào 0x5AF0:nèn 0x5AF1:qiáng 0x5AF2:ma 0x5AF3:piè 0x5AF4:gū 0x5AF5:wǔ 0x5AF6:qiáo,jiāo 0x5AF7:tuǒ 0x5AF8:zhǎn 0x5AF9:miáo 0x5AFA:xián 0x5AFB:xián 0x5AFC:mò 0x5AFD:liáo,liǎo,liào,lǎo 0x5AFE:lián 0x5AFF:huà 0x5B00:guī 0x5B01:dēng 0x5B02:zhí 0x5B03:xū 0x5B04:yī 0x5B05:huà 0x5B06:xī 0x5B07:kuì 0x5B08:ráo,rǎo,yǎo 0x5B09:xī,xǐ 0x5B0A:yàn 0x5B0B:chán 0x5B0C:jiāo 0x5B0D:měi 0x5B0E:fàn,fù 0x5B0F:fān 0x5B10:xiān,yǎn,jìn 0x5B11:yì 0x5B12:huì 0x5B13:jiào 0x5B14:fù 0x5B15:shì 0x5B16:bì 0x5B17:shàn,chán 0x5B18:suì 0x5B19:qiáng 0x5B1A:liǎn 0x5B1B:huán,xuān,qióng,xuán 0x5B1C:xīn 0x5B1D:niǎo 0x5B1E:dǒng 0x5B1F:yì,yǐ 0x5B20:cān 0x5B21:ài 0x5B22:niáng 0x5B23:níng 0x5B24:mā 0x5B25:tiǎo,diào 0x5B26:chóu 0x5B27:jìn 0x5B28:cí 0x5B29:yú 0x5B2A:pín 0x5B2B:róng 0x5B2C:rú,nòu 0x5B2D:nǎi,ěr,nì 0x5B2E:yān,yàn 0x5B2F:tái 0x5B30:yīng,yìng 0x5B31:qiàn 0x5B32:niǎo 0x5B33:yuè 0x5B34:yíng 0x5B35:mián 0x5B36:bí 0x5B37:mā 0x5B38:shěn 0x5B39:xìng,xīng 0x5B3A:nì 0x5B3B:dú 0x5B3C:liǔ 0x5B3D:yuān 0x5B3E:lǎn 0x5B3F:yàn 0x5B40:shuāng 0x5B41:líng 0x5B42:jiǎo 0x5B43:niáng,ráng 0x5B44:lǎn 0x5B45:qiān,xiān 0x5B46:yīng 0x5B47:shuāng 0x5B48:huì,xié 0x5B49:quán,huān 0x5B4A:mǐ 0x5B4B:lí,lì 0x5B4C:luán,liàn,luǎn 0x5B4D:yán,yǎn 0x5B4E:zhú,shú,chuò 0x5B4F:lǎn 0x5B50:zi,zǐ 0x5B51:jié 0x5B52:jué 0x5B53:jué 0x5B54:kǒng 0x5B55:yùn 0x5B56:mā,zī 0x5B57:zì 0x5B58:cún 0x5B59:sūn 0x5B5A:fú 0x5B5B:bèi,bó 0x5B5C:zī 0x5B5D:xiào 0x5B5E:xìn 0x5B5F:mèng 0x5B60:sì 0x5B61:tāi 0x5B62:bāo 0x5B63:jì 0x5B64:gū 0x5B65:nú 0x5B66:xué 0x5B67:yòu 0x5B68:zhuǎn,nì 0x5B69:hái 0x5B6A:luán 0x5B6B:sūn,xùn 0x5B6C:nāo 0x5B6D:miē 0x5B6E:cóng 0x5B6F:qiān 0x5B70:shú 0x5B71:càn,chán,jiān,zhàn 0x5B72:yā 0x5B73:zī 0x5B74:nǐ,nì,yì 0x5B75:fū 0x5B76:zī 0x5B77:lí 0x5B78:xué,huá,jiào 0x5B79:bò 0x5B7A:rú 0x5B7B:nái 0x5B7C:niè 0x5B7D:niè 0x5B7E:yīng 0x5B7F:luán 0x5B80:mián 0x5B81:níng,zhù,nìng 0x5B82:rǒng 0x5B83:tā,tuó,yí 0x5B84:guǐ 0x5B85:zhái,chè,dù 0x5B86:qióng 0x5B87:yǔ 0x5B88:shǒu,shòu 0x5B89:ān 0x5B8A:tū,jiā 0x5B8B:sòng 0x5B8C:wán,kuān 0x5B8D:ròu 0x5B8E:yǎo,yāo 0x5B8F:hóng 0x5B90:yí 0x5B91:jǐng 0x5B92:zhūn 0x5B93:mì,fú 0x5B94:zhǔ 0x5B95:dàng 0x5B96:hóng 0x5B97:zōng 0x5B98:guān 0x5B99:zhòu 0x5B9A:dìng 0x5B9B:wǎn,yuān,yǔn,yù 0x5B9C:yí 0x5B9D:bǎo 0x5B9E:shí 0x5B9F:shí 0x5BA0:chǒng 0x5BA1:shěn 0x5BA2:kè,qià 0x5BA3:xuān 0x5BA4:shì 0x5BA5:yòu 0x5BA6:huàn 0x5BA7:yí 0x5BA8:tiǎo 0x5BA9:shǐ 0x5BAA:xiàn,xiòng 0x5BAB:gōng 0x5BAC:chéng 0x5BAD:qún 0x5BAE:gōng 0x5BAF:xiāo 0x5BB0:zǎi 0x5BB1:zhà 0x5BB2:bǎo,shí 0x5BB3:hài,hé 0x5BB4:yàn 0x5BB5:xiāo 0x5BB6:jiā,jià,jia,jie,gū 0x5BB7:shěn 0x5BB8:chén 0x5BB9:róng,yǒng 0x5BBA:huǎng 0x5BBB:mì 0x5BBC:kòu 0x5BBD:kuān 0x5BBE:bīn 0x5BBF:sù,xiù,xiǔ,qī 0x5BC0:cǎi,cài 0x5BC1:zǎn 0x5BC2:jì 0x5BC3:yuān 0x5BC4:jì 0x5BC5:yín 0x5BC6:mì 0x5BC7:kòu 0x5BC8:qīng 0x5BC9:hè 0x5BCA:zhēn 0x5BCB:jiàn 0x5BCC:fù 0x5BCD:níng 0x5BCE:bìng,bǐng 0x5BCF:huán 0x5BD0:mèi 0x5BD1:qǐn 0x5BD2:hán 0x5BD3:yù 0x5BD4:shí 0x5BD5:níng 0x5BD6:jìn 0x5BD7:níng 0x5BD8:zhì,tián 0x5BD9:yǔ 0x5BDA:bǎo 0x5BDB:kuān 0x5BDC:níng 0x5BDD:qǐn 0x5BDE:mò 0x5BDF:chá,cuì 0x5BE0:jù,lǜ,lóu 0x5BE1:guǎ 0x5BE2:qǐn 0x5BE3:hū 0x5BE4:wù 0x5BE5:liáo 0x5BE6:shí,zhì 0x5BE7:níng,nìng 0x5BE8:zhài,sè,qiān 0x5BE9:shěn,pán 0x5BEA:wěi,wéi 0x5BEB:xiě,xiè 0x5BEC:kuān 0x5BED:huì 0x5BEE:liáo 0x5BEF:jùn 0x5BF0:huán,xiàn 0x5BF1:yì 0x5BF2:yí 0x5BF3:bǎo 0x5BF4:qīn,qìn 0x5BF5:chǒng,lóng 0x5BF6:bǎo 0x5BF7:fēng 0x5BF8:cùn,cǔn 0x5BF9:duì 0x5BFA:sì,shì 0x5BFB:xún,xín 0x5BFC:dǎo 0x5BFD:lǜ,lüè 0x5BFE:duì 0x5BFF:shòu 0x5C00:pǒ 0x5C01:fēng,biǎn 0x5C02:zhuān 0x5C03:fū,bù,fǔ,pò 0x5C04:shè,yè,yì 0x5C05:kè,kēi 0x5C06:jiāng,jiàng,qiāng 0x5C07:jiāng,jiàng,qiāng,yáng,jiǎng 0x5C08:zhuān,tuán,shuàn 0x5C09:wèi,yù,yùn 0x5C0A:zūn 0x5C0B:xún,xín 0x5C0C:shù,zhù 0x5C0D:duì 0x5C0E:dǎo,dào 0x5C0F:xiǎo 0x5C10:jié,jí 0x5C11:shǎo,shào 0x5C12:ěr 0x5C13:ěr 0x5C14:ěr 0x5C15:gǎ 0x5C16:jiān 0x5C17:shū,shú 0x5C18:chén 0x5C19:shàng 0x5C1A:shàng,cháng 0x5C1B:mó 0x5C1C:gá 0x5C1D:cháng 0x5C1E:liào,liáo 0x5C1F:xiǎn 0x5C20:xiǎn 0x5C21:kun 0x5C22:yóu,wāng 0x5C23:wāng 0x5C24:yóu 0x5C25:liào,niǎo 0x5C26:liào 0x5C27:yáo 0x5C28:máng,méng,páng 0x5C29:wāng 0x5C2A:wāng 0x5C2B:wāng 0x5C2C:gà 0x5C2D:yáo 0x5C2E:duò 0x5C2F:kuì,kuǐ 0x5C30:zhǒng 0x5C31:jiù 0x5C32:gān 0x5C33:gǔ 0x5C34:gān 0x5C35:tuí,zhuài 0x5C36:gān 0x5C37:gān 0x5C38:shī 0x5C39:yǐn,yún 0x5C3A:chǐ,chě 0x5C3B:kāo 0x5C3C:ní,nǐ 0x5C3D:jǐn,jìn 0x5C3E:wěi,yǐ 0x5C3F:niào,suī 0x5C40:jú 0x5C41:pì 0x5C42:céng 0x5C43:xì 0x5C44:bī 0x5C45:jū,jī 0x5C46:jiè 0x5C47:tián 0x5C48:qū,jué,què,jú 0x5C49:tì 0x5C4A:jiè 0x5C4B:wū 0x5C4C:diǎo 0x5C4D:shī,shì 0x5C4E:shǐ,xī 0x5C4F:píng,bǐng,bìng,bīng 0x5C50:jī 0x5C51:xiè 0x5C52:zhěn 0x5C53:xiè 0x5C54:ní 0x5C55:zhǎn 0x5C56:xī 0x5C57:wěi 0x5C58:mǎn 0x5C59:ē 0x5C5A:lòu 0x5C5B:píng 0x5C5C:tì 0x5C5D:fèi 0x5C5E:shǔ,zhǔ 0x5C5F:xiè,tì 0x5C60:tú 0x5C61:lǚ 0x5C62:lǚ 0x5C63:xǐ 0x5C64:céng 0x5C65:lǚ 0x5C66:jù 0x5C67:xiè 0x5C68:jù 0x5C69:juē 0x5C6A:liáo 0x5C6B:jué 0x5C6C:shǔ,zhǔ 0x5C6D:xì 0x5C6E:chè,cǎo 0x5C6F:tún,zhūn 0x5C70:nì,pò,jí 0x5C71:shān 0x5C72:wā 0x5C73:xiān 0x5C74:lì 0x5C75:è,yǎn 0x5C76:huì 0x5C77:huì 0x5C78:lóng,hóng 0x5C79:yì,gē 0x5C7A:qǐ 0x5C7B:rèn 0x5C7C:wù 0x5C7D:hàn,àn 0x5C7E:shēn 0x5C7F:yǔ 0x5C80:chū 0x5C81:suì 0x5C82:qǐ 0x5C83:rèn 0x5C84:yuè 0x5C85:bǎn 0x5C86:yǎo 0x5C87:áng 0x5C88:yá,xiā 0x5C89:wù 0x5C8A:jié 0x5C8B:è,jí 0x5C8C:jí 0x5C8D:qiān 0x5C8E:fén,chà 0x5C8F:wán 0x5C90:qí 0x5C91:cén 0x5C92:qián 0x5C93:qí 0x5C94:chà 0x5C95:jiè 0x5C96:qū 0x5C97:gǎng,gāng 0x5C98:xiàn 0x5C99:ào 0x5C9A:lán 0x5C9B:dǎo 0x5C9C:bā 0x5C9D:zuò 0x5C9E:zuò 0x5C9F:yǎng 0x5CA0:jù 0x5CA1:gāng 0x5CA2:kě 0x5CA3:gǒu 0x5CA4:xué 0x5CA5:pō 0x5CA6:lì 0x5CA7:tiáo 0x5CA8:qū,zǔ,jǔ 0x5CA9:yán 0x5CAA:fú 0x5CAB:xiù 0x5CAC:jiǎ,jiá 0x5CAD:lǐng,líng 0x5CAE:tuó 0x5CAF:pí 0x5CB0:ào 0x5CB1:dài 0x5CB2:kuàng 0x5CB3:yuè 0x5CB4:qū 0x5CB5:hù 0x5CB6:pò 0x5CB7:mín 0x5CB8:àn 0x5CB9:tiáo 0x5CBA:líng 0x5CBB:chí 0x5CBC:píng 0x5CBD:dōng 0x5CBE:hàn 0x5CBF:kuī 0x5CC0:xiù 0x5CC1:mǎo 0x5CC2:tóng 0x5CC3:xué 0x5CC4:yì 0x5CC5:biàn 0x5CC6:hé 0x5CC7:bā,kè 0x5CC8:luò 0x5CC9:è 0x5CCA:fù,niè 0x5CCB:xún 0x5CCC:dié 0x5CCD:lù 0x5CCE:ěn 0x5CCF:ér 0x5CD0:gāi 0x5CD1:quān 0x5CD2:dòng,tóng 0x5CD3:yí 0x5CD4:mǔ 0x5CD5:shí 0x5CD6:ān 0x5CD7:wéi,wěi 0x5CD8:huán 0x5CD9:zhì,shì 0x5CDA:mì 0x5CDB:lǐ 0x5CDC:jì 0x5CDD:tóng 0x5CDE:wéi,wěi 0x5CDF:yòu 0x5CE0:qiǎ 0x5CE1:xiá 0x5CE2:lǐ 0x5CE3:yáo 0x5CE4:jiào,qiáo 0x5CE5:zhēng 0x5CE6:luán 0x5CE7:jiāo 0x5CE8:é 0x5CE9:é 0x5CEA:yù 0x5CEB:xié,yé 0x5CEC:bū 0x5CED:qiào 0x5CEE:qūn 0x5CEF:fēng 0x5CF0:fēng 0x5CF1:náo 0x5CF2:lǐ 0x5CF3:yóu 0x5CF4:xiàn 0x5CF5:róng 0x5CF6:dǎo 0x5CF7:shēn 0x5CF8:chéng 0x5CF9:tú 0x5CFA:gěng 0x5CFB:jùn 0x5CFC:gào 0x5CFD:xiá 0x5CFE:yín 0x5CFF:yǔ,wú 0x5D00:làng,lǎng 0x5D01:kàn 0x5D02:láo 0x5D03:lái 0x5D04:xiǎn 0x5D05:què 0x5D06:kōng 0x5D07:chóng 0x5D08:chóng 0x5D09:tà 0x5D0A:lín 0x5D0B:huà 0x5D0C:jū 0x5D0D:lái 0x5D0E:qí,qǐ,yī 0x5D0F:mín 0x5D10:kūn 0x5D11:kūn 0x5D12:zú,cuì 0x5D13:gù 0x5D14:cuī 0x5D15:yá 0x5D16:yá 0x5D17:gǎng,gāng 0x5D18:lún 0x5D19:lún 0x5D1A:léng,líng 0x5D1B:jué,yù 0x5D1C:duō,duǒ 0x5D1D:zhēng 0x5D1E:guō 0x5D1F:yín 0x5D20:dōng,dòng 0x5D21:hán 0x5D22:zhēng 0x5D23:wěi 0x5D24:xiáo,yáo 0x5D25:pí,bǐ 0x5D26:yān 0x5D27:sōng 0x5D28:jié 0x5D29:bēng 0x5D2A:zú 0x5D2B:kū,jué 0x5D2C:dōng 0x5D2D:zhǎn 0x5D2E:gù 0x5D2F:yín 0x5D30:zī 0x5D31:zè 0x5D32:huáng 0x5D33:yú 0x5D34:wǎi,wēi,wěi 0x5D35:yáng,dàng 0x5D36:fēng 0x5D37:qiú 0x5D38:yáng 0x5D39:tí 0x5D3A:yǐ 0x5D3B:zhì 0x5D3C:shì,dié 0x5D3D:zǎi 0x5D3E:yǎo 0x5D3F:è 0x5D40:zhù 0x5D41:kān,zhàn 0x5D42:lǜ 0x5D43:yǎn,yàn 0x5D44:měi 0x5D45:hán 0x5D46:jī 0x5D47:jī,xí 0x5D48:huàn 0x5D49:tíng 0x5D4A:shèng,chéng 0x5D4B:méi 0x5D4C:qiàn,hǎn,kàn 0x5D4D:wù,máo 0x5D4E:yú 0x5D4F:zōng 0x5D50:lán 0x5D51:kě,jié 0x5D52:yán,niè 0x5D53:yán 0x5D54:wěi 0x5D55:zōng 0x5D56:chá 0x5D57:suì 0x5D58:róng 0x5D59:kē 0x5D5A:qīn 0x5D5B:yú 0x5D5C:qí 0x5D5D:lǒu 0x5D5E:tú 0x5D5F:duī 0x5D60:xī 0x5D61:wěng 0x5D62:cāng 0x5D63:dàng,táng 0x5D64:róng,yíng 0x5D65:jié 0x5D66:kǎi,ái 0x5D67:liú 0x5D68:wù 0x5D69:sōng 0x5D6A:qiāo,kāo 0x5D6B:zī 0x5D6C:wéi,wěi 0x5D6D:bēng 0x5D6E:diān 0x5D6F:cuó,cī 0x5D70:qiǎn 0x5D71:yǒng,yóng 0x5D72:niè 0x5D73:cuó 0x5D74:jǐ 0x5D75:shí 0x5D76:ruò 0x5D77:sǒng 0x5D78:zōng 0x5D79:jiàng 0x5D7A:liáo,jiāo 0x5D7B:kāng 0x5D7C:chǎn 0x5D7D:dié,dì 0x5D7E:cēn,cān 0x5D7F:dǐng 0x5D80:tū 0x5D81:lǒu 0x5D82:zhàng 0x5D83:zhǎn 0x5D84:zhǎn,chán 0x5D85:áo,ào 0x5D86:cáo 0x5D87:qū 0x5D88:qiāng 0x5D89:cuī,zuǐ 0x5D8A:zuǐ 0x5D8B:dǎo 0x5D8C:dǎo 0x5D8D:xí 0x5D8E:yù 0x5D8F:pèi,pǐ 0x5D90:lóng 0x5D91:xiàng 0x5D92:céng,zhēng 0x5D93:bō 0x5D94:qīn 0x5D95:jiāo 0x5D96:yān 0x5D97:láo 0x5D98:zhàn 0x5D99:lín,lǐn 0x5D9A:liáo 0x5D9B:liáo 0x5D9C:jīn,qín 0x5D9D:dèng 0x5D9E:duò 0x5D9F:zūn 0x5DA0:jiào,qiáo 0x5DA1:guì,jué 0x5DA2:yáo 0x5DA3:jiāo 0x5DA4:yáo 0x5DA5:jué 0x5DA6:zhān,shàn 0x5DA7:yì 0x5DA8:xué 0x5DA9:náo 0x5DAA:yè 0x5DAB:yè 0x5DAC:yí,yǐ 0x5DAD:niè 0x5DAE:xiǎn,yǎn 0x5DAF:jí 0x5DB0:xiè,jiè 0x5DB1:kě 0x5DB2:xī 0x5DB3:dì 0x5DB4:ào 0x5DB5:zuǐ 0x5DB6:wēi 0x5DB7:yí,nì 0x5DB8:róng 0x5DB9:dǎo 0x5DBA:lǐng 0x5DBB:jié 0x5DBC:yǔ,xù 0x5DBD:yuè 0x5DBE:yǐn 0x5DBF:ru 0x5DC0:jié 0x5DC1:lì,liè 0x5DC2:guī,xī,juàn 0x5DC3:lóng 0x5DC4:lóng 0x5DC5:diān 0x5DC6:róng,hōng,yíng 0x5DC7:xī 0x5DC8:jú 0x5DC9:chán 0x5DCA:yǐng 0x5DCB:kuī,kuì,wěi 0x5DCC:yán 0x5DCD:wēi 0x5DCE:náo 0x5DCF:quán 0x5DD0:chǎo 0x5DD1:cuán 0x5DD2:luán 0x5DD3:diān 0x5DD4:diān 0x5DD5:niè 0x5DD6:yán 0x5DD7:yán 0x5DD8:yǎn 0x5DD9:kuí,náo 0x5DDA:yǎn 0x5DDB:chuān,shùn 0x5DDC:kuài,huān 0x5DDD:chuān 0x5DDE:zhōu 0x5DDF:huāng 0x5DE0:jīng,xíng 0x5DE1:xún,yán,shùn 0x5DE2:cháo,chào 0x5DE3:cháo 0x5DE4:liè 0x5DE5:gōng 0x5DE6:zuǒ 0x5DE7:qiǎo 0x5DE8:jù,qú 0x5DE9:gǒng 0x5DEA:jù 0x5DEB:wū 0x5DEC:pu 0x5DED:pu 0x5DEE:chà,chā,chāi,chài,cī,cuō,jiē 0x5DEF:qiú 0x5DF0:qiú 0x5DF1:jǐ,qǐ 0x5DF2:yǐ,sì 0x5DF3:sì,yǐ 0x5DF4:bā 0x5DF5:zhī 0x5DF6:zhāo 0x5DF7:xiàng,hàng 0x5DF8:yí 0x5DF9:jǐn 0x5DFA:xùn 0x5DFB:juàn 0x5DFC:bā 0x5DFD:xùn,zhuàn 0x5DFE:jīn 0x5DFF:fú,pó 0x5E00:zā 0x5E01:bì,yìn 0x5E02:shì,fú 0x5E03:bù 0x5E04:dīng 0x5E05:shuài 0x5E06:fān,fán,fàn 0x5E07:niè 0x5E08:shī 0x5E09:fēn 0x5E0A:pà,pā 0x5E0B:zhǐ 0x5E0C:xī 0x5E0D:hù 0x5E0E:dàn 0x5E0F:wéi 0x5E10:zhàng 0x5E11:tǎng,nú 0x5E12:dài 0x5E13:mò,wà 0x5E14:pèi,pī 0x5E15:pà,mò 0x5E16:tiē,tiè,tiě 0x5E17:bō,fú 0x5E18:lián,chén 0x5E19:zhì 0x5E1A:zhǒu 0x5E1B:bó 0x5E1C:zhì 0x5E1D:dì 0x5E1E:mò 0x5E1F:yì 0x5E20:yì 0x5E21:píng 0x5E22:qià 0x5E23:juǎn,juàn 0x5E24:rú 0x5E25:shuài 0x5E26:dài 0x5E27:zhèng 0x5E28:shuì 0x5E29:qiào 0x5E2A:zhēn 0x5E2B:shī 0x5E2C:qún 0x5E2D:xí 0x5E2E:bāng 0x5E2F:dài 0x5E30:guī 0x5E31:chóu,dào 0x5E32:píng 0x5E33:zhàng 0x5E34:sàn,jiǎn,jiān 0x5E35:wān 0x5E36:dài 0x5E37:wéi 0x5E38:cháng 0x5E39:shà,qiè 0x5E3A:qí,jì 0x5E3B:zé 0x5E3C:guó 0x5E3D:mào 0x5E3E:dǔ 0x5E3F:hóu 0x5E40:zhèng 0x5E41:xū 0x5E42:mì 0x5E43:wéi 0x5E44:wò 0x5E45:fú,bī 0x5E46:yì,kài 0x5E47:bāng 0x5E48:píng 0x5E49:dié 0x5E4A:gōng 0x5E4B:pán 0x5E4C:huǎng 0x5E4D:tāo 0x5E4E:mì 0x5E4F:jià 0x5E50:téng 0x5E51:huī 0x5E52:zhōng 0x5E53:shān,shēn,qiāo 0x5E54:màn 0x5E55:mù,màn 0x5E56:biāo 0x5E57:guó 0x5E58:zé,cè 0x5E59:mù 0x5E5A:bāng 0x5E5B:zhàng 0x5E5C:jǐng 0x5E5D:chǎn,chàn 0x5E5E:fú 0x5E5F:zhì 0x5E60:hū,wú 0x5E61:fān 0x5E62:chuáng,zhuàng 0x5E63:bì 0x5E64:bì 0x5E65:zhǎng 0x5E66:mì 0x5E67:qiāo 0x5E68:chān,chàn 0x5E69:fén,fèn 0x5E6A:méng,měng 0x5E6B:bāng 0x5E6C:chóu,dào 0x5E6D:miè 0x5E6E:chú 0x5E6F:jié 0x5E70:xiǎn 0x5E71:lán 0x5E72:gàn,gān,àn 0x5E73:píng,pián,bìng,bēng 0x5E74:nián,nìng 0x5E75:jiān,qiān 0x5E76:bìng,bīng 0x5E77:bìng,bīng 0x5E78:xìng,niè 0x5E79:gàn,gān,hán,guǎn 0x5E7A:yāo,mì 0x5E7B:huàn 0x5E7C:yòu,yào 0x5E7D:yōu 0x5E7E:jǐ,jī,jì,qí 0x5E7F:guǎng,yǎn,ān 0x5E80:pǐ 0x5E81:tīng 0x5E82:zè 0x5E83:guǎng 0x5E84:zhuāng,péng 0x5E85:mó 0x5E86:qìng 0x5E87:bì,pí,pǐ 0x5E88:qín 0x5E89:dùn,tún 0x5E8A:chuáng 0x5E8B:guǐ,guì 0x5E8C:yǎ,yá 0x5E8D:bài,xìn,tīng 0x5E8E:jiè 0x5E8F:xù 0x5E90:lú 0x5E91:wǔ 0x5E92:zhuāng 0x5E93:kù 0x5E94:yīng,yìng 0x5E95:dǐ,de 0x5E96:páo 0x5E97:diàn 0x5E98:yā 0x5E99:miào 0x5E9A:gēng 0x5E9B:cì 0x5E9C:fǔ 0x5E9D:tóng 0x5E9E:páng 0x5E9F:fèi 0x5EA0:xiáng 0x5EA1:yǐ 0x5EA2:zhì 0x5EA3:tiāo 0x5EA4:zhì 0x5EA5:xiū 0x5EA6:dù,duó,zhái 0x5EA7:zuò 0x5EA8:xiāo 0x5EA9:tú 0x5EAA:guǐ 0x5EAB:kù 0x5EAC:máng,méng 0x5EAD:tíng 0x5EAE:yǒu,yóu 0x5EAF:bū 0x5EB0:bìng,bǐng 0x5EB1:chěng 0x5EB2:lái 0x5EB3:bì,pí 0x5EB4:jí,jī 0x5EB5:ān,yǎn,è 0x5EB6:shù,zhù,zhē 0x5EB7:kāng,kàng 0x5EB8:yōng,yóng 0x5EB9:tuǒ 0x5EBA:sōng 0x5EBB:shù 0x5EBC:qǐng 0x5EBD:yù 0x5EBE:yǔ,yú 0x5EBF:miào 0x5EC0:sōu 0x5EC1:cè,cì,zè,si 0x5EC2:xiāng 0x5EC3:fèi 0x5EC4:jiù 0x5EC5:è 0x5EC6:guī,huì,wěi 0x5EC7:liù 0x5EC8:shà,xià 0x5EC9:lián 0x5ECA:láng 0x5ECB:sōu 0x5ECC:zhì 0x5ECD:bù 0x5ECE:qǐng,qìng,qīng 0x5ECF:jiù 0x5ED0:jiù 0x5ED1:jǐn,qín 0x5ED2:áo 0x5ED3:kuò 0x5ED4:lóu 0x5ED5:yìn 0x5ED6:liào,liáo 0x5ED7:dài 0x5ED8:lù 0x5ED9:yì 0x5EDA:chú 0x5EDB:chán 0x5EDC:tú 0x5EDD:sī 0x5EDE:xīn,qiàn 0x5EDF:miào 0x5EE0:chǎng 0x5EE1:wǔ,wú 0x5EE2:fèi 0x5EE3:guǎng,guàng,kuàng,guāng 0x5EE4:kù 0x5EE5:kuài 0x5EE6:bì 0x5EE7:qiáng,sè 0x5EE8:xiè 0x5EE9:lǐn,lǎn 0x5EEA:lǐn 0x5EEB:liáo 0x5EEC:lú,lǘ 0x5EED:jì 0x5EEE:yǐng 0x5EEF:xiān 0x5EF0:tīng 0x5EF1:yōng 0x5EF2:lí 0x5EF3:tīng 0x5EF4:yǐn,yìn 0x5EF5:xún 0x5EF6:yán 0x5EF7:tíng 0x5EF8:dí 0x5EF9:pǎi,pò 0x5EFA:jiàn 0x5EFB:huí 0x5EFC:nǎi 0x5EFD:huí 0x5EFE:gǒng 0x5EFF:niàn 0x5F00:kāi 0x5F01:biàn,pán 0x5F02:yì,yí 0x5F03:qì 0x5F04:nòng,lòng 0x5F05:fèn 0x5F06:jǔ,qǔ 0x5F07:yǎn,yān,nán 0x5F08:yì 0x5F09:zàng 0x5F0A:bì 0x5F0B:yì 0x5F0C:yī 0x5F0D:èr 0x5F0E:sān 0x5F0F:shì,tè 0x5F10:èr 0x5F11:shì 0x5F12:shì 0x5F13:gōng 0x5F14:diào,dì 0x5F15:yǐn 0x5F16:hù 0x5F17:fú 0x5F18:hóng 0x5F19:wū 0x5F1A:tuí 0x5F1B:chí 0x5F1C:jiàng 0x5F1D:bà 0x5F1E:shěn 0x5F1F:dì,tì,tuí 0x5F20:zhāng 0x5F21:jué,zhāng 0x5F22:tāo 0x5F23:fǔ 0x5F24:dǐ 0x5F25:mí 0x5F26:xián 0x5F27:hú 0x5F28:chāo 0x5F29:nǔ 0x5F2A:jìng 0x5F2B:zhěn 0x5F2C:yí 0x5F2D:mǐ 0x5F2E:quān,juàn 0x5F2F:wān 0x5F30:shāo 0x5F31:ruò 0x5F32:xuān,yuān 0x5F33:jìng 0x5F34:diāo 0x5F35:zhāng,zhàng 0x5F36:jiàng 0x5F37:qiáng,jiàng,qiǎng 0x5F38:péng,pēng 0x5F39:dàn,tán 0x5F3A:qiáng,qiǎng,jiàng 0x5F3B:bì 0x5F3C:bì 0x5F3D:shè 0x5F3E:dàn 0x5F3F:jiǎn 0x5F40:gòu,kōu 0x5F41:gē 0x5F42:fā 0x5F43:bì 0x5F44:kōu 0x5F45:jiǎn 0x5F46:biè 0x5F47:xiāo 0x5F48:dàn,tán 0x5F49:guō 0x5F4A:jiàng,qiáng,qiǎng,jiāng 0x5F4B:hóng 0x5F4C:mí,mǐ,ní 0x5F4D:guō 0x5F4E:wān 0x5F4F:jué 0x5F50:jì 0x5F51:jì 0x5F52:guī 0x5F53:dāng,dàng 0x5F54:lù 0x5F55:lù 0x5F56:tuàn,shǐ 0x5F57:huì,suì 0x5F58:zhì 0x5F59:huì 0x5F5A:huì 0x5F5B:yí 0x5F5C:yí 0x5F5D:yí 0x5F5E:yí 0x5F5F:yuē 0x5F60:yuē 0x5F61:shān,xiǎn 0x5F62:xíng 0x5F63:wén 0x5F64:tóng 0x5F65:yàn 0x5F66:yàn,pán 0x5F67:yù 0x5F68:chī 0x5F69:cǎi 0x5F6A:biāo 0x5F6B:diāo 0x5F6C:bīn,bān 0x5F6D:péng,páng,bāng,pēng 0x5F6E:yǒng 0x5F6F:piāo,piào,miǎo 0x5F70:zhāng 0x5F71:yǐng 0x5F72:chī 0x5F73:chì,fú 0x5F74:zhuó,bó 0x5F75:tuǒ,yí 0x5F76:jí 0x5F77:páng,fǎng,fáng 0x5F78:zhōng 0x5F79:yì 0x5F7A:wáng 0x5F7B:chè 0x5F7C:bǐ 0x5F7D:dī 0x5F7E:líng,lǐng 0x5F7F:fú 0x5F80:wǎng,wàng 0x5F81:zhēng 0x5F82:cú 0x5F83:wǎng 0x5F84:jìng 0x5F85:dài,dāi 0x5F86:xī 0x5F87:xùn 0x5F88:hěn 0x5F89:yáng 0x5F8A:huái,huí 0x5F8B:lǜ 0x5F8C:hòu 0x5F8D:wǎng,wā 0x5F8E:chěng,zhèng 0x5F8F:zhì 0x5F90:xú 0x5F91:jìng,jīng 0x5F92:tú 0x5F93:cóng 0x5F94:zhi 0x5F95:lái,lài 0x5F96:cóng 0x5F97:dé,děi,de 0x5F98:pái 0x5F99:xǐ,sī 0x5F9A:dōng 0x5F9B:jì 0x5F9C:cháng 0x5F9D:zhì 0x5F9E:cóng,zòng,zōng,cōng,zǒng 0x5F9F:zhōu 0x5FA0:lái,lài 0x5FA1:yù,yà 0x5FA2:xiè 0x5FA3:jiè 0x5FA4:jiàn 0x5FA5:shì,tǐ 0x5FA6:jiǎ,xiá 0x5FA7:biàn,pián,piān 0x5FA8:huáng 0x5FA9:fù 0x5FAA:xún 0x5FAB:wěi 0x5FAC:páng,bàng 0x5FAD:yáo 0x5FAE:wēi 0x5FAF:xī,xí 0x5FB0:zhēng 0x5FB1:piào 0x5FB2:tí,chí 0x5FB3:dé 0x5FB4:zhēng 0x5FB5:zhēng,zhǐ,chéng 0x5FB6:bié 0x5FB7:dé 0x5FB8:chōng,zhōng,zhǒng 0x5FB9:chè 0x5FBA:jiǎo 0x5FBB:huì 0x5FBC:jiǎo,jiào,jiāo,yāo 0x5FBD:huī 0x5FBE:méi 0x5FBF:lòng,lǒng 0x5FC0:xiāng,rǎng 0x5FC1:bào 0x5FC2:qú,jù 0x5FC3:xīn 0x5FC4:xin 0x5FC5:bì 0x5FC6:yì 0x5FC7:lè 0x5FC8:rén 0x5FC9:dāo 0x5FCA:dìng,tìng 0x5FCB:gǎi 0x5FCC:jì 0x5FCD:rěn,rèn 0x5FCE:rén 0x5FCF:chàn,qiǎn,qiān 0x5FD0:tǎn,kěng 0x5FD1:tè,dǎo 0x5FD2:tè,tuī,tēi 0x5FD3:gān,hàn 0x5FD4:qì,yì 0x5FD5:shì,tài 0x5FD6:cǔn 0x5FD7:zhì 0x5FD8:wàng,wáng 0x5FD9:máng 0x5FDA:xī,liě 0x5FDB:fān 0x5FDC:yīng 0x5FDD:tiǎn 0x5FDE:mín,wěn 0x5FDF:wěn 0x5FE0:zhōng 0x5FE1:chōng 0x5FE2:wù 0x5FE3:jí 0x5FE4:wǔ,wù 0x5FE5:xì 0x5FE6:jiá 0x5FE7:yōu,yòu 0x5FE8:wàn,wán 0x5FE9:cōng 0x5FEA:sōng,zhōng 0x5FEB:kuài 0x5FEC:yù,shū 0x5FED:biàn 0x5FEE:zhì,qí 0x5FEF:qí,shì 0x5FF0:cuì 0x5FF1:chén,dàn 0x5FF2:tài 0x5FF3:tún,zhūn,dùn 0x5FF4:qián,qín 0x5FF5:niàn 0x5FF6:hún 0x5FF7:xiōng 0x5FF8:niǔ 0x5FF9:kuáng,wǎng 0x5FFA:xiān 0x5FFB:xīn 0x5FFC:kāng,hāng,hàng 0x5FFD:hū 0x5FFE:kài,qì 0x5FFF:fèn 0x6000:huái,fù 0x6001:tài 0x6002:sǒng 0x6003:wǔ 0x6004:òu 0x6005:chàng 0x6006:chuàng 0x6007:jù 0x6008:yì 0x6009:bǎo,bào 0x600A:chāo 0x600B:mín,mén 0x600C:pēi 0x600D:zuò,zhà 0x600E:zěn 0x600F:yàng,yāng 0x6010:jù,kòu 0x6011:bàn 0x6012:nù 0x6013:náo,niú 0x6014:zhēng,zhèng 0x6015:pà,bó 0x6016:bù 0x6017:tiē,zhān 0x6018:hù,gù 0x6019:hù,tiē 0x601A:jù,qū,cū,zū 0x601B:dá,dàn 0x601C:lián,líng,lǐng 0x601D:sī,sāi 0x601E:chóu,yóu 0x601F:dì 0x6020:dài,yí 0x6021:yí 0x6022:tū,dié,tuì 0x6023:yóu 0x6024:fū 0x6025:jí 0x6026:pēng 0x6027:xìng 0x6028:yuàn,yùn 0x6029:ní 0x602A:guài 0x602B:fú,fèi,bèi 0x602C:xì 0x602D:bì 0x602E:yōu,yào 0x602F:qiè 0x6030:xuàn 0x6031:cōng 0x6032:bǐng 0x6033:huǎng 0x6034:xù,xuè 0x6035:chù,xù 0x6036:bì,pī 0x6037:shù 0x6038:xī 0x6039:tān 0x603A:yǒng 0x603B:zǒng 0x603C:duì 0x603D:mo 0x603E:zhǐ 0x603F:yì 0x6040:shì 0x6041:nèn,rèn,nín 0x6042:xún,shùn 0x6043:shì,zhì 0x6044:xì 0x6045:lǎo 0x6046:héng,gèng 0x6047:kuāng 0x6048:móu 0x6049:zhǐ 0x604A:xié 0x604B:liàn 0x604C:tiāo,yáo 0x604D:huǎng,guāng 0x604E:dié 0x604F:hào 0x6050:kǒng 0x6051:guǐ,wéi 0x6052:héng 0x6053:xī,qī,xù 0x6054:jiǎo,xiào 0x6055:shù 0x6056:sī 0x6057:hū,kuā 0x6058:qiū 0x6059:yàng 0x605A:huì 0x605B:huí 0x605C:chì 0x605D:jiá,qì 0x605E:yí 0x605F:xiōng 0x6060:guài 0x6061:lìn 0x6062:huī 0x6063:zì 0x6064:xù 0x6065:chǐ 0x6066:shàng 0x6067:nǜ 0x6068:hèn 0x6069:ēn 0x606A:kè 0x606B:dòng,tōng 0x606C:tián 0x606D:gōng 0x606E:quān,zhuān 0x606F:xī 0x6070:qià 0x6071:yuè 0x6072:pēng 0x6073:kěn 0x6074:dé 0x6075:huì 0x6076:è,ě,wū,wù 0x6077:xiao 0x6078:tòng 0x6079:yān 0x607A:kǎi 0x607B:cè 0x607C:nǎo 0x607D:yùn 0x607E:máng 0x607F:yǒng,tōng 0x6080:yǒng 0x6081:yuān,juàn 0x6082:pī,bī,pǐ 0x6083:kǔn 0x6084:qiāo,qiǎo,qiào 0x6085:yuè 0x6086:yù,shū 0x6087:tú,yú 0x6088:jiè,kè 0x6089:xī 0x608A:zhé 0x608B:lìn 0x608C:tì 0x608D:hàn 0x608E:hào,jiào 0x608F:qiè 0x6090:tì 0x6091:bù 0x6092:yì 0x6093:qiàn 0x6094:huǐ 0x6095:xī 0x6096:bèi,běi 0x6097:mán,mèn 0x6098:yī,yì 0x6099:hēng,hèng 0x609A:sǒng 0x609B:quān,xún 0x609C:chěng 0x609D:kuī,lǐ 0x609E:wù 0x609F:wù 0x60A0:yōu 0x60A1:lí 0x60A2:liàng,lǎng 0x60A3:huàn 0x60A4:cōng 0x60A5:yì 0x60A6:yuè 0x60A7:lì 0x60A8:nín 0x60A9:nǎo 0x60AA:è 0x60AB:què 0x60AC:xuán 0x60AD:qiān 0x60AE:wù 0x60AF:mǐn 0x60B0:cóng 0x60B1:fěi 0x60B2:bēi 0x60B3:dé 0x60B4:cuì 0x60B5:chàng 0x60B6:mèn,mēn 0x60B7:lì 0x60B8:jì 0x60B9:guàn 0x60BA:guàn 0x60BB:xìng 0x60BC:dào 0x60BD:qī,qì 0x60BE:kōng,kǒng 0x60BF:tiǎn 0x60C0:lún,lùn 0x60C1:xī 0x60C2:kǎn 0x60C3:gǔn 0x60C4:nì 0x60C5:qíng 0x60C6:chóu,qiū,dāo 0x60C7:dūn 0x60C8:guǒ 0x60C9:zhān 0x60CA:jīng,liáng 0x60CB:wǎn 0x60CC:yuān,wǎn,yù 0x60CD:jīn 0x60CE:jì 0x60CF:lán,lín 0x60D0:yù,xù 0x60D1:huò 0x60D2:hé 0x60D3:quán,juàn 0x60D4:tán,dàn 0x60D5:tì 0x60D6:tì 0x60D7:niè 0x60D8:wǎng 0x60D9:chuò,chuì 0x60DA:hū 0x60DB:hūn,hǔn,mèn 0x60DC:xī 0x60DD:chǎng,tǎng 0x60DE:xīn 0x60DF:wéi,wěi 0x60E0:huì 0x60E1:è,wù,wū,ě,hū 0x60E2:suǒ,ruǐ 0x60E3:zǒng 0x60E4:jiān 0x60E5:yǒng 0x60E6:diàn 0x60E7:jù 0x60E8:cǎn 0x60E9:chéng 0x60EA:dé 0x60EB:bèi 0x60EC:qiè 0x60ED:cán 0x60EE:dàn 0x60EF:guàn 0x60F0:duò,tuó 0x60F1:nǎo 0x60F2:yùn 0x60F3:xiǎng 0x60F4:zhuì,chuǎn,guà 0x60F5:dié,tiē 0x60F6:huáng 0x60F7:chǔn 0x60F8:qióng 0x60F9:rě,ruò 0x60FA:xīng 0x60FB:cè 0x60FC:biǎn 0x60FD:mǐn,hūn 0x60FE:zōng 0x60FF:tí,shì 0x6100:qiǎo,qiù 0x6101:chóu,qiǎo,jiū 0x6102:bèi 0x6103:xuān 0x6104:wēi 0x6105:gé 0x6106:qiān 0x6107:wěi 0x6108:yù 0x6109:yú,tōu,yǔ 0x610A:bì 0x610B:xuān 0x610C:huàn 0x610D:mǐn,fēn 0x610E:bì 0x610F:yì,yī 0x6110:miǎn 0x6111:yǒng 0x6112:kài,qì,hè 0x6113:dàng,shāng,táng,yáng 0x6114:yīn 0x6115:è 0x6116:chén,dān,xìn 0x6117:mào 0x6118:qià,qiā,kè 0x6119:kè 0x611A:yú 0x611B:ài 0x611C:qiè 0x611D:yǎn 0x611E:nuò 0x611F:gǎn,hàn 0x6120:yùn,yǔn,wěn 0x6121:zǒng 0x6122:sāi,sī,sǐ 0x6123:lèng 0x6124:fèn 0x6125:yīng 0x6126:kuì 0x6127:kuì 0x6128:què 0x6129:gōng,gòng,hǒng 0x612A:yún 0x612B:sù 0x612C:sù,sè 0x612D:qí 0x612E:yáo,yào 0x612F:sǒng 0x6130:huàng,huǎng 0x6131:jí 0x6132:gǔ 0x6133:jù 0x6134:chuàng,chuǎng 0x6135:nì 0x6136:xié 0x6137:kǎi 0x6138:zhěng 0x6139:yǒng 0x613A:cǎo 0x613B:xùn 0x613C:shèn 0x613D:bó 0x613E:kài,xì,qì 0x613F:yuàn 0x6140:xì,xié 0x6141:hùn 0x6142:yǒng 0x6143:yǎng 0x6144:lì 0x6145:sāo,cǎo 0x6146:tāo 0x6147:yīn 0x6148:cí 0x6149:xù,chù 0x614A:qiàn,xián,qiǎn,qiè 0x614B:tài 0x614C:huāng,huǎng,huang 0x614D:yùn 0x614E:shèn,zhèn 0x614F:mǐng 0x6150:gong 0x6151:shè 0x6152:cóng,cáo 0x6153:piāo,piào 0x6154:mù 0x6155:mù 0x6156:guó 0x6157:chì 0x6158:cǎn 0x6159:cán 0x615A:cán 0x615B:cuī 0x615C:mǐn 0x615D:tè,nì 0x615E:zhāng 0x615F:tòng 0x6160:ào,áo 0x6161:shuǎng 0x6162:màn,mán 0x6163:guàn 0x6164:què 0x6165:zào,cào 0x6166:jiù 0x6167:huì 0x6168:kǎi 0x6169:lián 0x616A:òu,ōu 0x616B:sǒng 0x616C:qín,jìn,jǐn 0x616D:yìn 0x616E:lǜ,lǘ 0x616F:shāng 0x6170:wèi 0x6171:tuán 0x6172:mán 0x6173:qiān,xián 0x6174:shè,zhé 0x6175:yōng 0x6176:qìng,qīng,qiāng 0x6177:kāng 0x6178:dì,chì 0x6179:zhí,zhé 0x617A:lóu,lǚ 0x617B:juàn 0x617C:qī 0x617D:qī 0x617E:yù 0x617F:píng 0x6180:liáo 0x6181:còng,sōng 0x6182:yōu 0x6183:chōng 0x6184:zhì 0x6185:tòng 0x6186:chēng 0x6187:qì 0x6188:qū 0x6189:péng 0x618A:bèi 0x618B:biē 0x618C:qióng 0x618D:jiāo 0x618E:zēng 0x618F:chì 0x6190:lián 0x6191:píng 0x6192:kuì 0x6193:huì 0x6194:qiáo 0x6195:chéng,zhèng,dèng 0x6196:yìn,xìn,yín 0x6197:yìn 0x6198:xǐ,xī 0x6199:xī,xǐ 0x619A:dàn,dá,chǎn 0x619B:tán 0x619C:duò 0x619D:duì 0x619E:duì,dùn,tūn 0x619F:sù 0x61A0:jué 0x61A1:cè 0x61A2:xiāo,jiāo 0x61A3:fān 0x61A4:fèn 0x61A5:láo 0x61A6:lào,láo 0x61A7:chōng,zhuàng 0x61A8:hān 0x61A9:qì 0x61AA:xián,xiàn 0x61AB:mǐn 0x61AC:jǐng 0x61AD:liǎo,liáo 0x61AE:wǔ,wú 0x61AF:cǎn 0x61B0:jué 0x61B1:cù 0x61B2:xiàn,xiǎn 0x61B3:tǎn 0x61B4:shéng 0x61B5:pī 0x61B6:yì 0x61B7:chù,chǔ 0x61B8:xiān 0x61B9:náo,nóng,náng,nǎo 0x61BA:dàn 0x61BB:tǎn 0x61BC:jǐng,jìng 0x61BD:sōng 0x61BE:hàn,dàn 0x61BF:jiǎo,jī 0x61C0:wèi 0x61C1:xuān,huān 0x61C2:dǒng 0x61C3:qín 0x61C4:qín 0x61C5:jù 0x61C6:cǎo,sāo,sào 0x61C7:kěn 0x61C8:xiè 0x61C9:yīng,yìng 0x61CA:ào,yù 0x61CB:mào 0x61CC:yì 0x61CD:lǐn 0x61CE:sè 0x61CF:jùn 0x61D0:huái 0x61D1:mèn 0x61D2:lǎn 0x61D3:ài 0x61D4:lǐn,lǎn 0x61D5:yān,yàn,yè 0x61D6:kuò 0x61D7:xià 0x61D8:chì 0x61D9:yǔ 0x61DA:yìn 0x61DB:dāi 0x61DC:měng,mèng,méng 0x61DD:ài,nì,nǐ 0x61DE:méng,měng 0x61DF:duì 0x61E0:qí,jì,jī 0x61E1:mǒ 0x61E2:lán,xiàn 0x61E3:mèn 0x61E4:chóu 0x61E5:zhì 0x61E6:nuò 0x61E7:nuò 0x61E8:yān 0x61E9:yǎng 0x61EA:bó 0x61EB:zhì 0x61EC:kuàng 0x61ED:kuǎng 0x61EE:yǒu,yōu 0x61EF:fū 0x61F0:liú,liǔ 0x61F1:miè 0x61F2:chéng 0x61F3:hui 0x61F4:chàn 0x61F5:měng,mèng 0x61F6:lǎn,lài 0x61F7:huái 0x61F8:xuán 0x61F9:ràng 0x61FA:chàn 0x61FB:jì 0x61FC:jù 0x61FD:huān,guàn 0x61FE:shè 0x61FF:yì,yī 0x6200:liàn 0x6201:nǎn 0x6202:mí,mó 0x6203:tǎng 0x6204:jué 0x6205:gàng 0x6206:gàng,zhuàng 0x6207:zhuàng,gàng 0x6208:gē 0x6209:yuè 0x620A:wù 0x620B:jiān 0x620C:xū,qu 0x620D:shù 0x620E:róng,rēng 0x620F:xì,hū 0x6210:chéng 0x6211:wǒ 0x6212:jiè 0x6213:gē 0x6214:jiān,cán 0x6215:qiāng,zāng 0x6216:huò,yù 0x6217:qiāng,qiàng 0x6218:zhàn 0x6219:dòng 0x621A:qī,cù 0x621B:jiá 0x621C:dié 0x621D:zéi 0x621E:jiá 0x621F:jǐ 0x6220:zhī,zhí 0x6221:kān,zhěn 0x6222:jí 0x6223:kuí 0x6224:gài 0x6225:děng 0x6226:zhàn 0x6227:qiāng,chuāng,qiàng 0x6228:gē 0x6229:jiǎn 0x622A:jié 0x622B:yù 0x622C:jiǎn 0x622D:yǎn,yǒu 0x622E:lù 0x622F:hū,xì 0x6230:zhàn 0x6231:xì 0x6232:xì,hū,xī,huī,suō,yī 0x6233:chuō 0x6234:dài 0x6235:qú 0x6236:hù 0x6237:hù 0x6238:hù 0x6239:è 0x623A:shì,yí 0x623B:tì 0x623C:mǎo 0x623D:hù 0x623E:lì 0x623F:fáng,páng 0x6240:suǒ 0x6241:biǎn,piān,biān,pián 0x6242:diàn 0x6243:jiōng,jiǒng 0x6244:shǎng,jiōng 0x6245:yí 0x6246:yǐ 0x6247:shàn,shān 0x6248:hù 0x6249:fēi 0x624A:yǎn 0x624B:shǒu 0x624C:shou 0x624D:cái,zāi 0x624E:zhā,zhá,zhǎ,zā 0x624F:qiú 0x6250:lè,lì,cái 0x6251:pū,pì 0x6252:bā,bài,bié,pá 0x6253:dǎ,dá 0x6254:rēng,rèng 0x6255:fǎn 0x6256:rù 0x6257:zài 0x6258:tuō 0x6259:zhàng 0x625A:diǎo,dí,yuē,lì 0x625B:káng,gāng 0x625C:yū,wū 0x625D:kū,wū 0x625E:gǎn,hàn 0x625F:shēn 0x6260:chā,chāi,zhǎ 0x6261:tuō,yǐ,chǐ 0x6262:gǔ,qì,jié,gē 0x6263:kòu 0x6264:wù 0x6265:dèn 0x6266:qiān 0x6267:zhí 0x6268:rèn 0x6269:kuò 0x626A:mén 0x626B:sǎo,sào 0x626C:yáng 0x626D:niǔ,chǒu,zhǒu,zhòu 0x626E:bàn,fěn,fēn,huǒ 0x626F:chě 0x6270:rǎo,yòu 0x6271:xī,chā,qì 0x6272:qián,qín 0x6273:bān,pān 0x6274:jiá 0x6275:yú 0x6276:fú,pú 0x6277:ào 0x6278:xī,zhé 0x6279:pī,pí 0x627A:zhǐ,qí 0x627B:zhì,sǔn,kǎn 0x627C:è 0x627D:dèn 0x627E:zhǎo,huá 0x627F:chéng,zhěng,zhèng 0x6280:jì,qí 0x6281:yǎn 0x6282:kuáng,wǎng 0x6283:biàn 0x6284:chāo,suō,chào,chǎo 0x6285:jū 0x6286:wěn 0x6287:hú 0x6288:yuè 0x6289:jué 0x628A:bǎ,bà,pá 0x628B:qìn 0x628C:dǎn,shěn 0x628D:zhěng 0x628E:yǔn 0x628F:wán 0x6290:nè,nì,nà,ruì 0x6291:yì 0x6292:shū 0x6293:zhuā 0x6294:póu 0x6295:tóu,dòu 0x6296:dǒu 0x6297:kàng,gāng 0x6298:zhé,shé,tí,zhē 0x6299:póu 0x629A:fǔ 0x629B:pāo 0x629C:bá 0x629D:ǎo,ào,niù 0x629E:zé 0x629F:tuán 0x62A0:kōu 0x62A1:lūn,lún 0x62A2:qiǎng,qiāng 0x62A3:yun 0x62A4:hù 0x62A5:bào 0x62A6:bǐng 0x62A7:zhǐ,zhǎi 0x62A8:pēng,bēng 0x62A9:nán 0x62AA:bù,pū,bá 0x62AB:pī 0x62AC:tái,chī 0x62AD:yǎo,tāo 0x62AE:zhěn 0x62AF:zhā 0x62B0:yāng 0x62B1:bào,pāo,pǒu 0x62B2:hē,hè,qiā 0x62B3:nǐ,ní 0x62B4:yè,shé 0x62B5:dǐ,zhǐ,qí 0x62B6:chì 0x62B7:pī,pēi 0x62B8:jiā 0x62B9:mǒ,mò,mā 0x62BA:mèi 0x62BB:chēn,shēn 0x62BC:yā,xiá,jiǎ 0x62BD:chōu 0x62BE:qū 0x62BF:mǐn 0x62C0:chù 0x62C1:jiā,yá 0x62C2:fú,bì,pì,fèi 0x62C3:zhǎ,zhǎn,zhà,zhá 0x62C4:zhǔ 0x62C5:dān,dǎn,jiē,dàn 0x62C6:chāi,chè,chì,cā 0x62C7:mǔ 0x62C8:niān,niǎn,diān 0x62C9:lā,lá,lǎ,là,la 0x62CA:fǔ,fū,bǔ 0x62CB:pāo 0x62CC:bàn,pān 0x62CD:pāi,bó 0x62CE:līn,līng 0x62CF:ná 0x62D0:guǎi 0x62D1:qián 0x62D2:jù,jǔ 0x62D3:tà,zhí,tuò 0x62D4:bá,bō,bié,fá,bèi 0x62D5:tuō 0x62D6:tuō,chǐ 0x62D7:ǎo,ào,niù,yù 0x62D8:jū,gōu,jǔ,jú 0x62D9:zhuō 0x62DA:pàn,biàn,fèn,fān,pīn 0x62DB:zhāo,qiáo,sháo 0x62DC:bài 0x62DD:bài 0x62DE:dǐ 0x62DF:nǐ 0x62E0:jù 0x62E1:kuò 0x62E2:lǒng 0x62E3:jiǎn 0x62E4:qiá 0x62E5:yōng 0x62E6:lán 0x62E7:níng,nǐng,nìng 0x62E8:bō 0x62E9:zé,zhái 0x62EA:qiān 0x62EB:hén 0x62EC:kuò,guā 0x62ED:shì 0x62EE:jié,jiá 0x62EF:zhěng 0x62F0:nǐn 0x62F1:gǒng,jú 0x62F2:gǒng 0x62F3:quán 0x62F4:shuān,quán 0x62F5:cún,zùn 0x62F6:zā,zǎn 0x62F7:kǎo 0x62F8:yí,chǐ,hài 0x62F9:xié 0x62FA:cè,sè,chuò 0x62FB:huī 0x62FC:pīn,bìng 0x62FD:zhuāi,yè,zhuài 0x62FE:shí,shè,jiè 0x62FF:ná 0x6300:bāi 0x6301:chí 0x6302:guà 0x6303:zhì,dié 0x6304:kuò,guāng 0x6305:duǒ,duò 0x6306:duǒ 0x6307:zhǐ,zhī,zhí 0x6308:qiè,qì,jiá,qià,shì 0x6309:àn 0x630A:nòng 0x630B:zhèn 0x630C:gé,hé 0x630D:jiào,jiāo 0x630E:kuà,kū,kōu 0x630F:dòng 0x6310:ná,rú,nú 0x6311:tiāo,tiǎo,táo,diào,tiáo,tiao 0x6312:liè 0x6313:zhā 0x6314:lǚ 0x6315:dié,shè 0x6316:wā 0x6317:jué 0x6318:liě 0x6319:jǔ 0x631A:zhì 0x631B:luán 0x631C:yà 0x631D:wō,zhuā 0x631E:tà 0x631F:xié,jiā 0x6320:náo 0x6321:dǎng,dàng 0x6322:jiǎo 0x6323:zhēng,zhèng 0x6324:jǐ 0x6325:huī 0x6326:xián 0x6327:yǔ 0x6328:āi,ái 0x6329:tuō 0x632A:nuó 0x632B:cuò,zuò 0x632C:bó 0x632D:gěng 0x632E:tǐ,tì 0x632F:zhèn,zhēn,zhěn 0x6330:chéng 0x6331:sā,shā,suō 0x6332:sā,suō,shā 0x6333:kēng 0x6334:měi 0x6335:nòng 0x6336:jū 0x6337:péng 0x6338:jiǎn 0x6339:yì 0x633A:tǐng,tíng 0x633B:shān,yán 0x633C:ruá,ruó,suī,luò 0x633D:wǎn 0x633E:xié,jiā 0x633F:chā 0x6340:féng 0x6341:jiǎo,kù 0x6342:wǔ,wú 0x6343:jùn 0x6344:jiù,jū,qiú 0x6345:tǒng 0x6346:kǔn,hún 0x6347:huò,chì 0x6348:tú,shū,chá 0x6349:zhuō 0x634A:póu,pōu,fū 0x634B:lǚ,luō 0x634C:bā,bié 0x634D:hàn,xiàn,gǎn 0x634E:shāo,shǎo,xiāo,qiào,shào 0x634F:niē 0x6350:juān,yuán 0x6351:zè 0x6352:shù,sōu,sǒng 0x6353:yé,yú 0x6354:jué,zhuó 0x6355:bǔ 0x6356:wán,guā 0x6357:bù,pú,zhì 0x6358:zùn 0x6359:yè 0x635A:zhāi 0x635B:lǚ 0x635C:sōu 0x635D:tuō,shuì,yǎn 0x635E:lāo 0x635F:sǔn 0x6360:bāng 0x6361:jiǎn 0x6362:huàn 0x6363:dǎo 0x6364:wěi 0x6365:wàn,wān,wǎn,yù 0x6366:qín 0x6367:pěng,fèng 0x6368:shě 0x6369:liè,lì 0x636A:mín 0x636B:mén 0x636C:fǔ,fù,bǔ 0x636D:bǎi,bā,bǐ 0x636E:jù,jū 0x636F:dáo,dǎo 0x6370:wǒ,luò,luǒ 0x6371:ái,āi 0x6372:juǎn,quán,juàn 0x6373:yuè 0x6374:zǒng 0x6375:chēn,tiǎn,niǎn 0x6376:chuí,duǒ 0x6377:jié,qiè,chā 0x6378:tū 0x6379:bèn 0x637A:nà 0x637B:niǎn,niē,niān 0x637C:ruó,wō,wěi,ré 0x637D:zuó,cù,sū,zùn 0x637E:wò,xiá 0x637F:qī 0x6380:xiān,hén 0x6381:chéng 0x6382:diān 0x6383:sǎo,sào 0x6384:lūn,lún 0x6385:qìng 0x6386:gāng,gàng 0x6387:duō,duó,zhuō 0x6388:shòu 0x6389:diào,nuó 0x638A:póu,pǒu,fù,péi 0x638B:dǐ,dì 0x638C:zhǎng 0x638D:hùn 0x638E:jǐ,yǐ 0x638F:tāo,táo 0x6390:qiā 0x6391:qí 0x6392:pái,bài,pǎi 0x6393:shū 0x6394:qiān,wàn 0x6395:líng 0x6396:yē,yè 0x6397:yà,yǎ 0x6398:jué,kū 0x6399:zhēng 0x639A:liǎng 0x639B:guà 0x639C:yì,nǐ,nái,niè 0x639D:huò,xù 0x639E:shàn,yàn,yǎn 0x639F:zhěng,dìng 0x63A0:lüè,lüě 0x63A1:cǎi 0x63A2:tàn,xián 0x63A3:chè 0x63A4:bīng 0x63A5:jiē,xié,shà,chā 0x63A6:tì 0x63A7:kòng,kōng,qiāng 0x63A8:tuī 0x63A9:yǎn,yàn 0x63AA:cuò,zé,cì 0x63AB:zhōu,zōu,chōu 0x63AC:jū 0x63AD:tiàn 0x63AE:qián 0x63AF:kèn 0x63B0:bāi 0x63B1:pá,shǒu 0x63B2:jiē 0x63B3:lǔ 0x63B4:guāi,guó 0x63B5:ming 0x63B6:jié 0x63B7:zhì,zhī 0x63B8:dǎn,shàn 0x63B9:meng 0x63BA:càn,chān,shǎn 0x63BB:sāo 0x63BC:guàn 0x63BD:pèng 0x63BE:yuàn,chuán 0x63BF:nuò 0x63C0:jiǎn 0x63C1:zhēng,kēng 0x63C2:jiū,yóu 0x63C3:jiǎn,jiān,qiān 0x63C4:yú,chōu,yóu,shū,yáo 0x63C5:yán 0x63C6:kuí 0x63C7:nǎn 0x63C8:hōng,hóng,xuàn,jū 0x63C9:róu 0x63CA:pì,chè 0x63CB:wēi 0x63CC:sāi,cāi 0x63CD:zòu,còu 0x63CE:xuān 0x63CF:miáo,mào 0x63D0:tí,chí,shí,dǐ,dī 0x63D1:niē 0x63D2:chā,zhǎ 0x63D3:shì 0x63D4:zǒng,sōng 0x63D5:zhèn,zhēn 0x63D6:yī,jí 0x63D7:xún 0x63D8:yóng,huáng 0x63D9:biān,biàn 0x63DA:yáng 0x63DB:huàn 0x63DC:yǎn 0x63DD:zǎn,zuàn 0x63DE:ǎn,yàn,yè 0x63DF:xū,jū 0x63E0:yà 0x63E1:wò,òu 0x63E2:ké,qiā 0x63E3:chuāi,chuǎi,duǒ,zhuī,tuán,chuài 0x63E4:jí 0x63E5:tì,dì 0x63E6:lá,là 0x63E7:là 0x63E8:chén 0x63E9:kāi,jiá 0x63EA:jiū 0x63EB:jiū 0x63EC:tú 0x63ED:jiē,qì,hé 0x63EE:huī,hún 0x63EF:gèn 0x63F0:chòng,dǒng 0x63F1:xiāo,shuò,xiān 0x63F2:dié,shé,yè 0x63F3:xiē,xiè,xié,jiá 0x63F4:yuán,huàn 0x63F5:qián,jiàn,jiǎn 0x63F6:yé 0x63F7:chā 0x63F8:zhā 0x63F9:bēi 0x63FA:yáo 0x63FB:wēi 0x63FC:beng 0x63FD:lǎn 0x63FE:wèn,wù 0x63FF:qìn 0x6400:chān 0x6401:gē,gé 0x6402:lǒu,lōu 0x6403:zǒng 0x6404:gèn 0x6405:jiǎo 0x6406:gòu,gōu 0x6407:qìn 0x6408:róng 0x6409:què,huō 0x640A:chōu,zǒu,zhū 0x640B:chuāi,chǐ,yí 0x640C:zhǎn 0x640D:sǔn 0x640E:sūn 0x640F:bó 0x6410:chù 0x6411:róng,náng,nǎng 0x6412:bàng,péng,bēng,bǎng 0x6413:cuō,cuǒ,chāi 0x6414:sāo,sào 0x6415:kē,è 0x6416:yáo 0x6417:dǎo 0x6418:zhī 0x6419:nù,nuò,nòu 0x641A:lā,xié,xiàn 0x641B:jiān,lián 0x641C:sōu,xiāo,sòu,shǎo 0x641D:qiǔ 0x641E:gǎo,qiāo,kào 0x641F:xiǎn,xiān 0x6420:shuò 0x6421:sǎng 0x6422:jìn 0x6423:miè 0x6424:è,yì 0x6425:chuí,duī 0x6426:nuò 0x6427:shān 0x6428:tà,dá 0x6429:zhǎ,jié 0x642A:táng 0x642B:pán,bān,pó 0x642C:bān,sù 0x642D:dā,tà 0x642E:lì 0x642F:tāo 0x6430:hú,kū 0x6431:zhì,nái 0x6432:wā,wǎ,wà 0x6433:huá,xiá,qiā 0x6434:qiān 0x6435:wèn 0x6436:qiǎng,qiāng,qiàng,chéng,chēng 0x6437:tián,shēn 0x6438:zhēn 0x6439:è 0x643A:xié 0x643B:nuò 0x643C:quán 0x643D:chá 0x643E:zhà 0x643F:gé 0x6440:wǔ 0x6441:èn 0x6442:shè 0x6443:káng 0x6444:shè 0x6445:shū 0x6446:bǎi 0x6447:yáo 0x6448:bìn 0x6449:sōu 0x644A:tān 0x644B:sà,shǎi,shā 0x644C:chǎn,sùn 0x644D:suō 0x644E:jiū,liú,liáo,jiǎo,náo 0x644F:chōng 0x6450:chuāng 0x6451:guāi,guó 0x6452:bǐng,bìng 0x6453:féng,pěng 0x6454:shuāi 0x6455:dì,tú,zhí 0x6456:qì,chá 0x6457:sōu,sǒng 0x6458:zhāi 0x6459:liǎn,liàn 0x645A:chēng 0x645B:chī 0x645C:guàn 0x645D:lù 0x645E:luò 0x645F:lǒu,lōu 0x6460:zǒng 0x6461:gài,xì 0x6462:hù,chū 0x6463:zhā,zhuā 0x6464:chuǎng 0x6465:tàng 0x6466:huà 0x6467:cuī,zuì,cuò 0x6468:nái,zhì 0x6469:mó,mí,mā 0x646A:jiāng,qiàng 0x646B:guī 0x646C:yǐng 0x646D:zhí 0x646E:áo,qiāo 0x646F:zhì 0x6470:niè,chè 0x6471:màn,mán 0x6472:chàn,cán 0x6473:kōu,ōu 0x6474:chū,chī 0x6475:shè,sù,mí 0x6476:tuán,zhuàn,zhuān 0x6477:jiǎo,chāo 0x6478:mō,mó 0x6479:mó,mō 0x647A:zhé,lā,xié 0x647B:càn,shǎn,shān,chān,sēn 0x647C:kēng,qiān 0x647D:biāo,piāo,biào,pāo 0x647E:jiàng 0x647F:yáo 0x6480:gòu 0x6481:qiān,qiàn 0x6482:liào 0x6483:jī 0x6484:yīng 0x6485:juē,juè,jué,guì 0x6486:piē 0x6487:piē,biē,piě 0x6488:lāo 0x6489:dūn 0x648A:xiàn 0x648B:ruán,ruí,rún,ruó,suī 0x648C:guì 0x648D:zǎn,zān,zēn,qián 0x648E:yì 0x648F:xián,xún 0x6490:chēng 0x6491:chēng 0x6492:sā,sǎ 0x6493:náo,xiāo,rào 0x6494:hòng 0x6495:sī,xī 0x6496:hàn,qiǎn 0x6497:guàng 0x6498:dā 0x6499:zǔn 0x649A:niǎn 0x649B:lǐn 0x649C:zhěng,chéng 0x649D:huī,wéi 0x649E:zhuàng 0x649F:jiǎo,jiāo,kǎo 0x64A0:jǐ 0x64A1:cāo 0x64A2:dǎn,tàn,dàn,xín 0x64A3:dǎn,dàn,chán,tān,zhǎn,shàn,tián 0x64A4:chè 0x64A5:bō,fá 0x64A6:chě 0x64A7:juē 0x64A8:fǔ,xiāo,sōu 0x64A9:liāo,liáo,liǎo,lào,liào 0x64AA:bèn 0x64AB:fǔ,mó 0x64AC:qiào 0x64AD:bō,bǒ 0x64AE:cuō,zuì,zuān,chuā,zuǒ 0x64AF:zhuó 0x64B0:zhuàn,xuǎn,suàn 0x64B1:wěi,tuǒ 0x64B2:pū,bǔ 0x64B3:qìn 0x64B4:dūn 0x64B5:niǎn 0x64B6:huá 0x64B7:xié 0x64B8:lū 0x64B9:jiǎo 0x64BA:cuān 0x64BB:tà 0x64BC:hàn 0x64BD:qiào,yāo,jī 0x64BE:wō,zhuā 0x64BF:jiǎn,liàn 0x64C0:gǎn 0x64C1:yōng 0x64C2:léi,lèi,lēi 0x64C3:nǎng 0x64C4:lǔ 0x64C5:shàn 0x64C6:zhuó 0x64C7:zé,zhái,yì 0x64C8:pū 0x64C9:chuò 0x64CA:jī,jì,xí 0x64CB:dǎng,dàng 0x64CC:sè 0x64CD:cāo 0x64CE:qíng 0x64CF:qíng,jǐng,jìng 0x64D0:huàn,juǎn,xuān 0x64D1:jiē 0x64D2:qín 0x64D3:kuǎi 0x64D4:dān,dàn,shàn 0x64D5:xié 0x64D6:kā,qiā,jiā,zhá,guā,yè,gē,liè 0x64D7:pǐ,bò 0x64D8:bāi,bò 0x64D9:ào 0x64DA:jù 0x64DB:yè 0x64DC:è 0x64DD:mēng 0x64DE:sǒu,sòu 0x64DF:mí 0x64E0:jǐ 0x64E1:tái 0x64E2:zhuó 0x64E3:dǎo,chóu 0x64E4:xǐng 0x64E5:lǎn 0x64E6:cā 0x64E7:jǔ 0x64E8:yé 0x64E9:rǔ,nǔ,rù,nòu,ruán 0x64EA:yè 0x64EB:yè 0x64EC:nǐ 0x64ED:wò,huò,hù 0x64EE:jié 0x64EF:bìn 0x64F0:níng,nǐng,nìng 0x64F1:gē,gé 0x64F2:zhì,zhī 0x64F3:zhì,jié 0x64F4:kuò,tǎng,guàng 0x64F5:mó 0x64F6:jiàn 0x64F7:xié 0x64F8:liè,là 0x64F9:tān 0x64FA:bǎi 0x64FB:sǒu,sòu 0x64FC:lǔ,lū 0x64FD:lüè,lì,yuè 0x64FE:rǎo 0x64FF:tī,zhì,zhāi 0x6500:pān 0x6501:yǎng 0x6502:lèi 0x6503:cā,sǎ 0x6504:shū,lù 0x6505:zǎn 0x6506:niǎn 0x6507:xiǎn 0x6508:jùn,pèi 0x6509:huō,huò,què 0x650A:lì 0x650B:là,lài 0x650C:huǎn 0x650D:yíng 0x650E:lú,luó 0x650F:lǒng 0x6510:qiān 0x6511:qiān 0x6512:zǎn,cuán 0x6513:qiān 0x6514:lán 0x6515:xiān,jiān 0x6516:yīng 0x6517:méi 0x6518:rǎng,ràng,níng,xiǎng 0x6519:chān,shàn 0x651A:wěng 0x651B:cuān 0x651C:xié 0x651D:shè,zhé,niè,shà 0x651E:luó,luǒ 0x651F:jùn 0x6520:mí,mó 0x6521:chī 0x6522:zǎn,cuán,zuān,zàn 0x6523:luán,liàn 0x6524:tān,nàn 0x6525:zuàn 0x6526:lì,shài 0x6527:diān 0x6528:wā 0x6529:dǎng,tǎng 0x652A:jiǎo 0x652B:jué 0x652C:lǎn 0x652D:lì,luǒ 0x652E:nǎng 0x652F:zhī,zhì,qí 0x6530:guì 0x6531:guǐ,guì 0x6532:qī,jī 0x6533:xún 0x6534:pū 0x6535:pū 0x6536:shōu 0x6537:kǎo 0x6538:yōu 0x6539:gǎi 0x653A:yǐ 0x653B:gōng 0x653C:gān,hàn 0x653D:bān,bīn 0x653E:fàng,fǎng,fāng 0x653F:zhèng,zhēng 0x6540:pò 0x6541:diān 0x6542:kòu 0x6543:mǐn,fēn 0x6544:wù,móu 0x6545:gù 0x6546:hé 0x6547:cè 0x6548:xiào 0x6549:mǐ 0x654A:chù,shōu 0x654B:gé 0x654C:dí,huá 0x654D:xù 0x654E:jiào 0x654F:mǐn 0x6550:chén 0x6551:jiù,jiū 0x6552:shēn 0x6553:duó 0x6554:yǔ,yù 0x6555:chì,sōu 0x6556:áo,ào 0x6557:bài 0x6558:xù 0x6559:jiào,jiāo 0x655A:duó 0x655B:liǎn 0x655C:niè 0x655D:bì 0x655E:chǎng,chèng,zhèng 0x655F:diǎn 0x6560:duō,què 0x6561:yì 0x6562:gǎn 0x6563:sàn,sǎn,sān 0x6564:kě 0x6565:yàn,jiǎo 0x6566:dūn,duī,tuán,diāo,dùn,dào,zhǔn,tūn,duì,tún 0x6567:jī,qǐ 0x6568:tǒu 0x6569:xiào,xué 0x656A:duō 0x656B:jiǎo,qiāo,jiào 0x656C:jìng 0x656D:yáng 0x656E:xiá 0x656F:mǐn 0x6570:shù,shǔ,shuò 0x6571:ái,zhú 0x6572:qiāo 0x6573:ái 0x6574:zhěng 0x6575:dí 0x6576:zhèn 0x6577:fū 0x6578:shù,shǔ,shuò 0x6579:liáo 0x657A:qū,ōu 0x657B:xiòng 0x657C:yǐ 0x657D:jiǎo 0x657E:shàn 0x657F:jiǎo 0x6580:zhuó,zhú 0x6581:yì,dù,tú 0x6582:liǎn,lián 0x6583:bì 0x6584:lí,tái 0x6585:xiào,xué 0x6586:xiào 0x6587:wén 0x6588:xué 0x6589:qí 0x658A:qí 0x658B:zhāi 0x658C:bīn 0x658D:jué 0x658E:zhāi 0x658F:láng 0x6590:fěi 0x6591:bān 0x6592:bān 0x6593:lán 0x6594:yǔ 0x6595:lán 0x6596:wěi 0x6597:dòu,dǒu,zhǔ 0x6598:shēng 0x6599:liào,liáo 0x659A:jiǎ 0x659B:hú 0x659C:xié,xiá,chá,yé 0x659D:jiǎ 0x659E:yǔ 0x659F:zhēn 0x65A0:jiào 0x65A1:wò,guǎn 0x65A2:tiǎo,tǒu 0x65A3:dòu 0x65A4:jīn 0x65A5:chì,chè,zhè 0x65A6:yín,zhì 0x65A7:fǔ 0x65A8:qiāng 0x65A9:zhǎn 0x65AA:qú 0x65AB:zhuó,chuò 0x65AC:zhǎn,zhàn 0x65AD:duàn 0x65AE:cuò,zhuó 0x65AF:sī,shǐ 0x65B0:xīn 0x65B1:zhuó 0x65B2:zhuó 0x65B3:qín,jǐn 0x65B4:lín 0x65B5:zhuó 0x65B6:chù 0x65B7:duàn 0x65B8:zhǔ,zhú 0x65B9:fāng,fáng,fǎng,páng,wǎng,fēng 0x65BA:chǎn,jiè 0x65BB:háng 0x65BC:yú,wū,yū 0x65BD:shī,yì,shǐ 0x65BE:pèi 0x65BF:yóu,liú 0x65C0:mèi 0x65C1:páng,pēng,bēng,bàng 0x65C2:qí 0x65C3:zhān 0x65C4:máo,mào,wù 0x65C5:lǚ 0x65C6:pèi 0x65C7:pī,bì 0x65C8:liú 0x65C9:fū 0x65CA:fǎng 0x65CB:xuán,xuàn 0x65CC:jīng 0x65CD:jīng 0x65CE:nǐ 0x65CF:zú,sǒu,còu,zòu 0x65D0:zhào 0x65D1:yǐ 0x65D2:liú 0x65D3:shāo 0x65D4:jiàn 0x65D5:yú 0x65D6:yǐ 0x65D7:qí 0x65D8:zhì 0x65D9:fān 0x65DA:piāo 0x65DB:fān 0x65DC:zhān 0x65DD:kuài 0x65DE:suì 0x65DF:yú 0x65E0:wú,mó 0x65E1:jì 0x65E2:jì,xì 0x65E3:jì 0x65E4:huò 0x65E5:rì 0x65E6:dàn 0x65E7:jiù 0x65E8:zhǐ 0x65E9:zǎo 0x65EA:xié 0x65EB:tiāo 0x65EC:xún,jūn 0x65ED:xù 0x65EE:gā,xù 0x65EF:lá 0x65F0:gàn,hàn 0x65F1:hàn 0x65F2:tái,yīng 0x65F3:dì 0x65F4:xū 0x65F5:chǎn 0x65F6:shí 0x65F7:kuàng 0x65F8:yáng 0x65F9:shí 0x65FA:wàng 0x65FB:mín 0x65FC:mín 0x65FD:tūn,zhùn 0x65FE:chūn 0x65FF:wǔ,wù 0x6600:yún 0x6601:bèi 0x6602:áng,yàng 0x6603:zè 0x6604:bǎn 0x6605:jié 0x6606:kūn,hún,kùn 0x6607:shēng 0x6608:hù 0x6609:fǎng 0x660A:hào 0x660B:guì,jiǒng 0x660C:chāng,chàng 0x660D:xuān 0x660E:míng,mèng 0x660F:hūn,hùn 0x6610:fēn 0x6611:qǐn 0x6612:hū 0x6613:yì 0x6614:xī,cuò 0x6615:xīn,xuān 0x6616:yán 0x6617:zè 0x6618:fǎng 0x6619:tán,yù 0x661A:shèn 0x661B:jù 0x661C:yáng 0x661D:zǎn 0x661E:bǐng,fǎng 0x661F:xīng 0x6620:yìng,yǎng 0x6621:xuàn 0x6622:pò,pèi 0x6623:zhěn 0x6624:líng 0x6625:chūn,chǔn 0x6626:hào 0x6627:mèi,wěn,mò 0x6628:zuó 0x6629:mò 0x662A:biàn 0x662B:xù,xiǒng 0x662C:hūn 0x662D:zhāo,zhào 0x662E:zòng 0x662F:shì,tí 0x6630:shì,xià 0x6631:yù 0x6632:fèi 0x6633:dié,diè,yì 0x6634:mǎo 0x6635:nì,nǐ,zhì 0x6636:chǎng 0x6637:wēn 0x6638:dōng 0x6639:ǎi 0x663A:bǐng 0x663B:áng 0x663C:zhòu 0x663D:lóng 0x663E:xiǎn 0x663F:kuàng 0x6640:tiǎo 0x6641:cháo,zhāo,chào 0x6642:shí 0x6643:huǎng,huàng 0x6644:huǎng 0x6645:xuǎn,xuān 0x6646:kuí 0x6647:xū,kuā 0x6648:jiǎo 0x6649:jìn 0x664A:zhì 0x664B:jìn 0x664C:shǎng 0x664D:tóng 0x664E:hǒng 0x664F:yàn 0x6650:gāi 0x6651:xiǎng 0x6652:shài 0x6653:xiǎo 0x6654:yè 0x6655:yūn,yùn 0x6656:huī 0x6657:hán 0x6658:hàn 0x6659:jùn 0x665A:wǎn 0x665B:xiàn 0x665C:kūn 0x665D:zhòu 0x665E:xī 0x665F:chéng,shèng,jīng 0x6660:shèng 0x6661:bū 0x6662:zhé,zhì 0x6663:zhé 0x6664:wù 0x6665:wǎn 0x6666:huì 0x6667:hào 0x6668:chén 0x6669:wǎn 0x666A:tiǎn 0x666B:zhuó 0x666C:zuì 0x666D:zhǒu 0x666E:pǔ 0x666F:jǐng,yǐng 0x6670:xī 0x6671:shǎn 0x6672:nǐ 0x6673:xī 0x6674:qíng 0x6675:qǐ,dù 0x6676:jīng 0x6677:guǐ 0x6678:zhěng 0x6679:yì 0x667A:zhì,zhī 0x667B:àn,ǎn,yǎn 0x667C:wǎn 0x667D:lín 0x667E:liàng 0x667F:chāng 0x6680:wǎng,wàng 0x6681:xiǎo 0x6682:zàn 0x6683:fēi 0x6684:xuān 0x6685:gèng,xuǎn 0x6686:yí 0x6687:xiá,xià,jiǎ 0x6688:yūn,yùn 0x6689:huī 0x668A:xǔ 0x668B:mǐn,mín 0x668C:kuí 0x668D:yē 0x668E:yìng 0x668F:shǔ,dǔ 0x6690:wěi 0x6691:shǔ 0x6692:qíng 0x6693:mào 0x6694:nán 0x6695:jiǎn,lán 0x6696:nuǎn,xuān 0x6697:àn 0x6698:yáng 0x6699:chūn 0x669A:yáo 0x669B:suǒ 0x669C:pǔ 0x669D:míng 0x669E:jiǎo 0x669F:kǎi 0x66A0:gǎo,hào 0x66A1:wěng 0x66A2:chàng 0x66A3:qì 0x66A4:hào 0x66A5:yàn 0x66A6:lì 0x66A7:ài,nuǎn 0x66A8:jì,jiè 0x66A9:jì 0x66AA:mèn 0x66AB:zàn 0x66AC:xiè 0x66AD:hào 0x66AE:mù 0x66AF:mò 0x66B0:cōng 0x66B1:nì 0x66B2:zhāng 0x66B3:huì 0x66B4:bào,pù,bó 0x66B5:hàn 0x66B6:xuán 0x66B7:chuán 0x66B8:liáo 0x66B9:xiān 0x66BA:tǎn 0x66BB:jǐng 0x66BC:piē 0x66BD:lín 0x66BE:tūn 0x66BF:xǐ,xī 0x66C0:yì 0x66C1:jì 0x66C2:huàng 0x66C3:dài 0x66C4:yè 0x66C5:yè 0x66C6:lì 0x66C7:tán 0x66C8:tóng 0x66C9:xiǎo 0x66CA:fèi 0x66CB:shěn 0x66CC:zhào 0x66CD:hào 0x66CE:yì 0x66CF:xiǎng,xiàng,shǎng 0x66D0:xīng 0x66D1:shēn 0x66D2:jiǎo 0x66D3:bào 0x66D4:jìng 0x66D5:yàn 0x66D6:ài 0x66D7:yè 0x66D8:rú 0x66D9:shǔ 0x66DA:méng 0x66DB:xūn 0x66DC:yào 0x66DD:pù 0x66DE:lì 0x66DF:chén 0x66E0:kuàng 0x66E1:dié 0x66E2:liǎo 0x66E3:yàn 0x66E4:huò 0x66E5:lú 0x66E6:xī 0x66E7:róng 0x66E8:lóng 0x66E9:nǎng 0x66EA:luǒ 0x66EB:luán 0x66EC:shài 0x66ED:tǎng 0x66EE:yǎn 0x66EF:zhú 0x66F0:yuē 0x66F1:yuē 0x66F2:qū,qǔ 0x66F3:yè 0x66F4:gèng,gēng 0x66F5:yè 0x66F6:hū 0x66F7:hé,è,hè 0x66F8:shū 0x66F9:cáo 0x66FA:cáo 0x66FB:shēng 0x66FC:màn 0x66FD:cēng 0x66FE:céng,zēng 0x66FF:tì 0x6700:zuì,cuō 0x6701:cǎn,qián,jiàn 0x6702:xù 0x6703:huì,kuài,kuò 0x6704:yǐn 0x6705:qiè 0x6706:fēn 0x6707:pí 0x6708:yuè,rù 0x6709:yǒu,yòu,wěi 0x670A:ruǎn,wǎn 0x670B:péng 0x670C:fén,bān 0x670D:fú,fù,bì,bó 0x670E:líng 0x670F:fěi,kū 0x6710:qú,xū,xù,chǔn 0x6711:tì 0x6712:nǜ 0x6713:tiǎo,tiào,yóu 0x6714:shuò 0x6715:zhèn 0x6716:lǎng 0x6717:lǎng 0x6718:zuī,juān 0x6719:míng 0x671A:huāng,máng,wáng,mèng 0x671B:wàng 0x671C:tūn 0x671D:cháo,zhāo,zhū 0x671E:jī,qī 0x671F:qī,jī 0x6720:yīng 0x6721:zōng 0x6722:wàng 0x6723:tóng,chuáng 0x6724:lǎng 0x6725:láo 0x6726:méng,mǎng 0x6727:lóng,lǒng 0x6728:mù 0x6729:děng 0x672A:wèi 0x672B:mò,me 0x672C:běn,bēn 0x672D:zhá,yà 0x672E:shù,zhú 0x672F:shù,shú,zhú 0x6730:mù 0x6731:zhū,shū 0x6732:rén 0x6733:bā 0x6734:pǔ,pò,pū,pō,piáo 0x6735:duǒ 0x6736:duǒ 0x6737:dāo,mù,tiáo 0x6738:lì 0x6739:guǐ,qiú 0x673A:jī,wèi 0x673B:jiū 0x673C:bǐ 0x673D:xiǔ 0x673E:chéng,zhēng,chēng,tīng 0x673F:cì 0x6740:shā 0x6741:rù 0x6742:zá,duǒ 0x6743:quán 0x6744:qiān 0x6745:yú,wū 0x6746:gān,gàn,gǎn 0x6747:wū 0x6748:chā,chà 0x6749:shān,shā 0x674A:xún 0x674B:fán 0x674C:wù,wò 0x674D:zǐ 0x674E:lǐ 0x674F:xìng 0x6750:cái 0x6751:cūn 0x6752:rèn,ér 0x6753:biāo,sháo,shuó,dí,zhuó 0x6754:tuō,zhé 0x6755:dì,duò 0x6756:zhàng 0x6757:máng 0x6758:chì 0x6759:yì 0x675A:gài,gé 0x675B:gōng 0x675C:dù,dǔ,tú 0x675D:lí,zhì,yí,tuò,duò 0x675E:qǐ 0x675F:shù 0x6760:gāng,gōng,gàng 0x6761:tiáo 0x6762:jiang 0x6763:mián 0x6764:wàn 0x6765:lái 0x6766:jiǔ 0x6767:máng 0x6768:yáng 0x6769:mà 0x676A:miǎo 0x676B:sì,zhǐ,xǐ 0x676C:yuán,yuàn 0x676D:háng,kàng,kāng 0x676E:fèi,bèi 0x676F:bēi 0x6770:jié 0x6771:dōng 0x6772:gǎo 0x6773:yǎo 0x6774:xiān,qiān 0x6775:chǔ 0x6776:chūn 0x6777:pá,bà 0x6778:shū,duì 0x6779:huà 0x677A:xīn 0x677B:chǒu,niǔ 0x677C:zhù,shù 0x677D:chǒu 0x677E:sōng 0x677F:bǎn 0x6780:sōng 0x6781:jí 0x6782:wò,yuè 0x6783:jìn 0x6784:gòu 0x6785:jī 0x6786:máo 0x6787:pí,bǐ,bì,pī 0x6788:bì,pī 0x6789:wǎng,kuáng 0x678A:àng 0x678B:fāng,fǎng,bǐng 0x678C:fén 0x678D:yì 0x678E:fú,fū 0x678F:nán 0x6790:xī,sī 0x6791:hù 0x6792:yā,yē,yá,yà 0x6793:dǒu,zhǔ 0x6794:xín 0x6795:zhěn,chén 0x6796:yāo,yǎo 0x6797:lín 0x6798:ruì,nèn 0x6799:ě,è 0x679A:méi 0x679B:zhào 0x679C:guǒ,luǒ,guàn 0x679D:zhī,qí 0x679E:cōng,zōng 0x679F:yùn 0x67A0:zui 0x67A1:shēng 0x67A2:shū 0x67A3:zǎo 0x67A4:dì 0x67A5:lì 0x67A6:lú 0x67A7:jiǎn 0x67A8:chéng 0x67A9:sōng 0x67AA:qiāng 0x67AB:fēng 0x67AC:zhān 0x67AD:xiāo 0x67AE:xiān,zhēn 0x67AF:kū,gū 0x67B0:píng 0x67B1:tái,sì,cí 0x67B2:xǐ 0x67B3:zhǐ,zhī 0x67B4:guǎi 0x67B5:xiāo 0x67B6:jià 0x67B7:jiā,jià 0x67B8:gǒu,jǔ,gōu,qú 0x67B9:bāo,fú 0x67BA:mò 0x67BB:yì,xiè 0x67BC:yè 0x67BD:yè 0x67BE:shì 0x67BF:niè 0x67C0:bǐ 0x67C1:duò,tuó,tuǒ 0x67C2:yí,duò,lí 0x67C3:líng 0x67C4:bǐng 0x67C5:nǐ,chì 0x67C6:lā 0x67C7:hé 0x67C8:bàn,pán,pàn 0x67C9:fán 0x67CA:zhōng 0x67CB:dài 0x67CC:cí 0x67CD:yǎng,yàng,yīng 0x67CE:fū,fǔ,fù 0x67CF:bǎi,bó,bò 0x67D0:mǒu,méi 0x67D1:gān,qián 0x67D2:qī 0x67D3:rǎn 0x67D4:róu 0x67D5:mào 0x67D6:sháo,shào 0x67D7:sōng 0x67D8:zhè 0x67D9:xiá,jiǎ 0x67DA:yòu,yóu,zhóu 0x67DB:shēn 0x67DC:guì,jǔ 0x67DD:tuò 0x67DE:zhà,zuò,zé 0x67DF:nán,rán 0x67E0:níng,chǔ,zhù 0x67E1:yǒng 0x67E2:dǐ,dì,chí 0x67E3:zhì,dié 0x67E4:zhā,zǔ,zū 0x67E5:chá,zhā,chái 0x67E6:dàn 0x67E7:gū 0x67E8:bù,pū 0x67E9:jiù 0x67EA:āo,ào 0x67EB:fú 0x67EC:jiǎn 0x67ED:bā,fú,bó,biē,pèi 0x67EE:duò,zuó,wù 0x67EF:kē 0x67F0:nài 0x67F1:zhù,zhǔ 0x67F2:bì,bié 0x67F3:liǔ 0x67F4:chái,cī,zhài,zì 0x67F5:shān,zhà 0x67F6:sì 0x67F7:chù,zhù 0x67F8:pēi,bēi 0x67F9:shì,fèi 0x67FA:guǎi 0x67FB:zhā 0x67FC:yǎo 0x67FD:chēng,jué 0x67FE:jiù 0x67FF:shì 0x6800:zhī 0x6801:liǔ 0x6802:méi 0x6803:lì 0x6804:róng 0x6805:zhà,shān,cè 0x6806:zǎo 0x6807:biāo 0x6808:zhàn 0x6809:zhì 0x680A:lóng 0x680B:dòng 0x680C:lú 0x680D:shēng 0x680E:lì,yuè 0x680F:lán 0x6810:yǒng 0x6811:shù 0x6812:xún,sǔn 0x6813:shuān,shuàn,quán 0x6814:qì 0x6815:zhēn 0x6816:qī,xī 0x6817:lì,liè 0x6818:yí 0x6819:xiáng 0x681A:zhèn 0x681B:lì 0x681C:sè,cì 0x681D:guā,tiǎn,kuò 0x681E:kān 0x681F:bēn,bīng 0x6820:rěn 0x6821:xiào,jiào,jiǎo,qiāo 0x6822:bǎi 0x6823:rěn 0x6824:bìng 0x6825:zī 0x6826:chóu 0x6827:yì 0x6828:cì 0x6829:xǔ,yǔ 0x682A:zhū 0x682B:jiàn,zùn 0x682C:zuì 0x682D:ér 0x682E:ěr 0x682F:yǒu,yù 0x6830:fá 0x6831:gǒng 0x6832:kǎo 0x6833:lǎo 0x6834:zhān 0x6835:liè 0x6836:yīn 0x6837:yàng,yáng 0x6838:hé,gāi,kài,hú 0x6839:gēn 0x683A:yì,zhī,zhǐ 0x683B:shì 0x683C:gé,luò,hè,gē 0x683D:zāi,zài 0x683E:luán 0x683F:fú 0x6840:jié 0x6841:héng,háng,hàng 0x6842:guì 0x6843:táo,tiāo,zhào 0x6844:guāng,guàng 0x6845:wéi,guǐ 0x6846:kuāng,kuàng,kuáng 0x6847:rú 0x6848:àn 0x6849:ān,àn 0x684A:juàn,quān 0x684B:yí,tí 0x684C:zhuō 0x684D:kū 0x684E:zhì 0x684F:qióng 0x6850:tóng,tōng,dòng 0x6851:sāng 0x6852:sāng 0x6853:huán 0x6854:jú,jié,xié 0x6855:jiù 0x6856:xuè 0x6857:duò 0x6858:zhuì 0x6859:yú,móu 0x685A:zǎn 0x685C:yīng 0x685D:jié 0x685E:liǔ 0x685F:zhàn 0x6860:yā 0x6861:ráo 0x6862:zhēn 0x6863:dàng 0x6864:qī 0x6865:qiáo 0x6866:huà 0x6867:guì,huì 0x6868:jiǎng 0x6869:zhuāng 0x686A:xún 0x686B:suō 0x686C:shā 0x686D:zhēn,chén,zhèn 0x686E:bēi 0x686F:tīng,yíng 0x6870:kuò 0x6871:jìng 0x6872:po,bó 0x6873:bèn 0x6874:fú 0x6875:ruí 0x6876:tǒng 0x6877:jué 0x6878:xī 0x6879:láng 0x687A:liǔ 0x687B:fēng,fèng 0x687C:qī 0x687D:wěn 0x687E:jūn 0x687F:gǎn,hàn 0x6880:sù,yìn 0x6881:liáng 0x6882:qiú 0x6883:tǐng,tìng 0x6884:yǒu 0x6885:méi 0x6886:bāng 0x6887:lòng 0x6888:pēng 0x6889:zhuāng 0x688A:dì 0x688B:xuān,juān,xié 0x688C:tú,chá,tū 0x688D:zào 0x688E:āo,yòu 0x688F:gù,jué 0x6890:bì 0x6891:dí 0x6892:hán 0x6893:zǐ 0x6894:zhī 0x6895:rèn 0x6896:bèi 0x6897:gěng 0x6898:jiǎn,xiàn,jiàn 0x6899:huàn 0x689A:wǎn 0x689B:nuó 0x689C:jiā 0x689D:tiáo,tiāo 0x689E:jì 0x689F:xiāo 0x68A0:lǚ 0x68A1:hún,kuǎn 0x68A2:shāo,shào,xiāo,sào 0x68A3:cén 0x68A4:fén 0x68A5:sōng 0x68A6:mèng 0x68A7:wú,wù,yǔ 0x68A8:lí 0x68A9:lí,sì,qǐ 0x68AA:dòu 0x68AB:qǐn,qīn 0x68AC:yǐng 0x68AD:suō,xùn 0x68AE:jū 0x68AF:tī,tí 0x68B0:xiè 0x68B1:kǔn,hún 0x68B2:zhuó 0x68B3:shū 0x68B4:chān 0x68B5:fàn 0x68B6:wěi 0x68B7:jìng 0x68B8:lí 0x68B9:bīn,bīng 0x68BA:xià 0x68BB:fó 0x68BC:táo 0x68BD:zhì 0x68BE:lái 0x68BF:lián 0x68C0:jiǎn 0x68C1:zhuō,tuō,ruì 0x68C2:líng 0x68C3:lí 0x68C4:qì 0x68C5:bǐng 0x68C6:lún 0x68C7:cōng,sōng 0x68C8:qiàn 0x68C9:mián 0x68CA:qí 0x68CB:qí,jī 0x68CC:cài 0x68CD:gùn,hùn,āo,gǔn 0x68CE:chán 0x68CF:dé,zhé 0x68D0:fěi,féi 0x68D1:pái,bèi,pèi 0x68D2:bàng 0x68D3:bàng,pǒu,bèi,péi,bēi 0x68D4:hūn 0x68D5:zōng 0x68D6:chéng,cháng 0x68D7:zǎo 0x68D8:jí 0x68D9:lì,liè 0x68DA:péng 0x68DB:yù 0x68DC:yù 0x68DD:gù 0x68DE:jùn 0x68DF:dòng 0x68E0:táng 0x68E1:gāng 0x68E2:wǎng 0x68E3:dì,tì,dài 0x68E4:cuò 0x68E5:fán 0x68E6:chēng 0x68E7:zhàn,zhǎn,chén 0x68E8:qǐ 0x68E9:yuān 0x68EA:yǎn,yàn 0x68EB:yù 0x68EC:quān,juàn,quán 0x68ED:yì 0x68EE:sēn 0x68EF:rěn,shěn 0x68F0:chuí,duǒ 0x68F1:léng,lèng,lēng,líng,chēng 0x68F2:qī,xī 0x68F3:zhuō 0x68F4:fú,sù 0x68F5:kē,kuǎn,kě 0x68F6:lái 0x68F7:zōu,sǒu 0x68F8:zōu 0x68F9:zhào,zhuō 0x68FA:guān,guàn 0x68FB:fēn 0x68FC:fén,fèn,fēn 0x68FD:shēn,chēn 0x68FE:qíng 0x68FF:ní,niè 0x6900:wǎn 0x6901:guǒ 0x6902:lù 0x6903:háo 0x6904:jiē,jié,qiè 0x6905:yǐ,yī 0x6906:chóu,zhòu,diāo 0x6907:jǔ 0x6908:jú 0x6909:chéng,shèng 0x690A:zuó,cuì 0x690B:liáng 0x690C:qiāng,kōng 0x690D:zhí 0x690E:chuí,zhuī 0x690F:yā,ě 0x6910:jū 0x6911:bēi,pí,bì,pái 0x6912:jiāo 0x6913:zhuó 0x6914:zī 0x6915:bīn 0x6916:péng 0x6917:dìng 0x6918:chǔ 0x6919:chāng 0x691A:mēn 0x691B:huā 0x691C:jiǎn 0x691D:guī 0x691E:xì 0x691F:dú 0x6920:qiàn 0x6921:dào 0x6922:guì 0x6923:diǎn 0x6924:luó 0x6925:zhī 0x6926:quan 0x6927:mìng 0x6928:fǔ 0x6929:gēng 0x692A:pèng 0x692B:shàn 0x692C:yí 0x692D:tuǒ 0x692E:sēn 0x692F:duǒ,chuán 0x6930:yē 0x6931:fù 0x6932:wěi,huī 0x6933:wēi 0x6934:duàn 0x6935:jiǎ,jiā 0x6936:zōng 0x6937:jiān,hán 0x6938:yí 0x6939:shèn,zhēn 0x693A:xí 0x693B:yàn,yà 0x693C:yǎn 0x693D:chuán 0x693E:jiān,zhàn 0x693F:chūn 0x6940:yǔ 0x6941:hé 0x6942:zhā,chá 0x6943:wò 0x6944:pián 0x6945:bī 0x6946:yāo 0x6947:huò,guō,kuǎ 0x6948:xū 0x6949:ruò 0x694A:yáng 0x694B:là 0x694C:yán 0x694D:běn 0x694E:huī 0x694F:kuí 0x6950:jiè 0x6951:kuí 0x6952:sī 0x6953:fēng,fán 0x6954:xiē,xiè 0x6955:tuǒ 0x6956:zhì,jí 0x6957:jiàn,jiǎn 0x6958:mù 0x6959:mào 0x695A:chǔ 0x695B:hù,kǔ 0x695C:hú 0x695D:liàn 0x695E:léng,lèng 0x695F:tíng 0x6960:nán 0x6961:yú 0x6962:yóu,yǒu 0x6963:méi,měi 0x6964:sǒng,cōng 0x6965:xuàn,yuán 0x6966:xuàn 0x6967:yǎng 0x6968:zhēn 0x6969:pián 0x696A:yè,dié 0x696B:jí 0x696C:jié,qià 0x696D:yè 0x696E:chǔ,zhū 0x696F:dùn,shǔn,chūn 0x6970:yú 0x6971:zòu,cōu 0x6972:wēi 0x6973:méi 0x6974:tì,dǐ,shì 0x6975:jí,jǐ 0x6976:jié 0x6977:kǎi,jiè,jiē 0x6978:qiū 0x6979:yíng 0x697A:rǒu,ròu 0x697B:huáng 0x697C:lóu 0x697D:lè 0x697E:quán 0x697F:xiāng 0x6980:pǐn 0x6981:shǐ 0x6982:gài,guì,jié 0x6983:tán 0x6984:lǎn 0x6985:wēn,yùn 0x6986:yú 0x6987:chèn 0x6988:lǘ 0x6989:jǔ 0x698A:shén 0x698B:chu 0x698C:bī 0x698D:xiè 0x698E:jiǎ 0x698F:yì 0x6990:zhǎn,chǎn,niàn,zhèn 0x6991:fú,fù,bó 0x6992:nuò 0x6993:mì 0x6994:láng,lǎng 0x6995:róng 0x6996:gǔ 0x6997:jiàn,jìn 0x6998:jǔ 0x6999:tā 0x699A:yǎo 0x699B:zhēn 0x699C:bǎng,bēng,bàng,páng,péng 0x699D:shā,xiè 0x699E:yuán 0x699F:zǐ 0x69A0:míng 0x69A1:sù 0x69A2:jià 0x69A3:yáo 0x69A4:jié 0x69A5:huàng 0x69A6:gàn,hán 0x69A7:fěi 0x69A8:zhà 0x69A9:qián 0x69AA:mà,mǎ 0x69AB:sǔn 0x69AC:yuán 0x69AD:xiè 0x69AE:róng 0x69AF:shí 0x69B0:zhī 0x69B1:cuī 0x69B2:wēn 0x69B3:tíng 0x69B4:liú 0x69B5:róng 0x69B6:táng 0x69B7:què 0x69B8:zhāi 0x69B9:sī 0x69BA:shèng 0x69BB:tà 0x69BC:kē 0x69BD:xī 0x69BE:gǔ 0x69BF:qī 0x69C0:gǎo,kào 0x69C1:gǎo,kào,gāo 0x69C2:sūn 0x69C3:pán 0x69C4:tāo 0x69C5:gé 0x69C6:chūn 0x69C7:diān,zhěn,zhēn 0x69C8:nòu 0x69C9:jí 0x69CA:shuò 0x69CB:gòu,jué 0x69CC:chuí,zhuì,duī 0x69CD:qiāng,chēng,qiǎng 0x69CE:chá 0x69CF:qiǎn,xiàn,lián 0x69D0:huái 0x69D1:méi 0x69D2:xù 0x69D3:gàng 0x69D4:gāo 0x69D5:zhuō 0x69D6:tuó 0x69D7:qiáo 0x69D8:yàng 0x69D9:diān 0x69DA:jiǎ 0x69DB:kǎn,jiàn 0x69DC:zuì 0x69DD:dǎo 0x69DE:lóng 0x69DF:bīn,bīng 0x69E0:zhū 0x69E1:sāng 0x69E2:xí,dié 0x69E3:jī,guī 0x69E4:lián,liǎn 0x69E5:huì 0x69E6:yōng 0x69E7:qiàn 0x69E8:guǒ 0x69E9:gài 0x69EA:gài 0x69EB:tuán,shuàn,quán 0x69EC:huà 0x69ED:qī,zú,sè 0x69EE:sēn,shěn 0x69EF:cuī,zuǐ 0x69F0:péng 0x69F1:yǒu,chǎo 0x69F2:hú 0x69F3:jiǎng,jiāng 0x69F4:hù 0x69F5:huàn 0x69F6:guì 0x69F7:niè,xiè,yì 0x69F8:yì 0x69F9:gāo 0x69FA:kāng 0x69FB:guī 0x69FC:guī 0x69FD:cáo,zāo 0x69FE:màn,wàn,mán 0x69FF:jǐn,qín 0x6A00:dí,zhí,zhé,dī 0x6A01:zhuāng,chōng 0x6A02:lè,yuè,yào,luò,liáo 0x6A03:lǎng 0x6A04:chén 0x6A05:cōng,zōng 0x6A06:lí,chī 0x6A07:xiū 0x6A08:qíng 0x6A09:shuǎng 0x6A0A:fán,fàn 0x6A0B:tōng 0x6A0C:guàn 0x6A0D:zé 0x6A0E:sù 0x6A0F:lěi,léi 0x6A10:lǔ 0x6A11:liáng 0x6A12:mì 0x6A13:lóu,lǘ 0x6A14:cháo,chāo,jiǎo 0x6A15:sù 0x6A16:kē 0x6A17:chū 0x6A18:táng,chēng 0x6A19:biāo,biào 0x6A1A:lù,dú 0x6A1B:jiū,liáo 0x6A1C:zhè 0x6A1D:zhā 0x6A1E:shū,ōu 0x6A1F:zhāng 0x6A20:mán,lǎng 0x6A21:mó,mú 0x6A22:niǎo,mù 0x6A23:yàng,xiàng 0x6A24:tiáo 0x6A25:péng 0x6A26:zhù 0x6A27:shā 0x6A28:xī 0x6A29:quán 0x6A2A:héng,hèng,guāng,guàng,huáng,huàng 0x6A2B:jiān 0x6A2C:cōng 0x6A2D:jī 0x6A2E:yān 0x6A2F:qiáng 0x6A30:xuě 0x6A31:yīng 0x6A32:èr,zhì 0x6A33:xún 0x6A34:zhí,yì 0x6A35:qiáo 0x6A36:zuī 0x6A37:cóng 0x6A38:pǔ,pú 0x6A39:shù 0x6A3A:huà 0x6A3B:kuì 0x6A3C:zhēn 0x6A3D:zūn 0x6A3E:yuè 0x6A3F:shàn 0x6A40:xī 0x6A41:chūn 0x6A42:diàn 0x6A43:fá,fèi 0x6A44:gǎn 0x6A45:mó 0x6A46:wǔ,wú 0x6A47:qiāo 0x6A48:ráo,náo 0x6A49:lìn 0x6A4A:liú 0x6A4B:qiáo,jiāo,jiào,qiāo,jiǎo 0x6A4C:xiàn 0x6A4D:rùn 0x6A4E:fán 0x6A4F:zhǎn,jiǎn 0x6A50:tuó,dù,luò 0x6A51:lǎo 0x6A52:yún 0x6A53:shùn 0x6A54:dūn,tuí 0x6A55:chēng 0x6A56:táng,chēng 0x6A57:méng 0x6A58:jú 0x6A59:chéng,dèng,chén 0x6A5A:sù,xiāo,qiū 0x6A5B:jué 0x6A5C:jué 0x6A5D:diàn,tán,xín 0x6A5E:huì 0x6A5F:jī 0x6A60:nuǒ,nuó 0x6A61:xiàng 0x6A62:tuǒ,duǒ 0x6A63:nǐng 0x6A64:ruǐ 0x6A65:zhū 0x6A66:tóng,chuáng,zhōng,chōng 0x6A67:zēng,céng 0x6A68:fén,fèn,fèi 0x6A69:qióng 0x6A6A:rǎn,yān 0x6A6B:héng 0x6A6C:qián,qín 0x6A6D:gū 0x6A6E:liǔ 0x6A6F:lào 0x6A70:gāo 0x6A71:chú 0x6A72:xǐ 0x6A73:shèng 0x6A74:zǐ 0x6A75:san 0x6A76:jí 0x6A77:dōu 0x6A78:jīng 0x6A79:lǔ 0x6A7A:jian 0x6A7B:chu 0x6A7C:yuán 0x6A7D:tà 0x6A7E:shū,qiāo,sāo 0x6A7F:jiāng 0x6A80:tán,shàn 0x6A81:lǐn 0x6A82:nóng 0x6A83:yǐn 0x6A84:xí 0x6A85:huì 0x6A86:shān 0x6A87:zuì 0x6A88:xuán 0x6A89:chēng 0x6A8A:gàn 0x6A8B:jú 0x6A8C:zuì 0x6A8D:yì 0x6A8E:qín 0x6A8F:pǔ 0x6A90:yán,dān 0x6A91:léi,lèi 0x6A92:fēng 0x6A93:huǐ 0x6A94:dàng,dāng 0x6A95:jì 0x6A96:suì 0x6A97:bò,bì 0x6A98:píng,bò 0x6A99:chéng 0x6A9A:chǔ 0x6A9B:zhuā 0x6A9C:guì,kuài,huì 0x6A9D:jí 0x6A9E:jiě,xiè 0x6A9F:jiǎ 0x6AA0:qíng,jìng 0x6AA1:zhái,shì,tú 0x6AA2:jiǎn 0x6AA3:qiáng 0x6AA4:dào 0x6AA5:yǐ 0x6AA6:biǎo 0x6AA7:sōng 0x6AA8:shē 0x6AA9:lǐn 0x6AAA:lì 0x6AAB:chá,sà 0x6AAC:méng 0x6AAD:yín 0x6AAE:táo,chóu,dào 0x6AAF:tái 0x6AB0:mián 0x6AB1:qí 0x6AB2:tuán 0x6AB3:bīn,bīng 0x6AB4:huò,huà 0x6AB5:jì 0x6AB6:qiān 0x6AB7:nǐ,mí 0x6AB8:níng 0x6AB9:yī 0x6ABA:gǎo 0x6ABB:kǎn,jiàn 0x6ABC:yìn 0x6ABD:nòu,ruǎn,rú 0x6ABE:qǐng 0x6ABF:yǎn 0x6AC0:qí 0x6AC1:mì 0x6AC2:zhào,dí 0x6AC3:guì 0x6AC4:chūn 0x6AC5:jī,jì 0x6AC6:kuí 0x6AC7:pó 0x6AC8:dèng 0x6AC9:chú 0x6ACA:gé 0x6ACB:mián 0x6ACC:yōu 0x6ACD:zhì 0x6ACE:huǎng,guàng,guǒ,gǔ 0x6ACF:qiān 0x6AD0:lěi 0x6AD1:léi,lěi 0x6AD2:sà 0x6AD3:lǔ 0x6AD4:lì 0x6AD5:cuán 0x6AD6:lǜ,chū 0x6AD7:miè,mèi 0x6AD8:huì 0x6AD9:ōu 0x6ADA:lǘ 0x6ADB:zhì 0x6ADC:gāo 0x6ADD:dú 0x6ADE:yuán 0x6ADF:lì,luò,yuè 0x6AE0:fèi 0x6AE1:zhuó,zhù 0x6AE2:sǒu 0x6AE3:lián 0x6AE4:jiàng 0x6AE5:chú 0x6AE6:qìng 0x6AE7:zhū 0x6AE8:lú,lǘ 0x6AE9:yán,yǎn 0x6AEA:lì 0x6AEB:zhū 0x6AEC:chèn,qìn,guàn 0x6AED:jié,jì 0x6AEE:è 0x6AEF:sū 0x6AF0:huái,guī 0x6AF1:niè 0x6AF2:yù 0x6AF3:lóng 0x6AF4:lài 0x6AF5:jiao 0x6AF6:xiǎn 0x6AF7:guī 0x6AF8:jǔ 0x6AF9:xiāo,qiū,xiū 0x6AFA:líng 0x6AFB:yīng 0x6AFC:jiān,shān 0x6AFD:yǐn 0x6AFE:yóu,yòu 0x6AFF:yíng 0x6B00:xiāng,ràng 0x6B01:nóng 0x6B02:bó 0x6B03:chán,zhàn 0x6B04:lán,liàn 0x6B05:jǔ 0x6B06:shuāng 0x6B07:shè 0x6B08:wéi,zuì 0x6B09:cóng 0x6B0A:quán,guàn 0x6B0B:qú 0x6B0C:cáng 0x6B0D:jiù 0x6B0E:yù 0x6B0F:luó,luǒ 0x6B10:lì,lǐ 0x6B11:cuán,zuàn 0x6B12:luán 0x6B13:dǎng,tǎng 0x6B14:jué 0x6B15:yán 0x6B16:lǎn 0x6B17:lán 0x6B18:zhú 0x6B19:léi,luǒ 0x6B1A:lǐ 0x6B1B:bà 0x6B1C:náng 0x6B1D:yù 0x6B1E:líng 0x6B1F:guang 0x6B20:qiàn 0x6B21:cì,zī,cí 0x6B22:huān 0x6B23:xīn 0x6B24:yú 0x6B25:yì,huān,yù 0x6B26:qiān,hān,xiān,qián 0x6B27:ōu 0x6B28:xū 0x6B29:chāo 0x6B2A:chù,xì,qù 0x6B2B:qì 0x6B2C:kài,ài 0x6B2D:yì,yīn 0x6B2E:jué 0x6B2F:xì,kài 0x6B30:xù 0x6B31:hē,xiá 0x6B32:yù 0x6B33:kuì 0x6B34:láng 0x6B35:kuǎn 0x6B36:shuò,sòu 0x6B37:xī 0x6B38:āi,ǎi,xiè,ế,éi,ê̌,ěi,ề,èi,ê̄,ēi 0x6B39:yī 0x6B3A:qī 0x6B3B:chuā,xū 0x6B3C:chǐ,chuài 0x6B3D:qīn,qìn,yín 0x6B3E:kuǎn,xīn 0x6B3F:kǎn,qiàn,dàn 0x6B40:kuǎn 0x6B41:kǎn,kè,qiǎn 0x6B42:chuǎn,chuán 0x6B43:shà,xiá 0x6B44:guā 0x6B45:yīn 0x6B46:xīn 0x6B47:xiē,yà 0x6B48:yú 0x6B49:qiàn 0x6B4A:xiāo 0x6B4B:yè 0x6B4C:gē 0x6B4D:wū,yāng 0x6B4E:tàn 0x6B4F:jìn,qūn 0x6B50:ōu,ǒu 0x6B51:hū 0x6B52:tì,xiāo 0x6B53:huān 0x6B54:xū 0x6B55:pēn 0x6B56:xǐ,yǐ 0x6B57:xiào 0x6B58:chuā,xū 0x6B59:shè,xī,xié 0x6B5A:shàn 0x6B5B:hān,liǎn 0x6B5C:chù 0x6B5D:yì 0x6B5E:è 0x6B5F:yú 0x6B60:chuò 0x6B61:huān 0x6B62:zhǐ 0x6B63:zhèng,zhēng 0x6B64:cǐ 0x6B65:bù 0x6B66:wǔ 0x6B67:qí 0x6B68:bù 0x6B69:bù 0x6B6A:wāi,wǎi 0x6B6B:jù 0x6B6C:qián 0x6B6D:chí,zhì 0x6B6E:sè 0x6B6F:chǐ 0x6B70:sè,shà 0x6B71:zhǒng 0x6B72:suì,suò 0x6B73:suì 0x6B74:lì 0x6B75:zé 0x6B76:yú 0x6B77:lì 0x6B78:guī,kuì,kuí 0x6B79:dǎi,è,dāi 0x6B7A:è 0x6B7B:sǐ 0x6B7C:jiān 0x6B7D:zhé 0x6B7E:mò,wěn 0x6B7F:mò 0x6B80:yāo 0x6B81:mò,wěn 0x6B82:cú 0x6B83:yāng 0x6B84:tiǎn 0x6B85:shēng 0x6B86:dài 0x6B87:shāng 0x6B88:xù 0x6B89:xùn 0x6B8A:shū 0x6B8B:cán 0x6B8C:jué 0x6B8D:piǎo,bì 0x6B8E:qià 0x6B8F:qiú 0x6B90:sù 0x6B91:qíng,jīng,jìng 0x6B92:yǔn 0x6B93:liàn 0x6B94:yì 0x6B95:fǒu,yè,bó 0x6B96:zhí,shì,shi 0x6B97:yè,yàn,yān 0x6B98:cán 0x6B99:hūn,mèn 0x6B9A:dān 0x6B9B:jí 0x6B9C:dié 0x6B9D:zhēn 0x6B9E:yǔn 0x6B9F:wēn 0x6BA0:chòu 0x6BA1:bìn 0x6BA2:tì 0x6BA3:jìn 0x6BA4:shāng 0x6BA5:yín 0x6BA6:diāo 0x6BA7:jiù 0x6BA8:huì,kuì 0x6BA9:cuàn 0x6BAA:yì 0x6BAB:dān 0x6BAC:dù 0x6BAD:jiāng 0x6BAE:liàn 0x6BAF:bìn 0x6BB0:dú 0x6BB1:jiān 0x6BB2:jiān 0x6BB3:shū 0x6BB4:ōu 0x6BB5:duàn 0x6BB6:zhù 0x6BB7:yīn,yǐn,yān 0x6BB8:qìng,kēng,shēng 0x6BB9:yì 0x6BBA:shā,shài,sà,xiè,shì 0x6BBB:qiào 0x6BBC:ké,qiào 0x6BBD:xiáo,yáo,xiào 0x6BBE:xùn 0x6BBF:diàn 0x6BC0:huǐ 0x6BC1:huǐ,huì 0x6BC2:gǔ,gū 0x6BC3:qiāo 0x6BC4:jī 0x6BC5:yì 0x6BC6:ōu,kōu,qū 0x6BC7:huǐ 0x6BC8:duàn 0x6BC9:yī 0x6BCA:xiāo 0x6BCB:wú,móu 0x6BCC:guàn 0x6BCD:mǔ,mú,wǔ,wú 0x6BCE:měi 0x6BCF:měi 0x6BD0:ǎi 0x6BD1:jiě 0x6BD2:dú,dài 0x6BD3:yù 0x6BD4:bǐ,bì,pí,pǐ 0x6BD5:bì 0x6BD6:bì 0x6BD7:pí 0x6BD8:pí 0x6BD9:bì 0x6BDA:chán 0x6BDB:máo,mào 0x6BDC:háo 0x6BDD:cǎi 0x6BDE:pí 0x6BDF:liě 0x6BE0:jiā 0x6BE1:zhān 0x6BE2:sāi 0x6BE3:mù,mào 0x6BE4:tuò 0x6BE5:xún,xùn 0x6BE6:ěr 0x6BE7:róng 0x6BE8:xiǎn 0x6BE9:jú 0x6BEA:mú 0x6BEB:háo 0x6BEC:qiú 0x6BED:dòu,nuò 0x6BEE:shā 0x6BEF:tǎn 0x6BF0:péi 0x6BF1:jú 0x6BF2:duō 0x6BF3:cuì,qiāo,xiā 0x6BF4:bī 0x6BF5:sān 0x6BF6:sān 0x6BF7:mào 0x6BF8:sāi,suī 0x6BF9:shū,yú 0x6BFA:shū 0x6BFB:tuò 0x6BFC:hé,kě,dā 0x6BFD:jiàn 0x6BFE:tà 0x6BFF:sān 0x6C00:lǘ,shū,yú,dōu 0x6C01:mú 0x6C02:máo,lí 0x6C03:tóng 0x6C04:rǒng,róng 0x6C05:chǎng 0x6C06:pǔ 0x6C07:lu 0x6C08:zhān 0x6C09:sào 0x6C0A:zhān 0x6C0B:méng 0x6C0C:lǔ 0x6C0D:qú 0x6C0E:dié 0x6C0F:shì,zhī,jīng 0x6C10:dī,dǐ,zhī 0x6C11:mín 0x6C12:jué 0x6C13:máng,méng 0x6C14:qì,qǐ 0x6C15:piē 0x6C16:nǎi 0x6C17:qì 0x6C18:dāo 0x6C19:xiān 0x6C1A:chuān 0x6C1B:fēn 0x6C1C:yáng,rì 0x6C1D:nèi 0x6C1E:bin 0x6C1F:fú 0x6C20:shēn 0x6C21:dōng 0x6C22:qīng 0x6C23:qì,xì 0x6C24:yīn,yán 0x6C25:xī 0x6C26:hài 0x6C27:yǎng 0x6C28:ān 0x6C29:yà 0x6C2A:kè 0x6C2B:qīng 0x6C2C:yà 0x6C2D:dōng 0x6C2E:dàn 0x6C2F:lǜ 0x6C30:qíng 0x6C31:yǎng 0x6C32:yūn,yún 0x6C33:yūn 0x6C34:shuǐ 0x6C35:shui 0x6C36:zhěng,chéng,zhèng 0x6C37:bīng 0x6C38:yǒng 0x6C39:dàng 0x6C3A:shuǐ 0x6C3B:lè 0x6C3C:nì,mèi 0x6C3D:tǔn,qiú 0x6C3E:fàn,fán 0x6C3F:guǐ,qiú,jiǔ 0x6C40:tīng,tìng,dìng 0x6C41:zhī,xié,shí 0x6C42:qiú 0x6C43:bīn,pà,pā 0x6C44:zè 0x6C45:miǎn 0x6C46:cuān 0x6C47:huì 0x6C48:diāo 0x6C49:hàn 0x6C4A:chà 0x6C4B:zhuó,yuè,què,shuò 0x6C4C:chuàn 0x6C4D:wán,huán 0x6C4E:fàn,fá 0x6C4F:dà,tài 0x6C50:xī 0x6C51:tuō 0x6C52:máng,mǎng 0x6C53:qiú,yóu 0x6C54:qì 0x6C55:shàn,shuàn 0x6C56:pìn,chí 0x6C57:hàn,hán,gān 0x6C58:qiān 0x6C59:wū,yú,wā,yū 0x6C5A:wū 0x6C5B:xùn 0x6C5C:sì 0x6C5D:rǔ 0x6C5E:gǒng 0x6C5F:jiāng 0x6C60:chí,tuó,chè 0x6C61:wū 0x6C62:tu 0x6C63:jiǔ 0x6C64:tāng,shāng 0x6C65:zhī,jì 0x6C66:zhǐ 0x6C67:qiān,yán 0x6C68:mì 0x6C69:gǔ,yù,hú 0x6C6A:wāng,wǎng,hóng 0x6C6B:jǐng 0x6C6C:jǐng 0x6C6D:ruì,tūn 0x6C6E:jūn 0x6C6F:hóng 0x6C70:tài 0x6C71:quǎn,fú 0x6C72:jí,jī 0x6C73:biàn 0x6C74:biàn 0x6C75:gàn,hán,cén 0x6C76:wèn,wén,mín,mén 0x6C77:zhōng 0x6C78:fāng,pāng 0x6C79:xiōng 0x6C7A:jué,quē,xuè 0x6C7B:hǔ,huǎng 0x6C7C:niú,yóu 0x6C7D:qì,gài,yǐ 0x6C7E:fén,pén,fēn 0x6C7F:xù 0x6C80:xù 0x6C81:qìn 0x6C82:yí,yín 0x6C83:wò 0x6C84:yún 0x6C85:yuán 0x6C86:hàng,háng,kàng 0x6C87:yǎn,wěi 0x6C88:shěn,chén,tán 0x6C89:chén 0x6C8A:dàn 0x6C8B:yóu 0x6C8C:dùn,tún,chún,zhuàn 0x6C8D:hù,hú 0x6C8E:huò 0x6C8F:qī,qiè 0x6C90:mù 0x6C91:nǜ,niǔ 0x6C92:méi 0x6C93:dá,tà 0x6C94:miǎn 0x6C95:mì,wù,fū 0x6C96:chōng 0x6C97:pāng,tiān 0x6C98:bǐ 0x6C99:shā,shà,suō 0x6C9A:zhǐ 0x6C9B:pèi 0x6C9C:pàn 0x6C9D:zhuǐ,zǐ 0x6C9E:zā 0x6C9F:gōu 0x6CA0:liú 0x6CA1:méi,mò,me 0x6CA2:zé 0x6CA3:fēng 0x6CA4:ōu,òu 0x6CA5:lì 0x6CA6:lún 0x6CA7:cāng 0x6CA8:fēng 0x6CA9:wéi 0x6CAA:hù 0x6CAB:mò 0x6CAC:mèi,huì 0x6CAD:shù 0x6CAE:jǔ,jū,jù,jiān,zǔ 0x6CAF:zá 0x6CB0:tuō,duó 0x6CB1:tuó,duò,chí 0x6CB2:tuó 0x6CB3:hé 0x6CB4:lì,zhěn 0x6CB5:mǐ 0x6CB6:yí,chí,shì 0x6CB7:fā 0x6CB8:fèi,fú 0x6CB9:yóu,yòu 0x6CBA:tián 0x6CBB:zhì,chí 0x6CBC:zhǎo 0x6CBD:gū,gǔ 0x6CBE:zhān,tiān,diàn,chān 0x6CBF:yán,yǎn,yàn 0x6CC0:sī 0x6CC1:kuàng 0x6CC2:jiǒng,yíng,yǐng,jiōng 0x6CC3:jū,gōu 0x6CC4:xiè,yì 0x6CC5:qiú,yōu 0x6CC6:yì,dié 0x6CC7:jiā 0x6CC8:zhōng 0x6CC9:quán 0x6CCA:pō,bó,pò 0x6CCB:huì,huǐ 0x6CCC:mì,bì 0x6CCD:bēn,bèn 0x6CCE:zé 0x6CCF:zhú,kū 0x6CD0:lè 0x6CD1:yōu,āo 0x6CD2:gū 0x6CD3:hóng 0x6CD4:gān,hàn 0x6CD5:fǎ 0x6CD6:mǎo,liǔ 0x6CD7:sì 0x6CD8:hū 0x6CD9:píng,pēng 0x6CDA:cǐ,zǐ 0x6CDB:fàn,fěng,fá 0x6CDC:zhī,chí,zhì 0x6CDD:sù 0x6CDE:nìng,zhù 0x6CDF:chēng 0x6CE0:líng,lǐng 0x6CE1:pào,pāo,páo 0x6CE2:bō,bēi,bì 0x6CE3:qì,lì,sè 0x6CE4:sì 0x6CE5:ní,nì,nǐ,niè,nìng 0x6CE6:jú 0x6CE7:sà,xuè 0x6CE8:zhù,zhòu 0x6CE9:shēng 0x6CEA:lèi 0x6CEB:xuàn,xuán,juān 0x6CEC:jué,xuè 0x6CED:fú 0x6CEE:pàn 0x6CEF:mǐn,miàn 0x6CF0:tài 0x6CF1:yāng 0x6CF2:jǐ 0x6CF3:yǒng 0x6CF4:guàn 0x6CF5:bèng,pìn,liú 0x6CF6:xué 0x6CF7:lóng,shuāng 0x6CF8:lú 0x6CF9:dàn 0x6CFA:luò,pō 0x6CFB:xiè 0x6CFC:pō 0x6CFD:zé 0x6CFE:jīng 0x6CFF:yín 0x6D00:pán,zhōu 0x6D01:jié,jí 0x6D02:yè 0x6D03:huī 0x6D04:huí,huì 0x6D05:zài 0x6D06:chéng 0x6D07:yīn,yān,yē 0x6D08:wéi 0x6D09:hòu 0x6D0A:jiàn,cún 0x6D0B:yáng,xiáng,yǎng 0x6D0C:liè 0x6D0D:sì 0x6D0E:jì 0x6D0F:ér 0x6D10:xíng 0x6D11:fú,fù 0x6D12:sǎ,xǐ,xiǎn,sěn,cuǐ,xùn 0x6D13:sè,qì,zì 0x6D14:zhǐ 0x6D15:yìn 0x6D16:wú 0x6D17:xǐ,xiǎn 0x6D18:kǎo,kào 0x6D19:zhū 0x6D1A:jiàng,hóng 0x6D1B:luò 0x6D1C:luò 0x6D1D:àn,yàn,è 0x6D1E:dòng,tóng 0x6D1F:tì 0x6D20:móu 0x6D21:lèi,lěi 0x6D22:yī 0x6D23:mǐ 0x6D24:quán 0x6D25:jīn 0x6D26:pò 0x6D27:wěi 0x6D28:xiáo 0x6D29:xiè,yì 0x6D2A:hóng 0x6D2B:xù,yì 0x6D2C:sù,shuò 0x6D2D:kuāng 0x6D2E:táo,yáo,dào 0x6D2F:qiè,jié 0x6D30:jù 0x6D31:ěr 0x6D32:zhōu 0x6D33:rù,rú 0x6D34:píng,pēng 0x6D35:xún,xuàn 0x6D36:xiōng 0x6D37:zhì 0x6D38:guāng,huàng 0x6D39:huán 0x6D3A:míng 0x6D3B:huó,guō 0x6D3C:wā,guī 0x6D3D:qià,hé 0x6D3E:pài,mài,bài,pā 0x6D3F:wū,hù 0x6D40:qū 0x6D41:liú 0x6D42:yì 0x6D43:jiā 0x6D44:jìng 0x6D45:qiǎn,jiān 0x6D46:jiāng,jiàng 0x6D47:jiāo 0x6D48:zhēn 0x6D49:shī 0x6D4A:zhuó 0x6D4B:cè 0x6D4C:fá 0x6D4D:huì,kuài 0x6D4E:jì,jǐ 0x6D4F:liú 0x6D50:chǎn 0x6D51:hún 0x6D52:hǔ,xǔ 0x6D53:nóng 0x6D54:xún 0x6D55:jìn 0x6D56:liè 0x6D57:qiú 0x6D58:wěi 0x6D59:zhè 0x6D5A:jùn,xùn,cún 0x6D5B:hán,hàn,gān 0x6D5C:bāng,bīn 0x6D5D:máng 0x6D5E:zhuó 0x6D5F:yóu,dí 0x6D60:xī 0x6D61:bó 0x6D62:dòu 0x6D63:huàn 0x6D64:hóng 0x6D65:yì,yà 0x6D66:pǔ 0x6D67:yǐng,chéng,yíng,zhèng,yìng 0x6D68:lǎn 0x6D69:hào,gǎo,gé 0x6D6A:làng,láng 0x6D6B:hǎn 0x6D6C:lǐ,hǎi 0x6D6D:gēng 0x6D6E:fú 0x6D6F:wú 0x6D70:liàn 0x6D71:chún 0x6D72:féng,hóng 0x6D73:yì 0x6D74:yù 0x6D75:tóng 0x6D76:láo 0x6D77:hǎi 0x6D78:jìn,qīn 0x6D79:jiā,xiá 0x6D7A:chōng 0x6D7B:jiǒng,jiōng 0x6D7C:měi 0x6D7D:suī,něi 0x6D7E:chēng 0x6D7F:pèi 0x6D80:xiàn,jiǎn 0x6D81:shèn 0x6D82:tú,chú,yé 0x6D83:kùn 0x6D84:pīng 0x6D85:niè 0x6D86:hàn 0x6D87:jīng,qǐng 0x6D88:xiāo 0x6D89:shè,dié 0x6D8A:niǎn,rěn 0x6D8B:tū 0x6D8C:yǒng,chōng 0x6D8D:xiào 0x6D8E:xián,yàn,diàn 0x6D8F:tǐng 0x6D90:é 0x6D91:sù,sōu,shù 0x6D92:tūn,yūn 0x6D93:juān,yuàn,xuàn 0x6D94:cén,qián,zàn 0x6D95:tì 0x6D96:lì 0x6D97:shuì 0x6D98:sì 0x6D99:lèi 0x6D9A:shuì 0x6D9B:tāo 0x6D9C:dú 0x6D9D:lào 0x6D9E:lái 0x6D9F:lián 0x6DA0:wéi 0x6DA1:wō,guō 0x6DA2:yún 0x6DA3:huàn,huì 0x6DA4:dí 0x6DA5:hēng 0x6DA6:rùn 0x6DA7:jiàn 0x6DA8:zhǎng,zhàng 0x6DA9:sè 0x6DAA:fú,póu 0x6DAB:guàn 0x6DAC:xìng 0x6DAD:shòu,tāo 0x6DAE:shuàn,shuā 0x6DAF:yá 0x6DB0:chuò 0x6DB1:zhàng 0x6DB2:yè,shì 0x6DB3:kōng,náng 0x6DB4:wò,wǎn,yuān 0x6DB5:hán,hàn 0x6DB6:tuō,tuò 0x6DB7:dōng 0x6DB8:hé 0x6DB9:wō 0x6DBA:jū 0x6DBB:shè 0x6DBC:liáng,liàng 0x6DBD:hūn,hùn 0x6DBE:tà 0x6DBF:zhuō,zhuó 0x6DC0:diàn 0x6DC1:qiè,jí 0x6DC2:dé 0x6DC3:juàn 0x6DC4:zī 0x6DC5:xī 0x6DC6:xiáo 0x6DC7:qí 0x6DC8:gǔ,hù 0x6DC9:guǒ,guàn 0x6DCA:yān,hàn,yǎn,hán 0x6DCB:lín,lìn 0x6DCC:tǎng,chàng,chǎng 0x6DCD:zhōu,diāo 0x6DCE:pěng 0x6DCF:hào 0x6DD0:chāng 0x6DD1:shū,chù 0x6DD2:qī,qiàn 0x6DD3:fāng 0x6DD4:zhí 0x6DD5:lù 0x6DD6:nào,zhào,zhuō,chuò 0x6DD7:jú 0x6DD8:táo 0x6DD9:cóng,shuàng 0x6DDA:lèi,lì 0x6DDB:zhè 0x6DDC:píng,péng 0x6DDD:féi 0x6DDE:sōng 0x6DDF:tiǎn 0x6DE0:pì,pèi 0x6DE1:dàn,yàn,tán 0x6DE2:yù,xù 0x6DE3:ní 0x6DE4:yū 0x6DE5:lù 0x6DE6:gàn,hán 0x6DE7:mì 0x6DE8:jìng,chéng 0x6DE9:líng 0x6DEA:lún,lǔn,guān 0x6DEB:yín,yàn,yáo 0x6DEC:cuì,zú 0x6DED:qú 0x6DEE:huái 0x6DEF:yù 0x6DF0:niǎn,shěn,nà 0x6DF1:shēn 0x6DF2:biāo,hū,hǔ 0x6DF3:chún,zhūn,zhǔn 0x6DF4:hū 0x6DF5:yuān 0x6DF6:lái 0x6DF7:hùn,gǔn,hún,kūn 0x6DF8:qīng 0x6DF9:yān,yǎn 0x6DFA:qiǎn,jiān,jiàn,cán,zàn 0x6DFB:tiān,tiàn 0x6DFC:miǎo 0x6DFD:zhǐ 0x6DFE:yǐn 0x6DFF:bó 0x6E00:bèn,bēn 0x6E01:yuān 0x6E02:wèn,mín 0x6E03:ruò,rè 0x6E04:fēi 0x6E05:qīng,qìng 0x6E06:yuān 0x6E07:kě 0x6E08:jì 0x6E09:shè 0x6E0A:yuān 0x6E0B:sè 0x6E0C:lù 0x6E0D:zì 0x6E0E:dú 0x6E0F:yī 0x6E10:jiàn,jiān 0x6E11:miǎn,shéng 0x6E12:pài 0x6E13:xī 0x6E14:yú 0x6E15:yuān 0x6E16:shěn 0x6E17:shèn 0x6E18:róu 0x6E19:huàn 0x6E1A:zhǔ 0x6E1B:jiǎn 0x6E1C:nuǎn,nuán 0x6E1D:yú,yū 0x6E1E:qiú,wù 0x6E1F:tíng,tīng 0x6E20:qú,jù 0x6E21:dù 0x6E22:fán,féng 0x6E23:zhā 0x6E24:bó 0x6E25:wò,òu,wū 0x6E26:wō,guō 0x6E27:dì,tí,dī 0x6E28:wēi 0x6E29:wēn,yùn 0x6E2A:rú 0x6E2B:xiè,dié,zhá,yì,qiè 0x6E2C:cè 0x6E2D:wèi 0x6E2E:hé 0x6E2F:gǎng,hòng 0x6E30:yǎn 0x6E31:hóng,gòng 0x6E32:xuàn 0x6E33:mǐ 0x6E34:kě,jié,kài,hé 0x6E35:máo 0x6E36:yīng 0x6E37:yǎn 0x6E38:yóu,liú 0x6E39:hōng,qìng 0x6E3A:miǎo 0x6E3B:shěng 0x6E3C:měi 0x6E3D:zāi 0x6E3E:hún,hùn,gǔn 0x6E3F:nài 0x6E40:guǐ 0x6E41:chì 0x6E42:è 0x6E43:pài,bá 0x6E44:méi 0x6E45:liàn,làn 0x6E46:qì 0x6E47:qì 0x6E48:méi 0x6E49:tián 0x6E4A:còu 0x6E4B:wéi 0x6E4C:cān 0x6E4D:tuān,zhuān 0x6E4E:miǎn 0x6E4F:huì,mǐn 0x6E50:mò 0x6E51:xū,xǔ,xù 0x6E52:jí 0x6E53:pén,pèn 0x6E54:jiān,zàn,zhǎn,qián,jiàn 0x6E55:jiǎn 0x6E56:hú 0x6E57:fèng 0x6E58:xiāng 0x6E59:yì 0x6E5A:yìn 0x6E5B:zhàn,chén,dān,tán,jìn,yǐn,chěn,yín,shèn 0x6E5C:shí 0x6E5D:jiē,xié 0x6E5E:zhēn,chēng 0x6E5F:huáng,kuàng 0x6E60:tàn 0x6E61:yú 0x6E62:bì 0x6E63:mǐn,hūn,miàn 0x6E64:shī 0x6E65:tū 0x6E66:shēng 0x6E67:yǒng 0x6E68:jú 0x6E69:dòng,dǒng,tóng 0x6E6A:tuàn,nuǎn 0x6E6B:jiǎo,jiù,jiū,qiū,jiāo 0x6E6C:jiǎo 0x6E6D:qiú 0x6E6E:yān,yīn 0x6E6F:tāng,tàng,shāng,yáng 0x6E70:lóng 0x6E71:huò 0x6E72:yuán 0x6E73:nǎn 0x6E74:bàn,pán 0x6E75:yǒu 0x6E76:quán 0x6E77:zhuāng,hún 0x6E78:liàng 0x6E79:chán 0x6E7A:xián 0x6E7B:chún 0x6E7C:niè 0x6E7D:zī 0x6E7E:wān 0x6E7F:shī 0x6E80:mǎn 0x6E81:yíng 0x6E82:là 0x6E83:kuì,huì 0x6E84:féng 0x6E85:jiàn,jiān 0x6E86:xù 0x6E87:lóu 0x6E88:wéi 0x6E89:gài,xiè 0x6E8A:bō 0x6E8B:yíng 0x6E8C:pō 0x6E8D:jìn 0x6E8E:yàn,guì 0x6E8F:táng 0x6E90:yuán 0x6E91:suǒ 0x6E92:yuán 0x6E93:lián,liǎn,xián,xiàn,nián,lín 0x6E94:yǎo 0x6E95:méng 0x6E96:zhǔn,zhuó 0x6E97:chéng 0x6E98:kè,kài 0x6E99:tài 0x6E9A:tǎ,dá 0x6E9B:wā 0x6E9C:liū,liù,liú 0x6E9D:gōu,gǎng,kòu 0x6E9E:sāo 0x6E9F:míng,mǐng,mì 0x6EA0:zhà,zhā 0x6EA1:shí 0x6EA2:yì 0x6EA3:lùn 0x6EA4:mǎ 0x6EA5:pǔ,fū,bù,bó,pò 0x6EA6:wēi,méi 0x6EA7:lì 0x6EA8:zāi 0x6EA9:wù 0x6EAA:xī,qī 0x6EAB:wēn 0x6EAC:qiāng 0x6EAD:zé 0x6EAE:shī 0x6EAF:sù,shuò 0x6EB0:ái 0x6EB1:qín,zhēn 0x6EB2:sōu,sǒu,shāo 0x6EB3:yún,yǔn 0x6EB4:xiù,chòu 0x6EB5:yīn 0x6EB6:róng 0x6EB7:hùn,hún 0x6EB8:sù 0x6EB9:suò,sè 0x6EBA:nì,ruò,niào 0x6EBB:tā 0x6EBC:shī 0x6EBD:rù,rú 0x6EBE:āi 0x6EBF:pàn 0x6EC0:chù,xù 0x6EC1:chú 0x6EC2:pāng,pēng 0x6EC3:wēng,wěng 0x6EC4:cāng 0x6EC5:miè 0x6EC6:gé 0x6EC7:diān,tián,zhēn 0x6EC8:hào,xuè 0x6EC9:huàng 0x6ECA:xì,xiē,qì 0x6ECB:zī,cí,xuán 0x6ECC:dí 0x6ECD:zhì 0x6ECE:xíng,yīng,yíng 0x6ECF:fǔ 0x6ED0:jié 0x6ED1:huá,gǔ 0x6ED2:gē 0x6ED3:zǐ 0x6ED4:tāo 0x6ED5:téng 0x6ED6:suī 0x6ED7:bì 0x6ED8:jiào 0x6ED9:huì 0x6EDA:gǔn 0x6EDB:yín 0x6EDC:gāo 0x6EDD:lóng 0x6EDE:zhì 0x6EDF:yàn 0x6EE0:shè 0x6EE1:mǎn 0x6EE2:yíng 0x6EE3:chún 0x6EE4:lǜ 0x6EE5:làn 0x6EE6:luán 0x6EE7:yáo 0x6EE8:bīn 0x6EE9:tān 0x6EEA:yù 0x6EEB:xiǔ 0x6EEC:hù 0x6EED:bì 0x6EEE:biāo 0x6EEF:zhì,chì 0x6EF0:jiàng 0x6EF1:kòu 0x6EF2:shèn,sēn,qīn,lín 0x6EF3:shāng 0x6EF4:dī 0x6EF5:mì 0x6EF6:áo 0x6EF7:lǔ 0x6EF8:hǔ,xǔ 0x6EF9:hū,hǔ 0x6EFA:yōu 0x6EFB:chǎn 0x6EFC:fàn 0x6EFD:yōng 0x6EFE:gǔn 0x6EFF:mǎn,mèn 0x6F00:qǐng,qīng 0x6F01:yú 0x6F02:piào,piāo,piǎo,biāo 0x6F03:jì 0x6F04:yá 0x6F05:cháo 0x6F06:qī,qiè 0x6F07:xǐ 0x6F08:jì 0x6F09:lù 0x6F0A:lóu,lǚ,lǒu 0x6F0B:lóng 0x6F0C:jǐn 0x6F0D:guó 0x6F0E:cóng,sǒng 0x6F0F:lòu,lóu 0x6F10:zhí 0x6F11:gài 0x6F12:qiáng 0x6F13:lí 0x6F14:yǎn,yàn 0x6F15:cáo,cào 0x6F16:jiào 0x6F17:cōng 0x6F18:chún 0x6F19:tuán,zhuān 0x6F1A:ōu,òu 0x6F1B:téng 0x6F1C:yě 0x6F1D:xí 0x6F1E:mì 0x6F1F:táng 0x6F20:mò 0x6F21:shāng,tàng 0x6F22:hàn,tān 0x6F23:lián,lán 0x6F24:lǎn 0x6F25:wā 0x6F26:chí,tāi 0x6F27:gān 0x6F28:féng,péng,běng 0x6F29:xuán 0x6F2A:yī 0x6F2B:màn 0x6F2C:zì,sè,qì 0x6F2D:mǎng 0x6F2E:kāng 0x6F2F:luò,tà,lěi 0x6F30:pēng 0x6F31:shù 0x6F32:zhǎng,zhàng,zhāng 0x6F33:zhāng 0x6F34:zhuàng,chuáng,chóng 0x6F35:xù 0x6F36:huàn 0x6F37:huǒ,kuò,huò 0x6F38:jiàn,jiān,qián,chán 0x6F39:yān 0x6F3A:shuǎng,chuǎng 0x6F3B:liáo,xiào,liú 0x6F3C:cuǐ,cuī 0x6F3D:tí 0x6F3E:yàng 0x6F3F:jiāng,jiàng 0x6F40:cóng 0x6F41:yǐng 0x6F42:hóng 0x6F43:xiǔ 0x6F44:shù 0x6F45:guàn 0x6F46:yíng 0x6F47:xiāo 0x6F48:zong 0x6F49:kūn 0x6F4A:xù 0x6F4B:liàn 0x6F4C:zhì 0x6F4D:wéi 0x6F4E:pì,piē,piào 0x6F4F:yù,jué,shù 0x6F50:jiào,jiǎo,qiáo 0x6F51:pō,bō 0x6F52:dàng,xiàng,yǎng 0x6F53:huì 0x6F54:jié 0x6F55:wǔ 0x6F56:pá 0x6F57:jí 0x6F58:pān,pàn,bō,pán,fān 0x6F59:wéi,guī 0x6F5A:sù,xiāo,sōu 0x6F5B:qián 0x6F5C:qián 0x6F5D:xī,yà 0x6F5E:lù 0x6F5F:xì 0x6F60:xùn,sùn 0x6F61:dùn 0x6F62:huáng,huàng,guāng 0x6F63:mǐn 0x6F64:rùn 0x6F65:sù 0x6F66:lǎo,lào,láo,liáo,liǎo 0x6F67:zhēn 0x6F68:cóng,zōng 0x6F69:yì 0x6F6A:zhè,zhì 0x6F6B:wān 0x6F6C:shàn,tān 0x6F6D:tán,xún,yǐn,dàn 0x6F6E:cháo 0x6F6F:xún,yín 0x6F70:kuì,xiè 0x6F71:yē 0x6F72:shào 0x6F73:tú,zhā 0x6F74:zhū 0x6F75:sǎ,sàn 0x6F76:hēi 0x6F77:bì 0x6F78:shān 0x6F79:chán 0x6F7A:chán 0x6F7B:shǔ 0x6F7C:tóng,chōng,zhōng 0x6F7D:pū,pǔ 0x6F7E:lín 0x6F7F:wéi 0x6F80:sè 0x6F81:sè 0x6F82:chéng 0x6F83:jiǒng 0x6F84:chéng,dèng 0x6F85:huà 0x6F86:jiāo,ào,nào 0x6F87:lào,láo 0x6F88:chè 0x6F89:gǎn,hàn 0x6F8A:cūn,cún 0x6F8B:hòng 0x6F8C:sī 0x6F8D:shù,zhù 0x6F8E:pēng,péng 0x6F8F:hán 0x6F90:yún 0x6F91:liù 0x6F92:hòng 0x6F93:fú 0x6F94:hào 0x6F95:hé 0x6F96:xián 0x6F97:jiàn 0x6F98:shān 0x6F99:xì 0x6F9A:yu 0x6F9B:lǔ 0x6F9C:lán 0x6F9D:nìng 0x6F9E:yú 0x6F9F:lǐn 0x6FA0:miǎn,shéng 0x6FA1:zǎo,cāo 0x6FA2:dāng 0x6FA3:huàn,hàn 0x6FA4:zé,shì,yì,duó 0x6FA5:xiè 0x6FA6:yù 0x6FA7:lǐ 0x6FA8:shì,cuó 0x6FA9:xué,xiào 0x6FAA:líng 0x6FAB:wàn,màn,ǒu 0x6FAC:zī,cí 0x6FAD:yōng,yǒng 0x6FAE:huì,kuài,huá 0x6FAF:càn 0x6FB0:liàn 0x6FB1:diàn 0x6FB2:yè 0x6FB3:ào,yù 0x6FB4:huán,xuàn 0x6FB5:zhēn 0x6FB6:chán,dàn,zhān 0x6FB7:màn 0x6FB8:dǎn 0x6FB9:dàn,dān,shàn,tán 0x6FBA:yì 0x6FBB:suì 0x6FBC:pì 0x6FBD:jù 0x6FBE:tà 0x6FBF:qín 0x6FC0:jī,jiào,jiāo 0x6FC1:zhuó 0x6FC2:lián,xiǎn 0x6FC3:nóng 0x6FC4:guō,wō 0x6FC5:jìn 0x6FC6:fén,pēn 0x6FC7:sè 0x6FC8:jí,shà 0x6FC9:suī 0x6FCA:huì,wèi,huò 0x6FCB:chǔ 0x6FCC:tà 0x6FCD:sōng 0x6FCE:dǐng,tìng 0x6FCF:sè 0x6FD0:zhǔ 0x6FD1:lài 0x6FD2:bīn 0x6FD3:lián 0x6FD4:mǐ,mí,nǐ 0x6FD5:shī,tà,xí 0x6FD6:shù 0x6FD7:mì 0x6FD8:nìng,níng,nì 0x6FD9:yíng 0x6FDA:yíng 0x6FDB:méng 0x6FDC:jìn,jīn 0x6FDD:qí 0x6FDE:bì,pì 0x6FDF:jì,jǐ,qí 0x6FE0:háo 0x6FE1:rú,ruǎn,ér,nuán,nuò 0x6FE2:cuì,zuǐ 0x6FE3:wò 0x6FE4:tāo,cháo,shòu,dào 0x6FE5:yǐn 0x6FE6:yǐn 0x6FE7:duì 0x6FE8:cí 0x6FE9:huò,hù 0x6FEA:qìng 0x6FEB:làn,jiàn,lǎn,lán 0x6FEC:jùn,xùn 0x6FED:ǎi,kài,kè 0x6FEE:pú 0x6FEF:zhuó,shuò,zhào 0x6FF0:wéi 0x6FF1:bīn 0x6FF2:gǔ 0x6FF3:qián 0x6FF4:yíng 0x6FF5:bīn 0x6FF6:kuò 0x6FF7:fèi 0x6FF8:cāng 0x6FF9:me 0x6FFA:jiàn,jiān,zàn 0x6FFB:wěi 0x6FFC:luò,pō,lì 0x6FFD:zàn 0x6FFE:lǜ 0x6FFF:lì 0x7000:yōu 0x7001:yàng,yǎng 0x7002:lǔ 0x7003:sì 0x7004:zhì 0x7005:yíng,yìng,jiōng 0x7006:dú,dòu 0x7007:wǎng,wāng 0x7008:huī 0x7009:xiè 0x700A:pán 0x700B:shěn,chèn,pán 0x700C:biāo 0x700D:chán 0x700E:mò,miè 0x700F:liú,liū 0x7010:jiān 0x7011:pù,bào,bó 0x7012:sè 0x7013:chéng 0x7014:gǔ 0x7015:bīn 0x7016:huò 0x7017:xiàn 0x7018:lú 0x7019:qìn 0x701A:hàn 0x701B:yíng 0x701C:róng 0x701D:lì 0x701E:jìng 0x701F:xiāo 0x7020:yíng 0x7021:suǐ 0x7022:wěi,duì 0x7023:xiè 0x7024:huái,wāi 0x7025:xuè 0x7026:zhū 0x7027:lóng,shuāng 0x7028:lài 0x7029:duì 0x702A:fán 0x702B:hú 0x702C:lài 0x702D:shū 0x702E:ling 0x702F:yíng 0x7030:mí,mǐ,nǐ 0x7031:jì 0x7032:liàn 0x7033:jiàn,zùn 0x7034:yíng,yǐng,yìng 0x7035:fèn 0x7036:lín 0x7037:yì 0x7038:jiān 0x7039:yuè,yào 0x703A:chán 0x703B:dài 0x703C:ráng,nǎng,ràng 0x703D:jiǎn 0x703E:lán 0x703F:fán 0x7040:shuàng 0x7041:yuān 0x7042:zhuó,zé,jiào 0x7043:fēng 0x7044:shè,nì 0x7045:lěi 0x7046:lán 0x7047:cóng 0x7048:qú 0x7049:yōng 0x704A:qián 0x704B:fǎ 0x704C:guàn,huàn 0x704D:jué 0x704E:yàn 0x704F:hào 0x7050:yíng 0x7051:sǎ,xiǎn,xǐ,lí,shī 0x7052:zàn,cuán,qián,zā 0x7053:luán,luàn 0x7054:yàn 0x7055:lí 0x7056:mǐ 0x7057:shàn 0x7058:tān,hàn,nàn 0x7059:dǎng 0x705A:jiǎo 0x705B:chǎn 0x705C:yíng 0x705D:hào 0x705E:bà 0x705F:zhú 0x7060:lǎn,làn 0x7061:lán 0x7062:nǎng 0x7063:wān 0x7064:luán 0x7065:xún,quán,quàn 0x7066:xiǎn 0x7067:yàn 0x7068:gàn 0x7069:yàn 0x706A:yù 0x706B:huǒ,huō 0x706C:biāo,huǒ 0x706D:miè 0x706E:guāng 0x706F:dēng,dīng 0x7070:huī 0x7071:xiāo 0x7072:xiāo 0x7073:huī 0x7074:hōng 0x7075:líng 0x7076:zào 0x7077:zhuàn 0x7078:jiǔ 0x7079:zhà,yù 0x707A:xiè 0x707B:chì 0x707C:zhuó 0x707D:zāi 0x707E:zāi 0x707F:càn 0x7080:yáng 0x7081:qì 0x7082:zhōng 0x7083:fén,bèn 0x7084:niǔ 0x7085:jiǒng,guì 0x7086:wén 0x7087:pū 0x7088:yì 0x7089:lú 0x708A:chuī 0x708B:pī 0x708C:kài 0x708D:pàn 0x708E:yán,yàn,tán 0x708F:kài,yán 0x7090:pàng,fēng 0x7091:mù 0x7092:chǎo 0x7093:liào 0x7094:guì,xuè,quē 0x7095:kàng,hāng 0x7096:dùn,tún 0x7097:guāng 0x7098:xīn 0x7099:zhì 0x709A:guāng 0x709B:guāng 0x709C:wěi 0x709D:qiàng 0x709E:bian 0x709F:dá 0x70A0:xiá 0x70A1:zhēng 0x70A2:zhú 0x70A3:kě 0x70A4:zhào,zhāo,zhǎo 0x70A5:fú 0x70A6:bá 0x70A7:xiè 0x70A8:xiè 0x70A9:lìng 0x70AA:zhuō,chù 0x70AB:xuàn 0x70AC:jù 0x70AD:tàn 0x70AE:pào,páo,bāo 0x70AF:jiǒng 0x70B0:páo,fǒu 0x70B1:tái 0x70B2:tái 0x70B3:bǐng 0x70B4:yǎng 0x70B5:tōng 0x70B6:shǎn 0x70B7:zhù 0x70B8:zhà,zhá 0x70B9:diǎn 0x70BA:wèi,wéi 0x70BB:shí 0x70BC:liàn 0x70BD:chì 0x70BE:huǎng 0x70BF:zhōu 0x70C0:hū 0x70C1:shuò 0x70C2:làn 0x70C3:tīng 0x70C4:jiǎo,yào 0x70C5:xù 0x70C6:héng 0x70C7:quǎn 0x70C8:liè 0x70C9:huàn 0x70CA:yáng,yàng 0x70CB:xiū,xiāo 0x70CC:xiū 0x70CD:xiǎn 0x70CE:yín 0x70CF:wū,yā,wù 0x70D0:zhōu 0x70D1:yáo 0x70D2:shì 0x70D3:wēi 0x70D4:tóng,dòng 0x70D5:miè 0x70D6:zāi 0x70D7:kài 0x70D8:hōng 0x70D9:lào,luò 0x70DA:xiá 0x70DB:zhú,chóng 0x70DC:xuǎn,xuān,huǐ 0x70DD:zhēng 0x70DE:pò 0x70DF:yān,yīn 0x70E0:huí,huǐ,ǎi 0x70E1:guāng 0x70E2:chè 0x70E3:huī 0x70E4:kǎo 0x70E5:jù 0x70E6:fán 0x70E7:shāo 0x70E8:yè 0x70E9:huì 0x70EB:tàng 0x70EC:jìn 0x70ED:rè 0x70EE:liè 0x70EF:xī 0x70F0:fú,fū 0x70F1:jiǒng 0x70F2:xiè,chè 0x70F3:pǔ 0x70F4:tīng,jǐng 0x70F5:zhuó 0x70F6:tǐng 0x70F7:wán 0x70F8:hǎi 0x70F9:pēng 0x70FA:lǎng 0x70FB:yàn,shān 0x70FC:xù 0x70FD:fēng 0x70FE:chì 0x70FF:róng 0x7100:hú 0x7101:xī 0x7102:shū 0x7103:hè,huò 0x7104:xūn,hūn 0x7105:kù,kào 0x7106:juān,yè,yuè,yuān 0x7107:xiāo 0x7108:xī 0x7109:yān,yí 0x710A:hàn 0x710B:zhuàng 0x710C:jùn,qū 0x710D:dì 0x710E:xiè 0x710F:jí,qì 0x7110:wù 0x7111:yān 0x7112:lǚ 0x7113:hán 0x7114:yàn 0x7115:huàn 0x7116:mèn 0x7117:jú 0x7118:dào,tāo 0x7119:bèi 0x711A:fén,fèn 0x711B:lìn 0x711C:kūn 0x711D:hùn 0x711E:tūn,tuī,jùn 0x711F:xī 0x7120:cuì 0x7121:wú,mó 0x7122:hōng 0x7123:chǎo,jù 0x7124:fǔ 0x7125:wò,ài 0x7126:jiāo,qiáo 0x7127:cōng 0x7128:fèng 0x7129:píng 0x712A:qióng 0x712B:ruò,rè 0x712C:xī,yì 0x712D:qióng 0x712E:xìn 0x712F:chāo,zhuō,zhuó,chuò 0x7130:yàn 0x7131:yàn,yì 0x7132:yì 0x7133:jué 0x7134:yù 0x7135:gàng 0x7136:rán 0x7137:pí 0x7138:xiòng,yīng,gǔ 0x7139:gàng 0x713A:shēng 0x713B:chàng,guā 0x713C:shāo 0x713D:xiǒng 0x713E:niǎn 0x713F:gēng 0x7140:wei 0x7141:chén 0x7142:hè 0x7143:kuǐ 0x7144:zhǒng 0x7145:duàn 0x7146:xiā,xià 0x7147:huī,hún,yùn,xūn,xuàn 0x7148:fèng 0x7149:liàn,làn 0x714A:xuān 0x714B:xīng 0x714C:huáng 0x714D:jiǎo 0x714E:jiān,jiàn,jiǎn 0x714F:bì 0x7150:yīng 0x7151:zhǔ 0x7152:wěi,huī 0x7153:tuān 0x7154:shǎn,qián,shān 0x7155:xī 0x7156:nuǎn,xuān 0x7157:nuǎn 0x7158:chán 0x7159:yān 0x715A:jiǒng 0x715B:jiǒng 0x715C:yù 0x715D:mèi 0x715E:shā,shà 0x715F:wèi 0x7160:zhá,yè 0x7161:jìn 0x7162:qióng 0x7163:róu,rǒu 0x7164:méi 0x7165:huàn 0x7166:xù,xiū 0x7167:zhào 0x7168:wēi,yù 0x7169:fán 0x716A:qiú 0x716B:suì 0x716C:yáng,yàng 0x716D:liè 0x716E:zhǔ 0x716F:jiē 0x7170:zào 0x7171:guā 0x7172:bāo 0x7173:hú 0x7174:yūn,yùn,wěn 0x7175:nǎn 0x7176:shì 0x7177:liang 0x7178:biān 0x7179:gòu 0x717A:tuì 0x717B:táng 0x717C:chǎo 0x717D:shān 0x717E:ēn,yūn 0x717F:bó 0x7180:huǎng,yè 0x7181:xié 0x7182:xì 0x7183:wù 0x7184:xī 0x7185:yùn 0x7186:hé 0x7187:hè,xiāo,kǎo,kào 0x7188:xī 0x7189:yún 0x718A:xióng 0x718B:nái 0x718C:shǎn 0x718D:qióng 0x718E:yào 0x718F:xūn,xùn 0x7190:mì 0x7191:lián,qiān 0x7192:yíng,xíng,jiǒng 0x7193:wǔ 0x7194:róng 0x7195:gōng 0x7196:yàn 0x7197:qiàng 0x7198:liū 0x7199:xī,yí 0x719A:bì 0x719B:biāo 0x719C:cōng,zǒng 0x719D:lù,āo 0x719E:jiān 0x719F:shú,shóu 0x71A0:yì 0x71A1:lóu 0x71A2:péng,bèng,fēng 0x71A3:suī,cuǐ 0x71A4:yì 0x71A5:tēng,tōng 0x71A6:jué 0x71A7:zōng 0x71A8:yùn,yù,wèi 0x71A9:hù 0x71AA:yí 0x71AB:zhì 0x71AC:áo,āo 0x71AD:wèi 0x71AE:liǔ 0x71AF:hàn,rǎn 0x71B0:ōu,òu 0x71B1:rè 0x71B2:jiǒng 0x71B3:màn 0x71B4:kūn 0x71B5:shāng 0x71B6:cuàn 0x71B7:zēng 0x71B8:jiān 0x71B9:xī 0x71BA:xī 0x71BB:xī 0x71BC:yì 0x71BD:xiào 0x71BE:chì 0x71BF:huáng,huǎng 0x71C0:chǎn,dǎn,chàn 0x71C1:yè 0x71C2:tán,xún,qián 0x71C3:rán 0x71C4:yàn 0x71C5:xún 0x71C6:qiāo,xiāo 0x71C7:jùn 0x71C8:dēng 0x71C9:dùn,tún,dūn 0x71CA:shēn 0x71CB:jiāo,qiáo,jué,zhuó 0x71CC:fén,bèn 0x71CD:sī,xī 0x71CE:liáo,liǎo,liào 0x71CF:yù 0x71D0:lín 0x71D1:tóng 0x71D2:shāo,shào 0x71D3:fén 0x71D4:fán,fén 0x71D5:yàn,yān 0x71D6:xún,qián 0x71D7:làn 0x71D8:měi 0x71D9:tàng,dàng 0x71DA:yì 0x71DB:jiǒng 0x71DC:mèn 0x71DD:jing 0x71DE:jiǎo 0x71DF:yíng,cuō 0x71E0:yù,ào 0x71E1:yì 0x71E2:xué 0x71E3:lán 0x71E4:tài,liè 0x71E5:zào,sào 0x71E6:càn 0x71E7:suì 0x71E8:xī 0x71E9:què 0x71EA:zǒng 0x71EB:lián 0x71EC:huǐ 0x71ED:zhú,kuò 0x71EE:xiè 0x71EF:líng 0x71F0:wēi 0x71F1:yì 0x71F2:xié 0x71F3:zhào 0x71F4:huì 0x71F5:dá 0x71F6:nóng 0x71F7:lán 0x71F8:rú,ruǎn 0x71F9:xiǎn,bìng 0x71FA:hè 0x71FB:xūn 0x71FC:jìn 0x71FD:chóu 0x71FE:dào,tāo 0x71FF:yào,shuò,shào 0x7200:hè 0x7201:làn 0x7202:biāo 0x7203:róng 0x7204:lì,liè 0x7205:mò 0x7206:bào,bó 0x7207:ruò 0x7208:lǜ 0x7209:là,liè 0x720A:āo 0x720B:xūn 0x720C:kuàng,huǎng,kuǎng 0x720D:shuò,luò,yuè 0x720E:liáo 0x720F:lì 0x7210:lú 0x7211:jué 0x7212:liǎo 0x7213:yàn,xún 0x7214:xī 0x7215:xiè 0x7216:lóng 0x7217:yè 0x7218:cān 0x7219:rǎng 0x721A:yuè 0x721B:làn 0x721C:cóng 0x721D:jué,jiào 0x721E:chóng,tóng 0x721F:guàn 0x7220:ju 0x7221:chè 0x7222:mí 0x7223:tǎng 0x7224:làn 0x7225:zhú 0x7226:lǎn 0x7227:líng 0x7228:cuàn 0x7229:yù 0x722A:zhǎo,zhuǎ 0x722B:zhǎo 0x722C:pá 0x722D:zhēng,zhèng 0x722E:páo 0x722F:chēng,chèng 0x7230:yuán 0x7231:ài 0x7232:wèi,wéi 0x7233:han 0x7234:jué 0x7235:jué 0x7236:fù,fǔ 0x7237:yé 0x7238:bà 0x7239:diē 0x723A:yé 0x723B:yáo,xiào 0x723C:zǔ 0x723D:shuǎng,shuāng 0x723E:ěr,mǐ,nǐ 0x723F:pán,qiáng 0x7240:chuáng 0x7241:kē 0x7242:zāng 0x7243:dié 0x7244:qiāng 0x7245:yōng 0x7246:qiáng 0x7247:piàn,piān,pàn 0x7248:bǎn 0x7249:pàn 0x724A:cháo 0x724B:jiān 0x724C:pái 0x724D:dú 0x724E:chuāng 0x724F:yú 0x7250:zhá 0x7251:biān,miàn 0x7252:dié 0x7253:bǎng,pāng 0x7254:bó 0x7255:chuāng 0x7256:yǒu 0x7257:yǒu 0x7258:dú 0x7259:yá,yà 0x725A:chēng,chèng 0x725B:niú 0x725C:niú 0x725D:pìn 0x725E:jiū,lè 0x725F:móu,mào,mù 0x7260:tā,tuó 0x7261:mǔ 0x7262:láo,lào,lóu 0x7263:rèn 0x7264:māng 0x7265:fāng 0x7266:máo 0x7267:mù 0x7268:gāng 0x7269:wù 0x726A:yàn 0x726B:gē,qiú,zāng 0x726C:bèi 0x726D:sì 0x726E:jiàn 0x726F:gǔ 0x7270:yòu,chōu 0x7271:gē 0x7272:shēng 0x7273:mǔ 0x7274:dǐ,dī,zhāi 0x7275:qiān 0x7276:quàn 0x7277:quán 0x7278:zì 0x7279:tè 0x727A:xī 0x727B:máng 0x727C:kēng 0x727D:qiān,qiàn 0x727E:wǔ,wú 0x727F:gù 0x7280:xī 0x7281:lí 0x7282:lí 0x7283:pǒu 0x7284:jī,yī 0x7285:gāng 0x7286:zhí,tè 0x7287:bēn 0x7288:quán 0x7289:chún 0x728A:dú 0x728B:jù 0x728C:jiā 0x728D:jiān,qián,jiǎn 0x728E:fēng 0x728F:piān 0x7290:kē 0x7291:jú 0x7292:kào 0x7293:chú 0x7294:xì 0x7295:bèi 0x7296:luò 0x7297:jiè 0x7298:má 0x7299:sān 0x729A:wèi 0x729B:máo,lí 0x729C:dūn 0x729D:tóng 0x729E:qiáo 0x729F:jiàng 0x72A0:xī 0x72A1:lì 0x72A2:dú 0x72A3:liè 0x72A4:pái 0x72A5:piāo,pào 0x72A6:bó 0x72A7:xī,suō 0x72A8:chōu 0x72A9:wéi 0x72AA:kuí,ráo 0x72AB:chōu 0x72AC:quǎn 0x72AD:quǎn 0x72AE:bá 0x72AF:fàn 0x72B0:qiú 0x72B1:jǐ 0x72B2:chái 0x72B3:zhuó 0x72B4:àn,án,jiàn,hān 0x72B5:gē,hé 0x72B6:zhuàng 0x72B7:guǎng 0x72B8:mà 0x72B9:yóu,yòu 0x72BA:kàng,gǎng 0x72BB:bó,pèi,fèi 0x72BC:hǒu 0x72BD:yà 0x72BE:yín 0x72BF:huān,fān 0x72C0:zhuàng 0x72C1:yǔn 0x72C2:kuáng,jué 0x72C3:niǔ,nǜ 0x72C4:dí,tì 0x72C5:kuáng 0x72C6:zhòng 0x72C7:mù 0x72C8:bèi 0x72C9:pī 0x72CA:jú 0x72CB:yí,quán,chí 0x72CC:shēng,xīng 0x72CD:páo 0x72CE:xiá 0x72CF:tuó,yí 0x72D0:hú 0x72D1:líng 0x72D2:fèi 0x72D3:pí,pī 0x72D4:nǐ 0x72D5:yǎo 0x72D6:yòu 0x72D7:gǒu 0x72D8:xuè 0x72D9:jū 0x72DA:dàn 0x72DB:bó 0x72DC:kǔ 0x72DD:xiǎn 0x72DE:níng 0x72DF:huán,xuān,héng 0x72E0:hěn,yán,kěn,hǎng 0x72E1:jiǎo,xiào 0x72E2:hé,mò 0x72E3:zhào 0x72E4:jí,jié,kuài 0x72E5:xùn 0x72E6:shān 0x72E7:tà,shì 0x72E8:róng 0x72E9:shòu 0x72EA:tóng,dòng 0x72EB:lǎo 0x72EC:dú 0x72ED:xiá 0x72EE:shī 0x72EF:kuài 0x72F0:zhēng 0x72F1:yù 0x72F2:sūn 0x72F3:yú 0x72F4:bì 0x72F5:máng,zhuó 0x72F6:xī,shǐ 0x72F7:juàn 0x72F8:lí 0x72F9:xiá 0x72FA:yín 0x72FB:suān,xùn,jùn 0x72FC:láng,lǎng,làng,hǎng 0x72FD:bèi 0x72FE:zhì 0x72FF:yán 0x7300:shā 0x7301:lì 0x7302:hàn 0x7303:xiǎn 0x7304:jīng 0x7305:pái 0x7306:fēi 0x7307:xiāo 0x7308:bài,pí 0x7309:qí 0x730A:ní 0x730B:biāo 0x730C:yìn 0x730D:lái 0x730E:liè,xī,què 0x730F:jiān 0x7310:qiāng 0x7311:kūn 0x7312:yàn 0x7313:guǒ,luǒ 0x7314:zòng 0x7315:mí 0x7316:chāng 0x7317:yī,yǐ,jì,ē,wēi 0x7318:zhì 0x7319:zhēng 0x731A:yá,wèi 0x731B:měng 0x731C:cāi 0x731D:cù 0x731E:shē 0x731F:liè 0x7320:diǎn 0x7321:luó 0x7322:hú 0x7323:zōng 0x7324:guì 0x7325:wěi,wèi 0x7326:fēng 0x7327:wō 0x7328:yuán 0x7329:xīng 0x732A:zhū 0x732B:māo,miáo,máo 0x732C:wèi 0x732D:chuān,chuàn,shān 0x732E:xiàn 0x732F:tuān 0x7330:yà,jiá,qiè 0x7331:náo 0x7332:xiē,hè,gé,hài 0x7333:jiā 0x7334:hóu 0x7335:biān,piàn 0x7336:yóu,yáo 0x7337:yóu 0x7338:méi 0x7339:chá 0x733A:yáo 0x733B:sūn 0x733C:bó,pò 0x733D:míng 0x733E:huá 0x733F:yuán 0x7340:sōu 0x7341:mà,mǎ 0x7342:yuán 0x7343:dāi,ái 0x7344:yù 0x7345:shī 0x7346:háo 0x7347:qiāng 0x7348:yì 0x7349:zhēn 0x734A:cāng 0x734B:háo,gāo 0x734C:màn 0x734D:jìng 0x734E:jiǎng 0x734F:mò,mú 0x7350:zhāng 0x7351:chán 0x7352:áo 0x7353:áo 0x7354:háo 0x7355:cuī 0x7356:bèn,fèn,fén 0x7357:jué 0x7358:bì 0x7359:bì 0x735A:huáng 0x735B:pú 0x735C:lín,lìn 0x735D:xù,yù 0x735E:tóng,zhuàng 0x735F:yào,xiāo 0x7360:liáo,lǎo 0x7361:shuò 0x7362:xiāo 0x7363:shòu 0x7364:dūn 0x7365:jiào 0x7366:gé,xiē,liè 0x7367:juàn 0x7368:dú 0x7369:huì 0x736A:kuài,huá 0x736B:xiǎn 0x736C:xiè,hǎ,jiě 0x736D:tǎ 0x736E:xiǎn,mí 0x736F:xūn 0x7370:níng 0x7371:biān 0x7372:huò 0x7373:nòu,rú 0x7374:měng,méng 0x7375:liè 0x7376:nǎo,yōu,náo 0x7377:guǎng,jǐng 0x7378:shòu 0x7379:lú 0x737A:tǎ 0x737B:xiàn,suō,xī 0x737C:mí 0x737D:ráng 0x737E:huān,quán 0x737F:nǎo,náo 0x7380:luó,ě 0x7381:xiǎn 0x7382:qí 0x7383:jué 0x7384:xuán,xuàn 0x7385:miào,yāo 0x7386:zī,xuán 0x7387:lǜ,shuài,lüè 0x7388:lú 0x7389:yù 0x738A:sù 0x738B:wáng,wàng,yù 0x738C:qiú 0x738D:gǎ 0x738E:dīng 0x738F:lè 0x7390:bā 0x7391:jī 0x7392:hóng 0x7393:dì 0x7394:chuàn 0x7395:gān 0x7396:jiǔ 0x7397:yú 0x7398:qǐ 0x7399:yú 0x739A:chàng,yáng 0x739B:mǎ 0x739C:hóng 0x739D:wǔ 0x739E:fū 0x739F:wén,mín 0x73A0:jiè 0x73A1:yá,yà 0x73A2:bīn,fēn 0x73A3:biàn 0x73A4:bàng 0x73A5:yuè 0x73A6:jué 0x73A7:mén,yǔn 0x73A8:jué 0x73A9:wán 0x73AA:jiān,yín,qián,lín 0x73AB:méi 0x73AC:dǎn 0x73AD:pín 0x73AE:wěi 0x73AF:huán 0x73B0:xiàn 0x73B1:qiāng 0x73B2:líng 0x73B3:dài 0x73B4:yì 0x73B5:án,gān 0x73B6:píng 0x73B7:diàn,diān 0x73B8:fú 0x73B9:xuán,xuàn,xián 0x73BA:xǐ 0x73BB:bō 0x73BC:cǐ,cī,cuō 0x73BD:gǒu 0x73BE:jiǎ 0x73BF:sháo 0x73C0:pò 0x73C1:cí 0x73C2:kē 0x73C3:rǎn 0x73C4:shēng 0x73C5:shēn 0x73C6:yí,tāi 0x73C7:zǔ,jù 0x73C8:jiā 0x73C9:mín 0x73CA:shān 0x73CB:liǔ 0x73CC:bì 0x73CD:zhēn 0x73CE:zhēn 0x73CF:jué 0x73D0:fà 0x73D1:lóng 0x73D2:jīn 0x73D3:jiào 0x73D4:jiàn 0x73D5:lì 0x73D6:guāng 0x73D7:xiān 0x73D8:zhōu 0x73D9:gǒng 0x73DA:yān 0x73DB:xiù 0x73DC:yáng 0x73DD:xǔ 0x73DE:luò,lì 0x73DF:sù 0x73E0:zhū 0x73E1:qín 0x73E2:yín,kèn 0x73E3:xún 0x73E4:bǎo 0x73E5:ěr 0x73E6:xiàng 0x73E7:yáo 0x73E8:xiá 0x73E9:háng,héng 0x73EA:guī 0x73EB:chōng 0x73EC:xù 0x73ED:bān 0x73EE:pèi 0x73EF:lǎo 0x73F0:dāng 0x73F1:yīng 0x73F2:huī,hún 0x73F3:wén 0x73F4:é 0x73F5:chéng,tǐng 0x73F6:dì,tí 0x73F7:wǔ,wù 0x73F8:wú 0x73F9:chéng 0x73FA:jùn 0x73FB:méi 0x73FC:bèi 0x73FD:tǐng 0x73FE:xiàn 0x73FF:chù 0x7400:hán 0x7401:xuán,qióng 0x7402:yán 0x7403:qiú 0x7404:xuàn 0x7405:láng,làng 0x7406:lǐ 0x7407:xiù 0x7408:fú,fū 0x7409:liú 0x740A:yá 0x740B:xī 0x740C:líng 0x740D:lí 0x740E:jìn 0x740F:liǎn 0x7410:suǒ 0x7411:suǒ 0x7412:fēng 0x7413:wán 0x7414:diàn 0x7415:pín,bǐng 0x7416:zhǎn 0x7417:sè,cuì 0x7418:mín 0x7419:yù 0x741A:jū 0x741B:chēn 0x741C:lái 0x741D:mín 0x741E:shèng,wàng 0x741F:wéi,yù 0x7420:tiǎn,tiàn 0x7421:chù 0x7422:zuó,zhuó 0x7423:běng,pěi 0x7424:chēng 0x7425:hǔ 0x7426:qí 0x7427:è 0x7428:kūn 0x7429:chāng 0x742A:qí 0x742B:běng 0x742C:wǎn 0x742D:lù 0x742E:cóng 0x742F:guǎn,gùn,guān,guàn 0x7430:yǎn 0x7431:diāo 0x7432:bèi 0x7433:lín 0x7434:qín 0x7435:pí 0x7436:pá 0x7437:què 0x7438:zhuó 0x7439:qín 0x743A:fà 0x743B:jīn 0x743C:qióng 0x743D:dǔ 0x743E:jiè 0x743F:hún,huī 0x7440:yǔ 0x7441:mào 0x7442:méi 0x7443:chūn 0x7444:xuān 0x7445:tí 0x7446:xīng 0x7447:dài 0x7448:róu 0x7449:mín 0x744A:jiān 0x744B:wěi 0x744C:ruǎn 0x744D:huàn 0x744E:xié 0x744F:chuān 0x7450:jiǎn 0x7451:zhuàn 0x7452:chàng,yáng,dàng 0x7453:liàn 0x7454:quán 0x7455:xiá 0x7456:duàn 0x7457:yuàn,huán 0x7458:yá 0x7459:nǎo 0x745A:hú 0x745B:yīng 0x745C:yú 0x745D:huáng 0x745E:ruì 0x745F:sè 0x7460:liú 0x7461:shī 0x7462:róng 0x7463:suǒ 0x7464:yáo 0x7465:wēn 0x7466:wǔ 0x7467:zhēn 0x7468:jìn 0x7469:yíng,yǐng 0x746A:mǎ 0x746B:tāo 0x746C:liú 0x746D:táng 0x746E:lì 0x746F:láng 0x7470:guī 0x7471:zhèn,tiàn 0x7472:qiāng,chēng,cāng 0x7473:cuō 0x7474:jué 0x7475:zhǎo 0x7476:yáo 0x7477:ài 0x7478:bīn 0x7479:shū,tū 0x747A:cháng 0x747B:kūn 0x747C:zhuān 0x747D:cōng 0x747E:jǐn,jìn 0x747F:yī 0x7480:cuǐ 0x7481:cōng 0x7482:qí 0x7483:lí 0x7484:jǐng 0x7485:suǒ,zǎo 0x7486:qiú 0x7487:xuán 0x7488:áo 0x7489:liǎn,lián 0x748A:mén 0x748B:zhāng 0x748C:yín 0x748D:yè 0x748E:yīng 0x748F:wèi,zhì 0x7490:lù 0x7491:wú 0x7492:dēng 0x7493:xiù 0x7494:zēng 0x7495:xún 0x7496:qú 0x7497:dàng 0x7498:lín 0x7499:liáo 0x749A:qióng,jué 0x749B:sù 0x749C:huáng 0x749D:guī 0x749E:pú 0x749F:jǐng 0x74A0:fán 0x74A1:jìn,jīn 0x74A2:liú 0x74A3:jī 0x74A4:huì 0x74A5:jǐng 0x74A6:ài 0x74A7:bì 0x74A8:càn 0x74A9:qú 0x74AA:zǎo 0x74AB:dāng 0x74AC:jiǎo 0x74AD:gùn 0x74AE:tǎn 0x74AF:huì,kuài 0x74B0:huán,huàn 0x74B1:sè 0x74B2:suì 0x74B3:tián 0x74B4:chǔ 0x74B5:yú 0x74B6:jìn 0x74B7:lú,fū 0x74B8:bīn,pián 0x74B9:shú 0x74BA:wèn 0x74BB:zuǐ 0x74BC:lán 0x74BD:xǐ 0x74BE:zī,jì 0x74BF:xuán 0x74C0:ruǎn 0x74C1:wò 0x74C2:gài 0x74C3:léi 0x74C4:dú 0x74C5:lì 0x74C6:zhì 0x74C7:róu 0x74C8:lí,li 0x74C9:zàn 0x74CA:qióng,xuán 0x74CB:tì 0x74CC:guī 0x74CD:suí 0x74CE:là 0x74CF:lóng 0x74D0:lú 0x74D1:lì 0x74D2:zàn 0x74D3:làn 0x74D4:yīng 0x74D5:mí,xǐ 0x74D6:xiāng 0x74D7:qióng,wěi,wèi 0x74D8:guàn 0x74D9:dào 0x74DA:zàn 0x74DB:huán,yè,yǎn 0x74DC:guā 0x74DD:bó 0x74DE:dié 0x74DF:bó,páo 0x74E0:hù,hú,huò,gū 0x74E1:zhí,hú 0x74E2:piáo 0x74E3:bàn 0x74E4:ráng 0x74E5:lì 0x74E6:wǎ,wà 0x74E8:xiáng,hóng 0x74E9:qiān,wǎ 0x74EA:bǎn 0x74EB:pén 0x74EC:fǎng 0x74ED:dǎn,dān 0x74EE:wèng 0x74EF:ōu 0x74F2:wa 0x74F3:hú 0x74F4:líng 0x74F5:yí 0x74F6:píng 0x74F7:cí 0x74F8:bǎi 0x74F9:juān,juàn 0x74FA:cháng 0x74FB:chī 0x74FD:dàng 0x74FE:měng 0x74FF:bù,pǒu 0x7500:zhuì 0x7501:píng 0x7502:biān 0x7503:zhòu 0x7504:zhēn,zhèn,juàn 0x7506:cí 0x7507:yīng 0x7508:qì 0x7509:xián 0x750A:lǒu 0x750B:dì 0x750C:ōu,ǒu 0x750D:méng 0x750E:zhuān,chuán 0x750F:bèng 0x7510:lìn 0x7511:zèng 0x7512:wǔ 0x7513:pì 0x7514:dān,dàn 0x7515:wèng 0x7516:yīng 0x7517:yǎn 0x7518:gān,hān 0x7519:dài 0x751A:shén,shèn 0x751B:tián 0x751C:tián 0x751D:hán 0x751E:cháng 0x751F:shēng 0x7520:qíng 0x7521:shēn 0x7522:chǎn 0x7523:chǎn 0x7524:ruí 0x7525:shēng 0x7526:sū 0x7527:shēn 0x7528:yòng 0x7529:shuǎi 0x752A:lù 0x752B:fǔ,fū,pǔ 0x752C:yǒng,dòng 0x752D:béng,qì 0x752E:fèng 0x752F:níng,nìng 0x7530:tián 0x7531:yóu,yāo 0x7532:jiǎ 0x7533:shēn 0x7534:zhá,yóu 0x7535:diàn 0x7536:fú 0x7537:nán 0x7538:diān,diàn,tián,shèng,yìng 0x7539:pīng 0x753A:tīng,tǐng,zhèng,tiǎn,dīng 0x753B:huà 0x753C:tǐng 0x753D:zhèn,quǎn,zhùn 0x753E:zāi,zī 0x753F:méng,máng 0x7540:bì 0x7541:bì 0x7542:liù 0x7543:xún 0x7544:liú 0x7545:chàng 0x7546:mǔ 0x7547:yún,tián 0x7548:fàn 0x7549:fú 0x754A:gēng 0x754B:tián 0x754C:jiè 0x754D:jiè 0x754E:quǎn 0x754F:wèi,wēi,wěi 0x7550:fú,bì 0x7551:tián 0x7552:mǔ 0x7553:duō 0x7554:pàn 0x7555:jiāng 0x7556:wā 0x7557:dá,fú 0x7558:nán 0x7559:liú,liù,liǔ 0x755A:běn 0x755B:zhěn 0x755C:chù,xù 0x755D:mǔ,mǒu 0x755E:mǔ 0x755F:cè,jì 0x7560:tián 0x7561:gāi 0x7562:bì 0x7563:dá 0x7564:zhì,chóu,shì 0x7565:lüè 0x7566:qí 0x7567:lüè 0x7568:pān,fān 0x7569:yī 0x756A:fān,fán,bō,pó,pān,pán,pàn,pí 0x756B:huà 0x756C:shē,yú 0x756D:yú 0x756E:mǔ 0x756F:jùn 0x7570:yì 0x7571:liú 0x7572:shē 0x7573:dié 0x7574:chóu 0x7575:huà 0x7576:dāng,dàng,dang 0x7577:zhuì 0x7578:jī,qí 0x7579:wǎn,yuǎn 0x757A:jiāng,jiàng 0x757B:chéng 0x757C:chàng 0x757D:tǔn,tuǎn 0x757E:léi 0x757F:jī 0x7580:chā 0x7581:liú 0x7582:dié 0x7583:tuǎn 0x7584:lìn,lín 0x7585:jiāng 0x7586:jiāng,jiàng 0x7587:chóu 0x7588:pì 0x7589:dié 0x758A:dié 0x758B:pǐ,shū,yǎ 0x758C:jié,qiè 0x758D:dàn 0x758E:shū 0x758F:shū 0x7590:zhì,dì 0x7591:yí,níng 0x7592:nè 0x7593:nǎi 0x7594:dīng,nè 0x7595:bǐ 0x7596:jiē 0x7597:liáo 0x7598:gāng,gōng 0x7599:gē,yì 0x759A:jiù 0x759B:zhǒu 0x759C:xià 0x759D:shàn 0x759E:xū 0x759F:nüè,yào 0x75A0:lì 0x75A1:yáng 0x75A2:chèn 0x75A3:yóu,yòu 0x75A4:bā 0x75A5:jiè 0x75A6:jué,xuè 0x75A7:qí 0x75A8:xiā,yá 0x75A9:cuì 0x75AA:bì 0x75AB:yì 0x75AC:lì 0x75AD:zòng 0x75AE:chuāng 0x75AF:fēng 0x75B0:zhù 0x75B1:pào 0x75B2:pí 0x75B3:gān 0x75B4:kē,ē,qià 0x75B5:cī,zī,zhài,jì 0x75B6:xuē 0x75B7:zhī 0x75B8:dǎn,da 0x75B9:zhěn,chèn 0x75BA:fá,biǎn 0x75BB:zhǐ 0x75BC:téng 0x75BD:jū,jǔ 0x75BE:jí 0x75BF:fèi 0x75C0:jū,gōu 0x75C1:shān 0x75C2:jiā 0x75C3:xuán 0x75C4:zhà 0x75C5:bìng 0x75C6:niè,nì,niǎn 0x75C7:zhèng,zhēng 0x75C8:yōng 0x75C9:jìng 0x75CA:quán 0x75CB:téng,chóng 0x75CC:tōng,tóng 0x75CD:yí 0x75CE:jiē 0x75CF:wěi,yòu,yù 0x75D0:huí 0x75D1:tān,shǐ 0x75D2:yǎng,yáng 0x75D3:chì 0x75D4:zhì 0x75D5:hén,gèn 0x75D6:yǎ 0x75D7:mèi 0x75D8:dòu 0x75D9:jìng 0x75DA:xiāo 0x75DB:tòng 0x75DC:tū 0x75DD:máng 0x75DE:pǐ 0x75DF:xiāo 0x75E0:suān 0x75E1:fū,pū,pù 0x75E2:lì 0x75E3:zhì 0x75E4:cuó 0x75E5:duó 0x75E6:wù,pī 0x75E7:shā 0x75E8:láo 0x75E9:shòu 0x75EA:huàn,tuǎn 0x75EB:xián 0x75EC:yì 0x75ED:bēng,péng,bìng 0x75EE:zhàng 0x75EF:guǎn 0x75F0:tán 0x75F1:fèi,féi,fěi 0x75F2:má 0x75F3:lín,lìn 0x75F4:chī 0x75F5:jì 0x75F6:tiǎn,diǎn 0x75F7:ān,yè,è 0x75F8:chì 0x75F9:bì 0x75FA:bì 0x75FB:mín 0x75FC:gù 0x75FD:duī 0x75FE:ē,kē 0x75FF:wěi 0x7600:yū 0x7601:cuì 0x7602:yǎ 0x7603:zhú 0x7604:cù 0x7605:dān,dàn 0x7606:shèn 0x7607:zhǒng 0x7608:chì,zhì 0x7609:yù 0x760A:hóu 0x760B:fēng 0x760C:là 0x760D:yáng,dàng 0x760E:chén 0x760F:tú 0x7610:yǔ,yù 0x7611:guō 0x7612:wén 0x7613:huàn 0x7614:kù 0x7615:jiǎ,xiā 0x7616:yīn,yìn 0x7617:yì 0x7618:lòu 0x7619:sào 0x761A:jué 0x761B:chì 0x761C:xī 0x761D:guān 0x761E:yì 0x761F:wēn,wò,yūn 0x7620:jí 0x7621:chuāng 0x7622:bān 0x7623:huì,lěi 0x7624:liú 0x7625:chài,cuó 0x7626:shòu 0x7627:nüè,yào 0x7628:diān,chēn 0x7629:da,dá 0x762A:biě,biē 0x762B:tān 0x762C:zhàng 0x762D:biāo 0x762E:shèn 0x762F:cù 0x7630:luǒ 0x7631:yì 0x7632:zòng 0x7633:chōu,lù 0x7634:zhàng 0x7635:zhài,jì 0x7636:sòu 0x7637:sè 0x7638:qué 0x7639:diào 0x763A:lòu 0x763B:lòu,lǘ 0x763C:mò 0x763D:qín 0x763E:yǐn 0x763F:yǐng 0x7640:huáng 0x7641:fú 0x7642:liáo,liào,shuò 0x7643:lóng 0x7644:qiáo 0x7645:liú 0x7646:láo,lào 0x7647:xián 0x7648:fèi 0x7649:dān,dàn,dǎn,tán 0x764A:yìn 0x764B:hè 0x764C:ái,yán 0x764D:bān 0x764E:xián 0x764F:guān 0x7650:guì,wēi 0x7651:nòng,nóng 0x7652:yù 0x7653:wéi 0x7654:yì 0x7655:yōng 0x7656:pǐ 0x7657:lěi 0x7658:lì,lài 0x7659:shǔ 0x765A:dàn 0x765B:lǐn,bǐng 0x765C:diàn 0x765D:lǐn 0x765E:lài 0x765F:biě,bié,biē 0x7660:jì 0x7661:chī 0x7662:yǎng 0x7663:xuǎn 0x7664:jiē 0x7665:zhēng 0x7666:me 0x7667:lì 0x7668:huò 0x7669:lài,là 0x766A:jī 0x766B:diān 0x766C:xuǎn 0x766D:yǐng 0x766E:yǐn 0x766F:qú 0x7670:yōng 0x7671:tān 0x7672:diān 0x7673:luǒ 0x7674:luán 0x7675:luán 0x7676:bō 0x7677:bō 0x7678:guǐ 0x7679:bá 0x767A:fā 0x767B:dēng,dé 0x767C:fā,bō 0x767D:bái,bó 0x767E:bǎi,bó,mò 0x767F:qié 0x7680:jí,xiāng,bī 0x7681:zào 0x7682:zào 0x7683:mào 0x7684:de,dì,dí 0x7685:pā,bà 0x7686:jiē 0x7687:huáng,wǎng 0x7688:guī 0x7689:cǐ 0x768A:líng 0x768B:gāo,háo,gū 0x768C:mò 0x768D:jí 0x768E:jiǎo 0x768F:pěng 0x7690:gāo 0x7691:ái 0x7692:é 0x7693:hào,huī 0x7694:hàn 0x7695:bì 0x7696:wǎn,huàn 0x7697:chóu 0x7698:qiàn 0x7699:xī 0x769A:ái 0x769B:xiǎo,jiǎo,pò 0x769C:hào 0x769D:huàng 0x769E:hào 0x769F:zé 0x76A0:cuǐ 0x76A1:hào 0x76A2:xiǎo 0x76A3:yè 0x76A4:pó,pán 0x76A5:hào 0x76A6:jiǎo 0x76A7:ài 0x76A8:xīng 0x76A9:huàng 0x76AA:lì,luò,bō 0x76AB:piǎo 0x76AC:hé 0x76AD:jiào 0x76AE:pí 0x76AF:gǎn 0x76B0:pào 0x76B1:zhòu 0x76B2:jūn 0x76B3:qiú 0x76B4:cūn 0x76B5:què 0x76B6:zhā 0x76B7:gǔ 0x76B8:jūn 0x76B9:jūn 0x76BA:zhòu,zhōu 0x76BB:zhā,cǔ 0x76BC:gǔ 0x76BD:zhāo,zhǎn,dǎn 0x76BE:dú 0x76BF:mǐn,mǐng 0x76C0:qǐ 0x76C1:yíng 0x76C2:yú 0x76C3:bēi 0x76C4:zhāo 0x76C5:zhōng,chōng 0x76C6:pén 0x76C7:hé 0x76C8:yíng 0x76C9:hé 0x76CA:yì 0x76CB:bō 0x76CC:wǎn 0x76CD:hé,kě 0x76CE:àng 0x76CF:zhǎn 0x76D0:yán 0x76D1:jiān,jiàn 0x76D2:hé,ān 0x76D3:yū,wū 0x76D4:kuī 0x76D5:fàn 0x76D6:gài,gě 0x76D7:dào 0x76D8:pán 0x76D9:fǔ 0x76DA:qiú 0x76DB:shèng,chéng 0x76DC:dào 0x76DD:lù 0x76DE:zhǎn 0x76DF:méng,mèng,míng 0x76E0:lí 0x76E1:jǐn,jìn 0x76E2:xù 0x76E3:jiān,jiàn,kàn 0x76E4:pán,xuán 0x76E5:guàn 0x76E6:ān 0x76E7:lú,lǘ,léi 0x76E8:xǔ 0x76E9:zhōu,chóu 0x76EA:dàng 0x76EB:ān 0x76EC:gǔ,gù,gū 0x76ED:lì 0x76EE:mù 0x76EF:dīng,chéng 0x76F0:gàn 0x76F1:xū 0x76F2:máng 0x76F3:wàng,máng 0x76F4:zhí 0x76F5:qì 0x76F6:yuǎn 0x76F7:tián,xián,mín 0x76F8:xiāng,xiàng 0x76F9:dǔn,zhūn 0x76FA:xīn 0x76FB:xì,pǎn 0x76FC:pàn,fén 0x76FD:fēng 0x76FE:dùn,shǔn,yǔn 0x76FF:mín 0x7700:míng 0x7701:shěng,xǐng,xiǎn 0x7702:shì 0x7703:yún,hùn 0x7704:miǎn,miàn 0x7705:pān 0x7706:fǎng 0x7707:miǎo,miào 0x7708:dān,chěn 0x7709:méi 0x770A:mào,mèi 0x770B:kàn,kān 0x770C:xiàn 0x770D:kōu 0x770E:shì 0x770F:yāng,yǎng,yìng 0x7710:zhēng 0x7711:yǎo,āo,ǎo 0x7712:shēn 0x7713:huò 0x7714:dà 0x7715:zhěn 0x7716:kuàng 0x7717:jū,xū,kōu 0x7718:shèn 0x7719:yí,chì 0x771A:shěng 0x771B:mèi 0x771C:mò,miè 0x771D:zhù 0x771E:zhēn 0x771F:zhēn 0x7720:mián,miǎn,mǐn 0x7721:shì 0x7722:yuān 0x7723:dié,chōu 0x7724:nì 0x7725:zì 0x7726:zì 0x7727:chǎo 0x7728:zhǎ 0x7729:xuàn,huàn,juàn 0x772A:bǐng,fǎng 0x772B:mǐ,pàn 0x772C:lóng 0x772D:suī,huī,xié,wèi 0x772E:tóng 0x772F:mī,mǐ,mì,mí 0x7730:diè,zhì 0x7731:dì 0x7732:nè 0x7733:míng 0x7734:xuàn,shùn,xún 0x7735:chī 0x7736:kuàng 0x7737:juàn 0x7738:móu 0x7739:zhèn 0x773A:tiào 0x773B:yáng 0x773C:yǎn,wěn 0x773D:mò,mì 0x773E:zhòng 0x773F:mò 0x7740:zhe,zhuó,zhāo,zháo 0x7741:zhēng 0x7742:méi 0x7743:suō,jùn,juān 0x7744:shào,qiáo,xiāo 0x7745:hàn 0x7746:huàn,huǎn 0x7747:dì,tī,tí 0x7748:chěng 0x7749:cuó,zhuài 0x774A:juàn 0x774B:é 0x774C:mǎn 0x774D:xiàn 0x774E:xī 0x774F:kùn 0x7750:lài 0x7751:jiǎn 0x7752:shǎn 0x7753:tiǎn 0x7754:gùn,huán,lǔn 0x7755:wǎn,wàn,wān 0x7756:lèng,chēng 0x7757:shì 0x7758:qióng 0x7759:liè 0x775A:yá 0x775B:jīng,jǐng 0x775C:zhēng 0x775D:lí 0x775E:lài 0x775F:suì,zuì 0x7760:juàn 0x7761:shuì 0x7762:suī,huī,wěi 0x7763:dū 0x7764:bì 0x7765:pì 0x7766:mù 0x7767:hūn 0x7768:nì 0x7769:lù 0x776A:yì,zé,dù,gāo 0x776B:jié,shè 0x776C:cǎi 0x776D:zhǒu 0x776E:yú 0x776F:hūn 0x7770:mà 0x7771:xià,xiá 0x7772:xǐng,xìng 0x7773:huī 0x7774:gùn 0x7775:zāi 0x7776:chǔn 0x7777:jiān 0x7778:mèi 0x7779:dǔ 0x777A:hóu 0x777B:xuān 0x777C:tiàn 0x777D:kuí,kuì,jì 0x777E:gāo,hào 0x777F:ruì 0x7780:mào,wú 0x7781:xù 0x7782:fá 0x7783:wò 0x7784:miáo 0x7785:chǒu 0x7786:kuì 0x7787:mī,mǐ,mì 0x7788:wěng 0x7789:kòu,jì 0x778A:dàng 0x778B:chēn,tián,tiàn,shèn 0x778C:kē 0x778D:sǒu 0x778E:xiā 0x778F:qióng,huán 0x7790:mò 0x7791:míng,méng,mián 0x7792:mán 0x7793:shuì 0x7794:zé 0x7795:zhàng 0x7796:yì 0x7797:diāo,dōu 0x7798:kōu 0x7799:mò 0x779A:shùn 0x779B:cōng 0x779C:lōu,lóu,lǘ 0x779D:chī 0x779E:mán,mén,mèn 0x779F:piǎo,piào,piāo 0x77A0:chēng,zhèng 0x77A1:guī 0x77A2:méng,máng,mèng 0x77A3:wàn 0x77A4:rún,shùn 0x77A5:piē,bì 0x77A6:xī 0x77A7:qiáo 0x77A8:pú 0x77A9:zhǔ 0x77AA:dèng 0x77AB:shěn 0x77AC:shùn 0x77AD:liǎo,liào 0x77AE:chè 0x77AF:xián,jiàn 0x77B0:kàn 0x77B1:yè 0x77B2:xù,xuè 0x77B3:tóng 0x77B4:móu,wǔ,mí 0x77B5:lín,lìn,lián 0x77B6:guì,wèi,kuì 0x77B7:jiàn,xián 0x77B8:yè 0x77B9:ài 0x77BA:huì 0x77BB:zhān 0x77BC:jiǎn 0x77BD:gǔ 0x77BE:zhào 0x77BF:qú,jù,jí 0x77C0:méi 0x77C1:chǒu 0x77C2:sào 0x77C3:nǐng,chēng 0x77C4:xūn 0x77C5:yào 0x77C6:huò,xuē,yuè,wò 0x77C7:méng,měng,mēng 0x77C8:mián 0x77C9:pín 0x77CA:mián 0x77CB:lěi 0x77CC:kuàng,guō 0x77CD:jué 0x77CE:xuān,xuàn 0x77CF:mián 0x77D0:huò 0x77D1:lú 0x77D2:méng 0x77D3:lóng 0x77D4:guàn,quán 0x77D5:mǎn,mán 0x77D6:xǐ,lí 0x77D7:chù 0x77D8:tǎng 0x77D9:kàn 0x77DA:zhǔ 0x77DB:máo 0x77DC:jīn,qín,guān 0x77DD:jīn 0x77DE:yù,jué,xù 0x77DF:shuò 0x77E0:zé,zhuó 0x77E1:jué 0x77E2:shǐ 0x77E3:yǐ,xián 0x77E4:shěn 0x77E5:zhī,zhì 0x77E6:hóu 0x77E7:shěn 0x77E8:yǐng 0x77E9:jǔ 0x77EA:zhōu 0x77EB:jiǎo,jiáo 0x77EC:cuó 0x77ED:duǎn 0x77EE:ǎi 0x77EF:jiǎo,jiāo,jiáo 0x77F0:zēng 0x77F1:yuē 0x77F2:bà 0x77F3:shí,dàn 0x77F4:dìng 0x77F5:qì,diāo 0x77F6:jī 0x77F7:zǐ 0x77F8:gān,gàn,gǎn,hàn 0x77F9:wù 0x77FA:zhé,dā 0x77FB:kū,qià 0x77FC:gāng,kòng,qiāng 0x77FD:xì,xī 0x77FE:fán 0x77FF:kuàng 0x7800:dàng 0x7801:mǎ 0x7802:shā 0x7803:dān 0x7804:jué 0x7805:lì 0x7806:fū 0x7807:mín 0x7808:ě 0x7809:huò,xū,huā 0x780A:kāng,kàng 0x780B:zhǐ 0x780C:qì,qiè 0x780D:kǎn 0x780E:jiè 0x780F:bīn,fēn,pīn 0x7810:è 0x7811:yà 0x7812:pī 0x7813:zhé 0x7814:yán,yàn,xíng 0x7815:suì 0x7816:zhuān 0x7817:chē 0x7818:dùn 0x7819:wǎ 0x781A:yàn 0x781B:jīn 0x781C:fēng 0x781D:fá,jié,gé,fǎ 0x781E:mò 0x781F:zhǎ,zhà,zuó 0x7820:jū,zū 0x7821:yù 0x7822:kē,luǒ 0x7823:tuó 0x7824:tuó 0x7825:dǐ,zhǐ 0x7826:zhài 0x7827:zhēn 0x7828:è 0x7829:fú,fèi 0x782A:mǔ 0x782B:zhù,zhǔ 0x782C:lá,lì,lā 0x782D:biān 0x782E:nǔ,nú 0x782F:pīng 0x7830:pēng,pīng,pèng 0x7831:líng 0x7832:pào,báo,pū 0x7833:lè 0x7834:pò 0x7835:bō,è 0x7836:pò 0x7837:shēn 0x7838:zá 0x7839:ài 0x783A:lì 0x783B:lóng 0x783C:tóng 0x783D:yòng 0x783E:lì 0x783F:kuàng 0x7840:chǔ 0x7841:kēng 0x7842:quán 0x7843:zhū 0x7844:kuāng,guāng 0x7845:guī,hè 0x7846:è 0x7847:náo 0x7848:qià 0x7849:lù 0x784A:wěi,guì 0x784B:ài 0x784C:gè,luò,lì 0x784D:xiàn,kèn,kēng,yǐn 0x784E:xíng,kēng 0x784F:yán,yàn 0x7850:dòng,tóng,liú 0x7851:pēng,píng 0x7852:xī 0x7853:lǎo 0x7854:hóng 0x7855:shuò 0x7856:xiá 0x7857:qiāo 0x7858:qing 0x7859:wéi,wèi 0x785A:qiáo 0x785B:yì 0x785C:kēng,qìng 0x785D:xiāo,qiào 0x785E:què,kè,kù 0x785F:chàn 0x7860:láng 0x7861:hōng 0x7862:yú 0x7863:xiāo 0x7864:xiá 0x7865:mǎng,bàng 0x7866:luò,lòng 0x7867:yǒng,tóng 0x7868:chē 0x7869:chè 0x786A:wò,é,yǐ 0x786B:liú,chù 0x786C:yìng,gěng 0x786D:máng 0x786E:què 0x786F:yàn 0x7870:shā 0x7871:kǔn 0x7872:yù 0x7873:chì 0x7874:huā 0x7875:lǔ 0x7876:chěn,cén 0x7877:jiǎn 0x7878:nüè 0x7879:sōng 0x787A:zhuó 0x787B:kēng,kěng 0x787C:péng,pēng 0x787D:yān,yǎn 0x787E:zhuì,duǒ 0x787F:kōng 0x7880:chéng 0x7881:qí 0x7882:zòng,cóng 0x7883:qìng 0x7884:lín 0x7885:jūn 0x7886:bō 0x7887:dìng 0x7888:mín 0x7889:diāo 0x788A:jiān,zhàn 0x788B:hè 0x788C:lù,luò,liù 0x788D:ài 0x788E:suì 0x788F:què,xī 0x7890:léng 0x7891:bēi 0x7892:yín 0x7893:duì,duī 0x7894:wǔ 0x7895:qí,qī,qǐ 0x7896:lǔn,lùn,lún 0x7897:wǎn 0x7898:diǎn 0x7899:náo,gāng 0x789A:bèi 0x789B:qì 0x789C:chěn 0x789D:ruǎn 0x789E:yán 0x789F:dié,shé 0x78A0:dìng 0x78A1:dú,zhóu 0x78A2:tuó 0x78A3:jié,kě,yà 0x78A4:yīng 0x78A5:biǎn 0x78A6:kè 0x78A7:bì 0x78A8:wèi,wěi 0x78A9:shuò 0x78AA:zhēn,ǎn,kàn 0x78AB:duàn 0x78AC:xiá 0x78AD:dàng 0x78AE:tí,dī 0x78AF:nǎo 0x78B0:pèng 0x78B1:jiǎn,xián 0x78B2:dì 0x78B3:tàn 0x78B4:chá,chā 0x78B5:tián 0x78B6:qì 0x78B7:dùn 0x78B8:fēng 0x78B9:xuàn 0x78BA:què 0x78BB:què,qiāo 0x78BC:mǎ 0x78BD:gōng 0x78BE:niǎn 0x78BF:sù,xiè 0x78C0:é 0x78C1:cí 0x78C2:liú,liù 0x78C3:sī,tí 0x78C4:táng 0x78C5:bàng,pāng,páng 0x78C6:huá,kě,gū 0x78C7:pī 0x78C8:wěi,kuǐ 0x78C9:sǎng 0x78CA:lěi 0x78CB:cuō 0x78CC:tián 0x78CD:xiá,qià,yà 0x78CE:xī,qī 0x78CF:lián,qiān 0x78D0:pán 0x78D1:wéi,wèi,ái,gài 0x78D2:yǔn 0x78D3:duī,zhuì 0x78D4:zhé 0x78D5:kē,kě 0x78D6:lá,lā 0x78D7:zhuān 0x78D8:yáo 0x78D9:gǔn 0x78DA:zhuān,tuán,tuó 0x78DB:chán 0x78DC:qì,qī 0x78DD:áo,qiāo 0x78DE:pēng 0x78DF:liù,lù 0x78E0:lǔ 0x78E1:kàn 0x78E2:chuǎng 0x78E3:chěn,cà 0x78E4:yǐn,yīn 0x78E5:lěi,léi 0x78E6:biāo 0x78E7:qì 0x78E8:mó,mò 0x78E9:qì,zhú 0x78EA:cuī 0x78EB:zōng 0x78EC:qìng,qǐng 0x78ED:chuò 0x78EE:lún 0x78EF:jī 0x78F0:shàn 0x78F1:láo 0x78F2:qú 0x78F3:zēng 0x78F4:dèng,dēng 0x78F5:jiàn 0x78F6:xì 0x78F7:lín,lìn,lǐn,líng 0x78F8:dìng 0x78F9:tán,diàn 0x78FA:huáng,kuàng,gǒng 0x78FB:pán,bō 0x78FC:zá,shé 0x78FD:qiāo,qiǎo,qiào,áo 0x78FE:dī 0x78FF:lì 0x7900:jiàn 0x7901:jiāo 0x7902:xī 0x7903:zhǎng 0x7904:qiáo 0x7905:dūn 0x7906:jiǎn,xiǎn 0x7907:yù 0x7908:zhuì 0x7909:hé,qiāo,qiào,áo 0x790A:kè,huò 0x790B:zé 0x790C:léi,lèi,lěi 0x790D:jié 0x790E:chǔ 0x790F:yè 0x7910:què,hú 0x7911:dàng 0x7912:yǐ 0x7913:jiāng 0x7914:pī 0x7915:pī 0x7916:yù 0x7917:pīn 0x7918:è,qì 0x7919:ài,yí 0x791A:kē 0x791B:jiān 0x791C:yù 0x791D:ruǎn 0x791E:méng 0x791F:pào 0x7920:cí 0x7921:bó 0x7922:yǎng 0x7923:mà 0x7924:cǎ 0x7925:xián,xín 0x7926:kuàng,gǒng 0x7927:léi,lèi,lěi 0x7928:lěi 0x7929:zhì 0x792A:lì 0x792B:lì,luò 0x792C:fán 0x792D:què 0x792E:pào 0x792F:yīng 0x7930:lì 0x7931:lóng 0x7932:lóng 0x7933:mò 0x7934:bó 0x7935:shuāng 0x7936:guàn 0x7937:lán 0x7938:cǎ 0x7939:yán,yǎn 0x793A:shì,qí,zhì,shí 0x793B:shì 0x793C:lǐ 0x793D:réng 0x793E:shè 0x793F:yuè 0x7940:sì 0x7941:qí,zhǐ 0x7942:tā 0x7943:mà 0x7944:xiè 0x7945:yāo 0x7946:xiān 0x7947:qí,chí,zhī,zhǐ 0x7948:qí,guǐ 0x7949:zhǐ 0x794A:bēng,fāng 0x794B:duì 0x794C:zhòng,chōng 0x794D:rèn 0x794E:yī 0x794F:shí 0x7950:yòu 0x7951:zhì 0x7952:tiáo 0x7953:fú,fèi 0x7954:fù 0x7955:mì,bì 0x7956:zǔ,jiē 0x7957:zhī 0x7958:suàn 0x7959:mèi 0x795A:zuò 0x795B:qū 0x795C:hù 0x795D:zhù,zhòu,chù 0x795E:shén,shēn 0x795F:suì 0x7960:cí,sì 0x7961:chái 0x7962:mí,nǐ 0x7963:lǚ 0x7964:yǔ 0x7965:xiáng 0x7966:wú 0x7967:tiāo 0x7968:piào,piāo 0x7969:zhù 0x796A:guǐ 0x796B:xiá 0x796C:zhī 0x796D:jì,zhài 0x796E:gào 0x796F:zhēn 0x7970:gào 0x7971:shuì,lèi 0x7972:jìn 0x7973:shèn 0x7974:gāi 0x7975:kǔn 0x7976:dì 0x7977:dǎo 0x7978:huò 0x7979:táo 0x797A:qí 0x797B:gù 0x797C:guàn 0x797D:zuì 0x797E:líng 0x797F:lù 0x7980:bǐng 0x7981:jìn,jīn 0x7982:dǎo 0x7983:zhí 0x7984:lù 0x7985:chán,shàn 0x7986:bì 0x7987:zhě 0x7988:huī 0x7989:yǒu 0x798A:xì 0x798B:yīn 0x798C:zī 0x798D:huò 0x798E:zhēn,zhēng 0x798F:fú,fù 0x7990:yuàn 0x7991:wú 0x7992:xiǎn 0x7993:yáng,shāng 0x7994:zhī 0x7995:yī 0x7996:méi 0x7997:sī 0x7998:dì 0x7999:bèi 0x799A:zhuó 0x799B:zhēn 0x799C:yǒng,yíng 0x799D:jì 0x799E:gào 0x799F:táng 0x79A0:sī 0x79A1:mà 0x79A2:tà 0x79A3:fù 0x79A4:xuān 0x79A5:qí 0x79A6:yù 0x79A7:xǐ,xī 0x79A8:jī,jì,qí 0x79A9:sì 0x79AA:chán,shàn,tán 0x79AB:dàn 0x79AC:guì 0x79AD:suì 0x79AE:lǐ 0x79AF:nóng 0x79B0:mí,nǐ,xiǎn 0x79B1:dǎo 0x79B2:lì 0x79B3:ráng 0x79B4:yuè 0x79B5:tí 0x79B6:zàn 0x79B7:lèi 0x79B8:róu 0x79B9:yǔ 0x79BA:yú,yù 0x79BB:lí,chī 0x79BC:xiè 0x79BD:qín 0x79BE:hé 0x79BF:tū 0x79C0:xiù 0x79C1:sī 0x79C2:rén 0x79C3:tū 0x79C4:zǐ,zì 0x79C5:chá,ná 0x79C6:gǎn 0x79C7:yì,zhí 0x79C8:xiān 0x79C9:bǐng 0x79CA:nián 0x79CB:qiū 0x79CC:qiū 0x79CD:zhǒng,chóng,zhòng 0x79CE:fèn 0x79CF:hào,mào 0x79D0:yún 0x79D1:kē,kè 0x79D2:miǎo 0x79D3:zhī 0x79D4:jīng 0x79D5:bǐ 0x79D6:zhī 0x79D7:yù 0x79D8:mì,bì,bié 0x79D9:kù 0x79DA:bàn 0x79DB:pī 0x79DC:ní,nì 0x79DD:lì 0x79DE:yóu 0x79DF:zū,jū 0x79E0:pī 0x79E1:bó 0x79E2:líng 0x79E3:mò 0x79E4:chèng,chēng,píng 0x79E5:nián 0x79E6:qín 0x79E7:yāng 0x79E8:zuó 0x79E9:zhì 0x79EA:zhī 0x79EB:shú 0x79EC:jù 0x79ED:zǐ 0x79EE:huó 0x79EF:jī,zhǐ 0x79F0:chēng,chèn,chèng 0x79F1:tóng 0x79F2:zhì,shì 0x79F3:huó,kuò 0x79F4:hé,gé 0x79F5:yīn 0x79F6:zī 0x79F7:zhì 0x79F8:jiē,jí 0x79F9:rěn 0x79FA:dù 0x79FB:yí,chǐ,yì 0x79FC:zhū 0x79FD:huì 0x79FE:nóng 0x79FF:fù,bū,pū 0x7A00:xī 0x7A01:gǎo 0x7A02:láng 0x7A03:fū 0x7A04:xùn,zè 0x7A05:shuì 0x7A06:lǚ 0x7A07:kǔn 0x7A08:gǎn 0x7A09:jīng 0x7A0A:tí 0x7A0B:chéng 0x7A0C:tú,shǔ 0x7A0D:shāo,shào 0x7A0E:shuì,tuō,tuì,tuàn 0x7A0F:yà 0x7A10:lǔn 0x7A11:lù 0x7A12:gù 0x7A13:zuó 0x7A14:rěn 0x7A15:zhùn,zhǔn 0x7A16:bàng 0x7A17:bài 0x7A18:jī,qí 0x7A19:zhī,zhì 0x7A1A:zhì 0x7A1B:kǔn 0x7A1C:léng,lèng,líng 0x7A1D:péng 0x7A1E:kē,huà 0x7A1F:bǐng,lǐn 0x7A20:chóu,tiáo,diào 0x7A21:zuì,zú,sū 0x7A22:yù 0x7A23:sū 0x7A24:lüè 0x7A25:xiāng 0x7A26:yī 0x7A27:xì,qiè 0x7A28:biǎn 0x7A29:jì 0x7A2A:fú 0x7A2B:pì,bì 0x7A2C:nuò 0x7A2D:jiē 0x7A2E:zhǒng,chóng,zhòng 0x7A2F:zōng,zǒng 0x7A30:xǔ,xū 0x7A31:chēng,chèn,chèng 0x7A32:dào 0x7A33:wěn 0x7A34:xián,jiān,liàn,liǎn 0x7A35:zī,jiū 0x7A36:yù 0x7A37:jì,zè 0x7A38:xù 0x7A39:zhěn,zhēn,biān 0x7A3A:zhì 0x7A3B:dào 0x7A3C:jià 0x7A3D:jī,qǐ 0x7A3E:gǎo,kào,gào,jiào 0x7A3F:gǎo 0x7A40:gǔ 0x7A41:róng 0x7A42:suì 0x7A43:rong 0x7A44:jì 0x7A45:kāng 0x7A46:mù 0x7A47:cǎn,shān,cēn 0x7A48:méi,mén,mí 0x7A49:zhì,chí,tí 0x7A4A:jì 0x7A4B:lù,jiū 0x7A4C:sū 0x7A4D:jī 0x7A4E:yǐng 0x7A4F:wěn 0x7A50:qiū 0x7A51:sè 0x7A52:hè 0x7A53:yì 0x7A54:huáng 0x7A55:qiè 0x7A56:jǐ,jì 0x7A57:suì 0x7A58:xiāo,rào 0x7A59:pú 0x7A5A:jiāo 0x7A5B:zhuō,bó 0x7A5C:zhǒng,tóng,zhòng 0x7A5D:zui 0x7A5E:lǚ 0x7A5F:suì 0x7A60:nóng 0x7A61:sè 0x7A62:huì 0x7A63:ráng 0x7A64:nuò 0x7A65:yù,yǔ 0x7A66:pīn 0x7A67:jì,zì 0x7A68:tuí 0x7A69:wěn 0x7A6A:chēng,bié 0x7A6B:huò,hù 0x7A6C:kuàng 0x7A6D:lǚ 0x7A6E:biāo,pāo 0x7A6F:sè 0x7A70:ráng,rǎng,réng 0x7A71:zhuō,jué 0x7A72:lí 0x7A73:cuán,zàn 0x7A74:xué,jué 0x7A75:wā,yà 0x7A76:jiū,jiù 0x7A77:qióng 0x7A78:xī 0x7A79:qióng,qiōng,kōng 0x7A7A:kōng,kǒng,kòng 0x7A7B:yū,yǔ 0x7A7C:shēn 0x7A7D:jǐng 0x7A7E:yào,yǎo 0x7A7F:chuān,chuàn,yuān 0x7A80:zhūn,tún 0x7A81:tū 0x7A82:láo 0x7A83:qiè 0x7A84:zhǎi 0x7A85:yǎo 0x7A86:biǎn 0x7A87:báo 0x7A88:yǎo,yào 0x7A89:bǐng 0x7A8A:wā 0x7A8B:zhú,kū 0x7A8C:jiào,pào,liáo,liù 0x7A8D:qiào 0x7A8E:diào 0x7A8F:wū 0x7A90:guī,wā 0x7A91:yáo 0x7A92:zhì,dié 0x7A93:chuāng 0x7A94:yào,yǎo 0x7A95:tiǎo,tiāo 0x7A96:jiào,zào 0x7A97:chuāng,cōng 0x7A98:jiǒng 0x7A99:xiāo 0x7A9A:chéng 0x7A9B:kòu 0x7A9C:cuàn 0x7A9D:wō 0x7A9E:dàn 0x7A9F:kū 0x7AA0:kē 0x7AA1:zhuó 0x7AA2:xū 0x7AA3:sū 0x7AA4:guān 0x7AA5:kuī 0x7AA6:dòu 0x7AA7:zhuo 0x7AA8:xūn,yìn,yīn 0x7AA9:wō 0x7AAA:wā 0x7AAB:yà,yē 0x7AAC:yú,dōu 0x7AAD:jù 0x7AAE:qióng 0x7AAF:yáo,yào,qiāo 0x7AB0:yáo 0x7AB1:tiǎo 0x7AB2:cháo 0x7AB3:yǔ,yú 0x7AB4:tián 0x7AB5:diào 0x7AB6:jù,lóu 0x7AB7:liào 0x7AB8:xī 0x7AB9:wù 0x7ABA:kuī,kuǐ 0x7ABB:chuāng 0x7ABC:zhāo,kē 0x7ABD:kuǎn 0x7ABE:kuǎn,cuàn 0x7ABF:lóng 0x7AC0:chēng,chèng 0x7AC1:cuì 0x7AC2:liáo 0x7AC3:zào 0x7AC4:cuàn,cuān 0x7AC5:qiào 0x7AC6:qióng 0x7AC7:dòu,dú 0x7AC8:zào 0x7AC9:lǒng 0x7ACA:qiè 0x7ACB:lì,wèi 0x7ACC:chù 0x7ACD:shí 0x7ACE:fù 0x7ACF:qiān 0x7AD0:chù 0x7AD1:hóng 0x7AD2:qí 0x7AD3:háo 0x7AD4:shēng 0x7AD5:fēn 0x7AD6:shù 0x7AD7:miào 0x7AD8:qǔ,kǒu 0x7AD9:zhàn,zhān 0x7ADA:zhù 0x7ADB:líng 0x7ADC:lóng,néng 0x7ADD:bìng 0x7ADE:jìng 0x7ADF:jìng 0x7AE0:zhāng,zhàng 0x7AE1:bǎi 0x7AE2:sì 0x7AE3:jùn 0x7AE4:hóng 0x7AE5:tóng,zhōng 0x7AE6:sǒng 0x7AE7:jìng,zhěn 0x7AE8:diào 0x7AE9:yì 0x7AEA:shù 0x7AEB:jìng 0x7AEC:qǔ 0x7AED:jié 0x7AEE:pīng 0x7AEF:duān 0x7AF0:lí 0x7AF1:zhuǎn 0x7AF2:céng 0x7AF3:dēng 0x7AF4:cūn 0x7AF5:wāi,huā 0x7AF6:jìng 0x7AF7:kǎn,kàn 0x7AF8:jìng 0x7AF9:zhú 0x7AFA:zhú,dǔ 0x7AFB:lè,jīn 0x7AFC:péng 0x7AFD:yú 0x7AFE:chí 0x7AFF:gān,gàn,gǎn 0x7B00:máng 0x7B01:zhú 0x7B02:wán 0x7B03:dǔ 0x7B04:jī 0x7B05:jiǎo 0x7B06:bā 0x7B07:suàn 0x7B08:jí 0x7B09:qǐn 0x7B0A:zhào 0x7B0B:sǔn 0x7B0C:yá 0x7B0D:zhuì,ruì 0x7B0E:yuán 0x7B0F:hù,wěn,wù 0x7B10:háng,hàng 0x7B11:xiào 0x7B12:cén,jìn,hán 0x7B13:bì,pí,bī 0x7B14:bǐ 0x7B15:jiǎn 0x7B16:yǐ 0x7B17:dōng 0x7B18:shān 0x7B19:shēng 0x7B1A:dā,xiá,nà 0x7B1B:dí 0x7B1C:zhú 0x7B1D:nà 0x7B1E:chī 0x7B1F:gū 0x7B20:lì 0x7B21:qiè 0x7B22:mǐn 0x7B23:bāo 0x7B24:tiáo,shào 0x7B25:sì 0x7B26:fú 0x7B27:cè,shàn 0x7B28:bèn 0x7B29:fá 0x7B2A:dá 0x7B2B:zǐ 0x7B2C:dì 0x7B2D:líng 0x7B2E:zé,zhà,zuó 0x7B2F:nú 0x7B30:fú,fèi 0x7B31:gǒu 0x7B32:fán 0x7B33:jiā 0x7B34:gǎn 0x7B35:fàn 0x7B36:shǐ 0x7B37:mǎo 0x7B38:pǒ 0x7B39:ti 0x7B3A:jiān 0x7B3B:qióng 0x7B3C:lóng,lǒng 0x7B3D:mǐn 0x7B3E:biān 0x7B3F:luò 0x7B40:guì 0x7B41:qū 0x7B42:chí 0x7B43:yīn 0x7B44:yào 0x7B45:xiǎn 0x7B46:bǐ 0x7B47:qióng 0x7B48:kuò 0x7B49:děng 0x7B4A:xiáo,jiǎo,jiào 0x7B4B:jīn,qián 0x7B4C:quán 0x7B4D:sǔn,yún,xùn 0x7B4E:rú 0x7B4F:fá 0x7B50:kuāng 0x7B51:zhù,zhú 0x7B52:tǒng,dòng,tóng 0x7B53:jī 0x7B54:dá,dā 0x7B55:háng 0x7B56:cè 0x7B57:zhòng 0x7B58:kòu 0x7B59:lái 0x7B5A:bì 0x7B5B:shāi 0x7B5C:dāng 0x7B5D:zhēng 0x7B5E:cè 0x7B5F:fū 0x7B60:yún,jūn 0x7B61:tú 0x7B62:pá 0x7B63:lí 0x7B64:láng,làng 0x7B65:jǔ 0x7B66:guǎn 0x7B67:jiǎn,xiàn 0x7B68:hán 0x7B69:tóng,tǒng,yǒng,dòng 0x7B6A:xiá 0x7B6B:zhì,zhǐ 0x7B6C:chéng 0x7B6D:suàn 0x7B6E:shì 0x7B6F:zhù 0x7B70:zuó 0x7B71:xiǎo 0x7B72:shāo 0x7B73:tíng 0x7B74:cè,jiā,jiá 0x7B75:yán 0x7B76:gào,gǎo 0x7B77:kuài 0x7B78:gān 0x7B79:chóu 0x7B7A:kuāng 0x7B7B:gàng 0x7B7C:yún 0x7B7D:o 0x7B7E:qiān 0x7B7F:xiǎo 0x7B80:jiǎn 0x7B81:póu,bù,fú,pú 0x7B82:lái 0x7B83:zōu 0x7B84:bǐ,bēi,bī,bì,pái 0x7B85:bì 0x7B86:bì 0x7B87:gè 0x7B88:tái,chí 0x7B89:guǎi,dài 0x7B8A:yū 0x7B8B:jiān 0x7B8C:dào,zhào 0x7B8D:gū 0x7B8E:chí,hǔ 0x7B8F:zhēng 0x7B90:qìng,jīng,qiāng 0x7B91:shà,zhá 0x7B92:zhǒu 0x7B93:lù 0x7B94:bó 0x7B95:jī 0x7B96:lín,lǐn 0x7B97:suàn 0x7B98:jùn,qūn 0x7B99:fú 0x7B9A:zhá 0x7B9B:gū 0x7B9C:kōng 0x7B9D:qián 0x7B9E:qiān 0x7B9F:jùn 0x7BA0:chuí,zhuī 0x7BA1:guǎn 0x7BA2:yuān,wǎn 0x7BA3:cè 0x7BA4:zú 0x7BA5:bǒ 0x7BA6:zé 0x7BA7:qiè 0x7BA8:tuò 0x7BA9:luó 0x7BAA:dān 0x7BAB:xiāo 0x7BAC:ruò,nà 0x7BAD:jiàn 0x7BAE:xuān 0x7BAF:biān 0x7BB0:sǔn 0x7BB1:xiāng 0x7BB2:xiǎn 0x7BB3:píng 0x7BB4:zhēn,jiǎn 0x7BB5:xīng,xǐng,shěng 0x7BB6:hú 0x7BB7:yí,shī 0x7BB8:zhù,zhuó 0x7BB9:yuē,yào,chuò 0x7BBA:chūn 0x7BBB:lǜ 0x7BBC:wū 0x7BBD:dǒng 0x7BBE:shuò,xiāo,qiào 0x7BBF:jí 0x7BC0:jié,jiē 0x7BC1:huáng 0x7BC2:xīng 0x7BC3:mèi 0x7BC4:fàn 0x7BC5:chuán,duān 0x7BC6:zhuàn 0x7BC7:piān 0x7BC8:fēng 0x7BC9:zhù,zhú 0x7BCA:huáng,hóng 0x7BCB:qiè 0x7BCC:hóu 0x7BCD:qiū 0x7BCE:miǎo 0x7BCF:qiàn 0x7BD0:gū 0x7BD1:kuì 0x7BD2:shi 0x7BD3:lǒu 0x7BD4:yún,xūn 0x7BD5:hé 0x7BD6:táng 0x7BD7:yuè 0x7BD8:chōu 0x7BD9:gāo 0x7BDA:fěi 0x7BDB:ruò 0x7BDC:zhēng 0x7BDD:gōu 0x7BDE:niè 0x7BDF:qiàn 0x7BE0:xiǎo 0x7BE1:cuàn 0x7BE2:lǒng,gōng,gǎn 0x7BE3:péng,páng 0x7BE4:dǔ 0x7BE5:lì 0x7BE6:bì,pí 0x7BE7:zhuó,huò 0x7BE8:chú 0x7BE9:shāi,shī 0x7BEA:chí 0x7BEB:zhù 0x7BEC:qiāng,cāng 0x7BED:lóng 0x7BEE:lán 0x7BEF:jiān 0x7BF0:bù 0x7BF1:lí 0x7BF2:huì,suì 0x7BF3:bì 0x7BF4:dí,zhú 0x7BF5:cōng 0x7BF6:yān 0x7BF7:péng 0x7BF8:cǎn,cēn,zān 0x7BF9:zhuàn,suǎn,zuǎn 0x7BFA:pí 0x7BFB:piǎo,biāo 0x7BFC:dōu 0x7BFD:yù 0x7BFE:miè 0x7BFF:tuán,zhuān 0x7C00:zé,zhài 0x7C01:shāi 0x7C02:guì,guó 0x7C03:yí 0x7C04:hù 0x7C05:chǎn 0x7C06:kòu 0x7C07:cù,chuò,còu 0x7C08:píng 0x7C09:zào,chòu 0x7C0A:jī 0x7C0B:guǐ 0x7C0C:sù 0x7C0D:lǒu,lǚ,jù 0x7C0E:cè,jí 0x7C0F:lù 0x7C10:niǎn 0x7C11:suō 0x7C12:cuàn 0x7C13:diāo 0x7C14:suō 0x7C15:lè 0x7C16:duàn 0x7C17:zhù 0x7C18:xiāo 0x7C19:bó 0x7C1A:mì 0x7C1B:shāi,sī 0x7C1C:dàng,tāng 0x7C1D:liáo 0x7C1E:dān 0x7C1F:diàn 0x7C20:fǔ 0x7C21:jiǎn 0x7C22:mǐn 0x7C23:kuì 0x7C24:dài 0x7C25:jiāo 0x7C26:dēng 0x7C27:huáng 0x7C28:sǔn,zhuàn 0x7C29:láo 0x7C2A:zān,zǎn 0x7C2B:xiāo,xiǎo 0x7C2C:lù 0x7C2D:shì 0x7C2E:zān 0x7C2F:qi 0x7C30:pái 0x7C31:qí 0x7C32:pái 0x7C33:gǎn,gàn 0x7C34:jù 0x7C35:lù 0x7C36:lù 0x7C37:yán 0x7C38:bǒ,bò 0x7C39:dāng 0x7C3A:sài 0x7C3B:zhuā,kē 0x7C3C:gōu 0x7C3D:qiān 0x7C3E:lián 0x7C3F:bù,bó 0x7C40:zhòu 0x7C41:lài 0x7C42:shi 0x7C43:lán 0x7C44:kuì 0x7C45:yú 0x7C46:yuè 0x7C47:háo 0x7C48:zhēn,jiān 0x7C49:tái 0x7C4A:tì 0x7C4B:niè,mí 0x7C4C:chóu,táo 0x7C4D:jí,jiè 0x7C4E:yí 0x7C4F:qí 0x7C50:téng 0x7C51:zhuàn,zuǎn 0x7C52:zhòu 0x7C53:fān,bān,pān 0x7C54:sǒu,shǔ 0x7C55:zhòu 0x7C56:qian 0x7C57:zhuó 0x7C58:téng 0x7C59:lù 0x7C5A:lú 0x7C5B:jiǎn,jiān 0x7C5C:tuò 0x7C5D:yíng 0x7C5E:yù 0x7C5F:lài 0x7C60:lóng,lǒng 0x7C61:qiè 0x7C62:lián 0x7C63:lán 0x7C64:qiān 0x7C65:yuè 0x7C66:zhōng 0x7C67:qú,jǔ 0x7C68:lián 0x7C69:biān 0x7C6A:duàn 0x7C6B:zuǎn 0x7C6C:lí 0x7C6D:sī 0x7C6E:luó 0x7C6F:yíng 0x7C70:yuè 0x7C71:zhuó 0x7C72:yù 0x7C73:mǐ 0x7C74:dí,zá 0x7C75:fán 0x7C76:shēn 0x7C77:zhé 0x7C78:shēn 0x7C79:nǚ 0x7C7A:hé 0x7C7B:lèi 0x7C7C:xiān 0x7C7D:zǐ 0x7C7E:ní 0x7C7F:cùn 0x7C80:zhàng 0x7C81:qiān 0x7C82:zhāi 0x7C83:bǐ,pī 0x7C84:bǎn 0x7C85:wù 0x7C86:shā,chǎo 0x7C87:kāng,jīng 0x7C88:róu 0x7C89:fěn 0x7C8A:bì 0x7C8B:cuì 0x7C8C:yin 0x7C8D:zhé 0x7C8E:mǐ 0x7C8F:tai 0x7C90:hù 0x7C91:bā 0x7C92:lì 0x7C93:gān 0x7C94:jù 0x7C95:pò 0x7C96:mò 0x7C97:cū 0x7C98:zhān,nián 0x7C99:zhòu 0x7C9A:chī 0x7C9B:sù 0x7C9C:tiào 0x7C9D:lì 0x7C9E:xī 0x7C9F:sù 0x7CA0:hóng 0x7CA1:tóng 0x7CA2:zī,cí,jì 0x7CA3:cè,sè 0x7CA4:yuè 0x7CA5:zhōu,yù 0x7CA6:lín 0x7CA7:zhuāng 0x7CA8:bǎi 0x7CA9:lāo 0x7CAA:fèn 0x7CAB:ér 0x7CAC:qū 0x7CAD:hé 0x7CAE:liáng 0x7CAF:xiàn 0x7CB0:fú,fū 0x7CB1:liáng 0x7CB2:càn 0x7CB3:jīng 0x7CB4:lǐ 0x7CB5:yuè 0x7CB6:lù 0x7CB7:jú 0x7CB8:qí 0x7CB9:cuì,suì 0x7CBA:bài 0x7CBB:zhāng 0x7CBC:lín,lǐn 0x7CBD:zòng 0x7CBE:jīng,qíng,jìng 0x7CBF:guǒ,huà 0x7CC0:huā 0x7CC1:sǎn,shēn 0x7CC2:sǎn 0x7CC3:táng 0x7CC4:biǎn,biān 0x7CC5:róu 0x7CC6:miàn 0x7CC7:hóu 0x7CC8:xǔ 0x7CC9:zòng 0x7CCA:hú,hū,hù 0x7CCB:jiàn 0x7CCC:zān 0x7CCD:cí 0x7CCE:lí 0x7CCF:xiè 0x7CD0:fū 0x7CD1:nuò 0x7CD2:bèi 0x7CD3:gǔ 0x7CD4:xiǔ 0x7CD5:gāo 0x7CD6:táng 0x7CD7:qiǔ 0x7CD8:jiā 0x7CD9:cāo 0x7CDA:zhuāng 0x7CDB:táng 0x7CDC:mí,méi 0x7CDD:sǎn,sān,shēn 0x7CDE:fèn 0x7CDF:zāo 0x7CE0:kāng 0x7CE1:jiàng 0x7CE2:mó 0x7CE3:sǎn 0x7CE4:sǎn 0x7CE5:nuò 0x7CE6:xī 0x7CE7:liáng 0x7CE8:jiàng,jiāng 0x7CE9:kuài 0x7CEA:bò 0x7CEB:huán 0x7CEC:shǔ 0x7CED:zòng 0x7CEE:xiàn 0x7CEF:nuò 0x7CF0:tuán 0x7CF1:niè 0x7CF2:lì 0x7CF3:zuò 0x7CF4:dí 0x7CF5:niè 0x7CF6:tiào,diào 0x7CF7:làn 0x7CF8:mì,sī 0x7CF9:sī 0x7CFA:jiū,jiǔ 0x7CFB:xì,jì 0x7CFC:gōng 0x7CFD:zhěng,zhēng 0x7CFE:jiū,jiǎo 0x7CFF:yòu 0x7D00:jì,jǐ 0x7D01:chà 0x7D02:zhòu 0x7D03:xún 0x7D04:yuē,yāo,yào,dì 0x7D05:hóng,gōng,jiàng 0x7D06:yū,ōu 0x7D07:hé,gē,jié 0x7D08:wán 0x7D09:rèn 0x7D0A:wěn,wèn 0x7D0B:wén,wèn 0x7D0C:qiú 0x7D0D:nà 0x7D0E:zī 0x7D0F:tǒu 0x7D10:niǔ 0x7D11:fóu 0x7D12:jì,jié,jiè 0x7D13:shū 0x7D14:chún,zhǔn,tún,quán,zī,zhūn 0x7D15:pī,pí,bǐ,bī,bì,chǐ 0x7D16:zhèn 0x7D17:shā,miǎo 0x7D18:hóng 0x7D19:zhǐ 0x7D1A:jí 0x7D1B:fēn 0x7D1C:yún 0x7D1D:rèn 0x7D1E:dǎn 0x7D1F:jīn,jìn 0x7D20:sù 0x7D21:fǎng,bǎng,fàng 0x7D22:suǒ 0x7D23:cuì 0x7D24:jiǔ 0x7D25:zā,zhā 0x7D26:ba 0x7D27:jǐn 0x7D28:fū,fù 0x7D29:zhì 0x7D2A:qī 0x7D2B:zǐ 0x7D2C:chóu,chōu,zhòu 0x7D2D:hóng 0x7D2E:zā,zhā 0x7D2F:lèi,lěi,léi,lǜ,liè 0x7D30:xì 0x7D31:fú 0x7D32:xiè,yì 0x7D33:shēn 0x7D34:bō,bì 0x7D35:zhù,shū 0x7D36:qū,qǔ 0x7D37:líng 0x7D38:zhù 0x7D39:shào,chāo 0x7D3A:gàn 0x7D3B:yǎng 0x7D3C:fú,fèi 0x7D3D:tuó 0x7D3E:zhěn,tiǎn,jǐn 0x7D3F:dài 0x7D40:chù 0x7D41:shī 0x7D42:zhōng 0x7D43:xián,xuàn 0x7D44:zǔ,qū 0x7D45:jiōng,jiǒng 0x7D46:bàn 0x7D47:qú 0x7D48:mò 0x7D49:shù 0x7D4A:zuì 0x7D4B:kuàng 0x7D4C:jīng 0x7D4D:rèn 0x7D4E:háng 0x7D4F:xiè,yì 0x7D50:jié,jì,jiē 0x7D51:zhū 0x7D52:chóu 0x7D53:guà,kuā 0x7D54:bǎi,mò 0x7D55:jué 0x7D56:kuàng 0x7D57:hú 0x7D58:cì 0x7D59:huán,gēng 0x7D5A:gēng 0x7D5B:tāo 0x7D5C:jié,xié,qià,jiá,qì 0x7D5D:kù 0x7D5E:jiǎo,xiáo,jiào 0x7D5F:quán 0x7D60:gǎi,ǎi 0x7D61:luò,lào 0x7D62:xuàn,xún 0x7D63:bēng,bīng,pēng 0x7D64:xiàn 0x7D65:fú 0x7D66:gěi,jǐ,xiá 0x7D67:dòng,tóng,tōng 0x7D68:róng 0x7D69:tiào,diào,dào 0x7D6A:yīn 0x7D6B:lěi 0x7D6C:xiè 0x7D6D:juàn 0x7D6E:xù,chù,nǜ,nà 0x7D6F:gāi,hài 0x7D70:dié 0x7D71:tǒng 0x7D72:sī 0x7D73:jiàng 0x7D74:xiáng 0x7D75:huì 0x7D76:jué 0x7D77:zhí 0x7D78:jiǎn 0x7D79:juàn,xuàn 0x7D7A:chī,zhǐ 0x7D7B:miǎn,wèn,mán,wàn 0x7D7C:zhèn 0x7D7D:lǚ 0x7D7E:chéng 0x7D7F:qiú 0x7D80:shū 0x7D81:bǎng 0x7D82:tǒng 0x7D83:xiāo,shāo 0x7D84:huán,huàn,wàn 0x7D85:qīn,xiān 0x7D86:gěng,bǐng 0x7D87:xiǔ 0x7D88:tí,tì 0x7D89:tòu,xiù 0x7D8A:xié 0x7D8B:hóng 0x7D8C:xì 0x7D8D:fú 0x7D8E:tīng 0x7D8F:suī,suí,shuāi,ruí,tuǒ 0x7D90:duì 0x7D91:kǔn 0x7D92:fū 0x7D93:jīng,jìng 0x7D94:hù 0x7D95:zhī 0x7D96:yán,xiàn 0x7D97:jiǒng 0x7D98:féng 0x7D99:jì 0x7D9A:xù 0x7D9B:rěn 0x7D9C:zōng,zèng,zòng 0x7D9D:chēn,shēn,lín 0x7D9E:duǒ 0x7D9F:lì,liè 0x7DA0:lǜ 0x7DA1:liáng 0x7DA2:chóu,tāo,diào 0x7DA3:quǎn 0x7DA4:shào 0x7DA5:qí 0x7DA6:qí,qì 0x7DA7:zhǔn,zhùn 0x7DA8:qí 0x7DA9:wǎn 0x7DAA:qiàn,qīng,zhēng 0x7DAB:xiàn 0x7DAC:shòu 0x7DAD:wéi,yí 0x7DAE:qǐ,qìng,qǐng 0x7DAF:táo 0x7DB0:wǎn 0x7DB1:gāng 0x7DB2:wǎng 0x7DB3:bēng 0x7DB4:zhuì,chuò 0x7DB5:cǎi 0x7DB6:guǒ 0x7DB7:cuì,zú 0x7DB8:lún,guān 0x7DB9:liǔ 0x7DBA:qǐ,yǐ 0x7DBB:zhàn 0x7DBC:bì 0x7DBD:chuò,chāo 0x7DBE:líng 0x7DBF:mián 0x7DC0:qī 0x7DC1:qiè 0x7DC2:tián,tǎn,chān 0x7DC3:zōng 0x7DC4:gǔn,hùn,hún 0x7DC5:zōu 0x7DC6:xī 0x7DC7:zī 0x7DC8:xìng 0x7DC9:liǎng 0x7DCA:jǐn 0x7DCB:fēi 0x7DCC:ruí 0x7DCD:mín 0x7DCE:yù 0x7DCF:zǒng,cōng 0x7DD0:fán 0x7DD1:lǜ,lù 0x7DD2:xù 0x7DD3:yīng 0x7DD4:shàng 0x7DD5:qi 0x7DD6:xù 0x7DD7:xiāng 0x7DD8:jiān 0x7DD9:kè 0x7DDA:xiàn 0x7DDB:ruǎn,ruàn 0x7DDC:mián 0x7DDD:jī,qì,qī,jí 0x7DDE:duàn 0x7DDF:chóng,zhòng 0x7DE0:dì 0x7DE1:mín,mǐn,mián,hún 0x7DE2:miáo,máo 0x7DE3:yuán,yuàn 0x7DE4:xiè,yè 0x7DE5:bǎo 0x7DE6:sī 0x7DE7:qiū 0x7DE8:biān,biǎn,biàn 0x7DE9:huǎn 0x7DEA:gēng,gèng 0x7DEB:cōng 0x7DEC:miǎn 0x7DED:wèi 0x7DEE:fù 0x7DEF:wěi 0x7DF0:tóu,xū,yú 0x7DF1:gōu 0x7DF2:miǎo 0x7DF3:xié 0x7DF4:liàn 0x7DF5:zōng,zòng 0x7DF6:biàn,pián,biǎn 0x7DF7:yùn,gǔn 0x7DF8:yīn 0x7DF9:tí 0x7DFA:guā 0x7DFB:zhì 0x7DFC:yùn,wēn 0x7DFD:chēng 0x7DFE:chán 0x7DFF:dài 0x7E00:xiá 0x7E01:yuán 0x7E02:zǒng 0x7E03:xū 0x7E04:shéng 0x7E05:wēi 0x7E06:gēng 0x7E07:xuān 0x7E08:yíng 0x7E09:jìn 0x7E0A:yì 0x7E0B:zhuì 0x7E0C:nì 0x7E0D:bāng,bàng 0x7E0E:gǔ,hú 0x7E0F:pán 0x7E10:zhòu,chào,cù,zhōu 0x7E11:jiān 0x7E12:cī,cuò,suǒ 0x7E13:quán 0x7E14:shuǎng 0x7E15:yùn 0x7E16:xiá 0x7E17:cuī,suī,shuāi 0x7E18:xī 0x7E19:róng,rǒng,ròng 0x7E1A:tāo 0x7E1B:fù 0x7E1C:yún 0x7E1D:chēn,zhěn 0x7E1E:gǎo 0x7E1F:rù,rǒng 0x7E20:hú 0x7E21:zài,zēng 0x7E22:téng 0x7E23:xiàn,xuán 0x7E24:sù 0x7E25:zhěn 0x7E26:zòng 0x7E27:tāo 0x7E28:huǎng 0x7E29:cài 0x7E2A:bì 0x7E2B:fèng,féng 0x7E2C:cù 0x7E2D:lí 0x7E2E:suō,sù 0x7E2F:yǎn,yǐn 0x7E30:xǐ 0x7E31:zòng,cóng,zǒng 0x7E32:léi 0x7E33:juàn,zhuàn 0x7E34:qiàn,qiān 0x7E35:màn 0x7E36:zhí 0x7E37:lǚ 0x7E38:mù,mò 0x7E39:piǎo,piāo 0x7E3A:lián 0x7E3B:mí 0x7E3C:xuàn 0x7E3D:zǒng,zōng,cōng 0x7E3E:jī 0x7E3F:shān,xiān,xiāo,sāo,cǎn 0x7E40:suì,cuǐ 0x7E41:fán,pán,pó 0x7E42:lǜ 0x7E43:běng,bēng,bèng 0x7E44:yī,yì 0x7E45:sāo,zǎo 0x7E46:móu,jiū,miù,mù,miào,liáo,liǎo,liào,lù 0x7E47:yáo,yóu,zhòu 0x7E48:qiǎng 0x7E49:hún 0x7E4A:xiān 0x7E4B:jì 0x7E4C:sha 0x7E4D:xiù 0x7E4E:rán 0x7E4F:xuàn 0x7E50:suì 0x7E51:qiāo,juē 0x7E52:zēng,zèng,céng 0x7E53:zuǒ 0x7E54:zhī,zhì 0x7E55:shàn 0x7E56:sǎn 0x7E57:lín 0x7E58:yù,jué 0x7E59:fān,fán 0x7E5A:liáo,rǎo 0x7E5B:chuò 0x7E5C:zūn 0x7E5D:jiàn 0x7E5E:rào,rǎo 0x7E5F:chǎn,chán 0x7E60:ruǐ 0x7E61:xiù 0x7E62:huì,huí 0x7E63:huà 0x7E64:zuǎn 0x7E65:xī 0x7E66:qiǎng 0x7E67:yun 0x7E68:da 0x7E69:shéng,yìng,mǐn,shèng 0x7E6A:huì,guì 0x7E6B:xì,jì 0x7E6C:sè 0x7E6D:jiǎn 0x7E6E:jiāng 0x7E6F:huán 0x7E70:zǎo,sāo,qiāo 0x7E71:cōng 0x7E72:xiè 0x7E73:jiǎo,zhuó,jiào,hé 0x7E74:bì 0x7E75:dàn,tán,chán 0x7E76:yì 0x7E77:nǒng 0x7E78:suì 0x7E79:yì,shì 0x7E7A:shǎi 0x7E7B:xū,rú 0x7E7C:jì 0x7E7D:bīn 0x7E7E:qiǎn 0x7E7F:lán 0x7E80:pú,fú 0x7E81:xūn 0x7E82:zuǎn 0x7E83:qí 0x7E84:péng 0x7E85:yào,lì 0x7E86:mò 0x7E87:lèi 0x7E88:xié 0x7E89:zuǎn 0x7E8A:kuàng 0x7E8B:yōu 0x7E8C:xù 0x7E8D:léi,lěi,lèi 0x7E8E:xiān 0x7E8F:chán 0x7E90:jiǎo 0x7E91:lú 0x7E92:chán 0x7E93:yīng 0x7E94:cái,shān 0x7E95:rǎng,xiāng,sāng 0x7E96:xiān,jiān 0x7E97:zuī 0x7E98:zuǎn 0x7E99:luò 0x7E9A:lí,xǐ,lǐ,sǎ 0x7E9B:dào,dú 0x7E9C:lǎn 0x7E9D:léi 0x7E9E:liàn 0x7E9F:sī 0x7EA0:jiū 0x7EA1:yū 0x7EA2:hóng,gōng 0x7EA3:zhòu 0x7EA4:xiān,qiàn 0x7EA5:gē,hé 0x7EA6:yuē,yāo 0x7EA7:jí 0x7EA8:wán 0x7EA9:kuàng 0x7EAA:jì,jǐ 0x7EAB:rèn 0x7EAC:wěi 0x7EAD:yún 0x7EAE:hóng 0x7EAF:chún 0x7EB0:pī 0x7EB1:shā 0x7EB2:gāng 0x7EB3:nà 0x7EB4:rèn 0x7EB5:zòng 0x7EB6:lún,guān 0x7EB7:fēn 0x7EB8:zhǐ 0x7EB9:wén,wèn 0x7EBA:fǎng 0x7EBB:zhù 0x7EBC:zhèn 0x7EBD:niǔ 0x7EBE:shū 0x7EBF:xiàn 0x7EC0:gàn 0x7EC1:xiè 0x7EC2:fú 0x7EC3:liàn 0x7EC4:zǔ 0x7EC5:shēn 0x7EC6:xì 0x7EC7:zhī 0x7EC8:zhōng 0x7EC9:zhòu 0x7ECA:bàn 0x7ECB:fú 0x7ECC:chù 0x7ECD:shào 0x7ECE:yì 0x7ECF:jīng,jìng 0x7ED0:dài 0x7ED1:bǎng 0x7ED2:róng 0x7ED3:jié,jiē 0x7ED4:kù 0x7ED5:rào,rǎo 0x7ED6:dié 0x7ED7:háng 0x7ED8:huì 0x7ED9:gěi,jǐ 0x7EDA:xuàn 0x7EDB:jiàng 0x7EDC:luò,lào 0x7EDD:jué 0x7EDE:jiǎo 0x7EDF:tǒng 0x7EE0:gěng 0x7EE1:xiāo 0x7EE2:juàn 0x7EE3:xiù 0x7EE4:xì 0x7EE5:suí 0x7EE6:tāo 0x7EE7:jì 0x7EE8:tí,tì 0x7EE9:jī 0x7EEA:xù 0x7EEB:líng 0x7EEC:yīng 0x7EED:xù 0x7EEE:qǐ 0x7EEF:fēi 0x7EF0:chuò,chāo 0x7EF1:shàng 0x7EF2:gǔn 0x7EF3:shéng 0x7EF4:wéi 0x7EF5:mián 0x7EF6:shòu 0x7EF7:bēng,běng,bèng 0x7EF8:chóu 0x7EF9:táo 0x7EFA:liǔ 0x7EFB:quǎn 0x7EFC:zōng,zèng 0x7EFD:zhàn 0x7EFE:wǎn 0x7EFF:lǜ,lù 0x7F00:zhuì 0x7F01:zī 0x7F02:kè 0x7F03:xiāng 0x7F04:jiān 0x7F05:miǎn 0x7F06:lǎn 0x7F07:tí 0x7F08:miǎo 0x7F09:jī,qī 0x7F0A:yūn,yùn 0x7F0B:huì 0x7F0C:sī 0x7F0D:duǒ 0x7F0E:duàn 0x7F0F:biàn,pián 0x7F10:xiàn 0x7F11:gōu 0x7F12:zhuì 0x7F13:huǎn 0x7F14:dì 0x7F15:lǚ 0x7F16:biān 0x7F17:mín 0x7F18:yuán 0x7F19:jìn 0x7F1A:fù 0x7F1B:rù 0x7F1C:zhěn 0x7F1D:fèng,féng 0x7F1E:cuī 0x7F1F:gǎo 0x7F20:chán 0x7F21:lí 0x7F22:yì 0x7F23:jiān 0x7F24:bīn 0x7F25:piāo,piǎo 0x7F26:màn 0x7F27:léi 0x7F28:yīng 0x7F29:suō,sù 0x7F2A:móu,miào,miù 0x7F2B:sāo 0x7F2C:xié 0x7F2D:liáo 0x7F2E:shàn 0x7F2F:zēng,zèng 0x7F30:jiāng 0x7F31:qiǎn 0x7F32:qiāo,sāo 0x7F33:huán 0x7F34:jiǎo,zhuó 0x7F35:zuǎn 0x7F36:fǒu 0x7F37:xiè 0x7F38:gāng 0x7F39:fǒu 0x7F3A:quē,kuǐ 0x7F3B:fǒu 0x7F3C:qi 0x7F3D:bō 0x7F3E:píng 0x7F3F:xiàng 0x7F40:zhao 0x7F41:gāng 0x7F42:yīng 0x7F43:yīng 0x7F44:qìng 0x7F45:xià 0x7F46:guàn 0x7F47:zūn 0x7F48:tán 0x7F49:chēng 0x7F4A:qì 0x7F4B:wèng 0x7F4C:yīng 0x7F4D:léi 0x7F4E:tán 0x7F4F:lú 0x7F50:guàn 0x7F51:wǎng 0x7F52:wǎng 0x7F53:gāng 0x7F54:wǎng,wáng 0x7F55:hǎn,hàn 0x7F56:luó 0x7F57:luó 0x7F58:fú 0x7F59:shēn 0x7F5A:fá 0x7F5B:gū 0x7F5C:zhǔ,dú 0x7F5D:jū,jiē 0x7F5E:máo 0x7F5F:gǔ 0x7F60:mín 0x7F61:gāng 0x7F62:bà,ba 0x7F63:guà 0x7F64:tí,kūn 0x7F65:juàn 0x7F66:fú 0x7F67:shèn 0x7F68:yǎn 0x7F69:zhào 0x7F6A:zuì 0x7F6B:guà,huà,guǎi 0x7F6C:zhuó 0x7F6D:yù 0x7F6E:zhì 0x7F6F:ǎn 0x7F70:fá 0x7F71:lǎn,nǎn 0x7F72:shǔ 0x7F73:sī 0x7F74:pí 0x7F75:mà 0x7F76:liǔ 0x7F77:bà,pí,pì,bǐ,ba,bǎi 0x7F78:fá 0x7F79:lí 0x7F7A:cháo 0x7F7B:wèi 0x7F7C:bì 0x7F7D:jì 0x7F7E:zēng 0x7F7F:chōng 0x7F80:liǔ 0x7F81:jī 0x7F82:juàn 0x7F83:mì 0x7F84:zhào 0x7F85:luó,luō,luo 0x7F86:pí 0x7F87:jī 0x7F88:jī 0x7F89:luán 0x7F8A:yáng 0x7F8B:mǐ,miē 0x7F8C:qiāng 0x7F8D:dá 0x7F8E:měi 0x7F8F:yáng,xiáng 0x7F90:yǒu 0x7F91:yǒu 0x7F92:fén 0x7F93:bā 0x7F94:gāo 0x7F95:yàng 0x7F96:gǔ 0x7F97:qiāng,yǒu 0x7F98:zāng 0x7F99:gāo,měi 0x7F9A:líng 0x7F9B:yì,xī 0x7F9C:zhù 0x7F9D:dī 0x7F9E:xiū 0x7F9F:qiǎng 0x7FA0:yí 0x7FA1:xiàn,yán,yí 0x7FA2:róng 0x7FA3:qún 0x7FA4:qún 0x7FA5:qiǎng,qiān 0x7FA6:huán 0x7FA7:suō,zuī 0x7FA8:xiàn 0x7FA9:yì,yí,xī 0x7FAA:yang 0x7FAB:qiāng,kàng 0x7FAC:qián,xián,yán 0x7FAD:yú 0x7FAE:gēng 0x7FAF:jié 0x7FB0:tāng 0x7FB1:yuán 0x7FB2:xī 0x7FB3:fán 0x7FB4:shān 0x7FB5:fén 0x7FB6:shān 0x7FB7:liǎn 0x7FB8:léi,lián 0x7FB9:gēng,láng 0x7FBA:nóu 0x7FBB:qiàng 0x7FBC:chàn 0x7FBD:yǔ,hù 0x7FBE:gòng 0x7FBF:yì 0x7FC0:chōng 0x7FC1:wēng,wěng 0x7FC2:fēn 0x7FC3:hóng 0x7FC4:chì 0x7FC5:chì 0x7FC6:cuì 0x7FC7:fú 0x7FC8:xiá 0x7FC9:běn 0x7FCA:yì 0x7FCB:lā 0x7FCC:yì 0x7FCD:pī,bì,pō 0x7FCE:líng 0x7FCF:liù,lù 0x7FD0:zhì 0x7FD1:qú 0x7FD2:xí 0x7FD3:xié 0x7FD4:xiáng 0x7FD5:xī 0x7FD6:xī 0x7FD7:ké 0x7FD8:qiào,qiáo 0x7FD9:huì 0x7FDA:huī 0x7FDB:xiāo,shū 0x7FDC:shà 0x7FDD:hóng 0x7FDE:jiāng 0x7FDF:dí,zhái 0x7FE0:cuì 0x7FE1:fěi 0x7FE2:dào,zhōu 0x7FE3:shà 0x7FE4:chì 0x7FE5:zhù 0x7FE6:jiǎn 0x7FE7:xuān 0x7FE8:chì 0x7FE9:piān 0x7FEA:zōng 0x7FEB:wán,wàn 0x7FEC:huī 0x7FED:hóu 0x7FEE:hé,lì 0x7FEF:hè,hào 0x7FF0:hàn 0x7FF1:áo 0x7FF2:piāo 0x7FF3:yì 0x7FF4:lián 0x7FF5:hóu,qú 0x7FF6:áo 0x7FF7:lín 0x7FF8:pěn 0x7FF9:qiào,qiáo 0x7FFA:áo 0x7FFB:fān 0x7FFC:yì 0x7FFD:huì 0x7FFE:xuān 0x7FFF:dào 0x8000:yào 0x8001:lǎo 0x8002:lǎo 0x8003:kǎo 0x8004:mào 0x8005:zhě 0x8006:qí,zhǐ,shì 0x8007:gǒu 0x8008:gǒu 0x8009:gǒu 0x800A:dié 0x800B:dié 0x800C:ér,néng 0x800D:shuǎ 0x800E:ruǎn,nuò 0x800F:nài,ér 0x8010:nài,néng 0x8011:duān,zhuān 0x8012:lěi 0x8013:tīng 0x8014:zǐ 0x8015:gēng 0x8016:chào 0x8017:hào,máo,mào 0x8018:yún 0x8019:bà,pá 0x801A:pī 0x801B:yí,chí 0x801C:sì 0x801D:qù,chú 0x801E:jiā 0x801F:jù 0x8020:huō 0x8021:chú 0x8022:lào 0x8023:lǔn,lún 0x8024:jí,jiè 0x8025:tāng,tǎng 0x8026:ǒu 0x8027:lóu 0x8028:nòu 0x8029:jiǎng 0x802A:pǎng 0x802B:zhá,zé 0x802C:lóu,lǒu 0x802D:jī 0x802E:lào 0x802F:huò 0x8030:yōu 0x8031:mò 0x8032:huái 0x8033:ěr,réng 0x8034:yì 0x8035:dīng 0x8036:yé,xié,yē 0x8037:dā,zhé 0x8038:sǒng 0x8039:qín 0x803A:yún,yíng 0x803B:chǐ 0x803C:dān 0x803D:dān 0x803E:hóng 0x803F:gěng 0x8040:zhí 0x8041:pàn 0x8042:niè 0x8043:dān 0x8044:zhěn 0x8045:chè 0x8046:líng 0x8047:zhēng 0x8048:yǒu 0x8049:wà,tuǐ,zhuó 0x804A:liáo,liú 0x804B:lóng 0x804C:zhí 0x804D:níng 0x804E:tiāo 0x804F:ér,nǜ 0x8050:yà 0x8051:tiē,zhé 0x8052:guā,guō 0x8053:xù 0x8054:lián 0x8055:hào 0x8056:shèng 0x8057:liè 0x8058:pìn,pìng 0x8059:jīng 0x805A:jù 0x805B:bǐ 0x805C:dǐ 0x805D:guó 0x805E:wén,wèn 0x805F:xù 0x8060:pīng 0x8061:cōng 0x8062:dìng 0x8063:ní 0x8064:tíng 0x8065:jǔ 0x8066:cōng 0x8067:kuī 0x8068:lián 0x8069:kuì 0x806A:cōng 0x806B:lián 0x806C:wěng 0x806D:kuì 0x806E:lián 0x806F:lián 0x8070:cōng 0x8071:áo,yóu 0x8072:shēng 0x8073:sǒng 0x8074:tīng 0x8075:kuì 0x8076:niè,zhé,shè,yè 0x8077:zhí,tè 0x8078:dān 0x8079:níng 0x807A:qié 0x807B:nǐ,jiàn 0x807C:tīng 0x807D:tīng,tìng 0x807E:lóng 0x807F:yù 0x8080:yù 0x8081:zhào 0x8082:sì 0x8083:sù 0x8084:yì,sì 0x8085:sù 0x8086:sì,tì 0x8087:zhào 0x8088:zhào 0x8089:ròu,rù 0x808A:yì 0x808B:lē,lèi,jīn 0x808C:jī,jì 0x808D:qiú 0x808E:kěn 0x808F:cào 0x8090:gē,qì 0x8091:bó,dí 0x8092:huàn 0x8093:huāng 0x8094:chǐ 0x8095:rèn 0x8096:xiào,xiāo 0x8097:rǔ 0x8098:zhǒu 0x8099:yuàn 0x809A:dù,dǔ 0x809B:gāng 0x809C:róng,chēn 0x809D:gān 0x809E:chā 0x809F:wò 0x80A0:cháng 0x80A1:gǔ 0x80A2:zhī,shì 0x80A3:hán,hàn,qín 0x80A4:fū 0x80A5:féi,bǐ 0x80A6:fén 0x80A7:pēi 0x80A8:pàng,pāng,fēng 0x80A9:jiān,xián 0x80AA:fáng 0x80AB:zhūn,chún,tún,zhuō 0x80AC:yóu 0x80AD:nà,nù 0x80AE:āng,háng,gāng 0x80AF:kěn 0x80B0:rán 0x80B1:gōng 0x80B2:yù,zhòu,yō 0x80B3:wěn 0x80B4:yáo 0x80B5:qí 0x80B6:pí,bì 0x80B7:qiǎn,xù 0x80B8:xī,bì 0x80B9:xī 0x80BA:fèi,pèi 0x80BB:kěn 0x80BC:jǐng 0x80BD:tài 0x80BE:shèn 0x80BF:zhǒng 0x80C0:zhàng 0x80C1:xié 0x80C2:shèn,shēn,chēn 0x80C3:wèi 0x80C4:zhòu 0x80C5:dié 0x80C6:dǎn,tán,tǎn,dá 0x80C7:fèi,bì,fěi 0x80C8:bá 0x80C9:bó 0x80CA:qú 0x80CB:tián 0x80CC:bèi,bēi 0x80CD:guā,gū,hù 0x80CE:tāi 0x80CF:zǐ,fèi 0x80D0:fěi 0x80D1:zhī 0x80D2:nì 0x80D3:píng,pēng 0x80D4:zì,cí,jí 0x80D5:fǔ,fū,fú,zhǒu 0x80D6:pàng,pàn,pán 0x80D7:zhēn,zhěn,zhūn 0x80D8:xián 0x80D9:zuò 0x80DA:pēi 0x80DB:jiǎ 0x80DC:shèng,xīng,qìng,shēng 0x80DD:zhī,chī,dì 0x80DE:bāo,páo,pào 0x80DF:mǔ 0x80E0:qū 0x80E1:hú 0x80E2:kē 0x80E3:chǐ 0x80E4:yìn 0x80E5:xū,xǔ 0x80E6:yāng 0x80E7:lóng 0x80E8:dòng 0x80E9:kǎ 0x80EA:lú 0x80EB:jìng 0x80EC:nǔ,nǚ 0x80ED:yān 0x80EE:pāng 0x80EF:kuà,kuǎ 0x80F0:yí 0x80F1:guāng 0x80F2:hǎi,gāi,gǎi 0x80F3:gē,gé,gā 0x80F4:dòng 0x80F5:chī,zhì 0x80F6:jiāo,xiáo 0x80F7:xiōng 0x80F8:xiōng 0x80F9:ér 0x80FA:àn,è 0x80FB:héng 0x80FC:pián 0x80FD:néng,tái,nái,nài,xióng 0x80FE:zì 0x80FF:guī,kuì 0x8100:chéng,zhēng,zhèng 0x8101:tiǎo 0x8102:zhī,zhǐ 0x8103:cuì 0x8104:méi 0x8105:xié,xiàn,xī 0x8106:cuì 0x8107:xié 0x8108:mài,mò 0x8109:mài,mò 0x810A:jí,jǐ 0x810B:xié 0x810C:nin 0x810D:kuài 0x810E:sà 0x810F:zàng,zāng 0x8110:qí 0x8111:nǎo 0x8112:mǐ 0x8113:nóng 0x8114:luán,jī 0x8115:wàn,wèn 0x8116:bó,bō 0x8117:wěn 0x8118:wǎn,huàn 0x8119:xiū 0x811A:jiǎo,jué 0x811B:jìng,kēng 0x811C:yǒu 0x811D:hēng 0x811E:cuǒ,qiē 0x811F:liè,luán,pāo 0x8120:shān,chān 0x8121:tǐng 0x8122:méi 0x8123:chún 0x8124:shèn 0x8125:qiǎn,qū,jié 0x8126:de,tè,te 0x8127:juān,zuī 0x8128:cù,jí 0x8129:xiū,yǒu,tiáo,xiāo 0x812A:xìn,chī 0x812B:tuō 0x812C:pāo 0x812D:chéng 0x812E:něi,tuǐ 0x812F:pú,fǔ 0x8130:dòu 0x8131:tuō,tuì 0x8132:niào 0x8133:nǎo 0x8134:pǐ 0x8135:gǔ 0x8136:luó 0x8137:lì 0x8138:liǎn 0x8139:zhàng,cháng 0x813A:cuì,suì 0x813B:jiē 0x813C:liǎng,lǎng 0x813D:shuí 0x813E:pí,pái,bì,pì 0x813F:biāo,biào,biǎo 0x8140:lún 0x8141:pián 0x8142:lěi,guò,huà 0x8143:kuì,quān,quán,juàn 0x8144:chuí,hóu,chuái 0x8145:dàn 0x8146:tiǎn 0x8147:něi 0x8148:jīng 0x8149:nái 0x814A:là,xī 0x814B:yè 0x814C:yān,ā,āng 0x814D:rèn,diàn 0x814E:shèn 0x814F:chuò,zhuì 0x8150:fǔ 0x8151:fǔ 0x8152:jū 0x8153:féi 0x8154:qiāng,kòng 0x8155:wàn 0x8156:dòng 0x8157:pí 0x8158:guó 0x8159:zōng 0x815A:dìng 0x815B:wò 0x815C:méi 0x815D:ní,ruǎn,nào,nèn,ér 0x815E:zhuàn,dùn,tú 0x815F:chì 0x8160:còu 0x8161:luó 0x8162:ǒu 0x8163:dì 0x8164:ān 0x8165:xīng 0x8166:nǎo,nào 0x8167:shù,yú 0x8168:shuàn 0x8169:nǎn 0x816A:yùn 0x816B:zhǒng 0x816C:róu 0x816D:è 0x816E:sāi 0x816F:tú,dùn 0x8170:yāo 0x8171:jiàn,qián 0x8172:wěi 0x8173:jiǎo,jué 0x8174:yú 0x8175:jiā 0x8176:duàn 0x8177:bì 0x8178:cháng 0x8179:fù 0x817A:xiàn 0x817B:nì 0x817C:miǎn 0x817D:wà 0x817E:téng 0x817F:tuǐ 0x8180:bǎng,páng,pāng,bàng,pǎng 0x8181:qiǎn,xiàn,yán 0x8182:lǚ 0x8183:wà 0x8184:shòu 0x8185:táng 0x8186:sù 0x8187:zhuì 0x8188:gé 0x8189:yì 0x818A:bó,pò,liè 0x818B:liáo 0x818C:jí 0x818D:pí 0x818E:xié 0x818F:gāo,gào 0x8190:lǚ 0x8191:bìn 0x8192:ōu 0x8193:cháng 0x8194:lù,biāo 0x8195:guó,huò 0x8196:pāng 0x8197:chuái 0x8198:biāo,piǎo 0x8199:jiǎng 0x819A:fū,lú 0x819B:táng,tāng 0x819C:mó 0x819D:xī 0x819E:zhuān,zhuǎn,chuǎn,chún 0x819F:lǜ 0x81A0:jiāo,jiǎo,háo,nǎo 0x81A1:yìng 0x81A2:lǘ 0x81A3:zhì 0x81A4:xuě 0x81A5:cūn 0x81A6:lìn,liǎn 0x81A7:tóng 0x81A8:péng,pèng 0x81A9:nì 0x81AA:chuài,zhà,zhài 0x81AB:liáo,liǎo 0x81AC:cuì 0x81AD:guī,kuì,duì 0x81AE:xiāo 0x81AF:tēng,tún 0x81B0:fán,pán 0x81B1:zhí 0x81B2:jiāo 0x81B3:shàn 0x81B4:hū,wǔ,méi 0x81B5:cuì 0x81B6:rùn 0x81B7:xiāng 0x81B8:suǐ,wěi 0x81B9:fèn 0x81BA:yīng 0x81BB:shān,dàn 0x81BC:zhuā 0x81BD:dǎn 0x81BE:kuài 0x81BF:nóng 0x81C0:tún 0x81C1:lián 0x81C2:bì,bei 0x81C3:yōng 0x81C4:jué,jū 0x81C5:chù 0x81C6:yì,yǐ 0x81C7:juǎn 0x81C8:là,gé 0x81C9:liǎn 0x81CA:sāo,sào 0x81CB:tún 0x81CC:gǔ 0x81CD:qí 0x81CE:cuì 0x81CF:bìn 0x81D0:xūn 0x81D1:nào,rú,ér,nèn,nuǎn 0x81D2:wò,yuè 0x81D3:zàng 0x81D4:xiàn 0x81D5:biāo 0x81D6:xìng 0x81D7:kuān 0x81D8:là,liè 0x81D9:yān 0x81DA:lú,lǚ 0x81DB:huò 0x81DC:zā 0x81DD:luǒ 0x81DE:qú 0x81DF:zàng 0x81E0:luán 0x81E1:ní,luán 0x81E2:zā,zān 0x81E3:chén 0x81E4:qiān,xián,qìn 0x81E5:wò 0x81E6:guàng,jiǒng 0x81E7:zāng,cáng,zàng 0x81E8:lín,lìn 0x81E9:guǎng,jiǒng 0x81EA:zì 0x81EB:jiǎo 0x81EC:niè 0x81ED:chòu,xiù 0x81EE:jì 0x81EF:gāo 0x81F0:chòu 0x81F1:mián,biān 0x81F2:niè 0x81F3:zhì,dié 0x81F4:zhì,zhuì 0x81F5:gé 0x81F6:jiàn 0x81F7:dié,zhí 0x81F8:zhī,jìn 0x81F9:xiū 0x81FA:tái 0x81FB:zhēn 0x81FC:jiù 0x81FD:xiàn 0x81FE:yú,yǔ,yǒng,kuì 0x81FF:chā 0x8200:yǎo 0x8201:yú 0x8202:chōng,chuāng,zhōng 0x8203:xì 0x8204:xì,què,tuō 0x8205:jiù 0x8206:yú 0x8207:yǔ,yú,yù 0x8208:xìng,xīng,xìn 0x8209:jǔ 0x820A:jiù 0x820B:xìn 0x820C:shé,guā 0x820D:shě,shè,shì 0x820E:shè 0x820F:jiǔ 0x8210:shì 0x8211:tān 0x8212:shū,yù 0x8213:shì 0x8214:tiǎn,tān 0x8215:tàn 0x8216:pù 0x8217:pù 0x8218:guǎn 0x8219:huà,qì 0x821A:tiàn 0x821B:chuǎn 0x821C:shùn 0x821D:xiá 0x821E:wǔ 0x821F:zhōu 0x8220:dāo 0x8221:chuán,xiāng 0x8222:shān 0x8223:yǐ 0x8224:fán 0x8225:pā 0x8226:tài 0x8227:fán 0x8228:bǎn 0x8229:chuán,fán 0x822A:háng 0x822B:fǎng 0x822C:bān,pán,bǎn,bō 0x822D:bǐ 0x822E:lú 0x822F:zhōng 0x8230:jiàn 0x8231:cāng 0x8232:líng 0x8233:zhú,zhǒu 0x8234:zé 0x8235:duò 0x8236:bó 0x8237:xián 0x8238:gě 0x8239:chuán 0x823A:xiá 0x823B:lú 0x823C:qióng,hóng 0x823D:páng,féng 0x823E:xī 0x823F:kuā 0x8240:fú 0x8241:zào 0x8242:féng 0x8243:lí 0x8244:shāo,shào 0x8245:yú 0x8246:láng 0x8247:tǐng 0x8248:yù 0x8249:wěi 0x824A:bó 0x824B:měng 0x824C:niàn,qiàn 0x824D:jū 0x824E:huáng 0x824F:shǒu 0x8250:kè,jiè,zōng 0x8251:biàn 0x8252:mù,mò 0x8253:dié 0x8254:dào 0x8255:bàng 0x8256:chā 0x8257:yì 0x8258:sōu 0x8259:cāng 0x825A:cáo 0x825B:lóu 0x825C:dài 0x825D:xuě 0x825E:yào,tiào 0x825F:chōng,zhuàng,tóng 0x8260:dēng 0x8261:dāng 0x8262:qiáng 0x8263:lǔ 0x8264:yǐ 0x8265:jí 0x8266:jiàn 0x8267:huò,wò 0x8268:méng 0x8269:qí 0x826A:lǔ 0x826B:lú 0x826C:chán 0x826D:shuāng 0x826E:gěn,gèn,hén 0x826F:liáng,liǎng 0x8270:jiān 0x8271:jiān 0x8272:sè,shǎi 0x8273:yàn 0x8274:fú,bó,pèi 0x8275:pīng 0x8276:yàn 0x8277:yàn 0x8278:cǎo 0x8279:cǎo 0x827A:yì 0x827B:lè,jí 0x827C:tīng,dǐng 0x827D:jiāo,qiú 0x827E:ài,yì 0x827F:nǎi,réng,rèng 0x8280:tiáo 0x8281:jiāo 0x8282:jié,jiē 0x8283:péng 0x8284:wán 0x8285:yì 0x8286:chāi,chā 0x8287:mián 0x8288:mǐ 0x8289:gān,gǎn 0x828A:qiān,qiàn 0x828B:yù,yú,xū,yǔ 0x828C:yù 0x828D:sháo,xiào,què,dì 0x828E:qiōng,xiōng 0x828F:dù 0x8290:hù,xià 0x8291:qǐ 0x8292:máng,huāng,huǎng,wáng 0x8293:zì,zǐ,zī 0x8294:huì,hū 0x8295:suī 0x8296:zhì 0x8297:xiāng 0x8298:pí,bì 0x8299:fú 0x829A:tún,chūn 0x829B:wěi 0x829C:wú 0x829D:zhī 0x829E:qì 0x829F:shān,wěi 0x82A0:wén 0x82A1:qiàn 0x82A2:rén 0x82A3:fú,fǒu,fū 0x82A4:kōu 0x82A5:jiè,gài 0x82A6:lú,hù,lǔ 0x82A7:xù,zhù 0x82A8:jī 0x82A9:qín,yín 0x82AA:qí,chí 0x82AB:yán,yuán 0x82AC:fēn 0x82AD:bā,pā 0x82AE:ruì,ruò 0x82AF:xīn,xìn 0x82B0:jì 0x82B1:huā 0x82B2:huā 0x82B3:fāng 0x82B4:wù,hū 0x82B5:jué 0x82B6:gǒu 0x82B7:zhǐ 0x82B8:yún,yùn 0x82B9:qín 0x82BA:ǎo 0x82BB:chú,zōu 0x82BC:mào 0x82BD:yá 0x82BE:fèi,fú 0x82BF:rèng 0x82C0:háng 0x82C1:cōng 0x82C2:yín 0x82C3:yǒu 0x82C4:biàn 0x82C5:yì 0x82C6:qiē 0x82C7:wěi 0x82C8:lì 0x82C9:pǐ 0x82CA:è 0x82CB:xiàn 0x82CC:cháng 0x82CD:cāng 0x82CE:zhù 0x82CF:sū 0x82D0:tí,dì 0x82D1:yuàn,yuān,yù,yùn 0x82D2:rǎn 0x82D3:líng,lián 0x82D4:tái,tāi 0x82D5:sháo,tiáo 0x82D6:dí 0x82D7:miáo 0x82D8:qǐng 0x82D9:lì,jī 0x82DA:yòng 0x82DB:kē,hē 0x82DC:mù 0x82DD:bèi 0x82DE:bāo,páo,biāo 0x82DF:gǒu,gōu 0x82E0:mín 0x82E1:yǐ 0x82E2:yǐ 0x82E3:jù,qǔ 0x82E4:piě,pī 0x82E5:ruò,ré,rè,rě 0x82E6:kǔ,gǔ,hù 0x82E7:níng,zhù 0x82E8:nǐ 0x82E9:bó,pā 0x82EA:bǐng 0x82EB:shān,shàn,tiān,chān 0x82EC:xiú 0x82ED:yǎo 0x82EE:xiān 0x82EF:běn 0x82F0:hóng 0x82F1:yīng,yāng 0x82F2:zhǎ,zhà,zuó 0x82F3:dōng 0x82F4:jū,chá,zhǎ,zū,jiē,bāo,xié 0x82F5:dié 0x82F6:nié,niè 0x82F7:gān 0x82F8:hū 0x82F9:píng,pēng 0x82FA:méi 0x82FB:fú,pú 0x82FC:shēng,ruí 0x82FD:gū,guā 0x82FE:bì,bié,mì 0x82FF:wèi 0x8300:fú,bó,fèi,bèi,bì 0x8301:zhuó,zhú 0x8302:mào 0x8303:fàn 0x8304:jiā,qié 0x8305:máo 0x8306:máo,mǎo 0x8307:bá,pèi,fèi 0x8308:cí,zǐ,cǐ,chái 0x8309:mò 0x830A:zī 0x830B:zhǐ 0x830C:chí 0x830D:jì 0x830E:jīng 0x830F:lóng 0x8310:cōng 0x8311:niǎo 0x8312:yuán 0x8313:xué 0x8314:yíng 0x8315:qióng 0x8316:gé,luò 0x8317:míng 0x8318:lì 0x8319:róng 0x831A:yìn 0x831B:gèn,jiàn 0x831C:qiàn,xī 0x831D:chǎi,zhǐ 0x831E:chén 0x831F:yù,wěi 0x8320:hāo,xiū,kòu 0x8321:zì 0x8322:liè 0x8323:wú 0x8324:jì,duō 0x8325:guī,guì 0x8326:cì 0x8327:jiǎn,chóng 0x8328:cí 0x8329:gòu 0x832A:guāng 0x832B:máng,huǎng 0x832C:chá,chí 0x832D:jiāo,xiào,qiào 0x832E:jiāo,niǎo 0x832F:fú 0x8330:yú 0x8331:zhū 0x8332:zī,cí 0x8333:jiāng 0x8334:huí 0x8335:yīn 0x8336:chá 0x8337:fá,pèi,bó,bá 0x8338:rōng,róng,rǒng 0x8339:rú 0x833A:chōng 0x833B:mǎng,mǔ 0x833C:tóng 0x833D:zhòng 0x833E:qiān 0x833F:zhú 0x8340:xún 0x8341:huán 0x8342:fū 0x8343:quán,chuò 0x8344:gāi 0x8345:dā,dá,tà 0x8346:jīng 0x8347:xìng 0x8348:chuǎn 0x8349:cǎo,zào 0x834A:jīng 0x834B:ér 0x834C:àn 0x834D:qiáo 0x834E:chí 0x834F:rěn 0x8350:jiàn 0x8351:tí,yí 0x8352:huāng,huǎng,kāng,huáng 0x8353:píng,pēng 0x8354:lì 0x8355:jīn 0x8356:lǎo,chā 0x8357:shù 0x8358:zhuāng 0x8359:dá 0x835A:jiá 0x835B:ráo 0x835C:bì 0x835D:cè 0x835E:qiáo 0x835F:huì 0x8360:jì,qí 0x8361:dàng 0x8362:zì 0x8363:róng 0x8364:hūn,xūn 0x8365:xíng,yíng 0x8366:luò 0x8367:yíng 0x8368:xún,qián 0x8369:jìn 0x836A:sūn 0x836B:yīn,yìn 0x836C:mǎi 0x836D:hóng 0x836E:zhòu 0x836F:yào 0x8370:dù 0x8371:wěi,wèi 0x8372:lí 0x8373:dòu 0x8374:fū 0x8375:rěn 0x8376:yín 0x8377:hé,hè,hē 0x8378:bí 0x8379:bù,pú 0x837A:yǔn,yún 0x837B:dí 0x837C:tú,chá,yé,shū 0x837D:suī,wěi 0x837E:suī 0x837F:chéng 0x8380:chén,nóng 0x8381:wú 0x8382:bié 0x8383:xī 0x8384:gěng 0x8385:lì 0x8386:pú,fǔ 0x8387:zhù 0x8388:mò 0x8389:lì,lí,chí 0x838A:zhuāng 0x838B:zuó,jí 0x838C:tuō 0x838D:qiú 0x838E:shā,suō,suī 0x838F:suō 0x8390:chén 0x8391:péng,fēng 0x8392:jǔ 0x8393:méi 0x8394:méng,xí,qǐng 0x8395:xìng 0x8396:jīng,yīng 0x8397:chē 0x8398:shēn,xīn 0x8399:jūn 0x839A:yán 0x839B:tíng,tǐng 0x839C:yóu,diào,dí 0x839D:cuò 0x839E:guǎn,guān,wǎn 0x839F:hàn 0x83A0:yǒu,xiù 0x83A1:cuò 0x83A2:jiá 0x83A3:wáng 0x83A4:sù,yóu 0x83A5:niǔ,ròu 0x83A6:shāo,xiāo 0x83A7:xiàn,wàn 0x83A8:làng,láng,liáng 0x83A9:fú,piǎo 0x83AA:é 0x83AB:mò,mù 0x83AC:wèn,wǎn,miǎn 0x83AD:jié 0x83AE:nán 0x83AF:mù 0x83B0:kǎn 0x83B1:lái 0x83B2:lián 0x83B3:shí,shì 0x83B4:wō 0x83B5:tù 0x83B6:xiān 0x83B7:huò 0x83B8:yóu 0x83B9:yíng 0x83BA:yīng 0x83BB:gòng 0x83BC:chún 0x83BD:mǎng,máng 0x83BE:mǎng 0x83BF:cì 0x83C0:wǎn,yù,yùn 0x83C1:jīng 0x83C2:dì 0x83C3:qú 0x83C4:dōng 0x83C5:jiān,guān 0x83C6:zōu,cuán,chù,cóng 0x83C7:gū 0x83C8:lā 0x83C9:lù,lǜ 0x83CA:jú 0x83CB:wèi 0x83CC:jūn,jùn 0x83CD:niè,rěn 0x83CE:kūn 0x83CF:hé,gē 0x83D0:pú 0x83D1:zāi,zī,zì 0x83D2:gǎo 0x83D3:guǒ 0x83D4:fú 0x83D5:lún 0x83D6:chāng 0x83D7:chóu 0x83D8:sōng 0x83D9:chuí 0x83DA:zhàn 0x83DB:mén 0x83DC:cài 0x83DD:bá 0x83DE:lí 0x83DF:tú,tù 0x83E0:bō 0x83E1:hàn 0x83E2:bào 0x83E3:qìn 0x83E4:juǎn 0x83E5:xī,sī 0x83E6:qín 0x83E7:dǐ 0x83E8:jiē,shà 0x83E9:pú,bèi,bó 0x83EA:dàng 0x83EB:jǐn 0x83EC:qiáo,zhǎo 0x83ED:tái,zhī,chí 0x83EE:gēng 0x83EF:huá,huā,huà,kuā 0x83F0:gū 0x83F1:líng 0x83F2:fēi,fěi,fèi 0x83F3:qín,qīn,jīn 0x83F4:ān,yǎn 0x83F5:wǎng 0x83F6:běng 0x83F7:zhǒu 0x83F8:yān,yū,yù 0x83F9:jū,zū,jù 0x83FA:jiān 0x83FB:lǐn 0x83FC:tǎn 0x83FD:shū,jiāo 0x83FE:tián,tiàn 0x83FF:dào,dǎo 0x8400:hǔ 0x8401:qí,jī 0x8402:hé 0x8403:cuì 0x8404:táo 0x8405:chūn 0x8406:bì,pì,bēi,bá 0x8407:cháng 0x8408:huán 0x8409:fèi,féi,fú 0x840A:lái 0x840B:qī 0x840C:méng,míng 0x840D:píng 0x840E:wēi,wèi,wěi 0x840F:dàn 0x8410:shà 0x8411:huán,zhuī 0x8412:yǎn,juàn 0x8413:yí 0x8414:tiáo 0x8415:qí 0x8416:wǎn 0x8417:cè 0x8418:nài 0x8419:zhěn 0x841A:tuò 0x841B:jiū 0x841C:tiē 0x841D:luó 0x841E:bì 0x841F:yì 0x8420:pān 0x8421:bo 0x8422:pāo 0x8423:dìng 0x8424:yíng 0x8425:yíng 0x8426:yíng 0x8427:xiāo 0x8428:sà 0x8429:qiū,jiāo 0x842A:kē 0x842B:xiàng 0x842C:wàn 0x842D:yǔ,jǔ 0x842E:yú,yǔ,yù 0x842F:fù,bèi 0x8430:liàn 0x8431:xuān 0x8432:xuān 0x8433:nǎn,nán 0x8434:cè 0x8435:wō 0x8436:chǔn 0x8437:xiāo,shāo,shuò 0x8438:yú 0x8439:biǎn,biān,pián 0x843A:mào,mù 0x843B:ān 0x843C:è 0x843D:luò,là,lào,luō 0x843E:yíng 0x843F:kuò,huó 0x8440:kuò 0x8441:jiāng 0x8442:miǎn 0x8443:zuò,zé 0x8444:zuò 0x8445:zū 0x8446:bǎo,bāo 0x8447:róu,rǒu 0x8448:xǐ 0x8449:yè,shè 0x844A:ān 0x844B:qú 0x844C:jiān 0x844D:fú 0x844E:lǜ 0x844F:jīng 0x8450:pén,fén 0x8451:fēng,fèng 0x8452:hóng 0x8453:hóng 0x8454:hóu 0x8455:yàn 0x8456:tū 0x8457:zhù,zhe,chú,zhuó,zhāo,zháo 0x8458:zī 0x8459:xiāng 0x845A:rèn,shèn 0x845B:gé,gě 0x845C:qiā 0x845D:qíng,jìng 0x845E:mǐ 0x845F:huáng 0x8460:shēn,shān 0x8461:pú,bèi 0x8462:gài 0x8463:dǒng,zhǒng 0x8464:zhòu 0x8465:jiàn,qián 0x8466:wěi 0x8467:bó 0x8468:wēi 0x8469:pā 0x846A:jì 0x846B:hú 0x846C:zàng 0x846D:jiā,xiá 0x846E:duàn 0x846F:yào 0x8470:suī,jùn,suǒ 0x8471:cōng,chuāng 0x8472:quán 0x8473:wēi 0x8474:zhēn,qián 0x8475:kuí 0x8476:tíng,dǐng 0x8477:hūn,xūn 0x8478:xǐ 0x8479:shī 0x847A:qì 0x847B:lán 0x847C:zōng 0x847D:yāo,yǎo 0x847E:yuān 0x847F:méi 0x8480:yūn 0x8481:shù 0x8482:dì 0x8483:zhuàn 0x8484:guān 0x8485:rǎn 0x8486:xuē 0x8487:chǎn 0x8488:kǎi 0x8489:kuì 0x848A:huā 0x848B:jiǎng 0x848C:lóu 0x848D:wěi,huā,kuī,é 0x848E:pài 0x848F:you 0x8490:sōu,huì 0x8491:yīn 0x8492:shī 0x8493:chún 0x8494:shí,shì 0x8495:yūn 0x8496:zhēn 0x8497:làng 0x8498:rú,ná 0x8499:méng,měng,mēng 0x849A:lì 0x849B:quē 0x849C:suàn 0x849D:yuán,huán 0x849E:lì 0x849F:jǔ 0x84A0:xī 0x84A1:bàng,páng 0x84A2:chú 0x84A3:xú,shú 0x84A4:tú 0x84A5:liú 0x84A6:huò,wò 0x84A7:diǎn 0x84A8:qiàn 0x84A9:zū,jù,jí 0x84AA:pò 0x84AB:cuó 0x84AC:yuān 0x84AD:chú 0x84AE:yù 0x84AF:kuǎi,kuài 0x84B0:pán 0x84B1:pú 0x84B2:pú,bó 0x84B3:nà 0x84B4:shuò 0x84B5:xí,xì 0x84B6:fén 0x84B7:yún 0x84B8:zhēng 0x84B9:jiān 0x84BA:jí 0x84BB:ruò 0x84BC:cāng,cǎng 0x84BD:ēn 0x84BE:mí 0x84BF:hāo,gǎo 0x84C0:sūn 0x84C1:zhēn,qín 0x84C2:míng,mì 0x84C3:sōu,sǒu 0x84C4:xù 0x84C5:liú 0x84C6:xí 0x84C7:gǔ,gū 0x84C8:láng 0x84C9:róng 0x84CA:wěng 0x84CB:gài,gě 0x84CC:cuò 0x84CD:shī 0x84CE:táng 0x84CF:luǒ 0x84D0:rù 0x84D1:suō,suī 0x84D2:xuān 0x84D3:bèi 0x84D4:yǎo,zhuó 0x84D5:guì 0x84D6:bì 0x84D7:zǒng 0x84D8:gǔn 0x84D9:zuò 0x84DA:tiáo 0x84DB:cè 0x84DC:pèi 0x84DD:lán,la 0x84DE:dàn 0x84DF:jì 0x84E0:lí 0x84E1:shēn 0x84E2:lǎng 0x84E3:yù 0x84E4:líng 0x84E5:yíng 0x84E6:mò 0x84E7:diào,tiáo,dí 0x84E8:tiáo,xiū 0x84E9:mǎo 0x84EA:tōng 0x84EB:chù,zhú 0x84EC:péng,pèng 0x84ED:ān 0x84EE:lián,liǎn 0x84EF:cōng,zǒng,sǒng 0x84F0:xǐ 0x84F1:píng 0x84F2:qiū,ōu,xū,fū 0x84F3:jǐn 0x84F4:chún,tuán 0x84F5:jié 0x84F6:wéi 0x84F7:tuī 0x84F8:cáo 0x84F9:yù 0x84FA:yì 0x84FB:zí,jú 0x84FC:liǎo,lù,lǎo,liǔ 0x84FD:bì 0x84FE:lǔ 0x84FF:xu,sù 0x8500:bù 0x8501:zhāng 0x8502:léi 0x8503:qiáng,jiàng 0x8504:màn 0x8505:yán 0x8506:líng 0x8507:jì,xì 0x8508:biāo,piǎo,biào 0x8509:gǔn 0x850A:hǎn 0x850B:dí 0x850C:sù 0x850D:lù,cū 0x850E:shè 0x850F:shāng 0x8510:dí 0x8511:miè 0x8512:xūn 0x8513:màn,wàn,mán 0x8514:bó,bo 0x8515:dì,dài,chài 0x8516:cuó,cǔ,zhā 0x8517:zhè 0x8518:shēn,sān,sǎn 0x8519:xuàn 0x851A:wèi,yù 0x851B:hú 0x851C:áo 0x851D:mǐ 0x851E:lóu,lǚ,jù,liǔ 0x851F:cù,còu,chuò 0x8520:zhōng 0x8521:cài,sà,cā 0x8522:pó,bò 0x8523:jiǎng,jiāng 0x8524:mì 0x8525:cōng 0x8526:niǎo 0x8527:huì 0x8528:juàn,jùn 0x8529:yín 0x852A:jiàn,jiān,shān 0x852B:niān,yān,yàn 0x852C:shū,shǔ 0x852D:yīn,yìn 0x852E:guó 0x852F:chén 0x8530:hù 0x8531:shā 0x8532:kòu 0x8533:qiàn 0x8534:má 0x8535:zāng,cáng 0x8536:zé 0x8537:qiáng 0x8538:dōu 0x8539:liǎn 0x853A:lìn 0x853B:kòu 0x853C:ǎi 0x853D:bì,biē,piē 0x853E:lí 0x853F:wěi 0x8540:jí 0x8541:qián,tán,xún 0x8542:shèng 0x8543:fān,fán,pí,bō 0x8544:méng 0x8545:ǒu 0x8546:chǎn 0x8547:diǎn 0x8548:xùn,tán 0x8549:jiāo,qiáo,qiāo 0x854A:ruǐ,juǎn 0x854B:ruǐ 0x854C:lěi 0x854D:yú 0x854E:qiáo,jiāo 0x854F:chú 0x8550:huá 0x8551:jiān 0x8552:mǎi 0x8553:yún 0x8554:bāo 0x8555:yóu 0x8556:qú 0x8557:lù 0x8558:ráo,yáo 0x8559:huì 0x855A:è 0x855B:tí 0x855C:fěi 0x855D:jué,zuì 0x855E:zuì,jué,zhuó 0x855F:fà,fèi 0x8560:rú 0x8561:fén,fèi 0x8562:kuì,kuài 0x8563:shùn 0x8564:ruí 0x8565:yǎ 0x8566:xū 0x8567:fù 0x8568:jué 0x8569:dàng,tāng,tàng 0x856A:wú,wǔ 0x856B:dǒng 0x856C:sī 0x856D:xiāo 0x856E:xì 0x856F:lóng 0x8570:wēn,yùn 0x8571:shāo 0x8572:qí 0x8573:jiān 0x8574:yùn 0x8575:sūn 0x8576:líng 0x8577:yù 0x8578:xiá 0x8579:wèng,yōng 0x857A:jí,qiè 0x857B:hóng,hòng 0x857C:sì 0x857D:nóng 0x857E:lěi 0x857F:xuān 0x8580:yùn 0x8581:yù 0x8582:xí,xiào 0x8583:hào 0x8584:báo,bó,bù,bò 0x8585:hāo 0x8586:ài 0x8587:wēi 0x8588:huì 0x8589:huì 0x858A:jì 0x858B:cí,zī 0x858C:xiāng,xiǎng 0x858D:wàn,luàn 0x858E:miè 0x858F:yì 0x8590:léng 0x8591:jiāng 0x8592:càn 0x8593:shēn 0x8594:qiáng,sè 0x8595:lián 0x8596:kē 0x8597:yuán 0x8598:dá 0x8599:tì,zhì 0x859A:tāng 0x859B:xuē 0x859C:bì,bò,bó,bài,pì 0x859D:zhān 0x859E:sūn 0x859F:xiān,liǎn,yán,kàn 0x85A0:fán 0x85A1:dǐng 0x85A2:xiè 0x85A3:gǔ 0x85A4:xiè 0x85A5:shǔ,zhú 0x85A6:jiàn 0x85A7:hāo,kǎo 0x85A8:hōng 0x85A9:sà 0x85AA:xīn 0x85AB:xūn 0x85AC:yào 0x85AD:bài 0x85AE:sǒu 0x85AF:shǔ 0x85B0:xūn 0x85B1:duì 0x85B2:pín 0x85B3:wěi,yuǎn 0x85B4:níng 0x85B5:chóu,zhòu,dào 0x85B6:mái,wō 0x85B7:rú 0x85B8:piáo 0x85B9:tái 0x85BA:jì,cí,qì,qí 0x85BB:zǎo 0x85BC:chén 0x85BD:zhēn 0x85BE:ěr 0x85BF:nǐ 0x85C0:yíng 0x85C1:gǎo 0x85C2:cóng,còng 0x85C3:xiāo,hào,hè 0x85C4:qí 0x85C5:fá 0x85C6:jiǎn 0x85C7:xù,yǔ,yú,yù,xū 0x85C8:kuí 0x85C9:jí,jiè 0x85CA:biǎn 0x85CB:diào,dí,zhuó 0x85CC:mì 0x85CD:lán,la 0x85CE:jìn 0x85CF:cáng,zàng,zāng 0x85D0:miǎo,mò 0x85D1:qióng 0x85D2:qiè 0x85D3:xiǎn 0x85D4:liáo 0x85D5:ǒu 0x85D6:xián,qiān 0x85D7:sù 0x85D8:lǘ 0x85D9:yì 0x85DA:xù 0x85DB:xiě 0x85DC:lí 0x85DD:yì 0x85DE:lǎ 0x85DF:lěi 0x85E0:jiào 0x85E1:dí 0x85E2:zhǐ 0x85E3:bēi 0x85E4:téng 0x85E5:yào,shuò,lüè 0x85E6:mò 0x85E7:huàn 0x85E8:biāo,pāo 0x85E9:fān,fán 0x85EA:sǒu,shǔ,còu 0x85EB:tán 0x85EC:tuī 0x85ED:qióng 0x85EE:qiáo 0x85EF:wèi 0x85F0:liú,liǔ 0x85F1:huì,huí 0x85F2:ōu 0x85F3:gǎo 0x85F4:yùn,wēn 0x85F5:bǎo 0x85F6:lì 0x85F7:shǔ,zhū 0x85F8:chú,zhū,zhā 0x85F9:ǎi 0x85FA:lìn 0x85FB:zǎo 0x85FC:xuān 0x85FD:qìn 0x85FE:lài 0x85FF:huò,hé 0x8600:tuò,zé 0x8601:wù,è 0x8602:ruǐ 0x8603:ruǐ 0x8604:qí,jī,qín 0x8605:héng 0x8606:lú,lǔ 0x8607:sū 0x8608:tuí 0x8609:méng,máng 0x860A:yùn 0x860B:píng,pín 0x860C:yǔ 0x860D:xūn 0x860E:jì 0x860F:jiōng 0x8610:xuān 0x8611:mó 0x8612:qiū 0x8613:sū 0x8614:jiōng 0x8615:péng 0x8616:niè,bò 0x8617:bò,bì 0x8618:ráng,xiāng,nāng 0x8619:yì 0x861A:xiǎn 0x861B:yú 0x861C:jú 0x861D:liǎn 0x861E:liǎn,xiān 0x861F:yǐn 0x8620:qiáng 0x8621:yīng 0x8622:lóng,lǒng,lòng 0x8623:tǒu 0x8624:huā 0x8625:yuè 0x8626:líng 0x8627:qú,jù 0x8628:yáo 0x8629:fán 0x862A:méi 0x862B:hàn,làn 0x862C:kuī,huǐ,guī 0x862D:lán 0x862E:jì 0x862F:dàng 0x8630:màn 0x8631:lèi 0x8632:léi 0x8633:huī 0x8634:fēng,sōng 0x8635:zhī 0x8636:wèi 0x8637:kuí 0x8638:zhàn 0x8639:huái 0x863A:lí 0x863B:jì 0x863C:mí 0x863D:lěi 0x863E:huài 0x863F:luó 0x8640:jī 0x8641:kuí 0x8642:lù 0x8643:jiān 0x8644:sà 0x8645:téng 0x8646:léi 0x8647:quǎn 0x8648:xiāo 0x8649:yì 0x864A:luán 0x864B:mén 0x864C:biē 0x864D:hū 0x864E:hǔ,hù 0x864F:lǔ 0x8650:nüè 0x8651:lǜ,bì 0x8652:sī,xī,tí,zhì 0x8653:xiāo 0x8654:qián 0x8655:chù,chǔ,jù 0x8656:hū,hú,hù 0x8657:xū 0x8658:cuó 0x8659:fú 0x865A:xū 0x865B:xū 0x865C:lǔ 0x865D:hǔ 0x865E:yú 0x865F:hào,háo 0x8660:jiāo,háo 0x8661:jù 0x8662:guó 0x8663:bào 0x8664:yán 0x8665:zhàn 0x8666:zhàn 0x8667:kuī 0x8668:bīn 0x8669:xì,sè 0x866A:shù 0x866B:chóng,huǐ 0x866C:qiú 0x866D:diāo,dāo 0x866E:jǐ,jī 0x866F:qiú 0x8670:dīng,chēng 0x8671:shī 0x8672:xiā 0x8673:jué 0x8674:zhé 0x8675:shé,yě 0x8676:yū 0x8677:hán,gān 0x8678:zǐ 0x8679:hóng,hòng,gòng,jiàng 0x867A:huī,huǐ 0x867B:méng 0x867C:gè 0x867D:suī 0x867E:xiā,há 0x867F:chài 0x8680:shí 0x8681:yǐ 0x8682:mǎ,mā,mà 0x8683:xiǎng 0x8684:fāng,bàng 0x8685:è 0x8686:bā 0x8687:chǐ 0x8688:qiān 0x8689:wén 0x868A:wén 0x868B:ruì 0x868C:bàng,pí,fēng,bèng 0x868D:pí 0x868E:yuè 0x868F:yuè 0x8690:jūn 0x8691:qí 0x8692:tóng 0x8693:yǐn 0x8694:qí,zhǐ 0x8695:cán,tiǎn 0x8696:yuán,wán 0x8697:jué,quē 0x8698:huí,huì,yóu 0x8699:qín,qián 0x869A:qí 0x869B:zhòng 0x869C:yá 0x869D:háo,cì 0x869E:mù 0x869F:wáng 0x86A0:fén 0x86A1:fén 0x86A2:háng 0x86A3:gōng,zhōng 0x86A4:zǎo,zhǎo 0x86A5:fù,fǔ 0x86A6:rán 0x86A7:jiè 0x86A8:fú 0x86A9:chī 0x86AA:dǒu 0x86AB:bào,páo 0x86AC:xiǎn 0x86AD:ní 0x86AE:dài 0x86AF:qiū 0x86B0:yóu,zhú 0x86B1:zhà 0x86B2:píng 0x86B3:chí,chī,dì 0x86B4:yòu,yǒu,niù 0x86B5:hé,kè 0x86B6:hān,hán 0x86B7:jù 0x86B8:lì 0x86B9:fù 0x86BA:rán,tiàn 0x86BB:zhá 0x86BC:gǒu,qú,xù 0x86BD:pí 0x86BE:pí,bǒ 0x86BF:xián 0x86C0:zhù 0x86C1:diāo 0x86C2:bié 0x86C3:bǐng 0x86C4:gū,gǔ 0x86C5:zhān 0x86C6:qū,jū 0x86C7:shé,yí,tuó,chí 0x86C8:tiě 0x86C9:líng 0x86CA:gǔ 0x86CB:dàn 0x86CC:gǔ 0x86CD:yíng 0x86CE:lì 0x86CF:chēng 0x86D0:qū 0x86D1:móu,máo 0x86D2:gé,luò 0x86D3:cì 0x86D4:huí 0x86D5:huí,huǐ 0x86D6:máng,bàng 0x86D7:fù 0x86D8:yáng,yǎng 0x86D9:wā,jué 0x86DA:liè 0x86DB:zhū 0x86DC:yī 0x86DD:xián 0x86DE:kuò,shé 0x86DF:jiāo 0x86E0:lì 0x86E1:yì,xǔ 0x86E2:píng 0x86E3:qī,jié,qiè 0x86E4:há,gé,hā,é 0x86E5:shé 0x86E6:yí 0x86E7:wǎng 0x86E8:mò 0x86E9:qióng,gǒng 0x86EA:qiè,ní 0x86EB:guǐ 0x86EC:qióng 0x86ED:zhì 0x86EE:mán 0x86EF:lǎo 0x86F0:zhé 0x86F1:jiá 0x86F2:náo 0x86F3:sī 0x86F4:qí 0x86F5:xīng 0x86F6:jiè 0x86F7:qiú 0x86F8:shāo,xiāo 0x86F9:yǒng 0x86FA:jiá 0x86FB:tuì 0x86FC:chē 0x86FD:bèi 0x86FE:é,yǐ 0x86FF:hàn 0x8700:shǔ 0x8701:xuán 0x8702:fēng 0x8703:shèn 0x8704:shèn,zhèn 0x8705:fǔ,pú 0x8706:xiàn,xiǎn 0x8707:zhē,zhé 0x8708:wú 0x8709:fú 0x870A:lí 0x870B:láng,liáng 0x870C:bì 0x870D:chú,yú 0x870E:yuān,xuān 0x870F:yǒu 0x8710:jié 0x8711:dàn 0x8712:yán,yàn,dàn 0x8713:tíng,diàn 0x8714:diàn 0x8715:tuì,yuè 0x8716:huí 0x8717:wō 0x8718:zhī 0x8719:sōng 0x871A:fēi,fěi,pèi,bèi 0x871B:jū 0x871C:mì 0x871D:qí 0x871E:qí 0x871F:yù 0x8720:jùn 0x8721:là,qù,zhà,jí 0x8722:měng,mèng 0x8723:qiāng 0x8724:sī,xī 0x8725:xī 0x8726:lún,lǔn 0x8727:lì 0x8728:dié 0x8729:tiáo,diào 0x872A:táo 0x872B:kūn 0x872C:hán 0x872D:hàn 0x872E:yù,guō 0x872F:bàng 0x8730:féi,fèi 0x8731:pí,miáo 0x8732:wēi,wěi 0x8733:dūn,tūn 0x8734:yì,xí 0x8735:yuān,yūn 0x8736:suò 0x8737:quán,juǎn 0x8738:qiǎn 0x8739:ruì,wèi 0x873A:ní 0x873B:qīng,jīng 0x873C:wèi,wěi,tóng 0x873D:liǎng 0x873E:guǒ,luǒ 0x873F:wān,wǎn 0x8740:dōng 0x8741:è 0x8742:bǎn 0x8743:dì,zhuō 0x8744:wǎng 0x8745:cán 0x8746:yǎng 0x8747:yíng 0x8748:guō 0x8749:chán 0x874A:dìng 0x874B:là 0x874C:kē 0x874D:jié,jí 0x874E:xiē,hé 0x874F:tíng 0x8750:mào 0x8751:xū,xiè 0x8752:mián 0x8753:yú 0x8754:jiē 0x8755:shí,lì,lóng 0x8756:xuān 0x8757:huáng 0x8758:yǎn 0x8759:biān,pián 0x875A:róu,náo 0x875B:wēi 0x875C:fù 0x875D:yuán,yuān 0x875E:mèi 0x875F:wèi 0x8760:fú 0x8761:rú,ruǎn 0x8762:xié 0x8763:yóu 0x8764:qiú,jiū,yóu 0x8765:máo,wú,wù 0x8766:xiā,há,jiǎ 0x8767:yīng 0x8768:shī 0x8769:chóng,zhōng 0x876A:tāng 0x876B:zhū 0x876C:zōng 0x876D:tí,chí 0x876E:fù 0x876F:yuán 0x8770:kuí 0x8771:méng 0x8772:là 0x8773:dú,dài 0x8774:hú 0x8775:qiū 0x8776:dié,tiē 0x8777:lì,xí 0x8778:wō,luó,guǒ 0x8779:yūn,ǎo 0x877A:qǔ,yǔ 0x877B:nǎn 0x877C:lóu 0x877D:chūn 0x877E:róng 0x877F:yíng 0x8780:jiāng 0x8781:ban 0x8782:láng 0x8783:páng,bǎng 0x8784:sī 0x8785:xī,cì 0x8786:cì 0x8787:xī,qī 0x8788:yuán 0x8789:wēng 0x878A:lián 0x878B:sōu 0x878C:bān,pán,huàn 0x878D:róng 0x878E:róng 0x878F:jí 0x8790:wū 0x8791:xiù 0x8792:hàn 0x8793:qín 0x8794:yí,sī 0x8795:bī,pī 0x8796:huá 0x8797:táng 0x8798:yǐ 0x8799:dù 0x879A:nài,nái,něng 0x879B:hé,xiá 0x879C:hú 0x879D:guī,huǐ 0x879E:mǎ,mā,mà 0x879F:míng 0x87A0:yì 0x87A1:wén 0x87A2:yíng 0x87A3:tè,téng 0x87A4:zhōng 0x87A5:cāng 0x87A6:sāo 0x87A7:qí 0x87A8:mǎn 0x87A9:tiao 0x87AA:shāng 0x87AB:shì 0x87AC:cáo 0x87AD:chī 0x87AE:dì,dài 0x87AF:áo 0x87B0:lù 0x87B1:wèi 0x87B2:zhì,dié 0x87B3:táng 0x87B4:chén 0x87B5:piāo 0x87B6:qú,jù 0x87B7:pí 0x87B8:yú 0x87B9:jiàn,chán 0x87BA:luó 0x87BB:lóu 0x87BC:qǐn 0x87BD:zhōng 0x87BE:yǐn,yín 0x87BF:jiāng 0x87C0:shuài 0x87C1:wén 0x87C2:xiāo 0x87C3:wàn 0x87C4:zhé 0x87C5:zhè 0x87C6:má,mò 0x87C7:má 0x87C8:guō,yù 0x87C9:liú,liào 0x87CA:máo,méng 0x87CB:xī 0x87CC:cōng 0x87CD:lí 0x87CE:mǎn 0x87CF:xiāo 0x87D0:chang 0x87D1:zhāng 0x87D2:mǎng,měng 0x87D3:xiàng 0x87D4:mò 0x87D5:zuī 0x87D6:sī 0x87D7:qiū 0x87D8:tè 0x87D9:zhí 0x87DA:péng 0x87DB:péng 0x87DC:jiǎo,qiáo 0x87DD:qú 0x87DE:biē,bié 0x87DF:liáo 0x87E0:pán,fán 0x87E1:guǐ 0x87E2:xǐ 0x87E3:jǐ,qí 0x87E4:zhuān 0x87E5:huáng 0x87E6:féi,bēn 0x87E7:láo,liáo 0x87E8:jué 0x87E9:jué 0x87EA:huì 0x87EB:yín,xún 0x87EC:chán,tí,shàn 0x87ED:jiāo 0x87EE:shàn 0x87EF:náo,rào 0x87F0:xiāo 0x87F1:wú,móu 0x87F2:chóng,zhòng,tóng 0x87F3:xún 0x87F4:sī 0x87F5:chú 0x87F6:chēng 0x87F7:dāng 0x87F8:lǐ 0x87F9:xiè 0x87FA:shàn,dàn,chán,tuó 0x87FB:yǐ,jǐ 0x87FC:jǐng 0x87FD:dá 0x87FE:chán 0x87FF:qì,jì 0x8800:cī,jí 0x8801:xiǎng 0x8802:shè 0x8803:luǒ,luó,guǒ 0x8804:qín 0x8805:yíng 0x8806:chài 0x8807:lì 0x8808:zéi 0x8809:xuān 0x880A:lián 0x880B:zhú 0x880C:zé 0x880D:xiē 0x880E:mǎng 0x880F:xiè 0x8810:qí 0x8811:róng 0x8812:jiǎn 0x8813:měng 0x8814:háo 0x8815:rú 0x8816:huò,yuè 0x8817:zhuó 0x8818:jié 0x8819:pín 0x881A:hē 0x881B:miè 0x881C:fán 0x881D:lěi 0x881E:jié 0x881F:là 0x8820:mǐn,mián 0x8821:lí,lǐ,luǒ,luó,lì 0x8822:chǔn 0x8823:lì 0x8824:qiū 0x8825:niè 0x8826:lú 0x8827:dù 0x8828:xiāo 0x8829:zhū,chú 0x882A:lóng 0x882B:lí 0x882C:lóng 0x882D:fēng,páng 0x882E:yē 0x882F:pí 0x8830:náng,shàng,rǎng 0x8831:gǔ,yě 0x8832:juān 0x8833:yīng 0x8834:shǔ 0x8835:xī 0x8836:cán 0x8837:qú 0x8838:quán,huàn 0x8839:dù 0x883A:cán 0x883B:mán 0x883C:qú,jué 0x883D:jié 0x883E:zhú,shú 0x883F:zhuō 0x8840:xuè,xiě 0x8841:huāng 0x8842:nǜ 0x8843:pēi,fǒu 0x8844:nǜ 0x8845:xìn 0x8846:zhòng,zhōng 0x8847:mài 0x8848:èr 0x8849:kā 0x884A:miè 0x884B:xì 0x884C:xíng,háng,xìng,hàng,héng 0x884D:yǎn,yán 0x884E:kàn,kǎn 0x884F:yuàn 0x8850:qú 0x8851:líng 0x8852:xuàn 0x8853:shù 0x8854:xián 0x8855:tòng,tóng,dòng 0x8856:xiàng,lòng 0x8857:jiē 0x8858:xián,yù 0x8859:yá,yú,yù 0x885A:hú 0x885B:wèi 0x885C:dào 0x885D:chōng,chǒng,chòng 0x885E:wèi 0x885F:dào 0x8860:zhūn 0x8861:héng 0x8862:qú 0x8863:yī,yì 0x8864:yī 0x8865:bǔ 0x8866:gǎn 0x8867:yú 0x8868:biǎo 0x8869:chǎ,chà 0x886A:yí 0x886B:shān 0x886C:chèn 0x886D:fū 0x886E:gǔn 0x886F:fēn,pén 0x8870:shuāi,suō,cuī 0x8871:jié 0x8872:nà 0x8873:zhōng 0x8874:dǎn 0x8875:yì 0x8876:zhòng 0x8877:zhōng,zhòng 0x8878:jiè 0x8879:zhǐ,tǐ,zhī,qí 0x887A:xié 0x887B:rán 0x887C:zhī 0x887D:rèn 0x887E:qīn 0x887F:jīn,qìn 0x8880:jūn 0x8881:yuán 0x8882:mèi,yì 0x8883:chài 0x8884:ǎo 0x8885:niǎo 0x8886:huī 0x8887:rán 0x8888:jiā 0x8889:tuó,tuǒ 0x888A:lǐng,líng 0x888B:dài 0x888C:bào,páo,pào 0x888D:páo,bào 0x888E:yào 0x888F:zuò 0x8890:bì 0x8891:shào 0x8892:tǎn,zhàn 0x8893:jù,jiě 0x8894:hè,kè,kuǎ 0x8895:xué 0x8896:xiù 0x8897:zhěn 0x8898:yí,yì,tuó 0x8899:pà 0x889A:bō,fú 0x889B:dī 0x889C:wà,mò 0x889D:fù 0x889E:gǔn 0x889F:zhì 0x88A0:zhì 0x88A1:rán 0x88A2:pàn,fán 0x88A3:yì 0x88A4:mào,móu 0x88A5:tuō 0x88A6:nà,jué 0x88A7:gōu,gòu 0x88A8:xuàn 0x88A9:zhé,chān 0x88AA:qū 0x88AB:bèi,bì,pī,pì 0x88AC:yù 0x88AD:xí 0x88AE:mí 0x88AF:bó 0x88B0:bō 0x88B1:fú 0x88B2:chǐ,nuǒ 0x88B3:chǐ,qǐ,duǒ,nuǒ 0x88B4:kù 0x88B5:rèn 0x88B6:jiàng 0x88B7:jiá,jiā,jié,qiā 0x88B8:jiàn,zùn 0x88B9:bó,mò 0x88BA:jié 0x88BB:ér 0x88BC:gē,luò 0x88BD:rú 0x88BE:zhū 0x88BF:guī,guà 0x88C0:yīn 0x88C1:cái 0x88C2:liè,liě 0x88C3:kǎ 0x88C4:xing 0x88C5:zhuāng 0x88C6:dāng 0x88C7:xū 0x88C8:kūn 0x88C9:kèn 0x88CA:niǎo 0x88CB:shù 0x88CC:jiá,jiā,xié 0x88CD:kǔn 0x88CE:chéng,chěng 0x88CF:lǐ 0x88D0:juān 0x88D1:shēn 0x88D2:póu,bāo 0x88D3:gé,jiē 0x88D4:yì 0x88D5:yù 0x88D6:zhěn 0x88D7:liú 0x88D8:qiú 0x88D9:qún 0x88DA:jì 0x88DB:yì 0x88DC:bǔ 0x88DD:zhuāng 0x88DE:shuì 0x88DF:shā 0x88E0:qún 0x88E1:lǐ 0x88E2:lián,shāo 0x88E3:liǎn 0x88E4:kù 0x88E5:jiǎn 0x88E6:fóu 0x88E7:chān,chàn,tǎn 0x88E8:bì,pí 0x88E9:kūn 0x88EA:táo 0x88EB:yuàn 0x88EC:líng 0x88ED:chǐ 0x88EE:chāng 0x88EF:chóu,dāo 0x88F0:duō 0x88F1:biǎo 0x88F2:liǎng 0x88F3:shang,cháng 0x88F4:péi,féi 0x88F5:péi 0x88F6:fēi 0x88F7:yuān,gǔn 0x88F8:luǒ 0x88F9:guǒ 0x88FA:yǎn,ān,yàn 0x88FB:dú 0x88FC:tì,xī 0x88FD:zhì 0x88FE:jū,jù 0x88FF:yǐ,qǐ 0x8900:qí 0x8901:guǒ 0x8902:guà 0x8903:kèn 0x8904:qī 0x8905:tì 0x8906:tí,shì 0x8907:fù,fú 0x8908:chóng,chōng,zhòng 0x8909:xiè 0x890A:biǎn,pián 0x890B:dié 0x890C:kūn 0x890D:duān,tuān 0x890E:xiù,yòu 0x890F:xiù 0x8910:hè 0x8911:yuàn,yuán 0x8912:bāo 0x8913:bǎo 0x8914:fù 0x8915:yú,tóu 0x8916:tuàn 0x8917:yǎn 0x8918:huī,yī 0x8919:bèi 0x891A:chǔ,zhě,zhǔ 0x891B:lǚ 0x891C:páo 0x891D:dān 0x891E:yǔn,wēn 0x891F:tā 0x8920:gōu 0x8921:dā 0x8922:huái 0x8923:róng 0x8924:yuàn 0x8925:rù,nù 0x8926:nài 0x8927:jiǒng 0x8928:suǒ,chá 0x8929:bān,pán 0x892A:tuì,tùn 0x892B:chǐ 0x892C:sǎng 0x892D:niǎo 0x892E:yīng,yìng 0x892F:jiè 0x8930:qiān 0x8931:huái 0x8932:kù 0x8933:lián 0x8934:lán 0x8935:lí 0x8936:zhě,dié,xí 0x8937:shī 0x8938:lǚ 0x8939:yì,niè 0x893A:diē 0x893B:xiè 0x893C:xiān 0x893D:wèi 0x893E:biǎo 0x893F:cáo 0x8940:jī,jì 0x8941:qiǎng 0x8942:sēn,shān 0x8943:bāo,póu 0x8944:xiāng 0x8945:bì 0x8946:fú,pú 0x8947:jiǎn 0x8948:zhuàn,juàn 0x8949:jiǎn 0x894A:cuì,cuō 0x894B:jí 0x894C:dān 0x894D:zá 0x894E:fán,bò 0x894F:bó,fèi 0x8950:xiàng 0x8951:xín 0x8952:bié 0x8953:ráo 0x8954:mǎn 0x8955:lán 0x8956:ǎo 0x8957:zé,duó,yì 0x8958:guì,huì 0x8959:cào 0x895A:suì 0x895B:nóng 0x895C:chān,chàn,dān 0x895D:liǎn,chān 0x895E:bì 0x895F:jīn 0x8960:dāng 0x8961:shǔ,dú 0x8962:tǎn,zhàn,chán,zhān 0x8963:bì 0x8964:lán 0x8965:fú 0x8966:rú 0x8967:zhǐ 0x8968:duì 0x8969:shǔ 0x896A:wà 0x896B:shì 0x896C:bǎi,bēi 0x896D:xié 0x896E:bó 0x896F:chèn 0x8970:lài 0x8971:lóng,lòng 0x8972:xí 0x8973:xiān,shān 0x8974:lán 0x8975:zhě,zhé 0x8976:dài 0x8977:jǔ 0x8978:zàn,cuán 0x8979:shī 0x897A:jiǎn 0x897B:pàn 0x897C:yì 0x897D:lán 0x897E:yà 0x897F:xī 0x8980:xī 0x8981:yào,yāo,yǎo 0x8982:fěng,bǎn 0x8983:tán,yǎn,qín 0x8984:fù 0x8985:fiào 0x8986:fù 0x8987:bà 0x8988:hé 0x8989:jī 0x898A:jī 0x898B:jiàn,xiàn 0x898C:guān 0x898D:biàn 0x898E:yàn 0x898F:guī,guì,xù 0x8990:jué 0x8991:piǎn 0x8992:mào 0x8993:mì 0x8994:mì 0x8995:miè,piē 0x8996:shì 0x8997:sì 0x8998:chān,dān,jī 0x8999:luó 0x899A:jué 0x899B:mì 0x899C:tiào 0x899D:lián 0x899E:yào 0x899F:zhì 0x89A0:jūn 0x89A1:xí 0x89A2:shǎn 0x89A3:wēi 0x89A4:xì 0x89A5:tiǎn 0x89A6:yú 0x89A7:lǎn 0x89A8:è 0x89A9:dǔ 0x89AA:qīn,qìng 0x89AB:pǎng 0x89AC:jì 0x89AD:míng 0x89AE:yíng 0x89AF:gòu 0x89B0:qū,qù 0x89B1:zhàn,zhān 0x89B2:jìn 0x89B3:guān 0x89B4:dēng 0x89B5:jiàn,biǎn 0x89B6:luó,luǎn 0x89B7:qù 0x89B8:jiān 0x89B9:wéi 0x89BA:jué,jiào 0x89BB:qū,qù 0x89BC:luó 0x89BD:lǎn,làn 0x89BE:shěn 0x89BF:dí,jí 0x89C0:guān,guàn 0x89C1:jiàn,xiàn 0x89C2:guān,guàn 0x89C3:yàn 0x89C4:guī 0x89C5:mì 0x89C6:shì 0x89C7:chān 0x89C8:lǎn 0x89C9:jué,jiào 0x89CA:jì 0x89CB:xí 0x89CC:dí 0x89CD:tiǎn 0x89CE:yú 0x89CF:gòu 0x89D0:jìn 0x89D1:qù,qū 0x89D2:jiǎo,jué,lù,gǔ 0x89D3:qiú 0x89D4:jīn 0x89D5:cū,chù,chéng 0x89D6:jué,kuì,guì 0x89D7:zhì 0x89D8:chào 0x89D9:jí 0x89DA:gū 0x89DB:dàn 0x89DC:zī,zuǐ 0x89DD:dǐ,zhǐ 0x89DE:shāng 0x89DF:huà,xiè 0x89E0:quán 0x89E1:gé 0x89E2:shì 0x89E3:jiě,jiè,xiè 0x89E4:guǐ 0x89E5:gōng 0x89E6:chù 0x89E7:jiě,jiè 0x89E8:hùn 0x89E9:qiú 0x89EA:xīng 0x89EB:sù 0x89EC:ní 0x89ED:jī,qǐ,qí 0x89EE:lù 0x89EF:zhì 0x89F0:zhā,dǎ,zhǎ 0x89F1:bì 0x89F2:xīng 0x89F3:hú,què,jué 0x89F4:shāng 0x89F5:gōng 0x89F6:zhì 0x89F7:xué,hù 0x89F8:chù 0x89F9:xī 0x89FA:yí 0x89FB:lì,lù 0x89FC:jué 0x89FD:xī 0x89FE:yàn 0x89FF:xī,wéi 0x8A00:yán,yàn,yín 0x8A01:yán 0x8A02:dìng 0x8A03:fù 0x8A04:qiú,kāo 0x8A05:qiú 0x8A06:jiào 0x8A07:hōng,jùn,hēng 0x8A08:jì 0x8A09:fàn 0x8A0A:xùn 0x8A0B:diào 0x8A0C:hòng 0x8A0D:chài,chā,chà 0x8A0E:tǎo 0x8A0F:xū,xǔ 0x8A10:jié,jì 0x8A11:yí,dàn,shī,tuó,tuǒ 0x8A12:rèn 0x8A13:xùn 0x8A14:yín 0x8A15:shàn 0x8A16:qì 0x8A17:tuō 0x8A18:jì 0x8A19:xùn 0x8A1A:yín 0x8A1B:é 0x8A1C:fēn,bīn 0x8A1D:yà 0x8A1E:yāo 0x8A1F:sòng 0x8A20:shěn 0x8A21:yín 0x8A22:xīn,xī,yín 0x8A23:jué 0x8A24:xiáo,ná 0x8A25:nè 0x8A26:chén 0x8A27:yóu 0x8A28:zhǐ 0x8A29:xiōng 0x8A2A:fǎng 0x8A2B:xìn 0x8A2C:chāo,miǎo,chǎo 0x8A2D:shè 0x8A2E:yán 0x8A2F:sǎ,sà 0x8A30:zhùn,zhūn 0x8A31:xǔ,hǔ 0x8A32:yì 0x8A33:yì 0x8A34:sù 0x8A35:chī,chì 0x8A36:hē 0x8A37:shēn 0x8A38:hé 0x8A39:xù 0x8A3A:zhěn 0x8A3B:zhù 0x8A3C:zhèng 0x8A3D:gòu 0x8A3E:zī,zǐ 0x8A3F:zǐ 0x8A40:zhān,chè,diān,zhàn,tiē 0x8A41:gǔ 0x8A42:fù 0x8A43:jiǎn 0x8A44:dié 0x8A45:líng 0x8A46:dǐ,tì 0x8A47:yàng 0x8A48:lì 0x8A49:náo,ná,nù 0x8A4A:pàn 0x8A4B:zhòu 0x8A4C:gàn 0x8A4D:yì 0x8A4E:jù 0x8A4F:yào 0x8A50:zhà 0x8A51:yí,tuó,duò,yī,xī 0x8A52:yí,dài,tái 0x8A53:qǔ 0x8A54:zhào,zhāo 0x8A55:píng 0x8A56:bì 0x8A57:xiòng 0x8A58:qū,chù 0x8A59:bá,bó 0x8A5A:dá 0x8A5B:zǔ 0x8A5C:tāo 0x8A5D:zhǔ 0x8A5E:cí 0x8A5F:zhé 0x8A60:yǒng 0x8A61:xǔ 0x8A62:xún 0x8A63:yì 0x8A64:huǎng 0x8A65:hé,gé 0x8A66:shì 0x8A67:chá,qiè 0x8A68:xiào 0x8A69:shī 0x8A6A:hěn 0x8A6B:chà,dù 0x8A6C:gòu,hòu 0x8A6D:guǐ 0x8A6E:quán 0x8A6F:huì 0x8A70:jié 0x8A71:huà 0x8A72:gāi 0x8A73:xiáng,yáng 0x8A74:wēi 0x8A75:shēn 0x8A76:zhòu,chóu 0x8A77:tóng,dòng 0x8A78:mí 0x8A79:zhān,dàn 0x8A7A:mìng 0x8A7B:è,lüè,luò 0x8A7C:huī 0x8A7D:yán 0x8A7E:xiōng 0x8A7F:guà 0x8A80:èr,chǐ 0x8A81:bìng 0x8A82:tiǎo,diào 0x8A83:yí,chǐ,chì,duò 0x8A84:lěi 0x8A85:zhū 0x8A86:kuāng 0x8A87:kuā,qù 0x8A88:wū 0x8A89:yù 0x8A8A:téng 0x8A8B:jì 0x8A8C:zhì 0x8A8D:rèn 0x8A8E:cù 0x8A8F:lǎng,làng 0x8A90:é,ě 0x8A91:kuáng 0x8A92:éi,xī,yì,ê̄,ế,ê̌,ěi,ề,èi,ēi 0x8A93:shì 0x8A94:tǐng 0x8A95:dàn 0x8A96:bèi 0x8A97:chán 0x8A98:yòu 0x8A99:kēng 0x8A9A:qiào 0x8A9B:qīn 0x8A9C:shuà 0x8A9D:ān 0x8A9E:yǔ,yù 0x8A9F:xiào 0x8AA0:chéng 0x8AA1:jiè 0x8AA2:xiàn 0x8AA3:wū 0x8AA4:wù 0x8AA5:gào 0x8AA6:sòng 0x8AA7:bū 0x8AA8:huì 0x8AA9:jìng 0x8AAA:shuō 0x8AAB:zhèn 0x8AAC:shuō,shuì,yuè,tuō 0x8AAD:dú 0x8AAE:huā 0x8AAF:chàng 0x8AB0:shuí,shéi 0x8AB1:jié 0x8AB2:kè 0x8AB3:qū,juè 0x8AB4:cóng 0x8AB5:xiáo 0x8AB6:suì 0x8AB7:wǎng 0x8AB8:xián 0x8AB9:fěi 0x8ABA:chī,lài 0x8ABB:tà 0x8ABC:yì 0x8ABD:nì,ná 0x8ABE:yín 0x8ABF:diào,tiáo,zhōu 0x8AC0:pǐ,bēi 0x8AC1:zhuó 0x8AC2:chǎn 0x8AC3:chēn 0x8AC4:zhūn 0x8AC5:jì,jī 0x8AC6:qī 0x8AC7:tán 0x8AC8:zhuì 0x8AC9:wěi 0x8ACA:jū 0x8ACB:qǐng,qìng,qíng 0x8ACC:dǒng 0x8ACD:zhèng,zhēng 0x8ACE:zé,cuò,zuò,zhǎ,jiè 0x8ACF:zōu,zhōu 0x8AD0:qiān 0x8AD1:zhuó 0x8AD2:liàng,liáng 0x8AD3:jiàn 0x8AD4:chù,jí 0x8AD5:háo,xià,huò 0x8AD6:lùn,lún 0x8AD7:shěn,niè 0x8AD8:biǎo 0x8AD9:huà 0x8ADA:pián 0x8ADB:yú 0x8ADC:dié,xiè 0x8ADD:xū 0x8ADE:piǎn,pián 0x8ADF:shì,dì 0x8AE0:xuān 0x8AE1:shì 0x8AE2:hùn 0x8AE3:huà,guā 0x8AE4:è 0x8AE5:zhòng 0x8AE6:dì,tí 0x8AE7:xié 0x8AE8:fú 0x8AE9:pǔ 0x8AEA:tíng 0x8AEB:jiàn,làn 0x8AEC:qǐ 0x8AED:yù,tǒu 0x8AEE:zī 0x8AEF:zhuān 0x8AF0:xǐ,shāi,āi 0x8AF1:huì 0x8AF2:yīn 0x8AF3:ān,tǒu 0x8AF4:xián,gān 0x8AF5:nán,nàn 0x8AF6:chén 0x8AF7:fěng,fèng 0x8AF8:zhū,chú 0x8AF9:yáng 0x8AFA:yàn 0x8AFB:huáng 0x8AFC:xuān 0x8AFD:gé 0x8AFE:nuò 0x8AFF:qī,xǔ 0x8B00:móu 0x8B01:yè,ǎi 0x8B02:wèi 0x8B03:xīng 0x8B04:téng 0x8B05:zhōu,chōu,chǎo 0x8B06:shàn 0x8B07:jiǎn 0x8B08:pó,páo 0x8B09:kuì,duǐ,tuí,guǐ 0x8B0A:huǎng 0x8B0B:huò 0x8B0C:gē 0x8B0D:yíng,yīng,hōng 0x8B0E:mí 0x8B0F:xiǎo,sǒu,sòu 0x8B10:mì 0x8B11:xǐ,xià,xí 0x8B12:qiāng 0x8B13:chēn,zhèn 0x8B14:xuè 0x8B15:tí,sī 0x8B16:sù 0x8B17:bàng 0x8B18:chí 0x8B19:qiān,zhàn 0x8B1A:shì,yì,xì 0x8B1B:jiǎng 0x8B1C:yuán,quán 0x8B1D:xiè 0x8B1E:hè,xiāo 0x8B1F:tāo 0x8B20:yáo 0x8B21:yáo 0x8B22:lū 0x8B23:yú,xū 0x8B24:biāo,piāo 0x8B25:còng 0x8B26:qìng,qǐng 0x8B27:lí 0x8B28:mó 0x8B29:mó 0x8B2A:shāng 0x8B2B:zhé,zé 0x8B2C:miù 0x8B2D:jiǎn 0x8B2E:zé 0x8B2F:jiē,zhā,zhǎ,zǔ 0x8B30:lián 0x8B31:lóu,lǚ 0x8B32:càn,zào,sān,chěn 0x8B33:ōu,xú 0x8B34:gùn 0x8B35:xí,chè 0x8B36:zhuó,shù,zhē 0x8B37:áo,ào 0x8B38:áo 0x8B39:jǐn 0x8B3A:zhé 0x8B3B:yí,chí 0x8B3C:hū,xiāo 0x8B3D:jiàng 0x8B3E:mán,màn 0x8B3F:cháo 0x8B40:hàn,xiàn 0x8B41:huá,wà 0x8B42:chǎn,dàn 0x8B43:xū 0x8B44:zēng 0x8B45:sè 0x8B46:xī 0x8B47:zhā 0x8B48:duì 0x8B49:zhèng 0x8B4A:náo,xiāo 0x8B4B:lán 0x8B4C:é,wá,guǐ 0x8B4D:yīng,yìng 0x8B4E:jué 0x8B4F:jī 0x8B50:zǔn 0x8B51:jiǎo,qiào 0x8B52:bò 0x8B53:huì 0x8B54:zhuàn,quán 0x8B55:wú,mó 0x8B56:zèn,jiàn 0x8B57:zhá 0x8B58:shí,shì,zhì 0x8B59:qiào,qiáo 0x8B5A:tán 0x8B5B:zèn 0x8B5C:pǔ 0x8B5D:shéng 0x8B5E:xuān 0x8B5F:zào 0x8B60:tán 0x8B61:dǎng 0x8B62:suì 0x8B63:xiǎn 0x8B64:jī 0x8B65:jiào 0x8B66:jǐng 0x8B67:zhàn,lián 0x8B68:náng,nóu 0x8B69:yī 0x8B6A:ǎi 0x8B6B:zhān 0x8B6C:pì 0x8B6D:huǐ 0x8B6E:huà,xiè,huì 0x8B6F:yì 0x8B70:yì 0x8B71:shàn 0x8B72:ràng 0x8B73:nòu 0x8B74:qiǎn 0x8B75:duì 0x8B76:tà 0x8B77:hù 0x8B78:zhōu,chóu 0x8B79:háo 0x8B7A:ài,yǐ,nǐ,yì,yí 0x8B7B:yīng 0x8B7C:jiàn 0x8B7D:yù 0x8B7E:jiǎn 0x8B7F:huì 0x8B80:dú,dòu 0x8B81:zhé 0x8B82:xuàn 0x8B83:zàn 0x8B84:lěi 0x8B85:shěn 0x8B86:wèi 0x8B87:chǎn 0x8B88:lì 0x8B89:yí,tuī 0x8B8A:biàn 0x8B8B:zhé 0x8B8C:yàn 0x8B8D:è 0x8B8E:chóu 0x8B8F:wèi 0x8B90:chóu 0x8B91:yào 0x8B92:chán 0x8B93:ràng 0x8B94:yǐn 0x8B95:lán 0x8B96:chèn,chàn 0x8B97:xié 0x8B98:niè 0x8B99:huān,huàn 0x8B9A:zàn 0x8B9B:yì 0x8B9C:dǎng,dàng 0x8B9D:zhán,zhān 0x8B9E:yàn 0x8B9F:dú 0x8BA0:yán 0x8BA1:jì 0x8BA2:dìng 0x8BA3:fù 0x8BA4:rèn 0x8BA5:jī 0x8BA6:jié 0x8BA7:hòng 0x8BA8:tǎo 0x8BA9:ràng 0x8BAA:shàn 0x8BAB:qì 0x8BAC:tuō 0x8BAD:xùn 0x8BAE:yì 0x8BAF:xùn 0x8BB0:jì 0x8BB1:rèn 0x8BB2:jiǎng 0x8BB3:huì 0x8BB4:ōu 0x8BB5:jù 0x8BB6:yà 0x8BB7:nè 0x8BB8:xǔ,hǔ 0x8BB9:é 0x8BBA:lùn,lún 0x8BBB:xiōng 0x8BBC:sòng 0x8BBD:fěng,fèng 0x8BBE:shè 0x8BBF:fǎng 0x8BC0:jué 0x8BC1:zhèng 0x8BC2:gǔ 0x8BC3:hē 0x8BC4:píng 0x8BC5:zǔ 0x8BC6:shí,shì,zhì 0x8BC7:xiòng 0x8BC8:zhà 0x8BC9:sù 0x8BCA:zhěn 0x8BCB:dǐ 0x8BCC:zhōu 0x8BCD:cí 0x8BCE:qū 0x8BCF:zhào 0x8BD0:bì 0x8BD1:yì 0x8BD2:yí 0x8BD3:kuāng 0x8BD4:lěi 0x8BD5:shì 0x8BD6:guà 0x8BD7:shī 0x8BD8:jí,jié 0x8BD9:huī 0x8BDA:chéng 0x8BDB:zhū 0x8BDC:shēn 0x8BDD:huà 0x8BDE:dàn 0x8BDF:gòu 0x8BE0:quán 0x8BE1:guǐ 0x8BE2:xún 0x8BE3:yì 0x8BE4:zhēng 0x8BE5:gāi 0x8BE6:xiáng 0x8BE7:chà 0x8BE8:hùn 0x8BE9:xǔ 0x8BEA:zhōu 0x8BEB:jiè 0x8BEC:wū 0x8BED:yǔ,yù 0x8BEE:qiào 0x8BEF:wù 0x8BF0:gào 0x8BF1:yòu 0x8BF2:huì 0x8BF3:kuáng 0x8BF4:shuō,shuì,yuè 0x8BF5:sòng 0x8BF6:éi 0x8BF7:qǐng 0x8BF8:zhū 0x8BF9:zōu 0x8BFA:nuò 0x8BFB:dú,dòu 0x8BFC:zhuó 0x8BFD:fěi 0x8BFE:kè 0x8BFF:wěi 0x8C00:yú 0x8C01:shéi,shuí 0x8C02:shěn 0x8C03:diào,tiáo 0x8C04:chǎn 0x8C05:liàng 0x8C06:zhūn 0x8C07:suì 0x8C08:tán 0x8C09:shěn 0x8C0A:yì 0x8C0B:móu 0x8C0C:chén 0x8C0D:dié 0x8C0E:huǎng 0x8C0F:jiàn 0x8C10:xié 0x8C11:xuè 0x8C12:yè 0x8C13:wèi 0x8C14:è 0x8C15:yù 0x8C16:xuān 0x8C17:chán 0x8C18:zī 0x8C19:ān 0x8C1A:yàn 0x8C1B:dì 0x8C1C:mí,mèi 0x8C1D:pián,piǎn 0x8C1E:xū 0x8C1F:mó 0x8C20:dǎng 0x8C21:sù 0x8C22:xiè 0x8C23:yáo 0x8C24:bàng 0x8C25:shì 0x8C26:qiān 0x8C27:mì 0x8C28:jǐn 0x8C29:mán,màn 0x8C2A:zhé 0x8C2B:jiǎn 0x8C2C:miù 0x8C2D:tán 0x8C2E:zèn 0x8C2F:qiáo,qiào 0x8C30:lán 0x8C31:pǔ 0x8C32:jué 0x8C33:yàn 0x8C34:qiǎn 0x8C35:zhān 0x8C36:chèn 0x8C37:gǔ,lù,yù 0x8C38:qiān 0x8C39:hóng 0x8C3A:xiā 0x8C3B:jí 0x8C3C:hóng 0x8C3D:hān 0x8C3E:hōng,lóng 0x8C3F:xī,jī 0x8C40:xī 0x8C41:huō,huò,huá 0x8C42:liáo 0x8C43:hǎn,gǎn 0x8C44:dú 0x8C45:lóng,lòng 0x8C46:dòu 0x8C47:jiāng 0x8C48:qǐ,kǎi 0x8C49:shì,chǐ 0x8C4A:lǐ,fēng 0x8C4B:dēng 0x8C4C:wān 0x8C4D:bī,biǎn 0x8C4E:shù 0x8C4F:xiàn 0x8C50:fēng 0x8C51:zhì 0x8C52:zhì 0x8C53:yàn 0x8C54:yàn 0x8C55:shǐ 0x8C56:chù 0x8C57:huī 0x8C58:tún 0x8C59:yì 0x8C5A:tún,dūn,dùn 0x8C5B:yì 0x8C5C:jiān 0x8C5D:bā 0x8C5E:hòu 0x8C5F:è 0x8C60:chú 0x8C61:xiàng 0x8C62:huàn 0x8C63:jiān,yàn 0x8C64:kěn,kūn 0x8C65:gāi 0x8C66:jù 0x8C67:fū,fù,pū 0x8C68:xī 0x8C69:bīn,huān 0x8C6A:háo 0x8C6B:yù,xiè,shū 0x8C6C:zhū 0x8C6D:jiā 0x8C6E:fén 0x8C6F:xī 0x8C70:bó,hù,huò,gòu 0x8C71:wēn 0x8C72:huán 0x8C73:bīn,bān 0x8C74:dí 0x8C75:zōng 0x8C76:fén 0x8C77:yì 0x8C78:zhì 0x8C79:bào 0x8C7A:chái 0x8C7B:àn 0x8C7C:pí 0x8C7D:nà 0x8C7E:pī 0x8C7F:gǒu 0x8C80:nà,duò 0x8C81:yòu 0x8C82:diāo 0x8C83:mò 0x8C84:sì 0x8C85:xiū 0x8C86:huán,huān 0x8C87:kūn,mào,kěn 0x8C88:hé,mò 0x8C89:háo,mò,hé,mà 0x8C8A:mò,má 0x8C8B:àn 0x8C8C:mào,mò 0x8C8D:lí,mái,yù 0x8C8E:ní 0x8C8F:bǐ 0x8C90:yǔ 0x8C91:jiā 0x8C92:tuān,tuàn 0x8C93:māo,máo 0x8C94:pí 0x8C95:xī 0x8C96:yì 0x8C97:jù,yú 0x8C98:mò 0x8C99:chū 0x8C9A:tán 0x8C9B:huān 0x8C9C:jué 0x8C9D:bèi 0x8C9E:zhēn,zhēng 0x8C9F:yuán 0x8CA0:fù 0x8CA1:cái 0x8CA2:gòng 0x8CA3:tè 0x8CA4:yí,yì 0x8CA5:háng 0x8CA6:wán 0x8CA7:pín 0x8CA8:huò 0x8CA9:fàn 0x8CAA:tān 0x8CAB:guàn,wān 0x8CAC:zé,zhài 0x8CAD:zhì 0x8CAE:èr 0x8CAF:zhù 0x8CB0:shì 0x8CB1:bì 0x8CB2:zī 0x8CB3:èr 0x8CB4:guì 0x8CB5:piǎn 0x8CB6:biǎn,fá 0x8CB7:mǎi 0x8CB8:dài,tè 0x8CB9:shèng 0x8CBA:kuàng 0x8CBB:fèi,fú,bì 0x8CBC:tiē 0x8CBD:yí 0x8CBE:chí 0x8CBF:mào 0x8CC0:hè 0x8CC1:bì,fén,bēn,fèn,féi,bān,lù,pān 0x8CC2:lù 0x8CC3:lìn 0x8CC4:huì 0x8CC5:gāi 0x8CC6:pián 0x8CC7:zī,zì 0x8CC8:jiǎ,gǔ,jià 0x8CC9:xù 0x8CCA:zéi 0x8CCB:jiǎo 0x8CCC:gāi 0x8CCD:zāng 0x8CCE:jiàn 0x8CCF:yīng 0x8CD0:xùn 0x8CD1:zhèn 0x8CD2:shē,shā 0x8CD3:bīn 0x8CD4:bīn 0x8CD5:qiú 0x8CD6:shē 0x8CD7:chuàn 0x8CD8:zāng 0x8CD9:zhōu 0x8CDA:lài 0x8CDB:zàn 0x8CDC:cì 0x8CDD:chēn 0x8CDE:shǎng 0x8CDF:tiǎn 0x8CE0:péi 0x8CE1:gēng 0x8CE2:xián,xiàn 0x8CE3:mài 0x8CE4:jiàn 0x8CE5:suì 0x8CE6:fù 0x8CE7:tàn 0x8CE8:cóng 0x8CE9:cóng 0x8CEA:zhì 0x8CEB:jī 0x8CEC:zhàng 0x8CED:dǔ 0x8CEE:jìn 0x8CEF:xiōng 0x8CF0:chǔn 0x8CF1:yǔn 0x8CF2:bǎo 0x8CF3:zāi 0x8CF4:lài 0x8CF5:fèng 0x8CF6:càng 0x8CF7:jī 0x8CF8:shèng 0x8CF9:yì,ài 0x8CFA:zhuàn,zuàn 0x8CFB:fù 0x8CFC:gòu 0x8CFD:sài 0x8CFE:zé 0x8CFF:liáo 0x8D00:yì 0x8D01:bài 0x8D02:chěn 0x8D03:wàn 0x8D04:zhì,zhí 0x8D05:zhuì 0x8D06:biāo 0x8D07:yūn,bīn 0x8D08:zèng 0x8D09:dàn 0x8D0A:zàn 0x8D0B:yàn 0x8D0C:pú 0x8D0D:shàn,dàn 0x8D0E:wàn 0x8D0F:yíng 0x8D10:jìn 0x8D11:gàn 0x8D12:xián 0x8D13:zāng 0x8D14:bì 0x8D15:dú 0x8D16:shú,shù 0x8D17:yàn,yán 0x8D18:shǎng 0x8D19:xuàn 0x8D1A:lòng 0x8D1B:gàn,gòng,zhuàng 0x8D1C:zāng 0x8D1D:bèi 0x8D1E:zhēn 0x8D1F:fù 0x8D20:yuán 0x8D21:gòng 0x8D22:cái 0x8D23:zé 0x8D24:xián 0x8D25:bài 0x8D26:zhàng 0x8D27:huò 0x8D28:zhì 0x8D29:fàn 0x8D2A:tān 0x8D2B:pín 0x8D2C:biǎn 0x8D2D:gòu 0x8D2E:zhù 0x8D2F:guàn 0x8D30:èr 0x8D31:jiàn 0x8D32:bēn,bì 0x8D33:shì 0x8D34:tiē 0x8D35:guì 0x8D36:kuàng 0x8D37:dài 0x8D38:mào 0x8D39:fèi 0x8D3A:hè 0x8D3B:yí 0x8D3C:zéi 0x8D3D:zhì 0x8D3E:jiǎ,gǔ 0x8D3F:huì 0x8D40:zī 0x8D41:lìn 0x8D42:lù 0x8D43:zāng 0x8D44:zī 0x8D45:gāi 0x8D46:jìn 0x8D47:qiú 0x8D48:zhèn 0x8D49:lài 0x8D4A:shē 0x8D4B:fù 0x8D4C:dǔ 0x8D4D:jī 0x8D4E:shú 0x8D4F:shǎng 0x8D50:cì 0x8D51:bì 0x8D52:zhōu 0x8D53:gēng 0x8D54:péi 0x8D55:dǎn 0x8D56:lài 0x8D57:fèng 0x8D58:zhuì 0x8D59:fù 0x8D5A:zhuàn,zuàn 0x8D5B:sài 0x8D5C:zé 0x8D5D:yàn 0x8D5E:zàn 0x8D5F:yūn 0x8D60:zèng 0x8D61:shàn 0x8D62:yíng 0x8D63:gàn 0x8D64:chì 0x8D65:xī 0x8D66:shè,cè 0x8D67:nǎn 0x8D68:tóng,xióng 0x8D69:xì 0x8D6A:chēng 0x8D6B:hè,shì 0x8D6C:chēng 0x8D6D:zhě 0x8D6E:xiá 0x8D6F:táng 0x8D70:zǒu 0x8D71:zǒu 0x8D72:lì 0x8D73:jiū,jiù 0x8D74:fù 0x8D75:zhào 0x8D76:gǎn,qián 0x8D77:qǐ 0x8D78:shàn 0x8D79:qióng 0x8D7A:yǐn,qǐn 0x8D7B:xiǎn 0x8D7C:zī 0x8D7D:jué,guì 0x8D7E:qǐn 0x8D7F:chí,dì 0x8D80:cī 0x8D81:chèn,zhēn,chén,niǎn,zhěn 0x8D82:chèn 0x8D83:dié,tú 0x8D84:jū,qiè 0x8D85:chāo,chǎo,chào,tiào 0x8D86:dī 0x8D87:xì 0x8D88:zhān 0x8D89:jué,jú 0x8D8A:yuè,huó 0x8D8B:qū 0x8D8C:jí,jié 0x8D8D:chí,qū 0x8D8E:chú 0x8D8F:guā,huó 0x8D90:xuè,chì 0x8D91:zī,cì 0x8D92:tiáo,tiào,tiǎo 0x8D93:duǒ 0x8D94:liè 0x8D95:gǎn 0x8D96:suō 0x8D97:cù 0x8D98:xí 0x8D99:zhào,diào 0x8D9A:sù 0x8D9B:yǐn 0x8D9C:jú,qū,qiú 0x8D9D:jiàn 0x8D9E:què,qì,jí 0x8D9F:tàng,zhēng,zhèng,chéng,tāng 0x8DA0:chuò,chào,tiào,zhuó 0x8DA1:cuǐ,wěi,jù 0x8DA2:lù 0x8DA3:qù,cù,qū,cǒu,zōu 0x8DA4:dàng 0x8DA5:qiū,cù 0x8DA6:zī 0x8DA7:tí 0x8DA8:qū,cù,qù,cǒu 0x8DA9:chì 0x8DAA:huáng,guāng 0x8DAB:qiáo,jiào,chǎo 0x8DAC:qiāo 0x8DAD:jiào 0x8DAE:zào 0x8DAF:tì,yuè,yào 0x8DB0:ěr 0x8DB1:zǎn 0x8DB2:zǎn,zū 0x8DB3:zú,jù 0x8DB4:pā 0x8DB5:bào,bō,zhuó,chuò,páo 0x8DB6:kù,wū 0x8DB7:kē 0x8DB8:dǔn 0x8DB9:jué,guì 0x8DBA:fū 0x8DBB:chěn 0x8DBC:jiǎn,yàn,yán,jiān 0x8DBD:fàng,páng,fāng 0x8DBE:zhǐ 0x8DBF:tā,sà,qì 0x8DC0:yuè 0x8DC1:bà,pá 0x8DC2:qí,qǐ,qì,jī,zhī 0x8DC3:yuè 0x8DC4:qiāng,qiàng 0x8DC5:tuò,chì 0x8DC6:tái 0x8DC7:yì 0x8DC8:niǎn,jiàn,chén,tiàn 0x8DC9:líng 0x8DCA:mèi 0x8DCB:bá,bèi 0x8DCC:diē,dié,tú 0x8DCD:kū 0x8DCE:tuó 0x8DCF:jiā 0x8DD0:cī,cǐ,zǐ 0x8DD1:pǎo,páo,bó 0x8DD2:qiǎ 0x8DD3:zhù 0x8DD4:jū,qǔ 0x8DD5:diǎn,tiē,dié,zhàn,diē 0x8DD6:zhí 0x8DD7:fū,fù 0x8DD8:pán,bàn 0x8DD9:jù,qū,qiě,zhù,qiè 0x8DDA:shān 0x8DDB:bǒ,bì,pō 0x8DDC:ní 0x8DDD:jù 0x8DDE:lì,luò 0x8DDF:gēn 0x8DE0:yí 0x8DE1:jī 0x8DE2:duò,dài,duō,chí 0x8DE3:xiǎn,xiān,sǔn 0x8DE4:jiāo,qiāo 0x8DE5:duò 0x8DE6:zhū,chú 0x8DE7:quán,zūn 0x8DE8:kuà,kù,kuā,kuǎ 0x8DE9:zhuǎi,shì 0x8DEA:guì 0x8DEB:qióng,qiāng,qiōng 0x8DEC:kuǐ,xiè 0x8DED:xiáng 0x8DEE:chì,dié 0x8DEF:lù,luò 0x8DF0:pián,bèng,bǐng 0x8DF1:zhì 0x8DF2:jiá,jié 0x8DF3:tiào,diào,táo 0x8DF4:cǎi 0x8DF5:jiàn 0x8DF6:dá 0x8DF7:qiāo 0x8DF8:bì 0x8DF9:xiān 0x8DFA:duò 0x8DFB:jī 0x8DFC:jú,qù 0x8DFD:jì 0x8DFE:shū,chōu 0x8DFF:tú,duó,chuō 0x8E00:chù,cù 0x8E01:jìng,kēng 0x8E02:niè 0x8E03:xiāo,qiào 0x8E04:bù 0x8E05:xué,chì 0x8E06:cūn,qūn,cún,zūn,qiù,zhūn 0x8E07:mǔ 0x8E08:shū 0x8E09:liáng,láng,liàng,làng 0x8E0A:yǒng 0x8E0B:jiǎo 0x8E0C:chóu 0x8E0D:qiāo 0x8E0E:móu 0x8E0F:tà,tā 0x8E10:jiàn 0x8E11:qí,jī,jì 0x8E12:wō,wēi,ruí 0x8E13:wěi,cù 0x8E14:chuō,diào,zhuō,tiào,chuò 0x8E15:jié 0x8E16:jí,qì,què 0x8E17:niè 0x8E18:jū 0x8E19:niè 0x8E1A:lún 0x8E1B:lù 0x8E1C:lèng,léng,chěng 0x8E1D:huái 0x8E1E:jù 0x8E1F:chí 0x8E20:wǎn,wò 0x8E21:quán,juǎn 0x8E22:tī,dié 0x8E23:bó,pòu 0x8E24:zú,cù,cuì 0x8E25:qiè 0x8E26:yǐ,qī,jī,jǐ,yì 0x8E27:cù,dí 0x8E28:zōng 0x8E29:cǎi,kuí 0x8E2A:zōng 0x8E2B:pèng,pán 0x8E2C:zhì 0x8E2D:zhēng 0x8E2E:diǎn 0x8E2F:zhí 0x8E30:yú,yáo,chū 0x8E31:duó,chuò,duò 0x8E32:dùn 0x8E33:chuǎn,chǔn,chūn 0x8E34:yǒng 0x8E35:zhǒng,zhòng 0x8E36:dì,zhì,tí,chí,shì 0x8E37:zhǎ 0x8E38:chěn 0x8E39:chuài,shuàn,duàn,chuǎn 0x8E3A:jiàn 0x8E3B:guā,guǎ,tuó 0x8E3C:táng,tǎng,shāng 0x8E3D:jǔ 0x8E3E:fú,bì 0x8E3F:zú 0x8E40:dié 0x8E41:pián 0x8E42:róu,rǒu 0x8E43:nuò,rè,nà 0x8E44:tí,dì 0x8E45:chǎ,zhā 0x8E46:tuǐ 0x8E47:jiǎn 0x8E48:dǎo 0x8E49:cuō 0x8E4A:qī,xī 0x8E4B:tà 0x8E4C:qiāng,qiàng 0x8E4D:niǎn,zhǎn,chán 0x8E4E:diān 0x8E4F:tí 0x8E50:jí 0x8E51:niè 0x8E52:pán,mán 0x8E53:liū,liù 0x8E54:zàn,cán 0x8E55:bì 0x8E56:chōng 0x8E57:lù 0x8E58:liáo 0x8E59:cù 0x8E5A:tāng,tàng,chēng 0x8E5B:dài,diē,dān,zhì 0x8E5C:sù 0x8E5D:xǐ 0x8E5E:kuǐ 0x8E5F:jī 0x8E60:zhí,zhuó 0x8E61:qiāng,qiàng 0x8E62:dí,zhí 0x8E63:pán,mán,liǎng 0x8E64:zōng 0x8E65:lián 0x8E66:bèng 0x8E67:zāo 0x8E68:niǎn,rǎn 0x8E69:bié 0x8E6A:tuí 0x8E6B:jú 0x8E6C:dēng,dèng 0x8E6D:cèng,céng 0x8E6E:xiān 0x8E6F:fán 0x8E70:chú 0x8E71:zhōng,chòng 0x8E72:dūn,zún,cún,zūn,cǔn,cuán,qǔn 0x8E73:bō 0x8E74:cù,zú,jiu 0x8E75:cù 0x8E76:jué,guì,juě 0x8E77:jué 0x8E78:lìn,lín 0x8E79:tá 0x8E7A:qiāo,qiào 0x8E7B:juē,qiāo,jiǎo,jué,jú,xuè 0x8E7C:pǔ 0x8E7D:liāo 0x8E7E:dūn 0x8E7F:cuān 0x8E80:guàn 0x8E81:zào 0x8E82:dá 0x8E83:bì 0x8E84:bì 0x8E85:zhú,zhuó 0x8E86:jù 0x8E87:chú,chuò 0x8E88:qiào 0x8E89:dǔn 0x8E8A:chóu 0x8E8B:jī 0x8E8C:wǔ 0x8E8D:yuè,tì 0x8E8E:niǎn 0x8E8F:lìn 0x8E90:liè 0x8E91:zhí 0x8E92:lì,yuè,luò 0x8E93:zhì,zhī 0x8E94:chán,zhàn 0x8E95:chú 0x8E96:duàn 0x8E97:wèi 0x8E98:lóng,lǒng 0x8E99:lìn 0x8E9A:xiān 0x8E9B:wèi 0x8E9C:zuān 0x8E9D:lán 0x8E9E:xiè 0x8E9F:ráng 0x8EA0:sǎ,xiè 0x8EA1:niè 0x8EA2:tà 0x8EA3:qú 0x8EA4:jí 0x8EA5:cuān 0x8EA6:cuó,zuān 0x8EA7:xǐ 0x8EA8:kuí 0x8EA9:jué,qì 0x8EAA:lìn 0x8EAB:shēn,juān 0x8EAC:gōng 0x8EAD:dān 0x8EAE:fēn 0x8EAF:qū 0x8EB0:tǐ 0x8EB1:duǒ 0x8EB2:duǒ 0x8EB3:gōng 0x8EB4:láng 0x8EB5:rěn 0x8EB6:luǒ 0x8EB7:ǎi 0x8EB8:jī 0x8EB9:jú 0x8EBA:tǎng,tàng 0x8EBB:kōng 0x8EBC:lào 0x8EBD:yǎn,yàn 0x8EBE:měi 0x8EBF:kāng 0x8EC0:qū 0x8EC1:lóu,lǚ 0x8EC2:lào 0x8EC3:duǒ,tuǒ 0x8EC4:zhí 0x8EC5:yàn 0x8EC6:tǐ 0x8EC7:dào 0x8EC8:yīng 0x8EC9:yù 0x8ECA:chē,jū 0x8ECB:yà,zhá,gá 0x8ECC:guǐ 0x8ECD:jūn 0x8ECE:wèi 0x8ECF:yuè 0x8ED0:xìn,xiàn 0x8ED1:dài 0x8ED2:xuān,xiǎn,xiàn,hǎn,jiān 0x8ED3:fàn 0x8ED4:rèn 0x8ED5:shān 0x8ED6:kuáng 0x8ED7:shū 0x8ED8:tún 0x8ED9:chén,qí 0x8EDA:dài 0x8EDB:è 0x8EDC:nà 0x8EDD:qí 0x8EDE:máo 0x8EDF:ruǎn 0x8EE0:kuáng 0x8EE1:qián 0x8EE2:zhuǎn 0x8EE3:hōng 0x8EE4:hū 0x8EE5:qú,gōu,gòu,jū 0x8EE6:kuàng 0x8EE7:dǐ,chí 0x8EE8:líng,lǐng 0x8EE9:dài 0x8EEA:āo,ào 0x8EEB:zhěn 0x8EEC:fàn,bèn 0x8EED:kuāng 0x8EEE:yǎng 0x8EEF:pēng 0x8EF0:bèi 0x8EF1:gū 0x8EF2:gū 0x8EF3:páo 0x8EF4:zhù 0x8EF5:rǒng,fǔ,fù,róng 0x8EF6:è 0x8EF7:bá 0x8EF8:zhóu,zhú,zhòu 0x8EF9:zhǐ 0x8EFA:yáo,diāo 0x8EFB:kē 0x8EFC:yì,dié,zhé 0x8EFD:zhì,qīng 0x8EFE:shì 0x8EFF:píng 0x8F00:ér 0x8F01:gǒng 0x8F02:jú 0x8F03:jiào,jué,xiào 0x8F04:guāng 0x8F05:hé,lù,yà 0x8F06:kǎi,kài 0x8F07:quán,chūn 0x8F08:zhōu 0x8F09:zài,zǎi,dài,zāi,zī 0x8F0A:zhì 0x8F0B:shē 0x8F0C:liàng 0x8F0D:yù 0x8F0E:shāo 0x8F0F:yóu 0x8F10:wàn,yuǎn 0x8F11:yǐn,qūn 0x8F12:zhé 0x8F13:wǎn 0x8F14:fǔ 0x8F15:qīng,qìng 0x8F16:zhōu 0x8F17:ní,yì 0x8F18:léng,líng,lèng 0x8F19:zhé 0x8F1A:zhàn 0x8F1B:liàng 0x8F1C:zī,zì 0x8F1D:huī 0x8F1E:wǎng 0x8F1F:chuò 0x8F20:guǒ,huà,huì 0x8F21:kǎn 0x8F22:yǐ 0x8F23:péng 0x8F24:qiàn 0x8F25:gǔn 0x8F26:niǎn,liǎn 0x8F27:píng,pēng 0x8F28:guǎn 0x8F29:bèi 0x8F2A:lún 0x8F2B:pái 0x8F2C:liáng 0x8F2D:ruǎn,ér 0x8F2E:róu,rǒu 0x8F2F:jí 0x8F30:yáng 0x8F31:xián,kàn 0x8F32:chuán 0x8F33:còu 0x8F34:chūn,shǔn 0x8F35:gé,yà,è,qiè 0x8F36:yóu 0x8F37:hōng 0x8F38:shū,shù 0x8F39:fù,bú 0x8F3A:zī 0x8F3B:fú 0x8F3C:wēn,yūn 0x8F3D:bèn 0x8F3E:zhǎn,niǎn 0x8F3F:yú,yù 0x8F40:wēn 0x8F41:tāo,kǎn 0x8F42:gǔ,gū 0x8F43:zhēn 0x8F44:xiá,hé 0x8F45:yuán 0x8F46:lù 0x8F47:jiāo,xiǎo 0x8F48:cháo 0x8F49:zhuǎn,zhuàn,zhuǎi 0x8F4A:wèi 0x8F4B:hún 0x8F4C:xuě 0x8F4D:zhé 0x8F4E:jiào 0x8F4F:zhàn 0x8F50:bú 0x8F51:lǎo,láo,liáo,liǎo,liào 0x8F52:fén 0x8F53:fān 0x8F54:lín,lìn 0x8F55:gé 0x8F56:sè 0x8F57:kǎn 0x8F58:huán,huàn 0x8F59:yǐ 0x8F5A:jí 0x8F5B:zhuì 0x8F5C:ér 0x8F5D:yù 0x8F5E:jiàn 0x8F5F:hōng 0x8F60:léi 0x8F61:pèi 0x8F62:lì 0x8F63:lì 0x8F64:lú 0x8F65:lìn 0x8F66:chē,jū 0x8F67:yà,gá,zhá 0x8F68:guǐ 0x8F69:xuān 0x8F6A:dài 0x8F6B:rèn 0x8F6C:zhuǎn,zhuǎi,zhuàn 0x8F6D:è 0x8F6E:lún 0x8F6F:ruǎn 0x8F70:hōng 0x8F71:gū 0x8F72:kē,kě 0x8F73:lú 0x8F74:zhóu,zhòu 0x8F75:zhǐ 0x8F76:yì 0x8F77:hū 0x8F78:zhěn 0x8F79:lì 0x8F7A:yáo 0x8F7B:qīng 0x8F7C:shì 0x8F7D:zài,zǎi 0x8F7E:zhì 0x8F7F:jiào 0x8F80:zhōu 0x8F81:quán 0x8F82:lù 0x8F83:jiào 0x8F84:zhé 0x8F85:fǔ 0x8F86:liàng 0x8F87:niǎn 0x8F88:bèi 0x8F89:huī 0x8F8A:gǔn 0x8F8B:wǎng 0x8F8C:liáng 0x8F8D:chuò 0x8F8E:zī 0x8F8F:còu 0x8F90:fú 0x8F91:jí 0x8F92:wēn 0x8F93:shū 0x8F94:pèi 0x8F95:yuán 0x8F96:xiá 0x8F97:niǎn,zhǎn 0x8F98:lù 0x8F99:zhé 0x8F9A:lín 0x8F9B:xīn 0x8F9C:gū 0x8F9D:cí 0x8F9E:cí 0x8F9F:pì,bì,mǐ,pī 0x8FA0:zuì,zuī 0x8FA1:biàn 0x8FA2:là 0x8FA3:là 0x8FA4:cí 0x8FA5:xuē,yì 0x8FA6:bàn 0x8FA7:biàn 0x8FA8:biàn,biǎn,bàn,piàn 0x8FA9:biàn 0x8FAA:xuē 0x8FAB:biàn 0x8FAC:bān 0x8FAD:cí 0x8FAE:biàn 0x8FAF:biàn,pián,biǎn,bàn 0x8FB0:chén 0x8FB1:rǔ 0x8FB2:nóng 0x8FB3:nóng 0x8FB4:chǎn,zhěn 0x8FB5:chuò 0x8FB6:chuò 0x8FB7:yī 0x8FB8:réng 0x8FB9:biān,bian 0x8FBA:biān 0x8FBB:shí 0x8FBC:yū 0x8FBD:liáo 0x8FBE:dá,tì,tà 0x8FBF:chān,chán 0x8FC0:gān 0x8FC1:qiān 0x8FC2:yū 0x8FC3:yū 0x8FC4:qì 0x8FC5:xùn 0x8FC6:yí,yǐ,tuó 0x8FC7:guò,guō 0x8FC8:mài 0x8FC9:qī 0x8FCA:zā 0x8FCB:wàng,guàng,kuáng 0x8FCC:tù 0x8FCD:zhūn 0x8FCE:yíng,yìng 0x8FCF:dá 0x8FD0:yùn,yǔn 0x8FD1:jìn 0x8FD2:háng,xiáng 0x8FD3:yà 0x8FD4:fǎn 0x8FD5:wù,wǔ 0x8FD6:dá 0x8FD7:é 0x8FD8:hái,fú,huán 0x8FD9:zhè,zhèi 0x8FDA:dá 0x8FDB:jìn 0x8FDC:yuǎn 0x8FDD:wéi 0x8FDE:lián 0x8FDF:chí 0x8FE0:chè 0x8FE1:nì,chí 0x8FE2:tiáo 0x8FE3:zhì,chì 0x8FE4:yí,yǐ,tuó 0x8FE5:jiǒng 0x8FE6:jiā,xiè 0x8FE7:chén 0x8FE8:dài 0x8FE9:ěr 0x8FEA:dí 0x8FEB:pò,pǎi 0x8FEC:zhù,wǎng 0x8FED:dié,yì,dá 0x8FEE:zé,zuò 0x8FEF:táo 0x8FF0:shù 0x8FF1:tuó,yí 0x8FF2:qu 0x8FF3:jìng 0x8FF4:huí 0x8FF5:dòng 0x8FF6:yòu 0x8FF7:mí,mì 0x8FF8:bèng 0x8FF9:jì,jī 0x8FFA:nǎi 0x8FFB:yí 0x8FFC:jié 0x8FFD:zhuī,duī,tuī 0x8FFE:liè 0x8FFF:xùn 0x9000:tuì 0x9001:sòng 0x9002:shì,kuò 0x9003:táo 0x9004:páng,féng 0x9005:hòu 0x9006:nì 0x9007:dùn 0x9008:jiǒng 0x9009:xuǎn 0x900A:xùn 0x900B:bū 0x900C:yōu,yóu 0x900D:xiāo 0x900E:qiú 0x900F:tòu,shū 0x9010:zhú,dí,zhòu,tún 0x9011:qiú 0x9012:dì 0x9013:dì 0x9014:tú 0x9015:jìng 0x9016:tì 0x9017:dòu,zhù,tóu,qí 0x9018:yǐ,sì 0x9019:zhè,yàn,zhèi 0x901A:tōng,tòng 0x901B:guàng,kuáng 0x901C:wù,wǔ 0x901D:shì 0x901E:chěng,yíng 0x901F:sù 0x9020:zào,cào,cāo 0x9021:qūn,xùn,suō 0x9022:féng,péng,páng 0x9023:lián,liǎn,liàn,làn 0x9024:suò 0x9025:huí 0x9026:lǐ 0x9027:gǔ 0x9028:lái,lài 0x9029:bèn,bēn 0x902A:cuò 0x902B:jué,zhú 0x902C:bèng,pēng 0x902D:huàn 0x902E:dǎi,dài,dì 0x902F:lù,dài 0x9030:yóu 0x9031:zhōu 0x9032:jìn 0x9033:yù 0x9034:chuō,chuò 0x9035:kuí,kuǐ 0x9036:wēi 0x9037:tì 0x9038:yì 0x9039:dá 0x903A:yuǎn 0x903B:luó 0x903C:bī 0x903D:nuò 0x903E:yú,dòu 0x903F:dàng,táng 0x9040:suí 0x9041:dùn,qūn,xún 0x9042:suì,suí 0x9043:yǎn,àn 0x9044:chuán 0x9045:chí 0x9046:tí 0x9047:yù,yóng,ǒu 0x9048:shí 0x9049:zhēn 0x904A:yóu 0x904B:yùn 0x904C:è 0x904D:biàn 0x904E:guò,guō,guo,huò 0x904F:è 0x9050:xiá 0x9051:huáng 0x9052:qiú,qiū 0x9053:dào,dǎo 0x9054:dá,tà 0x9055:wéi,huí 0x9056:nán 0x9057:yí,wèi 0x9058:gòu 0x9059:yáo 0x905A:chòu 0x905B:liú,liù 0x905C:xùn 0x905D:tà 0x905E:dì,shì,dài 0x905F:chí,zhì,xī 0x9060:yuǎn,yuàn 0x9061:sù 0x9062:tà 0x9063:qiǎn,qiàn 0x9064:mǎ 0x9065:yáo 0x9066:guàn 0x9067:zhāng 0x9068:áo 0x9069:shì,dí,tì,zhé 0x906A:cà 0x906B:chì 0x906C:sù 0x906D:zāo 0x906E:zhē 0x906F:dùn 0x9070:dì,shì,dài 0x9071:lóu 0x9072:chí,zhì 0x9073:cuō 0x9074:lín,lìn 0x9075:zūn 0x9076:rào 0x9077:qiān 0x9078:xuǎn,xuàn,suàn,shuā 0x9079:yù 0x907A:yí,wèi,suí 0x907B:è 0x907C:liáo 0x907D:jù,qú 0x907E:shì 0x907F:bì 0x9080:yāo 0x9081:mài 0x9082:xiè 0x9083:suì 0x9084:hái,huán,xuán 0x9085:zhān,zhàn 0x9086:téng 0x9087:ěr 0x9088:miǎo,miáo 0x9089:biān 0x908A:biān 0x908B:lā,liè 0x908C:lí,chí 0x908D:yuán 0x908E:yáo 0x908F:luó,luò 0x9090:lǐ 0x9091:yì,è 0x9092:tíng 0x9093:dèng,shān 0x9094:qǐ 0x9095:yōng,yǒng 0x9096:shān 0x9097:hán 0x9098:yú 0x9099:máng 0x909A:rú,fù 0x909B:qióng 0x909C:xī 0x909D:kuàng 0x909E:fū 0x909F:kàng,háng,kāng 0x90A0:bīn 0x90A1:fāng,fàng 0x90A2:xíng,gěng 0x90A3:nà,nuó,nuò,nèi,nǎ,něi,né,nā,nǎi,nè 0x90A4:xīn 0x90A5:shěn 0x90A6:bāng 0x90A7:yuán 0x90A8:cūn 0x90A9:huǒ 0x90AA:xié,yá,yé,xú,shé 0x90AB:bāng 0x90AC:wū 0x90AD:jù 0x90AE:yóu 0x90AF:hán,hàn 0x90B0:tái 0x90B1:qiū 0x90B2:bì,biàn 0x90B3:pī 0x90B4:bǐng 0x90B5:shào 0x90B6:bèi 0x90B7:wǎ 0x90B8:dǐ 0x90B9:zōu 0x90BA:yè,qiū 0x90BB:lín 0x90BC:kuāng 0x90BD:guī 0x90BE:zhū 0x90BF:shī 0x90C0:kū 0x90C1:yù 0x90C2:gāi,hái 0x90C3:hé,xiá 0x90C4:qiè,xì 0x90C5:zhì,jí 0x90C6:jí 0x90C7:huán,xún 0x90C8:hòu 0x90C9:xíng 0x90CA:jiāo 0x90CB:xí 0x90CC:guī 0x90CD:nuó,nǎ,fú 0x90CE:láng,làng 0x90CF:jiá 0x90D0:kuài 0x90D1:zhèng 0x90D2:láng 0x90D3:yùn 0x90D4:yán 0x90D5:chéng 0x90D6:dòu 0x90D7:xī,chī 0x90D8:lǚ 0x90D9:fǔ 0x90DA:wú,yú 0x90DB:fú 0x90DC:gào 0x90DD:hǎo,shì 0x90DE:láng 0x90DF:jiá 0x90E0:gěng 0x90E1:jùn 0x90E2:yǐng,chéng 0x90E3:bó 0x90E4:xì 0x90E5:bèi 0x90E6:lì 0x90E7:yún 0x90E8:bù,pǒu 0x90E9:xiáo,ǎo 0x90EA:qī 0x90EB:pí 0x90EC:qīng 0x90ED:guō,guó 0x90EE:zhōu 0x90EF:tán 0x90F0:zōu,jǔ 0x90F1:píng 0x90F2:lái,lěi 0x90F3:ní 0x90F4:chēn,lán 0x90F5:yóu,chuí 0x90F6:bù 0x90F7:xiāng 0x90F8:dān 0x90F9:jú 0x90FA:yōng 0x90FB:qiāo 0x90FC:yī 0x90FD:dōu,dū 0x90FE:yǎn,yān 0x90FF:méi 0x9100:ruò 0x9101:bèi 0x9102:è 0x9103:shū 0x9104:juàn 0x9105:yǔ 0x9106:yùn 0x9107:hóu 0x9108:kuí 0x9109:xiāng,xiǎng,xiàng 0x910A:xiāng 0x910B:sōu 0x910C:táng 0x910D:míng 0x910E:xī 0x910F:rǔ 0x9110:chù 0x9111:zī 0x9112:zōu,jù 0x9113:yè 0x9114:wū 0x9115:xiāng 0x9116:yún 0x9117:hào,qiāo,jiāo 0x9118:yōng 0x9119:bǐ 0x911A:mào,mò 0x911B:cháo 0x911C:fū,lù 0x911D:liǎo 0x911E:yín 0x911F:zhuān 0x9120:hù 0x9121:qiāo 0x9122:yān 0x9123:zhāng,zhàng 0x9124:màn,wàn 0x9125:qiāo 0x9126:xǔ 0x9127:dèng 0x9128:bì 0x9129:xún 0x912A:bì 0x912B:zēng,céng 0x912C:wéi 0x912D:zhèng 0x912E:mào 0x912F:shàn 0x9130:lín,lìn 0x9131:pó,pí,pán 0x9132:dān,duō 0x9133:méng 0x9134:yè 0x9135:cào,sāo 0x9136:kuài 0x9137:fēng 0x9138:méng 0x9139:zōu,jù 0x913A:kuàng,kuò 0x913B:liǎn 0x913C:zàn 0x913D:chán 0x913E:yōu 0x913F:jī,qí 0x9140:yàn,yǎn 0x9141:chán 0x9142:cuó,zàn 0x9143:líng 0x9144:huān,quān 0x9145:xī 0x9146:fēng 0x9147:zàn,cuó 0x9148:lì,lí,zhí 0x9149:yǒu 0x914A:dīng,dǐng 0x914B:qiú 0x914C:zhuó 0x914D:pèi 0x914E:zhòu 0x914F:yǐ,yí 0x9150:gān,hàng 0x9151:yú 0x9152:jiǔ 0x9153:yǎn,yàn,yǐn 0x9154:zuì 0x9155:máo 0x9156:zhèn,dān 0x9157:xù 0x9158:dòu 0x9159:zhēn 0x915A:fēn 0x915B:yuán 0x915C:fu 0x915D:yùn 0x915E:tài 0x915F:tiān 0x9160:qiǎ 0x9161:tuó,duò 0x9162:cù,zuò 0x9163:hān,hàn 0x9164:gū 0x9165:sū 0x9166:pò,fā,pō 0x9167:chóu 0x9168:zài,zuì 0x9169:mǐng 0x916A:lào,luò,lù 0x916B:chuò 0x916C:chóu 0x916D:yòu 0x916E:tóng,dòng,chóng 0x916F:zhǐ 0x9170:xiān 0x9171:jiàng 0x9172:chéng 0x9173:yìn 0x9174:tú 0x9175:jiào 0x9176:méi 0x9177:kù 0x9178:suān 0x9179:lèi 0x917A:pú 0x917B:zuì,fú 0x917C:hǎi 0x917D:yàn 0x917E:shāi,shī 0x917F:niàng,niáng 0x9180:wéi,zhuì 0x9181:lù 0x9182:lǎn 0x9183:yān,āng 0x9184:táo 0x9185:pēi 0x9186:zhǎn 0x9187:chún 0x9188:tán,dàn 0x9189:zuì 0x918A:zhuì 0x918B:cù,zuò 0x918C:kūn 0x918D:tí,tǐ 0x918E:xián,jiǎn 0x918F:dū 0x9190:hú 0x9191:xǔ 0x9192:xǐng,chéng,jīng 0x9193:tǎn 0x9194:qiú,chōu 0x9195:chún 0x9196:yùn 0x9197:pò 0x9198:kē 0x9199:sōu 0x919A:mí 0x919B:quán,chuò 0x919C:chǒu 0x919D:cuō,cuǒ 0x919E:yùn 0x919F:yòng 0x91A0:àng 0x91A1:zhà 0x91A2:hǎi 0x91A3:táng 0x91A4:jiàng 0x91A5:piǎo 0x91A6:chěn,chǎn 0x91A7:yù,ōu 0x91A8:lí 0x91A9:zāo 0x91AA:láo 0x91AB:yī,yǐ 0x91AC:jiàng 0x91AD:bú 0x91AE:jiào,qiáo,zhàn 0x91AF:xī 0x91B0:tán 0x91B1:fā,pò,pō 0x91B2:nóng 0x91B3:yì,shì 0x91B4:lǐ 0x91B5:jù 0x91B6:yàn,liǎn,xiān,jiǎn 0x91B7:yì,yǐ,ài 0x91B8:niàng 0x91B9:rú 0x91BA:xūn 0x91BB:chóu,shòu,dào 0x91BC:yàn 0x91BD:líng 0x91BE:mí 0x91BF:mí 0x91C0:niàng,niáng 0x91C1:xìn 0x91C2:jiào 0x91C3:shāi,shī,lí 0x91C4:mí 0x91C5:yàn 0x91C6:biàn,biǎn 0x91C7:cǎi,cài 0x91C8:shì 0x91C9:yòu 0x91CA:shì 0x91CB:shì,yì 0x91CC:lǐ,li 0x91CD:zhòng,chóng,tóng 0x91CE:yě,shù 0x91CF:liàng,liáng 0x91D0:lí,xī,lái,tāi,lài,xǐ 0x91D1:jīn,jìn 0x91D2:jīn 0x91D3:qiú,gá 0x91D4:yǐ 0x91D5:liǎo,liào 0x91D6:dāo 0x91D7:zhāo 0x91D8:dīng,dìng,líng 0x91D9:pò,pō 0x91DA:qiú 0x91DB:bā 0x91DC:fǔ 0x91DD:zhēn 0x91DE:zhí 0x91DF:bā 0x91E0:luàn 0x91E1:fǔ 0x91E2:nǎi 0x91E3:diào 0x91E4:shàn,shān,xiān 0x91E5:qiǎo,jiǎo 0x91E6:kòu 0x91E7:chuàn,chuān 0x91E8:zǐ 0x91E9:fǎn,fàn,fán 0x91EA:huá,yú 0x91EB:huá,wū 0x91EC:hàn,gān 0x91ED:gāng,gōng 0x91EE:qí 0x91EF:máng 0x91F0:rì,rèn,jiàn 0x91F1:dì 0x91F2:sì 0x91F3:xì 0x91F4:yì 0x91F5:chāi,chā 0x91F6:shī,yí,yě 0x91F7:tǔ 0x91F8:xī 0x91F9:nǚ 0x91FA:qiān 0x91FB:qiú 0x91FC:jiàn 0x91FD:pì,pī,zhāo 0x91FE:yé,yá 0x91FF:jīn,yǐn,yín 0x9200:bǎ,bā,pá 0x9201:fāng 0x9202:chén,qín,zhèn 0x9203:xíng 0x9204:dǒu 0x9205:yuè 0x9206:qiān,zhōng 0x9207:fū,fǔ 0x9208:pī,bù 0x9209:nà,ruì 0x920A:xīn,qìn 0x920B:é 0x920C:jué 0x920D:dùn 0x920E:gōu 0x920F:yǐn 0x9210:qián,hán 0x9211:bǎn 0x9212:sà,xì 0x9213:rén 0x9214:chāo,chǎo 0x9215:niǔ,chǒu 0x9216:fēn 0x9217:yǔn,duì 0x9218:yǐ 0x9219:qín 0x921A:pī,bī,bǐ 0x921B:guō 0x921C:hóng 0x921D:yín 0x921E:jūn 0x921F:diào 0x9220:yì 0x9221:zhōng 0x9222:xǐ 0x9223:gài 0x9224:rì 0x9225:huǒ 0x9226:tài 0x9227:kàng 0x9228:yuán 0x9229:lú 0x922A:è 0x922B:qín 0x922C:duó 0x922D:zī 0x922E:nǐ,ní 0x922F:tú 0x9230:shì 0x9231:mín,mǐn 0x9232:gū,pì 0x9233:kē 0x9234:líng 0x9235:bǐng 0x9236:sì,cí,tái 0x9237:gǔ,hú,gù 0x9238:bó 0x9239:pī,pí 0x923A:yù 0x923B:sì 0x923C:zuó 0x923D:bū 0x923E:yóu,zhòu 0x923F:tián,diàn 0x9240:jiǎ,gé 0x9241:zhēn,zhèn 0x9242:shǐ 0x9243:shì,zú 0x9244:zhí,tiě 0x9245:jù 0x9246:chān,qián,tiē 0x9247:shī,yí 0x9248:shī,shé,yí,tuó,tā 0x9249:xuàn 0x924A:zhāo 0x924B:bào,páo,báo 0x924C:hé 0x924D:bì,sè 0x924E:shēng 0x924F:chú,zū,zhù,jǔ,chá,xú 0x9250:shí,zú 0x9251:bó 0x9252:zhù 0x9253:chì 0x9254:zā 0x9255:pō,pǒ 0x9256:tóng 0x9257:qián,ān 0x9258:fú 0x9259:zhǎi 0x925A:liǔ,mǎo 0x925B:qiān,yán 0x925C:fú 0x925D:lì 0x925E:yuè 0x925F:pī 0x9260:yāng 0x9261:bàn 0x9262:bō 0x9263:jié 0x9264:gōu,gòu,qú 0x9265:shù,xù 0x9266:zhēng 0x9267:mǔ 0x9268:xǐ,nǐ,niě 0x9269:xǐ,niè 0x926A:dì 0x926B:jiā 0x926C:mù 0x926D:tǎn 0x926E:huán,shén,shēn 0x926F:yǐ 0x9270:sī 0x9271:kuàng 0x9272:kǎ 0x9273:běi 0x9274:jiàn 0x9275:tóng,zhuó 0x9276:xíng 0x9277:hóng 0x9278:jiǎo 0x9279:chǐ 0x927A:èr,kēng,ěr 0x927B:luò,gē,gè 0x927C:bǐng,píng 0x927D:shì 0x927E:móu,máo 0x927F:jiā,gē,kē,hā 0x9280:yín 0x9281:jūn 0x9282:zhōu 0x9283:chòng 0x9284:xiǎng,jiōng 0x9285:tóng 0x9286:mò 0x9287:lèi 0x9288:jī 0x9289:yù,sì 0x928A:xù,huì 0x928B:rén,rěn 0x928C:zùn 0x928D:zhì 0x928E:qióng,qiōng 0x928F:shàn,shuò 0x9290:chì,lì 0x9291:xiǎn,xiān,xǐ 0x9292:xíng,jiān 0x9293:quán 0x9294:pī 0x9295:tiě,yí 0x9296:zhū 0x9297:xiàng,hóu 0x9298:míng 0x9299:kuǎ 0x929A:yáo,diào,tiáo,qiāo,yào 0x929B:xiān,tiǎn,guā 0x929C:xián 0x929D:xiū 0x929E:jūn 0x929F:chā 0x92A0:lǎo 0x92A1:jí 0x92A2:pǐ 0x92A3:rú 0x92A4:mǐ 0x92A5:yī 0x92A6:yīn 0x92A7:guāng 0x92A8:ǎn 0x92A9:diū 0x92AA:yǒu 0x92AB:sè 0x92AC:kào 0x92AD:qián 0x92AE:luán 0x92AF:sī 0x92B0:āi 0x92B1:diào 0x92B2:hàn 0x92B3:ruì 0x92B4:shì,zhì 0x92B5:kēng 0x92B6:qiú 0x92B7:xiāo 0x92B8:zhé,niè 0x92B9:xiù,yòu 0x92BA:zàng 0x92BB:tí,tī 0x92BC:cuò 0x92BD:guā 0x92BE:hòng,gǒng 0x92BF:zhōng,yōng 0x92C0:tōu,dòu,tù 0x92C1:lǚ,lǜ 0x92C2:méi,méng 0x92C3:láng 0x92C4:wàn 0x92C5:xīn,zǐ 0x92C6:yún,jūn 0x92C7:bèi 0x92C8:wù 0x92C9:sù 0x92CA:yù 0x92CB:chán,yán 0x92CC:dìng,tǐng 0x92CD:bó 0x92CE:hàn 0x92CF:jiá 0x92D0:hóng 0x92D1:cuān,jiān,juān 0x92D2:fēng 0x92D3:chān 0x92D4:wǎn 0x92D5:zhì 0x92D6:sī,tuó 0x92D7:xuān,juān,juàn 0x92D8:huá,wú,hú 0x92D9:yǔ,yú,wú 0x92DA:tiáo 0x92DB:kuàng 0x92DC:zhuó,chuò 0x92DD:lüè 0x92DE:xíng,xìng,jīng 0x92DF:qǐn,qiān,qīn,jìn 0x92E0:shèn 0x92E1:hán 0x92E2:lüè 0x92E3:yé 0x92E4:chú,jǔ 0x92E5:zèng 0x92E6:jū,jú 0x92E7:xiàn 0x92E8:tiě,é 0x92E9:máng 0x92EA:pù,pū 0x92EB:lí 0x92EC:pàn 0x92ED:ruì,duì,yuè 0x92EE:chéng 0x92EF:gào 0x92F0:lǐ 0x92F1:tè 0x92F2:bīng 0x92F3:zhù 0x92F4:zhèn 0x92F5:tū 0x92F6:liǔ 0x92F7:zuì,niè 0x92F8:jù,jū 0x92F9:chǎng 0x92FA:yuǎn,yuān,wǎn,wān 0x92FB:jiàn,jiān 0x92FC:gāng,gàng 0x92FD:diào 0x92FE:táo 0x92FF:cháng 0x9300:lún,fēn 0x9301:guǒ,kuǎ,kè 0x9302:líng 0x9303:pī 0x9304:lù 0x9305:lí 0x9306:qiāng 0x9307:póu,fú,péi 0x9308:juǎn 0x9309:mín 0x930A:zuì,zū 0x930B:péng,bèng 0x930C:àn 0x930D:pī,bēi,bī,pí 0x930E:xiàn,gàn,qiàn 0x930F:yā,yà 0x9310:zhuī 0x9311:lèi,lì 0x9312:kē,ā 0x9313:kōng 0x9314:tà 0x9315:kūn,gǔn 0x9316:dú 0x9317:nèi,zhuì,wèi 0x9318:chuí 0x9319:zī 0x931A:zhēng 0x931B:bēn 0x931C:niè 0x931D:zòng 0x931E:chún,duì,duò 0x931F:tán,xiān,yǎn 0x9320:dìng 0x9321:qí,yǐ 0x9322:qián,jiǎn 0x9323:zhuì,chuò 0x9324:jī 0x9325:yù 0x9326:jǐn 0x9327:guǎn 0x9328:máo 0x9329:chāng 0x932A:tiǎn,tǔn 0x932B:xī,tì 0x932C:liàn 0x932D:táo,diāo 0x932E:gù 0x932F:cuò,cù,xī 0x9330:shù 0x9331:zhēn 0x9332:lù,lǜ 0x9333:měng 0x9334:lù 0x9335:huā 0x9336:biǎo 0x9337:gá 0x9338:lái 0x9339:kěn 0x933A:fāng 0x933B:wu 0x933C:nài 0x933D:wàn,jiǎn 0x933E:zàn 0x933F:hǔ 0x9340:dé 0x9341:xiān 0x9342:piān 0x9343:huō 0x9344:liàng 0x9345:fǎ 0x9346:mén 0x9347:kǎi,jiē,jiě 0x9348:yīng 0x9349:dī,chí,dí,shì 0x934A:liàn,jiàn 0x934B:guō,guǒ 0x934C:xiǎn 0x934D:dù 0x934E:tú 0x934F:wéi 0x9350:zōng 0x9351:fù 0x9352:róu 0x9353:jí 0x9354:è 0x9355:jūn 0x9356:chěn,zhēn 0x9357:tí 0x9358:zhá 0x9359:hù 0x935A:yáng 0x935B:duàn 0x935C:xiá 0x935D:yú 0x935E:kēng 0x935F:shēng 0x9360:huáng 0x9361:wěi 0x9362:fù 0x9363:zhāo 0x9364:chā 0x9365:qiè 0x9366:shī,shé 0x9367:hōng 0x9368:kuí 0x9369:tiǎn,nuò 0x936A:móu 0x936B:qiāo 0x936C:qiāo 0x936D:hóu 0x936E:tōu 0x936F:cōng 0x9370:huán 0x9371:yè,xié 0x9372:mín 0x9373:jiàn 0x9374:duān 0x9375:jiàn 0x9376:sōng,sī 0x9377:kuí 0x9378:hú 0x9379:xuān 0x937A:duǒ,dǔ,zhě 0x937B:jié 0x937C:zhēn,qián 0x937D:biān 0x937E:zhōng 0x937F:zī 0x9380:xiū 0x9381:yé 0x9382:měi 0x9383:pài 0x9384:āi 0x9385:jiè 0x9386:qian 0x9387:méi 0x9388:suǒ,chā 0x9389:dá,tà 0x938A:bàng,pāng 0x938B:xiá 0x938C:lián 0x938D:suǒ,sè 0x938E:kài 0x938F:liú 0x9390:yáo,zú 0x9391:yè,tà,gé 0x9392:nòu,hāo 0x9393:wēng 0x9394:róng 0x9395:táng 0x9396:suǒ 0x9397:qiāng,chēng,qiàng 0x9398:lì,gé 0x9399:shuò 0x939A:chuí,duī,zhuì 0x939B:bó 0x939C:pán 0x939D:dā,sà 0x939E:bī,pī 0x939F:sǎng 0x93A0:gāng 0x93A1:zī 0x93A2:wū 0x93A3:yíng,yīng,jiǒng 0x93A4:huàng 0x93A5:tiáo 0x93A6:liú,liù 0x93A7:kǎi 0x93A8:sǔn 0x93A9:shā,shì,sè 0x93AA:sōu 0x93AB:wàn 0x93AC:hào,gǎo 0x93AD:zhèn 0x93AE:zhèn,zhēn,tián 0x93AF:láng,luǒ 0x93B0:yì 0x93B1:yuán 0x93B2:tǎng 0x93B3:niè 0x93B4:xí 0x93B5:jiā 0x93B6:gē 0x93B7:mǎ 0x93B8:juān 0x93B9:sòng 0x93BA:zǔ 0x93BB:suǒ 0x93BC:xià 0x93BD:fēng 0x93BE:wēn 0x93BF:ná 0x93C0:lǔ 0x93C1:suǒ 0x93C2:ōu,kōu 0x93C3:zú,chuò 0x93C4:tuán 0x93C5:xiū,xiù 0x93C6:guàn 0x93C7:xuàn,xuán 0x93C8:liàn,lián 0x93C9:shòu,sōu 0x93CA:ào 0x93CB:mǎn 0x93CC:mò 0x93CD:luó 0x93CE:bì 0x93CF:wèi 0x93D0:liú,liù,liáo 0x93D1:dí,dī 0x93D2:sǎn,qiāo,càn 0x93D3:zǒng,cōng 0x93D4:yí 0x93D5:lù,áo 0x93D6:áo,biāo 0x93D7:kēng 0x93D8:qiāng 0x93D9:cuī 0x93DA:qī 0x93DB:cháng 0x93DC:tāng,táng 0x93DD:màn 0x93DE:yōng 0x93DF:chǎn 0x93E0:fēng 0x93E1:jìng 0x93E2:biāo 0x93E3:shù 0x93E4:lòu,lǘ 0x93E5:xiù 0x93E6:cōng 0x93E7:lóng 0x93E8:zàn 0x93E9:jiàn,zàn 0x93EA:cáo 0x93EB:lí 0x93EC:xià 0x93ED:xī 0x93EE:kāng 0x93EF:shuǎng 0x93F0:bèng 0x93F1:zhang 0x93F2:qian 0x93F3:chēng 0x93F4:lù 0x93F5:huá 0x93F6:jí 0x93F7:pú 0x93F8:huì,suì,ruì 0x93F9:qiǎng,qiāng 0x93FA:pō 0x93FB:lín 0x93FC:sè 0x93FD:xiù 0x93FE:sǎn,xiàn,sà 0x93FF:chēng 0x9400:kuì 0x9401:sī 0x9402:liú 0x9403:náo,nào 0x9404:huáng 0x9405:piě 0x9406:suì 0x9407:fán 0x9408:qiáo 0x9409:quān 0x940A:yáng 0x940B:tāng,tàng 0x940C:xiàng 0x940D:jué,yù 0x940E:jiāo 0x940F:zūn 0x9410:liáo 0x9411:qiè 0x9412:láo 0x9413:duì,duī,dūn 0x9414:xín 0x9415:zān 0x9416:jī,qí 0x9417:jiǎn 0x9418:zhōng 0x9419:dèng,dēng 0x941A:yā 0x941B:yǐng 0x941C:duī,dūn 0x941D:jué 0x941E:nòu 0x941F:zān,tì 0x9420:pǔ 0x9421:tiě 0x9422:fán 0x9423:chēng 0x9424:dǐng 0x9425:shàn 0x9426:kāi 0x9427:jiān,jiǎn 0x9428:fèi 0x9429:suì 0x942A:lǔ 0x942B:juān 0x942C:huì 0x942D:yù 0x942E:lián 0x942F:zhuó 0x9430:qiāo,sào,cáo 0x9431:jiàn,qiān 0x9432:zhuó,shǔ 0x9433:léi 0x9434:bì,bèi 0x9435:tiě,dié 0x9436:huán,xuàn 0x9437:yè 0x9438:duó 0x9439:guǒ,guō 0x943A:dāng,chēng,tāng 0x943B:jù,qú 0x943C:fén,bēn 0x943D:dá 0x943E:bèi 0x943F:yì 0x9440:ài 0x9441:zōng 0x9442:xùn 0x9443:diào 0x9444:zhù 0x9445:héng 0x9446:zhuì 0x9447:jī 0x9448:niè,nǐ 0x9449:hé 0x944A:huò 0x944B:qīng 0x944C:bīn 0x944D:yīng 0x944E:kuì 0x944F:níng,nǐng 0x9450:xū,rú,róu 0x9451:jiàn 0x9452:jiàn 0x9453:qiǎn 0x9454:chǎ 0x9455:zhì 0x9456:miè,mì 0x9457:lí 0x9458:léi,lěi 0x9459:jī 0x945A:zuàn 0x945B:kuàng,gǒng 0x945C:shǎng 0x945D:péng 0x945E:là 0x945F:dú 0x9460:shuò,yuè,lì 0x9461:chuò 0x9462:lǜ 0x9463:biāo 0x9464:bào 0x9465:lǔ 0x9466:xian 0x9467:kuān 0x9468:lóng 0x9469:è 0x946A:lú 0x946B:xīn,xùn 0x946C:jiàn 0x946D:làn,lán 0x946E:bó 0x946F:jiān,qiān 0x9470:yào,yuè 0x9471:chán 0x9472:xiāng,ráng 0x9473:jiàn 0x9474:xī,huī 0x9475:guàn 0x9476:cáng 0x9477:niè 0x9478:lěi 0x9479:cuān,cuàn 0x947A:qú 0x947B:pàn 0x947C:luó 0x947D:zuān,zuàn 0x947E:luán 0x947F:záo,zuò,zú,zào 0x9480:niè,yǐ 0x9481:jué 0x9482:tǎng 0x9483:zhú 0x9484:lán 0x9485:jīn 0x9486:gá 0x9487:yǐ 0x9488:zhēn 0x9489:dīng,dìng 0x948A:zhāo 0x948B:pō 0x948C:liǎo,liào 0x948D:tǔ 0x948E:qiān 0x948F:chuàn 0x9490:shān,shàn 0x9491:sà 0x9492:fán 0x9493:diào 0x9494:mén 0x9495:nǚ 0x9496:yáng 0x9497:chāi 0x9498:xíng 0x9499:gài 0x949A:bù 0x949B:tài 0x949C:jù 0x949D:dùn 0x949E:chāo 0x949F:zhōng 0x94A0:nà 0x94A1:bèi 0x94A2:gāng,gàng 0x94A3:bǎn 0x94A4:qián 0x94A5:yào,yuè 0x94A6:qīn 0x94A7:jūn 0x94A8:wū 0x94A9:gōu 0x94AA:kàng 0x94AB:fāng 0x94AC:huǒ 0x94AD:tǒu,dǒu 0x94AE:niǔ 0x94AF:bǎ,pá 0x94B0:yù 0x94B1:qián 0x94B2:zhēng 0x94B3:qián 0x94B4:gǔ 0x94B5:bō 0x94B6:kē 0x94B7:pǒ 0x94B8:bū 0x94B9:bó 0x94BA:yuè 0x94BB:zuān,zuàn 0x94BC:mù 0x94BD:tǎn 0x94BE:jiǎ 0x94BF:diàn,tián 0x94C0:yóu 0x94C1:tiě 0x94C2:bó 0x94C3:líng 0x94C4:shuò 0x94C5:qiān,yán 0x94C6:mǎo 0x94C7:bào 0x94C8:shì 0x94C9:xuàn 0x94CA:tā,tuó 0x94CB:bì 0x94CC:ní 0x94CD:pī,pí 0x94CE:duó 0x94CF:xíng 0x94D0:kào 0x94D1:lǎo 0x94D2:ěr 0x94D3:máng 0x94D4:yā 0x94D5:yǒu 0x94D6:chéng 0x94D7:jiá 0x94D8:yé 0x94D9:náo 0x94DA:zhì 0x94DB:dāng,chēng 0x94DC:tóng 0x94DD:lǚ 0x94DE:diào 0x94DF:yīn 0x94E0:kǎi 0x94E1:zhá 0x94E2:zhū 0x94E3:xǐ,xiǎn 0x94E4:dìng,tǐng 0x94E5:diū 0x94E6:xiān 0x94E7:huá 0x94E8:quán 0x94E9:shā 0x94EA:hā 0x94EB:diào,yáo 0x94EC:gè 0x94ED:míng 0x94EE:zhēng,zhèng 0x94EF:sè 0x94F0:jiǎo 0x94F1:yī 0x94F2:chǎn 0x94F3:chòng 0x94F4:tāng 0x94F5:ǎn 0x94F6:yín 0x94F7:rú 0x94F8:zhù 0x94F9:láo 0x94FA:pù,pū 0x94FB:wú,yǔ 0x94FC:lái 0x94FD:tè 0x94FE:liàn 0x94FF:kēng 0x9500:xiāo 0x9501:suǒ 0x9502:lǐ 0x9503:zèng 0x9504:chú 0x9505:guō 0x9506:gào 0x9507:é 0x9508:xiù 0x9509:cuò 0x950A:lüè 0x950B:fēng 0x950C:xīn 0x950D:liǔ 0x950E:kāi 0x950F:jiǎn,jiàn 0x9510:ruì 0x9511:tī 0x9512:láng 0x9513:qǐn 0x9514:jū,jú 0x9515:ā 0x9516:qiāng 0x9517:zhě 0x9518:nuò 0x9519:cuò 0x951A:máo 0x951B:bēn 0x951C:qí 0x951D:dé 0x951E:kè 0x951F:kūn 0x9520:chāng 0x9521:xī 0x9522:gù 0x9523:luó 0x9524:chuí 0x9525:zhuī 0x9526:jǐn 0x9527:zhì 0x9528:xiān 0x9529:juǎn 0x952A:huō 0x952B:péi 0x952C:tán,xiān 0x952D:dìng 0x952E:jiàn 0x952F:jù,jū 0x9530:měng 0x9531:zī 0x9532:qiè 0x9533:yīng 0x9534:kǎi 0x9535:qiāng 0x9536:sī 0x9537:è 0x9538:chā 0x9539:qiāo 0x953A:zhōng 0x953B:duàn 0x953C:sōu 0x953D:huáng 0x953E:huán 0x953F:āi 0x9540:dù 0x9541:měi 0x9542:lòu 0x9543:zī 0x9544:fèi 0x9545:méi 0x9546:mò 0x9547:zhèn 0x9548:bó 0x9549:gé 0x954A:niè 0x954B:tǎng 0x954C:juān 0x954D:niè 0x954E:ná 0x954F:liú,liù 0x9550:gǎo,hào 0x9551:bàng 0x9552:yì 0x9553:jiā 0x9554:bīn 0x9555:róng 0x9556:biāo 0x9557:tāng,táng 0x9558:màn 0x9559:luó 0x955A:bèng 0x955B:yōng 0x955C:jìng 0x955D:dī,dí 0x955E:zú 0x955F:xuàn 0x9560:liú 0x9561:chán,tán,xín 0x9562:jué 0x9563:liào 0x9564:pú 0x9565:lǔ 0x9566:duì,dūn 0x9567:lán 0x9568:pǔ 0x9569:cuān 0x956A:qiāng,qiǎng 0x956B:dèng 0x956C:huò 0x956D:léi 0x956E:huán 0x956F:zhuó 0x9570:lián 0x9571:yì 0x9572:chǎ 0x9573:biāo 0x9574:là 0x9575:chán 0x9576:xiāng 0x9577:zhǎng,cháng,zhàng 0x9578:cháng 0x9579:jiǔ 0x957A:ǎo 0x957B:dié 0x957C:qū 0x957D:liǎo,liáo 0x957E:mí 0x957F:zhǎng,cháng 0x9580:mén 0x9581:mà 0x9582:shuān 0x9583:shǎn 0x9584:huò,shǎn 0x9585:mén 0x9586:yán 0x9587:bì 0x9588:hàn,bì 0x9589:bì 0x958A:shān 0x958B:kāi,qiān 0x958C:kàng 0x958D:bēng 0x958E:hóng 0x958F:rùn 0x9590:sàn 0x9591:xián 0x9592:xián,jiàn,jiān,jiǎn 0x9593:jiān,jiàn,jiǎn 0x9594:mǐn,mín 0x9595:xiā,xiǎ 0x9596:shui 0x9597:dòu 0x9598:zhá,yā,gē 0x9599:nào 0x959A:zhān 0x959B:pēng,pèng 0x959C:xiǎ,ě 0x959D:líng 0x959E:biàn,guān 0x959F:bì 0x95A0:rùn 0x95A1:ài,hé,hài,gāi,kǎi 0x95A2:guān 0x95A3:gé 0x95A4:gé,gē,hé 0x95A5:fá 0x95A6:chù 0x95A7:hòng,xiàng 0x95A8:guī 0x95A9:mǐn 0x95AA:sē 0x95AB:kǔn 0x95AC:làng,lǎng,liǎng 0x95AD:lǘ 0x95AE:tíng,tǐng 0x95AF:shà 0x95B0:jú 0x95B1:yuè 0x95B2:yuè 0x95B3:chǎn 0x95B4:qù 0x95B5:lìn 0x95B6:chāng,tāng 0x95B7:shài,shā 0x95B8:kǔn 0x95B9:yān 0x95BA:wén 0x95BB:yán,yǎn,yàn 0x95BC:è,yù,yān 0x95BD:hūn 0x95BE:yù 0x95BF:wén 0x95C0:hòng 0x95C1:bāo 0x95C2:hòng,xiàng,juǎn 0x95C3:qù 0x95C4:yǎo 0x95C5:wén 0x95C6:bǎn,pǎn 0x95C7:àn,ǎn,ān,yīn,yǐn 0x95C8:wéi 0x95C9:yīn 0x95CA:kuò 0x95CB:què,jué,kuí 0x95CC:lán,làn 0x95CD:dū,shé 0x95CE:quán 0x95CF:fēng 0x95D0:tián 0x95D1:niè 0x95D2:tà 0x95D3:kǎi 0x95D4:hé 0x95D5:què,quē,jué 0x95D6:chuǎng,chèn 0x95D7:guān 0x95D8:dòu 0x95D9:qǐ 0x95DA:kuī 0x95DB:táng,tāng,chāng 0x95DC:guān,wān,wǎn 0x95DD:piáo 0x95DE:kàn,hǎn,xiàn 0x95DF:xì,sè,tà 0x95E0:huì 0x95E1:chǎn 0x95E2:pì,pī 0x95E3:dàng,tāng 0x95E4:huán 0x95E5:tà 0x95E6:wén 0x95E7:tā 0x95E8:mén 0x95E9:shuān 0x95EA:shǎn 0x95EB:yán 0x95EC:hàn 0x95ED:bì 0x95EE:wèn 0x95EF:chuǎng 0x95F0:rùn 0x95F1:wéi 0x95F2:xián 0x95F3:hóng 0x95F4:jiān,jiàn 0x95F5:mǐn 0x95F6:kāng,kàng 0x95F7:mèn,mēn 0x95F8:zhá 0x95F9:nào 0x95FA:guī 0x95FB:wén 0x95FC:tà 0x95FD:mǐn 0x95FE:lǘ 0x95FF:kǎi 0x9600:fá 0x9601:gé 0x9602:hé 0x9603:kǔn 0x9604:jiū 0x9605:yuè 0x9606:láng,làng 0x9607:dū,shé 0x9608:yù 0x9609:yān 0x960A:chāng 0x960B:xì 0x960C:wén 0x960D:hūn 0x960E:yán 0x960F:è,yān 0x9610:chǎn 0x9611:lán 0x9612:qù 0x9613:huì 0x9614:kuò 0x9615:què 0x9616:hé 0x9617:tián 0x9618:dá,tà 0x9619:quē,què 0x961A:hǎn,kàn 0x961B:huán 0x961C:fù 0x961D:fù 0x961E:lè 0x961F:duì 0x9620:xìn 0x9621:qiān 0x9622:wù,wéi 0x9623:gài,yì 0x9624:zhì,yí,tuó 0x9625:yīn 0x9626:yáng 0x9627:dǒu 0x9628:è,ài 0x9629:shēng 0x962A:bǎn 0x962B:péi 0x962C:kēng,kàng,gāng 0x962D:yǔn,yǎn 0x962E:ruǎn,yuán 0x962F:zhǐ 0x9630:pí 0x9631:jǐng 0x9632:fáng 0x9633:yáng 0x9634:yīn 0x9635:zhèn 0x9636:jiē 0x9637:chēng 0x9638:è,ài 0x9639:qū 0x963A:dǐ 0x963B:zǔ,zhù 0x963C:zuò 0x963D:diàn,yán 0x963E:lǐng,líng 0x963F:ā,ē,ě,ǎ,à,a 0x9640:tuó,duò 0x9641:tuó,zhì,yǐ 0x9642:bēi,pí,bì,pō 0x9643:bǐng 0x9644:fù,bù,fū 0x9645:jì 0x9646:lù,liù 0x9647:lǒng 0x9648:chén 0x9649:xíng 0x964A:duò 0x964B:lòu 0x964C:mò 0x964D:jiàng,xiáng,xiàng 0x964E:shū 0x964F:duò,suí 0x9650:xiàn,wěn 0x9651:ér 0x9652:guǐ 0x9653:yū 0x9654:gāi 0x9655:shǎn 0x9656:jùn 0x9657:qiào 0x9658:xíng,jìng 0x9659:chún 0x965A:fù,wǔ 0x965B:bì 0x965C:xiá 0x965D:shǎn 0x965E:shēng 0x965F:zhì,dé 0x9660:pū,bū,bù 0x9661:dǒu 0x9662:yuàn 0x9663:zhèn 0x9664:chú,zhù,shū 0x9665:xiàn 0x9666:dǎo 0x9667:niè 0x9668:yǔn 0x9669:xiǎn 0x966A:péi 0x966B:fèi,péi 0x966C:zōu,zhé 0x966D:yì,yǐ 0x966E:duì 0x966F:lún,lùn 0x9670:yīn,yìn,ān 0x9671:jū 0x9672:chuí 0x9673:chén,zhèn 0x9674:pí,bì 0x9675:líng 0x9676:táo,yáo,dào 0x9677:xiàn 0x9678:lù,liù 0x9679:shēng 0x967A:xiǎn 0x967B:yīn 0x967C:zhǔ,dǔ 0x967D:yáng 0x967E:réng,ér 0x967F:xiá 0x9680:chóng 0x9681:yàn,yǎn 0x9682:yīn 0x9683:shù,yú,yáo 0x9684:dī,tí 0x9685:yú 0x9686:lóng,lōng 0x9687:wēi 0x9688:wēi 0x9689:niè 0x968A:duì,zhuì,suì 0x968B:suí,duò,tuǒ,tuō 0x968C:ǎn 0x968D:huáng 0x968E:jiē 0x968F:suí 0x9690:yǐn 0x9691:gài,gāi,ái,qí 0x9692:yǎn 0x9693:huī,duò 0x9694:gé,rǒng,jī 0x9695:yǔn,yuán 0x9696:wù 0x9697:kuí,wěi,guī 0x9698:ài,è 0x9699:xì 0x969A:táng 0x969B:jì 0x969C:zhàng,zhāng 0x969D:dǎo 0x969E:áo 0x969F:xì 0x96A0:yǐn 0x96A1:sà 0x96A2:rǎo 0x96A3:lín 0x96A4:tuí 0x96A5:dèng 0x96A6:jiǎo,pí 0x96A7:suì,zhuì 0x96A8:suí 0x96A9:ào,yù 0x96AA:xiǎn,jiǎn,yán 0x96AB:fén 0x96AC:nǐ 0x96AD:ér 0x96AE:jī 0x96AF:dǎo 0x96B0:xí,xiè 0x96B1:yǐn,yìn 0x96B2:zhì 0x96B3:huī 0x96B4:lǒng 0x96B5:xī 0x96B6:lì,dài,yì,dì 0x96B7:lì 0x96B8:lì 0x96B9:zhuī,cuī,wéi 0x96BA:hú,què,hè 0x96BB:zhī,huò 0x96BC:sǔn 0x96BD:juàn,jùn 0x96BE:nán,nàn 0x96BF:yì 0x96C0:què,qiāo,qiǎo 0x96C1:yàn 0x96C2:qín 0x96C3:qiān,jiè 0x96C4:xióng 0x96C5:yǎ,yā,yá 0x96C6:jí 0x96C7:gù,hù 0x96C8:huán 0x96C9:zhì,kǎi,yǐ,sì 0x96CA:gòu 0x96CB:juàn,jùn,zuì 0x96CC:cí 0x96CD:yōng 0x96CE:jū 0x96CF:chú 0x96D0:hū 0x96D1:zá 0x96D2:luò 0x96D3:yú 0x96D4:chóu 0x96D5:diāo 0x96D6:suī 0x96D7:hàn 0x96D8:wò 0x96D9:shuāng 0x96DA:guàn,huán 0x96DB:chú,jú,jù 0x96DC:zá 0x96DD:yōng 0x96DE:jī 0x96DF:xī 0x96E0:chóu 0x96E1:liù 0x96E2:lí,lì,lǐ,chī,gǔ 0x96E3:nán,nàn,nuó 0x96E4:xué 0x96E5:zá 0x96E6:jí 0x96E7:jí 0x96E8:yǔ,yù 0x96E9:yú,yù,xū 0x96EA:xuě 0x96EB:nǎ 0x96EC:fǒu 0x96ED:sè,xí 0x96EE:mù 0x96EF:wén 0x96F0:fēn 0x96F1:pāng,páng,fāng 0x96F2:yún 0x96F3:lì 0x96F4:chì 0x96F5:yāng 0x96F6:líng,lián 0x96F7:léi,lèi 0x96F8:án 0x96F9:báo 0x96FA:wù,méng 0x96FB:diàn 0x96FC:dàng 0x96FD:hù,hū 0x96FE:wù 0x96FF:diào 0x9700:xū,nuò,rú,ruǎn 0x9701:jì 0x9702:mù 0x9703:chén 0x9704:xiāo,xiào 0x9705:zhà,zhá,shà,sà,yì 0x9706:tíng 0x9707:zhèn,shēn 0x9708:pèi 0x9709:méi 0x970A:líng 0x970B:qī 0x970C:zhōu 0x970D:huò,hè,suǒ 0x970E:shà 0x970F:fēi 0x9710:hóng 0x9711:zhān 0x9712:yīn 0x9713:ní 0x9714:zhù 0x9715:tún 0x9716:lín 0x9717:líng 0x9718:dòng 0x9719:yīng,yāng 0x971A:wù 0x971B:líng 0x971C:shuāng 0x971D:líng 0x971E:xiá 0x971F:hóng 0x9720:yīn 0x9721:mài 0x9722:mài 0x9723:yǔn 0x9724:liù 0x9725:mèng 0x9726:bīn 0x9727:wù,méng 0x9728:wèi 0x9729:kuò 0x972A:yín 0x972B:xí 0x972C:yì 0x972D:ǎi 0x972E:dàn 0x972F:tèng 0x9730:sǎn,xiàn 0x9731:yù 0x9732:lù,lòu 0x9733:lóng 0x9734:dài 0x9735:jí 0x9736:pāng 0x9737:yáng 0x9738:bà,pò 0x9739:pī 0x973A:wéi 0x973B:fēng 0x973C:xì 0x973D:jì 0x973E:mái,lí 0x973F:méng,mào,wù 0x9740:méng 0x9741:léi 0x9742:lì 0x9743:huò,suǐ,suǒ 0x9744:ǎi 0x9745:fèi 0x9746:dài 0x9747:lóng,líng 0x9748:líng 0x9749:ài,yǐ 0x974A:fēng 0x974B:lì 0x974C:bǎo 0x974D:hè 0x974E:hè 0x974F:hè 0x9750:bìng 0x9751:qīng 0x9752:qīng,jīng 0x9753:jìng,liàng 0x9754:tiān 0x9755:zhēn 0x9756:jìng 0x9757:chēng 0x9758:qìng,qīng,jìng 0x9759:jìng 0x975A:jìng,liáng 0x975B:diàn 0x975C:jìng 0x975D:tiān 0x975E:fēi,fěi 0x975F:fēi 0x9760:kào 0x9761:mí,mǐ,má 0x9762:miàn 0x9763:miàn 0x9764:bào 0x9765:yè 0x9766:tiǎn,miǎn 0x9767:huì 0x9768:yè,yǎn 0x9769:gé,jí 0x976A:dīng 0x976B:chá 0x976C:qián,jiān,kān,hàn 0x976D:rèn 0x976E:dí 0x976F:dù 0x9770:wù 0x9771:rèn 0x9772:qín 0x9773:jìn 0x9774:xuē 0x9775:niǔ 0x9776:bǎ,bà 0x9777:yǐn 0x9778:sǎ,tā 0x9779:nà 0x977A:mò,wà 0x977B:zǔ 0x977C:dá 0x977D:bàn 0x977E:yì 0x977F:yào 0x9780:táo 0x9781:bèi,bài,bì 0x9782:jiē 0x9783:hóng 0x9784:páo 0x9785:yāng,yǎng,yàng 0x9786:bǐng 0x9787:yīn 0x9788:gé,sǎ,tà 0x9789:táo 0x978A:jié,jí 0x978B:xié,wā 0x978C:ān 0x978D:ān 0x978E:hén 0x978F:gǒng 0x9790:qiǎ 0x9791:dá 0x9792:qiáo 0x9793:tīng 0x9794:mán,mèn 0x9795:yìng,biān 0x9796:suī 0x9797:tiáo 0x9798:qiào,shāo 0x9799:xuàn,juān 0x979A:kòng 0x979B:běng 0x979C:tà 0x979D:shàng,zhǎng 0x979E:bǐng,bì,pí,bēi 0x979F:kuò 0x97A0:jū,qū,qiōng 0x97A1:la 0x97A2:xiè,zhá,dié 0x97A3:róu 0x97A4:bāng 0x97A5:ēng 0x97A6:qiū 0x97A7:qiū 0x97A8:hé,shé,mò 0x97A9:qiào 0x97AA:mù,móu 0x97AB:jū,qū 0x97AC:jiān,jiàn 0x97AD:biān 0x97AE:dī 0x97AF:jiān 0x97B0:wēn 0x97B1:tāo 0x97B2:gōu 0x97B3:tà 0x97B4:bèi,fú,bù,bài 0x97B5:xié 0x97B6:pán 0x97B7:gé 0x97B8:bì,bǐng 0x97B9:kuò 0x97BA:tāng 0x97BB:lóu 0x97BC:guì,huì 0x97BD:qiáo,qiāo,juē 0x97BE:xuē 0x97BF:jī 0x97C0:jiān 0x97C1:jiāng 0x97C2:chàn 0x97C3:dá,tà 0x97C4:hù 0x97C5:xiǎn 0x97C6:qiān 0x97C7:dú 0x97C8:wà 0x97C9:jiān 0x97CA:lán 0x97CB:wéi,huí 0x97CC:rèn 0x97CD:fú 0x97CE:mèi 0x97CF:quàn,juàn 0x97D0:gé 0x97D1:wěi 0x97D2:qiào,shāo 0x97D3:hán 0x97D4:chàng 0x97D5:kuò 0x97D6:rǒu 0x97D7:yùn 0x97D8:shè 0x97D9:wěi 0x97DA:gé 0x97DB:bài,fú 0x97DC:tāo,tào 0x97DD:gōu 0x97DE:yùn,wēn 0x97DF:gāo 0x97E0:bì 0x97E1:wěi,xuē 0x97E2:suì,huì 0x97E3:dú 0x97E4:wà 0x97E5:dú 0x97E6:wéi 0x97E7:rèn 0x97E8:fú 0x97E9:hán 0x97EA:wěi 0x97EB:yùn 0x97EC:tāo 0x97ED:jiǔ 0x97EE:jiǔ 0x97EF:xiān 0x97F0:xiè 0x97F1:xiān 0x97F2:jī 0x97F3:yīn 0x97F4:zá 0x97F5:yùn 0x97F6:sháo 0x97F7:lè 0x97F8:péng 0x97F9:huáng,yīng 0x97FA:yīng 0x97FB:yùn 0x97FC:péng 0x97FD:ān 0x97FE:yīn 0x97FF:xiǎng 0x9800:hù 0x9801:yè,xié 0x9802:dǐng 0x9803:qǐng,qīng,kuǐ 0x9804:kuí 0x9805:xiàng 0x9806:shùn 0x9807:hān,àn 0x9808:xū 0x9809:yí 0x980A:xū 0x980B:ě 0x980C:sòng,róng 0x980D:kuǐ 0x980E:qí,kěn 0x980F:háng,gāng,hàng 0x9810:yù 0x9811:wán,kūn 0x9812:bān,fén 0x9813:dùn,dú 0x9814:dí 0x9815:dān,diàn 0x9816:pàn 0x9817:pō,pǒ,pò,pí 0x9818:lǐng 0x9819:chè 0x981A:jǐng 0x981B:lèi 0x981C:hé,hán,qīn,gé 0x981D:qiāo 0x981E:è,àn 0x981F:é 0x9820:wěi 0x9821:xié,jiá,jié 0x9822:kuò 0x9823:shěn 0x9824:yí 0x9825:yí 0x9826:hái,kē,ké 0x9827:duǐ,duī 0x9828:yǔ,biàn 0x9829:pīng,pǐng 0x982A:lèi 0x982B:fǔ,tāo,tiào 0x982C:jiá 0x982D:tóu,tou 0x982E:huì 0x982F:kuí 0x9830:jiá 0x9831:luō 0x9832:tǐng 0x9833:chēng 0x9834:yǐng,jǐng 0x9835:yūn 0x9836:hú 0x9837:hàn 0x9838:jǐng,gěng 0x9839:tuí 0x983A:tuí 0x983B:pín,bīn 0x983C:lài 0x983D:tuí 0x983E:zī 0x983F:zī 0x9840:chuí 0x9841:dìng,dǐng 0x9842:lài,lái 0x9843:tán,shǎn 0x9844:hàn 0x9845:qiān 0x9846:kē,kě,kuǎn 0x9847:cuì,zú 0x9848:xuǎn,jiōng,jiǒng,xiàn 0x9849:qīn 0x984A:yí 0x984B:sāi 0x984C:tí,dì 0x984D:é 0x984E:è 0x984F:yán 0x9850:wèn,hún,hùn 0x9851:kǎn,yàn 0x9852:yóng,yú 0x9853:zhuān 0x9854:yán,yá 0x9855:xiǎn 0x9856:xìn 0x9857:yǐ 0x9858:yuàn,yuǎn 0x9859:sǎng 0x985A:diān,tián,tiàn 0x985B:diān 0x985C:jiǎng 0x985D:kuī,kuǎ 0x985E:lèi 0x985F:láo 0x9860:piǎo 0x9861:wài,zhuài 0x9862:mán 0x9863:cù 0x9864:yáo,qiào 0x9865:hào 0x9866:qiáo 0x9867:gù 0x9868:xùn 0x9869:yǎn,qìn,hàn,qiǎn 0x986A:huì 0x986B:chàn,zhàn,shān 0x986C:rú 0x986D:méng 0x986E:bīn 0x986F:xiǎn,xiàn 0x9870:pín 0x9871:lú 0x9872:lǎn,lǐn 0x9873:niè 0x9874:quán 0x9875:yè 0x9876:dǐng 0x9877:qǐng 0x9878:hān 0x9879:xiàng 0x987A:shùn 0x987B:xū 0x987C:xū 0x987D:wán 0x987E:gù 0x987F:dùn,dú 0x9880:qí 0x9881:bān 0x9882:sòng 0x9883:háng 0x9884:yù 0x9885:lú 0x9886:lǐng 0x9887:pǒ,pō 0x9888:jǐng,gěng 0x9889:jié,xié 0x988A:jiá 0x988B:tǐng 0x988C:hé,gé 0x988D:yǐng 0x988E:jiǒng 0x988F:kē,ké 0x9890:yí 0x9891:pín 0x9892:huì 0x9893:tuí 0x9894:hàn 0x9895:yǐng 0x9896:yǐng 0x9897:kē 0x9898:tí 0x9899:yóng 0x989A:è 0x989B:zhuān 0x989C:yán 0x989D:é 0x989E:niè 0x989F:mān 0x98A0:diān 0x98A1:sǎng 0x98A2:hào 0x98A3:lèi 0x98A4:chàn,zhàn 0x98A5:rú 0x98A6:pín 0x98A7:quán 0x98A8:fēng,fèng,fěng 0x98A9:biāo,diū 0x98AA:guā 0x98AB:fú 0x98AC:xiā 0x98AD:zhǎn 0x98AE:biāo,páo 0x98AF:sà,lì 0x98B0:bá,fú 0x98B1:tái 0x98B2:liè 0x98B3:guā,jǐ 0x98B4:xuàn 0x98B5:shāo,xiāo 0x98B6:jù 0x98B7:biāo 0x98B8:sī 0x98B9:wěi 0x98BA:yáng 0x98BB:yáo,yào 0x98BC:sōu 0x98BD:kǎi 0x98BE:sōu,sāo 0x98BF:fān 0x98C0:liú 0x98C1:xí 0x98C2:liù,liáo 0x98C3:piāo,piào 0x98C4:piāo 0x98C5:liú 0x98C6:biāo 0x98C7:biāo 0x98C8:biāo 0x98C9:liáo 0x98CA:biāo 0x98CB:sè 0x98CC:fēng 0x98CD:xiū 0x98CE:fēng 0x98CF:yáng 0x98D0:zhǎn 0x98D1:biāo 0x98D2:sà 0x98D3:jù 0x98D4:sī 0x98D5:sōu 0x98D6:yáo 0x98D7:liú 0x98D8:piāo 0x98D9:biāo 0x98DA:biāo 0x98DB:fēi 0x98DC:fān 0x98DD:fēi 0x98DE:fēi 0x98DF:shí,sì,yì 0x98E0:shí 0x98E1:cān 0x98E2:jī 0x98E3:dìng 0x98E4:sì 0x98E5:tuō 0x98E6:zhān,gān 0x98E7:sūn 0x98E8:xiǎng 0x98E9:tún,zhùn 0x98EA:rèn 0x98EB:yù 0x98EC:juàn,yǒng 0x98ED:chì,shì 0x98EE:yǐn 0x98EF:fàn 0x98F0:fàn 0x98F1:sūn,cān 0x98F2:yǐn,yìn 0x98F3:tǒu,zhù 0x98F4:yí,sì 0x98F5:zuò,zé 0x98F6:bì 0x98F7:jiě 0x98F8:tāo 0x98F9:bǎo 0x98FA:cí 0x98FB:tiè 0x98FC:sì 0x98FD:bǎo 0x98FE:shì,chì 0x98FF:duò 0x9900:hài 0x9901:rèn 0x9902:tiǎn,tián 0x9903:jiǎo,jiào 0x9904:jiá,hé 0x9905:bǐng 0x9906:yáo 0x9907:tóng 0x9908:cí 0x9909:xiǎng 0x990A:yǎng,yàng 0x990B:juàn 0x990C:ěr 0x990D:yàn 0x990E:le 0x990F:xī 0x9910:cān,sūn 0x9911:bō 0x9912:něi 0x9913:è 0x9914:bù,bū 0x9915:jùn 0x9916:dòu 0x9917:sù 0x9918:yú,yé 0x9919:shì,xī 0x991A:yáo 0x991B:hún,kūn 0x991C:guǒ 0x991D:shì 0x991E:jiàn 0x991F:zhuì 0x9920:bǐng 0x9921:xiàn,kàn 0x9922:bù 0x9923:yè 0x9924:tán,dàn 0x9925:fēi 0x9926:zhāng 0x9927:wèi,něi 0x9928:guǎn 0x9929:è 0x992A:nuǎn,nuàn 0x992B:yùn,hún 0x992C:hú 0x992D:huáng 0x992E:tiè 0x992F:huì 0x9930:jiān,zhān 0x9931:hóu 0x9932:ài,hé 0x9933:táng,xíng 0x9934:fēn 0x9935:wèi 0x9936:gǔ 0x9937:chā 0x9938:sòng 0x9939:táng 0x993A:bó 0x993B:gāo 0x993C:xì 0x993D:kuì 0x993E:liù,liú 0x993F:sōu 0x9940:táo,tāo,xiàn 0x9941:yè 0x9942:wēn 0x9943:mó 0x9944:táng 0x9945:mán 0x9946:bì 0x9947:yù 0x9948:xiū 0x9949:jǐn 0x994A:sǎn 0x994B:kuì,tuí 0x994C:zhuàn,xuǎn 0x994D:shàn 0x994E:chì 0x994F:dàn 0x9950:yì,yē,èn 0x9951:jī,qí 0x9952:ráo 0x9953:chēng 0x9954:yōng 0x9955:tāo 0x9956:wèi 0x9957:xiǎng 0x9958:zhān 0x9959:fēn 0x995A:hài 0x995B:méng 0x995C:yàn 0x995D:mó 0x995E:chán 0x995F:xiǎng 0x9960:luó 0x9961:zàn 0x9962:náng,nǎng 0x9963:shí 0x9964:dìng 0x9965:jī 0x9966:tuō 0x9967:táng,xíng 0x9968:tún 0x9969:xì 0x996A:rèn 0x996B:yù 0x996C:chì 0x996D:fàn 0x996E:yǐn,yìn 0x996F:jiàn 0x9970:shì 0x9971:bǎo 0x9972:sì 0x9973:duò 0x9974:yí 0x9975:ěr 0x9976:ráo 0x9977:xiǎng 0x9978:hé 0x9979:le 0x997A:jiǎo 0x997B:xī 0x997C:bǐng 0x997D:bō 0x997E:dòu 0x997F:è 0x9980:yú 0x9981:něi 0x9982:jùn 0x9983:guǒ 0x9984:hún 0x9985:xiàn 0x9986:guǎn 0x9987:chā 0x9988:kuì 0x9989:gǔ 0x998A:sōu 0x998B:chán 0x998C:yè 0x998D:mó 0x998E:bó 0x998F:liú,liù 0x9990:xiū 0x9991:jǐn 0x9992:mán 0x9993:sǎn 0x9994:zhuàn 0x9995:náng,nǎng 0x9996:shǒu 0x9997:kuí,qiú 0x9998:guó,xù 0x9999:xiāng 0x999A:fén 0x999B:bó 0x999C:nǐ 0x999D:bì 0x999E:bó,pò 0x999F:tú 0x99A0:hān 0x99A1:fēi 0x99A2:jiān 0x99A3:ān 0x99A4:ài 0x99A5:fù,bì 0x99A6:xiān 0x99A7:yūn,wò 0x99A8:xīn 0x99A9:fén 0x99AA:pīn 0x99AB:xīn 0x99AC:mǎ 0x99AD:yù 0x99AE:féng,píng 0x99AF:hàn,qián,hán 0x99B0:dí 0x99B1:tuó,duò,dài 0x99B2:zhé,tuō 0x99B3:chí 0x99B4:xún 0x99B5:zhù 0x99B6:zhī,shì 0x99B7:pèi 0x99B8:xìn,jìn 0x99B9:rì 0x99BA:sà 0x99BB:yǔn 0x99BC:wén 0x99BD:zhí 0x99BE:dàn,dǎn 0x99BF:lǘ 0x99C0:yóu 0x99C1:bó 0x99C2:bǎo 0x99C3:jué,kuài 0x99C4:tuó 0x99C5:yì 0x99C6:qū 0x99C7:wén 0x99C8:qū 0x99C9:jiōng 0x99CA:pǒ 0x99CB:zhāo 0x99CC:yuān 0x99CD:péi,pēng 0x99CE:zhòu 0x99CF:jù 0x99D0:zhù 0x99D1:nú 0x99D2:jū,jù 0x99D3:pī 0x99D4:zǎng,zù,zǔ 0x99D5:jià,jiā 0x99D6:líng 0x99D7:zhěn 0x99D8:tái,dài,zhài,tāi 0x99D9:fù 0x99DA:yǎng 0x99DB:shǐ 0x99DC:bì 0x99DD:tuó 0x99DE:tuó 0x99DF:sì 0x99E0:liú 0x99E1:mà 0x99E2:pián 0x99E3:táo 0x99E4:zhì 0x99E5:róng 0x99E6:téng 0x99E7:dòng 0x99E8:xūn,xuàn 0x99E9:quān 0x99EA:shēn 0x99EB:jiōng 0x99EC:ěr 0x99ED:hài 0x99EE:bó 0x99EF:zhū 0x99F0:yīn 0x99F1:luò,jià 0x99F2:zhōu 0x99F3:dàn 0x99F4:hài 0x99F5:liú 0x99F6:jú 0x99F7:sǒng 0x99F8:qīn 0x99F9:máng 0x99FA:láng,liáng 0x99FB:hàn 0x99FC:tú 0x99FD:xuān 0x99FE:tuì 0x99FF:jùn 0x9A00:ě,é 0x9A01:chěng 0x9A02:xīng 0x9A03:ái,sì,tǎi 0x9A04:lù 0x9A05:zhuī 0x9A06:zhōu,dòng 0x9A07:shè 0x9A08:pián 0x9A09:kūn 0x9A0A:táo 0x9A0B:lái 0x9A0C:zōng 0x9A0D:kè 0x9A0E:qí,jì 0x9A0F:qí 0x9A10:yàn 0x9A11:fēi 0x9A12:sāo 0x9A13:yàn 0x9A14:gé 0x9A15:yǎo 0x9A16:wù 0x9A17:piàn 0x9A18:cōng 0x9A19:piàn 0x9A1A:qián 0x9A1B:fēi 0x9A1C:huáng 0x9A1D:qián 0x9A1E:huō 0x9A1F:yú 0x9A20:tí 0x9A21:quán 0x9A22:xiá 0x9A23:zōng 0x9A24:kuí,jué 0x9A25:róu 0x9A26:sī 0x9A27:guā 0x9A28:tuó 0x9A29:guī,tuí 0x9A2A:sōu 0x9A2B:qiān,jiǎn 0x9A2C:chéng 0x9A2D:zhì 0x9A2E:liú 0x9A2F:péng,bǎng 0x9A30:téng 0x9A31:xí 0x9A32:cǎo 0x9A33:dú 0x9A34:yàn 0x9A35:yuán 0x9A36:zōu,zhū,zhòu,qū 0x9A37:sāo,sǎo,xiāo 0x9A38:shàn 0x9A39:qí 0x9A3A:zhì,chì 0x9A3B:shuāng 0x9A3C:lù 0x9A3D:xí 0x9A3E:luó 0x9A3F:zhāng 0x9A40:mò,mà 0x9A41:ào,yào 0x9A42:cān 0x9A43:biāo,piào 0x9A44:cōng 0x9A45:qū 0x9A46:bì 0x9A47:zhì 0x9A48:yù 0x9A49:xū 0x9A4A:huá 0x9A4B:bō 0x9A4C:sù 0x9A4D:xiāo 0x9A4E:lín 0x9A4F:zhàn 0x9A50:dūn 0x9A51:liú 0x9A52:tuó 0x9A53:céng 0x9A54:diàn 0x9A55:jiāo,xiāo,jū,qiáo 0x9A56:tiě 0x9A57:yàn 0x9A58:luó 0x9A59:zhān,zhàn 0x9A5A:jīng 0x9A5B:yì 0x9A5C:yè 0x9A5D:tuō 0x9A5E:pīn 0x9A5F:zhòu 0x9A60:yàn 0x9A61:lóng,zǎng 0x9A62:lǘ 0x9A63:téng 0x9A64:xiāng 0x9A65:jì 0x9A66:shuāng 0x9A67:jú 0x9A68:xí 0x9A69:huān 0x9A6A:lí,chí 0x9A6B:biāo,piāo 0x9A6C:mǎ 0x9A6D:yù 0x9A6E:tuó,duò 0x9A6F:xún 0x9A70:chí 0x9A71:qū 0x9A72:rì 0x9A73:bó 0x9A74:lǘ 0x9A75:zǎng 0x9A76:shǐ 0x9A77:sì 0x9A78:fù 0x9A79:jū 0x9A7A:zōu 0x9A7B:zhù 0x9A7C:tuó 0x9A7D:nú 0x9A7E:jià 0x9A7F:yì 0x9A80:dài,tái 0x9A81:xiāo 0x9A82:mà 0x9A83:yīn 0x9A84:jiāo 0x9A85:huá 0x9A86:luò 0x9A87:hài 0x9A88:pián 0x9A89:biāo 0x9A8A:lí 0x9A8B:chěng 0x9A8C:yàn 0x9A8D:xīng 0x9A8E:qīn 0x9A8F:jùn 0x9A90:qí 0x9A91:qí 0x9A92:kè 0x9A93:zhuī 0x9A94:zōng 0x9A95:sù 0x9A96:cān 0x9A97:piàn 0x9A98:zhì 0x9A99:kuí 0x9A9A:sāo 0x9A9B:wù 0x9A9C:ào 0x9A9D:liú 0x9A9E:qiān 0x9A9F:shàn 0x9AA0:biāo,piào 0x9AA1:luó 0x9AA2:cōng 0x9AA3:chǎn 0x9AA4:zhòu 0x9AA5:jì 0x9AA6:shuāng 0x9AA7:xiāng 0x9AA8:gǔ,gú,gū 0x9AA9:wěi 0x9AAA:wěi 0x9AAB:wěi,wán 0x9AAC:yú 0x9AAD:gàn 0x9AAE:yì 0x9AAF:āng,kǎng 0x9AB0:tóu,gǔ 0x9AB1:jiè,jiá,xiè 0x9AB2:bào 0x9AB3:bèi 0x9AB4:cī,zhài 0x9AB5:tǐ 0x9AB6:dǐ 0x9AB7:kū 0x9AB8:hái,gāi 0x9AB9:qiāo,jiāo,xiāo 0x9ABA:hóu 0x9ABB:kuà 0x9ABC:gé 0x9ABD:tuǐ 0x9ABE:gěng 0x9ABF:pián 0x9AC0:bì 0x9AC1:kē,kuà 0x9AC2:qià,gé 0x9AC3:yú 0x9AC4:suǐ 0x9AC5:lóu 0x9AC6:bó,pò 0x9AC7:xiāo 0x9AC8:bǎng,páng,pǎng 0x9AC9:bó,jué 0x9ACA:cī,cuō 0x9ACB:kuān 0x9ACC:bìn 0x9ACD:mó 0x9ACE:liáo 0x9ACF:lóu 0x9AD0:xiāo 0x9AD1:dú 0x9AD2:zāng,zǎng 0x9AD3:suǐ 0x9AD4:tǐ,tī 0x9AD5:bìn 0x9AD6:kuān 0x9AD7:lú 0x9AD8:gāo,gào 0x9AD9:gāo 0x9ADA:qiào 0x9ADB:kāo 0x9ADC:qiǎo 0x9ADD:láo 0x9ADE:sào 0x9ADF:biāo,piào,shān 0x9AE0:kūn 0x9AE1:kūn 0x9AE2:dí 0x9AE3:fǎng 0x9AE4:xiū 0x9AE5:rán 0x9AE6:máo 0x9AE7:dàn 0x9AE8:kūn 0x9AE9:bìn 0x9AEA:fà,fǎ 0x9AEB:tiáo 0x9AEC:pī 0x9AED:zī 0x9AEE:fà,fǎ 0x9AEF:rán 0x9AF0:tì 0x9AF1:bào 0x9AF2:bì 0x9AF3:máo,róu,méng 0x9AF4:fú,fèi 0x9AF5:ér 0x9AF6:róng,èr 0x9AF7:qū 0x9AF8:gōng 0x9AF9:xiū 0x9AFA:kuò,yuè 0x9AFB:jì,jié 0x9AFC:péng 0x9AFD:zhuā 0x9AFE:shāo,shǎo,shào 0x9AFF:suō 0x9B00:tì 0x9B01:lì 0x9B02:bìn 0x9B03:zōng 0x9B04:dí,tì 0x9B05:péng 0x9B06:sōng,sòng,sóng 0x9B07:zhēng 0x9B08:quán 0x9B09:zōng 0x9B0A:shùn 0x9B0B:jiǎn 0x9B0C:tuǒ,chuí,duǒ 0x9B0D:hú 0x9B0E:là 0x9B0F:jiū 0x9B10:qí 0x9B11:lián 0x9B12:zhěn 0x9B13:bìn 0x9B14:péng 0x9B15:mà 0x9B16:sān,sàn 0x9B17:mán 0x9B18:mán 0x9B19:sēng 0x9B1A:xū 0x9B1B:liè 0x9B1C:qiān 0x9B1D:qiān 0x9B1E:náng,nàng 0x9B1F:huán 0x9B20:kuò,kuài 0x9B21:níng 0x9B22:bìn 0x9B23:liè 0x9B24:ráng,níng 0x9B25:dòu 0x9B26:dòu 0x9B27:nào 0x9B28:hòng,xiàng 0x9B29:xì,hè 0x9B2A:dòu 0x9B2B:hǎn 0x9B2C:dòu 0x9B2D:dòu 0x9B2E:jiū 0x9B2F:chàng 0x9B30:yù 0x9B31:yù 0x9B32:gé,lì,è 0x9B33:yàn 0x9B34:fǔ,lì 0x9B35:qín,xín 0x9B36:guī 0x9B37:zōng,zěng 0x9B38:liù 0x9B39:guī,xié 0x9B3A:shāng 0x9B3B:yù,zhōu,jū 0x9B3C:guǐ 0x9B3D:mèi 0x9B3E:jì,qí 0x9B3F:qí 0x9B40:gà 0x9B41:kuí,kuǐ,kuài 0x9B42:hún 0x9B43:bá 0x9B44:pò,bó,tuò 0x9B45:mèi 0x9B46:xū 0x9B47:yǎn 0x9B48:xiāo 0x9B49:liǎng 0x9B4A:yù 0x9B4B:tuí,chuí 0x9B4C:qī 0x9B4D:wǎng 0x9B4E:liǎng 0x9B4F:wèi,wéi,wēi 0x9B50:gān 0x9B51:chī 0x9B52:piāo 0x9B53:bì 0x9B54:mó 0x9B55:jǐ 0x9B56:xū 0x9B57:chǒu,chóu 0x9B58:yǎn 0x9B59:zhān 0x9B5A:yú 0x9B5B:dāo 0x9B5C:rén 0x9B5D:jié,jì 0x9B5E:bā 0x9B5F:hóng,gōng 0x9B60:tuō 0x9B61:diào,dí 0x9B62:jǐ 0x9B63:xù,yú 0x9B64:é,huà 0x9B65:è,qiè,jì 0x9B66:shā,suō 0x9B67:háng 0x9B68:tún 0x9B69:mò 0x9B6A:jiè 0x9B6B:shěn 0x9B6C:bǎn 0x9B6D:yuán,wǎn 0x9B6E:pí,bǐ 0x9B6F:lǔ,lǚ 0x9B70:wén 0x9B71:hú,hù 0x9B72:lú 0x9B73:zā,shī 0x9B74:fáng 0x9B75:fén,fèn 0x9B76:nà 0x9B77:yóu 0x9B78:piàn 0x9B79:mó 0x9B7A:hé,gě 0x9B7B:xiá,xiā 0x9B7C:qū,xié 0x9B7D:hán,hān 0x9B7E:pī,pí 0x9B7F:líng,lín 0x9B80:tuó 0x9B81:bō,bà 0x9B82:qiú 0x9B83:píng 0x9B84:fú 0x9B85:bì 0x9B86:cǐ,jì 0x9B87:wèi 0x9B88:jū,qú,gǒu 0x9B89:diāo 0x9B8A:bà,bó 0x9B8B:yóu,chóu 0x9B8C:gǔn 0x9B8D:pī,pí,jù 0x9B8E:nián 0x9B8F:xīng,zhēng 0x9B90:tái 0x9B91:bào,bāo,pāo 0x9B92:fù 0x9B93:zhǎ,zhà 0x9B94:jù 0x9B95:gū 0x9B96:shí 0x9B97:dōng 0x9B98:dai 0x9B99:tà 0x9B9A:jié,qià 0x9B9B:shū 0x9B9C:hòu 0x9B9D:xiǎng,zhèn 0x9B9E:ér 0x9B9F:àn,ān 0x9BA0:wéi 0x9BA1:zhào 0x9BA2:zhū 0x9BA3:yìn 0x9BA4:liè 0x9BA5:luò,gé 0x9BA6:tóng 0x9BA7:tǐ,yí 0x9BA8:yì,qí 0x9BA9:bìng,bì 0x9BAA:wěi 0x9BAB:jiāo 0x9BAC:kū,kù 0x9BAD:guī,xié,huà,wā,kuí 0x9BAE:xiān,xiǎn,xiàn 0x9BAF:gé 0x9BB0:huí 0x9BB1:lǎo 0x9BB2:fú 0x9BB3:kào 0x9BB4:xiū 0x9BB5:duó 0x9BB6:jūn 0x9BB7:tí 0x9BB8:miǎn 0x9BB9:shāo 0x9BBA:zhǎ 0x9BBB:suō 0x9BBC:qīn 0x9BBD:yú 0x9BBE:něi 0x9BBF:zhé 0x9BC0:gǔn 0x9BC1:gěng 0x9BC2:sū 0x9BC3:wú 0x9BC4:qiú 0x9BC5:shān,shěn 0x9BC6:pū,bū 0x9BC7:huàn 0x9BC8:tiáo,yóu,chóu 0x9BC9:lǐ 0x9BCA:shā 0x9BCB:shā 0x9BCC:kào 0x9BCD:méng 0x9BCE:chéng 0x9BCF:lí 0x9BD0:zǒu 0x9BD1:xī 0x9BD2:yǒng 0x9BD3:shēn 0x9BD4:zī 0x9BD5:qí 0x9BD6:zhēng,qīng 0x9BD7:xiǎng 0x9BD8:něi 0x9BD9:chún 0x9BDA:jì 0x9BDB:diāo 0x9BDC:qiè 0x9BDD:gù 0x9BDE:zhǒu 0x9BDF:dōng 0x9BE0:lái 0x9BE1:fèi,fēi 0x9BE2:ní 0x9BE3:yì 0x9BE4:kūn 0x9BE5:lù 0x9BE6:jiù,ǎi 0x9BE7:chāng 0x9BE8:jīng,qíng 0x9BE9:lún 0x9BEA:líng 0x9BEB:zōu 0x9BEC:lí 0x9BED:měng 0x9BEE:zōng 0x9BEF:zhì 0x9BF0:nián 0x9BF1:hǔ 0x9BF2:yú 0x9BF3:dǐ 0x9BF4:shī 0x9BF5:shēn 0x9BF6:huàn 0x9BF7:tí 0x9BF8:hóu 0x9BF9:xīng 0x9BFA:zhū 0x9BFB:là 0x9BFC:zōng 0x9BFD:zéi,jì 0x9BFE:biān 0x9BFF:biān 0x9C00:huàn 0x9C01:quán 0x9C02:zéi,zé 0x9C03:wēi 0x9C04:wēi 0x9C05:yú 0x9C06:chūn 0x9C07:róu 0x9C08:dié,qiè,zhá 0x9C09:huáng 0x9C0A:liàn 0x9C0B:yǎn 0x9C0C:qiū 0x9C0D:qiū 0x9C0E:jiǎn 0x9C0F:bī 0x9C10:è 0x9C11:yáng 0x9C12:fù 0x9C13:sāi,xí 0x9C14:gǎn,jiān,xián 0x9C15:xiā 0x9C16:tuǒ,wěi 0x9C17:hú 0x9C18:shì 0x9C19:ruò 0x9C1A:xuān 0x9C1B:wēn 0x9C1C:qiàn,jiān 0x9C1D:hào 0x9C1E:wū 0x9C1F:fáng,páng 0x9C20:sāo 0x9C21:liú 0x9C22:mǎ 0x9C23:shí 0x9C24:shī 0x9C25:guān,guàn,kūn,gǔn 0x9C26:zī 0x9C27:téng 0x9C28:tǎ,dié 0x9C29:yáo 0x9C2A:é,gé 0x9C2B:yóng 0x9C2C:qián 0x9C2D:qí 0x9C2E:wēn 0x9C2F:ruò 0x9C30:shén 0x9C31:lián 0x9C32:áo 0x9C33:lè 0x9C34:huī 0x9C35:mǐn 0x9C36:jì 0x9C37:tiáo 0x9C38:qū 0x9C39:jiān 0x9C3A:shēn,sāo,cān 0x9C3B:mán 0x9C3C:xí 0x9C3D:qiú 0x9C3E:biào 0x9C3F:jì 0x9C40:jì 0x9C41:zhú 0x9C42:jiāng 0x9C43:xiū,qiū 0x9C44:zhuān,tuán,liàn 0x9C45:yōng,yóng 0x9C46:zhāng 0x9C47:kāng 0x9C48:xuě 0x9C49:biē 0x9C4A:yù 0x9C4B:qū 0x9C4C:xiàng 0x9C4D:bō 0x9C4E:jiǎo 0x9C4F:xún 0x9C50:sù 0x9C51:huáng 0x9C52:zūn,zùn 0x9C53:shàn,tuó 0x9C54:shàn 0x9C55:fān 0x9C56:guì,jué 0x9C57:lín 0x9C58:xún 0x9C59:miáo 0x9C5A:xǐ,xī 0x9C5B:zēng 0x9C5C:xiāng 0x9C5D:fèn 0x9C5E:guān 0x9C5F:hòu 0x9C60:kuài 0x9C61:zéi 0x9C62:sāo 0x9C63:zhān,shàn 0x9C64:gǎn 0x9C65:guì 0x9C66:yìng,shéng,měng 0x9C67:lǐ 0x9C68:cháng 0x9C69:léi 0x9C6A:shǔ 0x9C6B:ài 0x9C6C:rú 0x9C6D:jì 0x9C6E:xù,yú 0x9C6F:hù 0x9C70:shǔ 0x9C71:lì 0x9C72:liè,là 0x9C73:lì,lù,luò 0x9C74:miè 0x9C75:zhēn 0x9C76:xiǎng 0x9C77:è 0x9C78:lú 0x9C79:guàn 0x9C7A:lí,lǐ 0x9C7B:xiān,xiǎn 0x9C7C:yú 0x9C7D:dāo 0x9C7E:jǐ 0x9C7F:yóu 0x9C80:tún 0x9C81:lǔ 0x9C82:fáng 0x9C83:bā 0x9C84:hé 0x9C85:bà,bō 0x9C86:píng 0x9C87:nián 0x9C88:lú 0x9C89:yóu 0x9C8A:zhǎ 0x9C8B:fù 0x9C8C:bà,bó 0x9C8D:bào 0x9C8E:hòu 0x9C8F:pí 0x9C90:tái 0x9C91:guī,xié 0x9C92:jié 0x9C93:kào 0x9C94:wěi 0x9C95:ér 0x9C96:tóng 0x9C97:zéi 0x9C98:hòu 0x9C99:kuài 0x9C9A:jì 0x9C9B:jiāo 0x9C9C:xiān,xiǎn 0x9C9D:zhǎ 0x9C9E:xiǎng 0x9C9F:xún 0x9CA0:gěng 0x9CA1:lí 0x9CA2:lián 0x9CA3:jiān 0x9CA4:lǐ 0x9CA5:shí 0x9CA6:tiáo 0x9CA7:gǔn 0x9CA8:shā 0x9CA9:huàn 0x9CAA:jūn 0x9CAB:jì 0x9CAC:yǒng 0x9CAD:qīng,zhēng 0x9CAE:líng 0x9CAF:qí 0x9CB0:zōu 0x9CB1:fēi 0x9CB2:kūn 0x9CB3:chāng 0x9CB4:gù 0x9CB5:ní 0x9CB6:nián 0x9CB7:diāo 0x9CB8:jīng 0x9CB9:shēn 0x9CBA:shī 0x9CBB:zī 0x9CBC:fèn 0x9CBD:dié 0x9CBE:bī 0x9CBF:cháng 0x9CC0:tí 0x9CC1:wēn 0x9CC2:wēi 0x9CC3:sāi 0x9CC4:è 0x9CC5:qiū 0x9CC6:fù 0x9CC7:huáng 0x9CC8:quán 0x9CC9:jiāng 0x9CCA:biān 0x9CCB:sāo 0x9CCC:áo 0x9CCD:qí 0x9CCE:tǎ 0x9CCF:guān 0x9CD0:yáo 0x9CD1:páng 0x9CD2:jiān 0x9CD3:lè 0x9CD4:biào 0x9CD5:xuě 0x9CD6:biē 0x9CD7:mán 0x9CD8:mǐn 0x9CD9:yōng 0x9CDA:wèi 0x9CDB:xí 0x9CDC:guì 0x9CDD:shàn 0x9CDE:lín 0x9CDF:zūn 0x9CE0:hù 0x9CE1:gǎn 0x9CE2:lǐ 0x9CE3:zhān 0x9CE4:guǎn 0x9CE5:niǎo,diǎo,dǎo,què 0x9CE6:yǐ 0x9CE7:fú 0x9CE8:lì 0x9CE9:jiū,qiú,zhì 0x9CEA:bú 0x9CEB:yàn 0x9CEC:fǔ 0x9CED:diāo,zhāo 0x9CEE:jī 0x9CEF:fèng 0x9CF0:rù 0x9CF1:gān,hàn,yàn 0x9CF2:shī 0x9CF3:fèng 0x9CF4:míng 0x9CF5:bǎo 0x9CF6:yuān 0x9CF7:zhī,chì 0x9CF8:hù 0x9CF9:qín 0x9CFA:fū,guī 0x9CFB:bān,fén 0x9CFC:wén 0x9CFD:jiān,qiān,zhān 0x9CFE:shī 0x9CFF:yù 0x9D00:fǒu 0x9D01:yāo,ǎo 0x9D02:jué,guī 0x9D03:jué 0x9D04:pǐ 0x9D05:huān 0x9D06:zhèn 0x9D07:bǎo 0x9D08:yàn 0x9D09:yā,yǎ 0x9D0A:zhèng 0x9D0B:fāng,fǎng 0x9D0C:fèng 0x9D0D:wén 0x9D0E:ōu 0x9D0F:dài 0x9D10:gē 0x9D11:rú 0x9D12:líng 0x9D13:miè,bì 0x9D14:fú 0x9D15:tuó 0x9D16:mín,wén 0x9D17:lì 0x9D18:biǎn 0x9D19:zhì 0x9D1A:gē 0x9D1B:yuān 0x9D1C:cí 0x9D1D:qú,gōu,gòu 0x9D1E:xiāo 0x9D1F:chī 0x9D20:dàn 0x9D21:jū 0x9D22:yǎo,āo 0x9D23:gū 0x9D24:zhōng 0x9D25:yù 0x9D26:yāng 0x9D27:yù 0x9D28:yā 0x9D29:tiě,hú 0x9D2A:yù 0x9D2B:tián 0x9D2C:yīng 0x9D2D:duī 0x9D2E:wū 0x9D2F:ér 0x9D30:guā 0x9D31:ài 0x9D32:zhī 0x9D33:yàn,ān,è 0x9D34:héng 0x9D35:xiāo 0x9D36:jiá 0x9D37:liè 0x9D38:zhū 0x9D39:yáng,xiáng 0x9D3A:tí,yí 0x9D3B:hóng,hòng 0x9D3C:luò 0x9D3D:rú 0x9D3E:móu 0x9D3F:gē 0x9D40:rén 0x9D41:jiāo,xiāo 0x9D42:xiū 0x9D43:zhōu,diǎo 0x9D44:chī 0x9D45:luò,gé 0x9D46:héng 0x9D47:nián 0x9D48:ě 0x9D49:luán 0x9D4A:jiá 0x9D4B:jì 0x9D4C:tú 0x9D4D:huān,juān,guàn 0x9D4E:tuǒ 0x9D4F:bǔ,bū,pū,pú 0x9D50:wú 0x9D51:juān 0x9D52:yù 0x9D53:bó 0x9D54:jùn 0x9D55:jùn 0x9D56:bī 0x9D57:xī 0x9D58:jùn 0x9D59:jú 0x9D5A:tū 0x9D5B:jīng 0x9D5C:tí,tī 0x9D5D:é 0x9D5E:é 0x9D5F:kuáng 0x9D60:hú,gǔ,hè 0x9D61:wǔ 0x9D62:shēn 0x9D63:lài,chì 0x9D64:jiao 0x9D65:pàn 0x9D66:lù 0x9D67:pí 0x9D68:shū 0x9D69:fú 0x9D6A:ān,yā 0x9D6B:zhuó 0x9D6C:péng,fèng 0x9D6D:qín 0x9D6E:qiān 0x9D6F:bēi 0x9D70:diāo 0x9D71:lù 0x9D72:què 0x9D73:jiān 0x9D74:jú 0x9D75:tù 0x9D76:yā 0x9D77:yuān 0x9D78:qí 0x9D79:lí 0x9D7A:yè 0x9D7B:zhuī 0x9D7C:kōng 0x9D7D:duò 0x9D7E:kūn 0x9D7F:shēng 0x9D80:qí 0x9D81:jīng 0x9D82:yì 0x9D83:yì 0x9D84:jīng,qīng 0x9D85:zī 0x9D86:lái 0x9D87:dōng 0x9D88:qī 0x9D89:chún,tuán 0x9D8A:gēng 0x9D8B:jū 0x9D8C:jué,qū 0x9D8D:yì 0x9D8E:zūn 0x9D8F:jī 0x9D90:shù 0x9D91:yīng 0x9D92:chì 0x9D93:miáo 0x9D94:róu 0x9D95:ān 0x9D96:qiū 0x9D97:tí,chí 0x9D98:hú 0x9D99:tí 0x9D9A:è 0x9D9B:jiē,jiè 0x9D9C:máo 0x9D9D:fú,bì 0x9D9E:chūn 0x9D9F:tú 0x9DA0:yǎn 0x9DA1:hé,hè 0x9DA2:yuán 0x9DA3:piān,biǎn 0x9DA4:kūn 0x9DA5:méi 0x9DA6:hú 0x9DA7:yīng 0x9DA8:chuàn,zhì 0x9DA9:wù,mù 0x9DAA:jú 0x9DAB:dōng 0x9DAC:cāng,qiāng 0x9DAD:fǎng 0x9DAE:hè,hú 0x9DAF:yīng 0x9DB0:yuán 0x9DB1:xiān 0x9DB2:wēng 0x9DB3:shī 0x9DB4:hè 0x9DB5:chú 0x9DB6:táng 0x9DB7:xiá 0x9DB8:ruò 0x9DB9:liú 0x9DBA:jí 0x9DBB:gú,hú 0x9DBC:jiān,qiān 0x9DBD:sǔn,xùn 0x9DBE:hàn 0x9DBF:cí 0x9DC0:cí 0x9DC1:yì 0x9DC2:yào,yáo 0x9DC3:yàn 0x9DC4:jī 0x9DC5:lì 0x9DC6:tián 0x9DC7:kòu 0x9DC8:tī 0x9DC9:tī,sī 0x9DCA:yì 0x9DCB:tú 0x9DCC:mǎ 0x9DCD:xiāo 0x9DCE:gāo 0x9DCF:tián 0x9DD0:chén 0x9DD1:jí 0x9DD2:tuán 0x9DD3:zhè 0x9DD4:áo,ào 0x9DD5:yǎo,xiào 0x9DD6:yī,yì 0x9DD7:ōu 0x9DD8:chì 0x9DD9:zhì,zhé 0x9DDA:liù 0x9DDB:yōng 0x9DDC:lǘ,lǚ 0x9DDD:bì 0x9DDE:shuāng,shuǎng 0x9DDF:zhuó 0x9DE0:yú 0x9DE1:wú 0x9DE2:jué 0x9DE3:yín 0x9DE4:tí,tán 0x9DE5:sī 0x9DE6:jiāo 0x9DE7:yì 0x9DE8:huá 0x9DE9:bì 0x9DEA:yīng 0x9DEB:sù 0x9DEC:huáng 0x9DED:fán 0x9DEE:jiāo 0x9DEF:liáo 0x9DF0:yàn 0x9DF1:gāo 0x9DF2:jiù 0x9DF3:xián 0x9DF4:xián 0x9DF5:tú 0x9DF6:mǎi 0x9DF7:zūn 0x9DF8:yù,shù 0x9DF9:yīng 0x9DFA:lù 0x9DFB:tuán 0x9DFC:xián 0x9DFD:xué 0x9DFE:yì 0x9DFF:pì 0x9E00:chǔ,zhú,chù 0x9E01:luó 0x9E02:xī,qī 0x9E03:yí 0x9E04:jī 0x9E05:zé 0x9E06:yú 0x9E07:zhān 0x9E08:yè 0x9E09:yáng 0x9E0A:pì,bì 0x9E0B:níng 0x9E0C:hù 0x9E0D:mí 0x9E0E:yīng 0x9E0F:méng,máng 0x9E10:dí 0x9E11:yuè 0x9E12:yù 0x9E13:lěi 0x9E14:bǔ 0x9E15:lú 0x9E16:hè 0x9E17:lóng 0x9E18:shuāng 0x9E19:yuè 0x9E1A:yīng 0x9E1B:guàn,huān,quán 0x9E1C:qú 0x9E1D:lí 0x9E1E:luán 0x9E1F:niǎo,diǎo 0x9E20:jiū 0x9E21:jī 0x9E22:yuān 0x9E23:míng 0x9E24:shī 0x9E25:ōu 0x9E26:yā 0x9E27:cāng 0x9E28:bǎo 0x9E29:zhèn 0x9E2A:gū 0x9E2B:dōng 0x9E2C:lú 0x9E2D:yā 0x9E2E:xiāo 0x9E2F:yāng 0x9E30:líng 0x9E31:chī 0x9E32:qú 0x9E33:yuān 0x9E34:xué 0x9E35:tuó 0x9E36:sī 0x9E37:zhì 0x9E38:ér 0x9E39:guā 0x9E3A:xiū 0x9E3B:héng 0x9E3C:zhōu 0x9E3D:gē 0x9E3E:luán 0x9E3F:hóng 0x9E40:wú 0x9E41:bó 0x9E42:lí 0x9E43:juān 0x9E44:gǔ,hú 0x9E45:é 0x9E46:yù 0x9E47:xián 0x9E48:tí 0x9E49:wǔ 0x9E4A:què 0x9E4B:miáo 0x9E4C:ān 0x9E4D:kūn 0x9E4E:bēi 0x9E4F:péng 0x9E50:qiān 0x9E51:chún 0x9E52:gēng 0x9E53:yuān 0x9E54:sù 0x9E55:hú 0x9E56:hé 0x9E57:è 0x9E58:gǔ,hú 0x9E59:qiū 0x9E5A:cí 0x9E5B:méi 0x9E5C:wù 0x9E5D:yì 0x9E5E:yào 0x9E5F:wēng 0x9E60:liú 0x9E61:jí 0x9E62:yì 0x9E63:jiān 0x9E64:hè 0x9E65:yī 0x9E66:yīng 0x9E67:zhè 0x9E68:liù 0x9E69:liáo 0x9E6A:jiāo 0x9E6B:jiù 0x9E6C:yù 0x9E6D:lù 0x9E6E:huán 0x9E6F:zhān 0x9E70:yīng 0x9E71:hù 0x9E72:méng 0x9E73:guàn 0x9E74:shuāng 0x9E75:lǔ,lú 0x9E76:jīn 0x9E77:líng 0x9E78:jiǎn 0x9E79:xián,jiǎn 0x9E7A:cuó 0x9E7B:jiǎn 0x9E7C:jiǎn 0x9E7D:yán,yàn 0x9E7E:cuó 0x9E7F:lù,lǘ 0x9E80:yōu 0x9E81:cū 0x9E82:jǐ 0x9E83:páo,biāo,piǎo 0x9E84:cū 0x9E85:páo 0x9E86:zhù,cū 0x9E87:jūn,qún 0x9E88:zhǔ 0x9E89:jiān 0x9E8A:mí 0x9E8B:mí 0x9E8C:yǔ 0x9E8D:liú 0x9E8E:chén 0x9E8F:jūn 0x9E90:lín 0x9E91:ní 0x9E92:qí 0x9E93:lù 0x9E94:jiù 0x9E95:jūn,qún 0x9E96:jīng 0x9E97:lì,lí,lǐ,sī 0x9E98:xiāng 0x9E99:xián,yán 0x9E9A:jiā 0x9E9B:mí 0x9E9C:lì 0x9E9D:shè 0x9E9E:zhāng 0x9E9F:lín 0x9EA0:jīng 0x9EA1:qí 0x9EA2:líng 0x9EA3:yán 0x9EA4:cū 0x9EA5:mài 0x9EA6:mài 0x9EA7:hé 0x9EA8:chǎo 0x9EA9:fū 0x9EAA:miàn 0x9EAB:miàn 0x9EAC:fū 0x9EAD:pào 0x9EAE:qù 0x9EAF:qū 0x9EB0:móu 0x9EB1:fū 0x9EB2:xiàn,yàn 0x9EB3:lái 0x9EB4:qū 0x9EB5:miàn 0x9EB6:chi 0x9EB7:fēng 0x9EB8:fū 0x9EB9:qū 0x9EBA:miàn 0x9EBB:má,mā 0x9EBC:me 0x9EBD:mó,má,ma,me 0x9EBE:huī 0x9EBF:mí 0x9EC0:zōu 0x9EC1:nún 0x9EC2:fén 0x9EC3:huáng 0x9EC4:huáng 0x9EC5:jīn 0x9EC6:guāng 0x9EC7:tiān 0x9EC8:tǒu 0x9EC9:hóng 0x9ECA:huà 0x9ECB:kuàng 0x9ECC:hóng 0x9ECD:shǔ 0x9ECE:lí 0x9ECF:nián 0x9ED0:chī,lí 0x9ED1:hēi 0x9ED2:hēi 0x9ED3:yì 0x9ED4:qián 0x9ED5:dǎn 0x9ED6:xì 0x9ED7:tūn 0x9ED8:mò 0x9ED9:mò 0x9EDA:qián,jiān 0x9EDB:dài 0x9EDC:chù 0x9EDD:yǒu,yī 0x9EDE:diǎn,zhān,duò 0x9EDF:yī 0x9EE0:xiá 0x9EE1:yǎn 0x9EE2:qū 0x9EE3:měi 0x9EE4:yǎn 0x9EE5:qíng 0x9EE6:yuè,yè 0x9EE7:lí,lái 0x9EE8:dǎng,tǎng,chèng 0x9EE9:dú 0x9EEA:cǎn 0x9EEB:yān 0x9EEC:yán,yǎn,jiān 0x9EED:yǎn 0x9EEE:dǎn,tàn,zhèn,shèn 0x9EEF:àn,ān 0x9EF0:zhěn,yān 0x9EF1:dài,zhèn 0x9EF2:cǎn 0x9EF3:yī,wā 0x9EF4:méi,mèi 0x9EF5:zhǎn,dǎn 0x9EF6:yǎn 0x9EF7:dú 0x9EF8:lú 0x9EF9:zhǐ,xiàn 0x9EFA:fěn 0x9EFB:fú 0x9EFC:fǔ 0x9EFD:miǎn,měng,mǐn,méng 0x9EFE:miǎn,mǐn 0x9EFF:yuán 0x9F00:cù 0x9F01:qù 0x9F02:cháo,zhāo 0x9F03:wā 0x9F04:zhū 0x9F05:zhī 0x9F06:méng,měng 0x9F07:áo 0x9F08:biē 0x9F09:tuó 0x9F0A:bì 0x9F0B:yuán 0x9F0C:cháo 0x9F0D:tuó 0x9F0E:dǐng,zhēn 0x9F0F:mì 0x9F10:nài 0x9F11:dǐng 0x9F12:zī 0x9F13:gǔ 0x9F14:gǔ 0x9F15:dōng,tóng 0x9F16:fén 0x9F17:táo 0x9F18:yuān 0x9F19:pí 0x9F1A:chāng 0x9F1B:gāo 0x9F1C:qì,cào 0x9F1D:yuān 0x9F1E:tāng 0x9F1F:tēng 0x9F20:shǔ 0x9F21:shǔ 0x9F22:fén 0x9F23:fèi 0x9F24:wén,wèn 0x9F25:bá,fèi 0x9F26:diāo 0x9F27:tuó 0x9F28:zhōng 0x9F29:qú 0x9F2A:shēng 0x9F2B:shí 0x9F2C:yòu 0x9F2D:shí 0x9F2E:tíng 0x9F2F:wú 0x9F30:jú 0x9F31:jīng 0x9F32:hún 0x9F33:jú,xí 0x9F34:yǎn 0x9F35:tū 0x9F36:sī 0x9F37:xī 0x9F38:xiàn 0x9F39:yǎn 0x9F3A:léi 0x9F3B:bí 0x9F3C:yào 0x9F3D:qiú 0x9F3E:hān 0x9F3F:wù,huī 0x9F40:wù 0x9F41:hōu,kù 0x9F42:xiè 0x9F43:è,hè 0x9F44:zhā 0x9F45:xiù 0x9F46:wèng 0x9F47:zhā 0x9F48:nòng 0x9F49:nàng 0x9F4A:qí,jī,jì,zī,zhāi,jiǎn 0x9F4B:zhāi 0x9F4C:jì 0x9F4D:zī,jì 0x9F4E:jī 0x9F4F:jī 0x9F50:qí,jì 0x9F51:jī 0x9F52:chǐ 0x9F53:chèn 0x9F54:chèn 0x9F55:hé 0x9F56:yá,yà 0x9F57:yín,yǐn,yǎn 0x9F58:xiè 0x9F59:bāo 0x9F5A:zé 0x9F5B:xiè,shì 0x9F5C:chái,zī 0x9F5D:chī 0x9F5E:yǎn 0x9F5F:jǔ,zhā 0x9F60:tiáo 0x9F61:líng 0x9F62:líng 0x9F63:chū,chǐ 0x9F64:quán 0x9F65:xiè 0x9F66:kěn,qiǎn,yín,kǔn 0x9F67:niè 0x9F68:jiù 0x9F69:yǎo 0x9F6A:chuò 0x9F6B:yǔn 0x9F6C:yǔ,wú 0x9F6D:chǔ 0x9F6E:yǐ,qǐ 0x9F6F:ní 0x9F70:zé,cè,zhà 0x9F71:zōu,chuò 0x9F72:qǔ 0x9F73:yǔn 0x9F74:yǎn 0x9F75:óu,yú 0x9F76:è 0x9F77:wò 0x9F78:yì 0x9F79:cī,cuó 0x9F7A:zōu 0x9F7B:diān 0x9F7C:chǔ 0x9F7D:jìn 0x9F7E:yà,è 0x9F7F:chǐ 0x9F80:chèn 0x9F81:hé 0x9F82:yín 0x9F83:jǔ 0x9F84:líng 0x9F85:bāo 0x9F86:tiáo 0x9F87:zī 0x9F88:kěn,yín 0x9F89:yǔ 0x9F8A:chuò 0x9F8B:qǔ 0x9F8C:wò 0x9F8D:lóng,máng 0x9F8E:páng 0x9F8F:gōng,wò 0x9F90:páng,lóng 0x9F91:yǎn 0x9F92:lóng 0x9F93:lǒng,lóng 0x9F94:gōng 0x9F95:kān,kè 0x9F96:dá 0x9F97:líng 0x9F98:dá 0x9F99:lóng 0x9F9A:gōng 0x9F9B:kān 0x9F9C:guī,qiū,jūn 0x9F9D:qiū 0x9F9E:biē 0x9F9F:guī,jūn,qiū 0x9FA0:yuè 0x9FA1:chuī 0x9FA2:hé 0x9FA3:jué 0x9FA4:xié 0x9FA5:yù 0x9FC3:shǎn 0x9FCD:gàng 0x9FCE:tǎ 0x9FCF:mài 0x9FD4:gē 0x9FD5:dān 0x9FEB:ào 0x9FEC:tián 0x9FED:nǐ 0xE815:yè 0xE816:zuǒ,yǒu 0xE818:gǔn 0xE81A:zhòu,zhū 0xE81B:zhòu,zhū 0xE81D:jié,jiē 0xE81F:wāi 0xE820:hǎn 0xE821:hǎn 0xE824:zhòu 0xE825:zhòu 0xE826:shǒu 0xE827:gāng 0xE828:kuǎi 0xE829:sǒng 0xE82A:sǒng 0xE82B:fēng 0xE82C:gòng 0xE82D:gāng 0xE82E:huì,kuì 0xE82F:tà 0xE830:jiān 0xE831:ēn 0xE832:xiǎo 0xE834:lóu,lǘ 0xE835:cǎn,shān,cēn 0xE836:zhú 0xE837:chōu,chóu 0xE838:wǎng 0xE83A:yáng,xiáng 0xE83B:zāi 0xE83C:bà,bēi 0xE83D:bà,bēi 0xE83F:zhuān,zhuán,chuǎn,chún 0xE840:qióng 0xE841:kuì,huì 0xE842:kuì,huì 0xE843:juǎn 0xE844:xīn 0xE845:yàn 0xE846:qíng 0xE847:qíng 0xE849:shàn 0xE84A:yé,yá 0xE84B:pō 0xE84C:shàn 0xE84D:zhuō 0xE84E:shàn 0xE84F:jué 0xE850:chuài 0xE851:zhèng 0xE852:chuài 0xE853:zhèng 0xE854:zhuó 0xE855:yíng 0xE856:yú 0xE857:yìn 0xE858:chūn 0xE859:qiū 0xE85A:yú 0xE85B:téng 0xE85C:shī 0xE85D:jiāo 0xE85E:liè 0xE85F:jīng 0xE860:jú 0xE861:tī 0xE862:pì 0xE863:yǎn 0xE864:luán 0x20000:hē 0x20001:qī 0x20003:qiě,jī 0x20005:hài 0x20009:qiū 0x2000A:cāo 0x2000D:shì 0x20013:sī 0x20014:jué 0x2001B:yù 0x2001D:kōng 0x20022:zī 0x20026:xíng 0x20031:mǒu 0x20037:jī 0x20038:yè 0x20039:jūn 0x2003C:qián,xià 0x2003D:lù 0x20049:chū 0x20057:shì,hè 0x20060:qiè 0x20065:gǎ 0x2006D:qí 0x20077:chǎn 0x20084:huān 0x20086:yì 0x20087:zuǒ 0x20088:jié,tiǎn 0x20091:zōu 0x20094:zǐ 0x2009F:jīn 0x200A2:pài 0x200A4:duī 0x200A5:cóng 0x200A7:shèn 0x200B8:huáng 0x200CA:yǐn 0x200CC:gǔn 0x200D6:jiū 0x200EB:shēn 0x200FA:jiù 0x20105:yè 0x20109:dòng 0x2010C:jué,zhuì 0x2010D:jié 0x2010F:diǎo 0x20111:jué 0x20112:chuí,shā 0x20116:líng 0x2011A:tīng 0x20123:gèn 0x2012E:yà,mǒ 0x20131:yí 0x2013F:wéi 0x20142:jié 0x2014C:yí 0x20157:diè 0x2015A:qí 0x20164:xí 0x2016C:bāo 0x20171:xiè 0x20179:zhàng 0x2018C:yōng 0x20190:xù 0x20199:diè 0x2019B:dān 0x2019F:wěi 0x201A3:guǎ,zhuǎ 0x201A9:fàn 0x201AE:mò 0x201B1:xī 0x201B2:yǎn 0x201B5:ní 0x201B6:dàn 0x201CB:dǎn 0x201CF:tāo 0x201D2:gōng 0x201D7:kuā 0x201D8:chù 0x201EF:qù 0x201F1:mò 0x201F3:shī 0x201F5:gǎn 0x201F7:shēng 0x20201:tuō 0x20205:shōu 0x2020A:niě 0x20224:yùn 0x20225:guǎ 0x2022C:xiāo 0x2022D:láo 0x20230:dàn 0x20231:suō 0x20235:mǎng 0x20236:yí 0x20238:tè 0x2023A:bì 0x20242:tà 0x20257:luò 0x20262:xǐ 0x20263:hūn,hùn 0x20264:dá 0x20267:jù 0x20269:dú 0x2026C:ǎn,yǎn 0x20289:mèi 0x2028C:rán 0x2028E:ái 0x2028F:yù,xián 0x20292:jiàn 0x20294:qì 0x2029F:mǐn 0x202A3:zhòu 0x202A4:zhì 0x202A5:zhǒng 0x202A6:nǎo 0x202A7:bìng 0x202A9:zhuàn 0x202AA:shù 0x202AB:xùn,qióng 0x202AC:jué 0x202AD:qiǎn 0x202B0:guǎ 0x202B2:tū 0x202B6:yìng 0x202B7:zhì 0x202BE:kuí 0x202C6:chèn 0x202D6:liàn 0x202D7:yā 0x202DC:guò 0x202DD:miǎo 0x202DE:shé 0x202DF:yǔ 0x202E1:sì 0x202E2:sǒu,zhòu 0x202E4:zhì 0x202E7:qiē 0x202E9:fù 0x202EC:jú 0x202ED:bèi 0x202EF:bì 0x202F2:suǒ 0x202F5:qiǎn 0x202F6:mǐng 0x202F7:chǎn 0x202FA:sāo 0x202FB:jī 0x20315:gòng 0x20316:qióng 0x2031A:nòng,ròng 0x2031E:sǒu 0x2031F:sǒu 0x20320:yáo 0x2032A:chōu,tāo 0x2032D:shuài 0x2032E:zhē 0x2032F:lì,lí 0x20330:gài 0x20331:suī 0x20332:zhān 0x20334:zhuàng 0x2033D:fù 0x20343:jī 0x20344:dōu 0x20357:huì 0x2035A:jiǎn 0x2035B:yǎn 0x2035C:zhì 0x20368:měi 0x20369:yào 0x2036A:dī 0x2036B:yí 0x2036F:bié 0x20372:qú 0x20373:yì 0x20375:yàng 0x20379:zhá 0x2037D:shà 0x20399:lái 0x203AE:jué 0x203B0:qī 0x203B3:yú 0x203B6:zǎi 0x203B7:sà 0x203B8:sè 0x203BB:dùn 0x203BF:jiě 0x203C0:kē 0x203C3:yuē 0x203C7:jiǎn 0x203C8:yáo 0x203D3:xiān 0x203D5:xiào 0x203D6:qiāo 0x203DA:yù 0x203DB:qú 0x203E1:xiān,líng 0x203E2:luò 0x203E4:guǎng 0x203E7:chēng 0x203E8:chuǎng 0x203E9:yí 0x203EB:zhěng 0x203ED:zòng 0x203EE:duì 0x203F0:zhǎi 0x203FF:fěi 0x20400:yí 0x20401:méng 0x20408:biān,pián 0x20409:jié 0x2040A:shù 0x2040B:liáo 0x2040C:bǐ,bà 0x2040D:sú 0x20411:dì 0x20421:bèi 0x20422:wèn 0x20427:méng 0x20429:chǎn 0x20435:dǎo 0x2043A:pín 0x2043B:jiǎn 0x2043C:lìn 0x2043D:guì,guī 0x2043E:qī 0x2043F:hōng 0x20443:jí 0x20444:xiè 0x20445:zhēng 0x20446:chǎn 0x20450:yáo 0x20451:chǎn 0x20458:diān 0x20459:chòng 0x2045A:néi 0x2045B:néi 0x2045E:zhài 0x2045F:biān,pián 0x20461:chǎn 0x2046A:xiāo 0x2046F:cù 0x20470:xīn 0x20471:jǐng 0x20472:qiān 0x20474:qīng 0x20479:gǔ 0x20484:wù 0x2049C:yuǎn 0x2049D:bǐng 0x204A2:wán 0x204B0:niǎo,ní 0x204B5:liàn 0x204B8:rǎo 0x204BE:fàn 0x204BF:dí 0x204CA:huī,dān 0x204CB:yì 0x204CC:xián 0x204D6:lán 0x204D7:fù 0x204D9:xiòng 0x204DC:liǎng 0x204DD:tāo 0x204DE:jí 0x204E2:jiè 0x204E3:zhá 0x204E4:shī 0x204EA:qí 0x204EB:biǎn 0x204ED:lǎn 0x204EE:lǐn 0x204F6:zhì 0x204F7:bì,chéng 0x204F8:shèng 0x204FD:shèng 0x204FF:qín 0x20502:biāo 0x20503:xī 0x20509:juàn 0x2050B:jī,xìn 0x2050D:xī 0x2050E:qǐn 0x20511:hài 0x20515:lún 0x20520:yuè 0x20528:lián 0x2052F:bān 0x20532:héng 0x20536:qī 0x2053A:qiān 0x2053B:zhèng 0x2053C:mǎo 0x20541:cóng 0x20544:nà 0x2054A:tǐng 0x2054C:zōng 0x20555:jiōng 0x20556:zhǎo 0x2055F:niǎn 0x20560:chéng 0x20563:qià 0x20566:yù 0x20567:jiǎo 0x2056D:zhào 0x20573:dí 0x20574:jiū 0x20578:suǐ 0x2057B:yāo 0x2057F:wāng 0x20582:liáo 0x20584:tóng 0x20586:mèng 0x2058B:yǒu 0x20593:sī 0x2059B:lòu 0x2059F:yīn 0x205A5:chǒng 0x205AB:gǎn 0x205AC:jiū 0x205B6:qìn 0x205B7:jiǒng 0x205B9:xié,xiá 0x205C2:hè 0x205C6:tāo 0x205C8:qiú 0x205C9:xié 0x205CA:jìng 0x205CB:niǎn 0x205CC:jìng 0x205CF:jí 0x205D8:tiǎn 0x205DA:cuì 0x205DB:dié 0x205DD:qǐng 0x205E5:pìng 0x205E6:píng 0x205E8:dié 0x205E9:lòu 0x205F3:liǎn 0x205F4:hán 0x205F5:pāng 0x205F6:táng 0x205FA:yí 0x205FB:xuán 0x205FC:suò 0x205FD:liú 0x205FE:shuǎng 0x205FF:shèn 0x20601:bù 0x20602:sōu 0x20605:qín 0x20606:shěn 0x2060A:nòng 0x2060B:tǐng 0x2060C:jiāng 0x20615:xī 0x20616:zhì 0x2061D:lài 0x2061E:lì 0x2061F:lì 0x20622:hé 0x20623:jiào 0x20625:yán 0x20627:shū 0x2062A:shǐ 0x20631:zhěn 0x20633:yōu 0x2063A:suò 0x2063B:wú 0x20641:cháng 0x20642:cóng 0x20646:jù 0x2064E:shū 0x20654:jiù 0x20655:wéi 0x2065E:huò 0x20664:jiē 0x2066C:zǎo 0x20676:ǒu 0x2067C:guǎ 0x20683:háo 0x20684:lǐ 0x20685:zhì 0x20686:xiàn 0x20689:bū 0x2068A:chàng 0x20693:yūn 0x20694:hé 0x2069C:tāo 0x206A0:biāo 0x206A5:diāo 0x206A7:èr 0x206A8:jiū 0x206AD:dì 0x206AE:yì 0x206AF:kūn 0x206B1:zhé 0x206B3:kuò 0x206B4:zhōu 0x206B5:jù 0x206B9:shàn 0x206BA:shà 0x206BB:diāo 0x206BC:bān 0x206BD:jī 0x206C0:zhōng 0x206C3:yí 0x206C5:kōu 0x206C6:wū 0x206CA:gē 0x206CB:bā 0x206CE:gōu 0x206D1:xián 0x206D2:guā 0x206D3:liǔ 0x206D4:chǐ 0x206D5:guāi 0x206D6:chuān 0x206D8:lí 0x206D9:cù 0x206DA:shuā 0x206E1:bǐ 0x206E5:bǐng 0x206E6:lì 0x206E9:jiǔ 0x206EA:tiāo,diāo 0x206EB:duǒ 0x206ED:yān,yuān 0x206EE:quān 0x206F1:liè,zā 0x206F3:kè,hé 0x206F5:gēn 0x206F6:zhēn 0x206F8:fén 0x20701:yí 0x20703:jiù 0x20704:xù 0x20705:jiǎo 0x20708:lǜ 0x20709:jiǔ 0x2070B:chǒu 0x2070E:xiàn 0x20710:kuài 0x20711:duì 0x20716:luō 0x20717:xī,xì 0x20718:qìn 0x20719:bù 0x20724:qià 0x20731:pī 0x20732:yā 0x20733:bēng 0x20734:guǒ 0x20735:guā 0x20739:jú 0x2073C:qiā 0x2073E:jué,guì 0x20744:lì 0x20750:huā 0x20751:jiāo 0x20758:qià 0x2075A:zhá,zhé 0x2075B:qiā 0x2075D:zhé,zhá 0x2075E:chā 0x2075F:yǐng 0x20762:yān 0x20764:chōng 0x20768:chǐ 0x2076A:wān 0x2076C:sōu 0x20772:kǎn 0x20773:yuán 0x2077D:chóu 0x2077F:suǒ 0x20780:tū 0x20783:zhé 0x20784:tī,chǐ 0x20786:wū 0x20788:dā 0x20789:lì 0x2078A:chā,chāi,chá 0x20795:róng 0x20796:gòng 0x20797:què 0x20799:lí 0x2079E:tāo 0x207A4:lì 0x207A7:mí 0x207A9:chì,shuài 0x207AC:gùn 0x207AD:lóu,lòu 0x207AE:chuǎng 0x207AF:suǒ 0x207B0:jiǎo 0x207B1:jìn 0x207B5:fá 0x207B6:zhāi 0x207BE:jìn 0x207BF:cuì 0x207C2:cèng 0x207C3:zǔn 0x207C5:zhào,rì,zhì 0x207C8:piē 0x207C9:zhǎn,chàn 0x207CA:xī 0x207CB:yào 0x207CC:fǔ,pǒu 0x207CD:chōng 0x207D3:cuì 0x207D7:guā 0x207E3:jī 0x207E6:sè 0x207E7:zhān 0x207E8:lìng,líng 0x207E9:sè 0x207EA:yè 0x207F0:jū 0x207F6:tū 0x207FA:rú,ruǎn 0x207FB:zé,bài 0x207FC:huán 0x20801:xiǎn 0x20803:qiān 0x20804:zhào 0x2080B:cán 0x2080E:kuò 0x2080F:lì 0x20810:róu 0x20814:dú 0x20817:liè 0x2081C:yīng 0x2081D:lì 0x20820:dú 0x20822:líng 0x2082A:wān 0x2082F:dié 0x20833:jiū 0x20835:lì 0x20836:kū 0x20837:kēng 0x20839:zhěn 0x20840:hè 0x20842:bì,fú 0x20844:pī 0x2084A:hāng 0x20851:zhuó 0x20852:duǐ 0x20854:yì 0x2085C:kè 0x2085D:yì 0x2085E:mò 0x20861:cán 0x20863:gěng 0x20864:kè 0x20865:shì 0x2086D:líng,lìng 0x2086E:bēng,kēng 0x20871:duàn 0x20876:juān 0x20877:nǎo 0x20878:zǐ 0x2087B:zòng 0x20883:táng 0x20886:xiá 0x20887:hàn 0x2088C:lüè 0x2088D:qián 0x20893:mò 0x20894:ōu 0x20895:háo 0x20899:zhá 0x2089A:juàn 0x2089B:cóng 0x208A0:lì,jí 0x208A1:zhá 0x208A2:yǒu 0x208A3:diàn 0x208A4:jué 0x208A5:bèi 0x208A9:yǎo 0x208AA:piē 0x208B1:jìn 0x208B2:kǎi,xiè 0x208B3:sè 0x208B4:yǎng 0x208B5:jìn 0x208B9:kè 0x208C4:chān 0x208C7:niǎn 0x208C9:wàn 0x208CA:lǜ 0x208D0:yún 0x208D1:yāo 0x208D2:bāo 0x208D5:jūn 0x208D6:xuán 0x208D8:zhōu 0x208E0:kuì 0x208E1:fèng 0x208EA:qú 0x208EB:shào 0x208EC:sǔn 0x208F0:dū 0x208F2:kuǎi 0x208F3:pào 0x208FA:bào 0x208FE:fù 0x208FF:jiù 0x20900:rán 0x20904:jū 0x2090A:qióng 0x2090D:zhōu 0x2090E:huà 0x2090F:bǎo 0x20915:yí,xián 0x20917:yí 0x20918:yí,yǐ 0x2091D:mào 0x20926:ruǎn,rú 0x2092B:cí 0x2092E:hán 0x20930:cóng,xuán 0x20934:xì 0x20939:quán 0x2093A:tiáo 0x2093C:diào 0x2093E:hán 0x20947:yě 0x2094D:ē 0x2094E:wéi 0x20950:cāng 0x20951:diào 0x20955:è 0x20956:dì 0x20958:suǎn 0x20959:quán 0x2095C:è 0x2095D:ōu,ǒu 0x2095E:xuán 0x20962:wǔ 0x20966:yì 0x20968:móu 0x20970:hū 0x20974:hán,gān 0x2097F:shí 0x20983:sà 0x20988:bì 0x2098A:hán 0x2098B:jìng 0x2098C:xì 0x2098E:qìn 0x2098F:cuó 0x20990:cì 0x20992:bān 0x20997:duī 0x2099C:xì,shù 0x209A7:zhī 0x209A8:luàn 0x209AA:hū 0x209AB:jí 0x209AC:guāi 0x209B2:pāng 0x209C0:zhū 0x209C5:bǐ 0x209C7:yú 0x209D2:qǐ 0x209D5:hé 0x209D6:chǔ 0x209D9:shào 0x209DA:chì 0x209DB:bó 0x209DF:réng,nǎi 0x209E0:yóu 0x209E4:nǎi 0x209E9:huì,huǐ 0x209EA:tiáo,yǒu 0x209EB:bǎn 0x209F0:xū 0x209F4:yóu,yòu 0x209F5:chì 0x209FF:héng 0x20A03:wài 0x20A06:xiè 0x20A0A:jué 0x20A0C:suī 0x20A0D:qīng 0x20A0E:zhuàn 0x20A15:jì 0x20A18:bì 0x20A1A:xī 0x20A20:jí 0x20A22:jùn 0x20A25:liáo 0x20A26:yōu 0x20A2D:jú 0x20A32:yuè 0x20A35:bàng 0x20A38:pí 0x20A3B:zè 0x20A3E:yì 0x20A3F:dǐ 0x20A42:qiè 0x20A44:suǒ 0x20A46:cì 0x20A48:zhù 0x20A49:yuè,jú 0x20A4F:jiāo 0x20A54:shí 0x20A57:yí 0x20A58:xiá 0x20A60:yuán 0x20A65:guó 0x20A67:kè 0x20A6A:cuì 0x20A6B:yì 0x20A75:lì 0x20A77:diǎn 0x20A7A:xī,chí 0x20A7F:bì 0x20A82:biǎn 0x20A83:méi 0x20A84:lì 0x20A87:sǒu 0x20A90:liú 0x20A91:guì 0x20A92:kè 0x20A97:yí 0x20A99:xǐ 0x20A9A:yín,ǎn,kǎn 0x20A9F:kè 0x20AA3:shè 0x20AA7:wǒ 0x20AAE:pì 0x20AB6:yuè 0x20AB7:hóng 0x20ABA:lì 0x20ABB:fù 0x20AC3:jué 0x20AC4:xiān 0x20AC9:diān 0x20ACC:lì 0x20AD3:tū 0x20AD8:jiān 0x20ADB:bǎi 0x20ADC:dì 0x20ADD:zhǎng 0x20AE3:yù 0x20AE8:duì 0x20AED:cān 0x20AEE:tú 0x20AF6:tān 0x20AF7:jí 0x20AF8:qí,zhāi 0x20AF9:shàn 0x20AFA:nián,shì 0x20B06:guàn 0x20B08:bǐ 0x20B0B:xīng,nián 0x20B13:zhěn 0x20B19:sā 0x20B1B:mò 0x20B1D:fú 0x20B22:tāo 0x20B23:bàng 0x20B2A:biào 0x20B2C:xī 0x20B2E:jié 0x20B36:jìn 0x20B3E:qiān 0x20B48:sì 0x20B49:jǐng 0x20B4B:chǐ 0x20B57:jǐng 0x20B65:suì 0x20B6F:zhā 0x20B70:lí 0x20B74:zhuō 0x20B79:biàn 0x20B7F:tún 0x20B83:bì 0x20B86:fèi 0x20B8A:dé 0x20B8C:zhú 0x20B91:jū 0x20B99:yǐ 0x20B9C:yà,yīn 0x20B9F:chì 0x20BA0:guǎ,bǎi 0x20BA1:zhǐ 0x20BA8:réng 0x20BAB:yōu 0x20BAD:bó 0x20BAF:jǐ 0x20BB0:pǐn 0x20BB3:yīng 0x20BB4:yāng 0x20BB5:màng 0x20BBD:lòng 0x20BBE:ǹ,ǹg 0x20BBF:sa,san 0x20BC0:chuān 0x20BC2:cí 0x20BC3:wǔ 0x20BC4:rèn 0x20BC8:dài 0x20BC9:jí 0x20BCB:yǐ 0x20BCD:rán 0x20BD0:huò 0x20BD1:guā 0x20BD3:zhé 0x20BD4:pì 0x20BD7:zā 0x20BD8:bàn 0x20BD9:jié 0x20BDC:hōu,xǔ 0x20BDF:xiàn 0x20BE0:huī 0x20BE9:zhā 0x20BEA:dāi,dǎi,è 0x20BEB:gē 0x20BED:pì 0x20BEF:piàn 0x20BF0:shí 0x20BF1:liǎng 0x20BF2:yuè 0x20BF3:hù,wěn 0x20BF4:biàn 0x20BF7:réng 0x20BF9:réng 0x20C04:yī 0x20C05:zhī 0x20C07:jīn 0x20C08:wēng 0x20C09:chāo 0x20C0B:qiū 0x20C0D:zhǔ,zhù 0x20C0F:zhá 0x20C10:pǒ 0x20C11:àn 0x20C13:hé 0x20C15:chū 0x20C16:yán 0x20C1A:shì 0x20C1B:hù,gào 0x20C1C:è 0x20C34:shí 0x20C39:tuō 0x20C3A:dài 0x20C3B:wài,wai 0x20C3C:pō 0x20C3D:rǒng 0x20C3E:jū 0x20C40:bō 0x20C50:yǔ 0x20C51:dōu 0x20C53:guǐ 0x20C54:shòu 0x20C57:suō 0x20C58:nì 0x20C59:zhōu,yù,jì,cù 0x20C5A:lòng 0x20C5B:bǐng 0x20C5C:zùn 0x20C5D:yè 0x20C5E:rǎn 0x20C60:líng 0x20C61:sà,shài 0x20C64:lěi 0x20C65:è,huì,zá 0x20C67:zhòng 0x20C68:jǐ 0x20C6B:è 0x20C6F:zuò 0x20C72:nà 0x20C73:yǔn 0x20C8A:xiè 0x20C8B:zuǐ 0x20C8C:shù 0x20C8D:diū 0x20C8E:fa,fèi,fá,wa 0x20C8F:rěn 0x20C91:bāng 0x20C92:hán 0x20C93:hóng 0x20C94:yī 0x20C96:yī 0x20C99:kē 0x20C9A:yì 0x20C9B:huí 0x20C9C:zhēng 0x20CAE:jìng 0x20CB1:gé 0x20CB4:nóu 0x20CB5:qiè,jié 0x20CB7:dié 0x20CB9:jì 0x20CBA:yì 0x20CBB:yí 0x20CBD:fú 0x20CBE:shuò 0x20CBF:shuò 0x20CC0:yǒng 0x20CC1:kěn 0x20CC2:huá 0x20CC3:hòng 0x20CC7:hé 0x20CCA:hē 0x20CCB:qiǎn 0x20CCC:qià 0x20CCE:sì 0x20CD0:bāng 0x20CEC:jīng 0x20CED:kè 0x20CF3:āi 0x20CF4:lóu 0x20CF6:tū 0x20CF9:chuáng 0x20CFC:sòng 0x20CFD:chéng 0x20CFF:wēi 0x20D02:nǔ 0x20D04:jiǔ 0x20D07:bīn 0x20D21:xiào 0x20D22:shēng 0x20D23:hǒu 0x20D26:zhù 0x20D28:guān 0x20D29:jī,qǐ 0x20D2B:jì,cù,yù,zhù 0x20D2D:xī 0x20D2F:shè 0x20D30:ǒu 0x20D31:hú 0x20D32:tà 0x20D33:xiáo 0x20D35:zào 0x20D38:bò 0x20D39:qì 0x20D3A:wā 0x20D3B:tuō 0x20D3C:dào 0x20D3E:nà 0x20D60:zhāi 0x20D63:yà 0x20D66:wǔ 0x20D67:zhén,chún 0x20D68:de 0x20D69:hē 0x20D6B:āng 0x20D6C:pí 0x20D6D:sè 0x20D6E:fěn 0x20D6F:guā 0x20D73:pǒ 0x20D77:xuàn 0x20D78:hān,mí 0x20D79:gāng 0x20D7A:bā 0x20D7B:zōng 0x20D7C:mèng 0x20D7E:huò 0x20DA7:diān 0x20DA8:xī 0x20DAB:dà 0x20DAC:nàng 0x20DB0:diāo 0x20DB1:luò 0x20DB2:kè 0x20DB7:yì 0x20DB8:jué 0x20DB9:hé 0x20DBB:jí 0x20DBE:hè 0x20DBF:niè,zá 0x20DC0:rǔn 0x20DC1:qián,jiān 0x20DC2:dài 0x20DC3:shāo,sù,shòu 0x20DC4:kè 0x20DC5:zhú 0x20DC7:shī 0x20DC8:lǜ,liè 0x20DC9:jiā 0x20DCA:pián 0x20DCB:hòu 0x20DCC:jī,zé 0x20DCD:tà 0x20DCE:chóu,shòu 0x20DCF:wō 0x20DD0:jìng,jiàng 0x20DD1:pō 0x20DD2:zhāi 0x20DD3:xīn 0x20DD6:biàn 0x20DD9:xù 0x20DDE:gū 0x20DDF:jiè 0x20DE2:xián 0x20DF8:é,yóng 0x20DFA:bó 0x20DFB:piāo 0x20DFF:zǎ 0x20E01:pài 0x20E02:tū 0x20E04:yīng 0x20E2E:xiǎng 0x20E31:nuò 0x20E32:gē 0x20E33:bó 0x20E34:xiè 0x20E38:zhēn,chún 0x20E39:yú 0x20E3A:nì 0x20E40:xùn 0x20E41:wà 0x20E43:àng 0x20E44:hàn 0x20E45:hōng 0x20E46:dān 0x20E48:nuó 0x20E4A:cǎo 0x20E4B:jí 0x20E4C:něng 0x20E4D:yǒng,róng 0x20E4E:xiāo 0x20E50:chuǎ 0x20E51:yào 0x20E53:gé 0x20E54:táng 0x20E55:bào 0x20E56:chǎn 0x20E58:xù 0x20E5B:hái 0x20E5D:chóu 0x20E5F:jiǎn 0x20E60:zuō 0x20E64:wèi 0x20E65:dā 0x20E66:pī 0x20E90:huàn 0x20E92:xī 0x20E94:pèn 0x20E95:liū,liáo 0x20E96:mǔ,yīng 0x20E97:miē 0x20E98:làng 0x20E99:tuì 0x20E9A:bān 0x20E9D:gē 0x20E9F:kù 0x20EA2:jiā 0x20EA3:bō 0x20ECD:huàn 0x20ECF:zú 0x20ED0:luò 0x20ED7:lí 0x20ED9:hé 0x20EDA:mó 0x20EDC:shuì,lǜ,sū 0x20EDD:shēn 0x20EDE:kǎng 0x20EDF:chì 0x20EE0:líng 0x20EE1:luǒ 0x20EE4:yǎn 0x20EE5:zhào 0x20EE6:chuǎ 0x20EE7:gǔ 0x20EE8:qǐn 0x20EEA:tán 0x20EEB:fèn 0x20EEC:tú 0x20EF1:líng 0x20EF4:lǎng 0x20F16:lán 0x20F17:zàn 0x20F18:wù 0x20F1D:lí 0x20F1E:ā 0x20F1F:lüè 0x20F20:zhǐ 0x20F21:chóu 0x20F22:jiàng,qiàng 0x20F24:jiān 0x20F29:lún 0x20F2A:yí 0x20F2C:shāng 0x20F3B:jī 0x20F5C:yì 0x20F5D:nín 0x20F61:huì 0x20F63:zhā 0x20F66:hǎn 0x20F68:yǐn 0x20F69:bì 0x20F6A:ān 0x20F6B:xiā,xiǎ 0x20F6C:ní 0x20F70:dī 0x20F71:jiǎn 0x20F72:pán 0x20F75:yù 0x20F76:chuài,cuì,chuò 0x20F77:zā 0x20F79:chá 0x20F7B:zhé 0x20F7C:sè 0x20F7E:pēn,pǔ 0x20F7F:gū 0x20F80:zhé 0x20F86:lí 0x20F87:dōu 0x20F89:chóu 0x20F8B:zuǐ 0x20F8C:pò 0x20F8F:shē 0x20F90:lóng 0x20FA2:shù 0x20FA4:jìn 0x20FA5:líng 0x20FA8:kāng 0x20FA9:là 0x20FAB:xū 0x20FAC:jìn 0x20FAE:chuān 0x20FB2:yuè 0x20FC6:mǎi 0x20FC7:xiè 0x20FC8:jiū 0x20FC9:jì 0x20FCB:yuè 0x20FCF:jiān 0x20FD1:hán,gǎn,ǎn,hǎn 0x20FD3:sà 0x20FD4:huì 0x20FD5:qiào 0x20FD7:sè 0x20FD8:zuǐ 0x20FDB:lǔ 0x20FDC:huà 0x20FDD:chū 0x20FDE:shǎn 0x20FDF:wò 0x20FE0:jí 0x20FE1:zhuó 0x20FE2:xián,xiàn 0x20FE3:yī 0x20FE4:guó 0x20FE5:kuì,guì 0x21011:zhōu 0x21014:lù,lou 0x21016:bō 0x21017:shí 0x21018:yìng 0x21019:kū 0x21039:zhì 0x2103A:xié 0x2103D:yè,hè 0x2103E:è 0x2103F:lǜ 0x21040:hàn 0x21041:yè,kài 0x21046:luò 0x21047:chuò 0x21048:fàn 0x21049:zhí 0x2104A:yìng 0x2104B:wěn 0x2104C:wā 0x2104D:ài 0x2104E:yú 0x21051:huā 0x21053:liè 0x21054:jīng 0x21055:zá 0x21067:zāng 0x21068:duì 0x2106A:jì 0x2106E:wō 0x21070:jí 0x21071:xī 0x21073:zhàn 0x21074:tuán 0x2108A:yú 0x2108F:liè 0x21092:zhì 0x21093:shī 0x21095:lǎo 0x21096:lài,tà 0x21097:wěi 0x21098:páo 0x21099:chí 0x2109A:yǐng 0x2109B:dòu 0x2109D:dòu 0x2109F:bào 0x210A0:qiè 0x210A1:shù 0x210A3:zhí 0x210A9:liè 0x210AB:péng 0x210AD:zhē 0x210BF:ōu,ou 0x210C2:xiè 0x210C3:jí 0x210C4:lài 0x210C5:yíng 0x210C6:cēng 0x210D6:lē 0x210DD:lùn 0x210E1:lóng 0x210E2:xì 0x210E6:lìn 0x210E9:guī 0x210F3:xīng 0x210F7:lí 0x210F8:cī 0x21107:qǐng 0x21111:jiān 0x21112:dào 0x21113:jiǎn 0x21114:qìng 0x21115:xiè 0x21116:yìng 0x2111F:há 0x21121:zhe 0x21122:shē 0x21123:mí 0x21124:huán 0x21131:cù 0x21132:rú 0x21133:sǎ 0x21134:huò 0x21135:yī 0x21137:dī 0x21139:luàn 0x2113B:yì 0x21142:bò 0x21143:páng 0x21144:tán 0x21145:é,éi 0x21146:zāng 0x21147:cóng 0x21153:zhāi 0x21155:xǐ 0x21156:mǎng 0x21158:là 0x21159:yùn 0x21161:è 0x21165:dié 0x2116D:guān 0x21171:huàn 0x21175:shì 0x21176:jiǎn 0x21179:zhān 0x2117A:jí 0x2117B:huàn 0x21185:wàn 0x21186:luǒ 0x2118F:dòu 0x21195:liàn 0x211A3:niè,dí 0x211A4:nǎn 0x211A5:jiù 0x211A6:yuè 0x211A9:yāo,jiǒng 0x211AA:chuāng 0x211AE:cǎn 0x211AF:lǐ 0x211B0:dùn 0x211B1:nǎn 0x211B2:nǎn 0x211B8:rì,guó 0x211BD:yuè 0x211C0:yóu 0x211C2:yīn 0x211C4:guó,niè 0x211C8:dàng,tuó 0x211D1:zhēn 0x211D2:mí 0x211D3:dié 0x211D6:zhēn 0x211DA:kuā 0x211DC:hán 0x211DD:sòng 0x211DE:hé 0x211DF:jī 0x211E0:zhé 0x211E4:bǐng 0x211E6:wéi 0x211E7:tōu 0x211E9:tú 0x211EC:gāng 0x211ED:lóu 0x211EE:quán 0x211EF:hùn 0x211F0:zhuǎn 0x211F1:què 0x211F3:hóng 0x211F5:dàng 0x211F6:hé 0x211F7:tài 0x211F8:guāi 0x211FA:yù 0x211FC:yà 0x211FF:wān 0x21200:qūn 0x21205:jué 0x21206:ōu 0x21209:quān 0x2120A:zhí 0x2120D:líng 0x2120E:wū,rì 0x2120F:xìn 0x21210:dá 0x21212:yuān 0x21213:yuàn 0x21217:mò 0x21219:yóu 0x2121E:wǔ 0x21220:zhāng 0x21223:xuān 0x21226:rǎo 0x21227:gǔn 0x21228:yù 0x2122E:xiá 0x2122F:biǎn 0x21230:yóu 0x21232:yīn 0x21234:xuán,rǔ 0x21235:yóu 0x21236:léi 0x2123C:tǐng,tíng,zhēng,zhǐ 0x2123F:zhēn 0x21244:zài,kū 0x21245:gā 0x21246:lá 0x21249:què 0x2124E:jú 0x21250:chūn 0x21251:dā 0x21252:tún 0x21253:āi 0x21257:zǐ 0x2125A:huáng,fēng 0x2125B:yì 0x21269:bào 0x2126A:chí 0x2126D:rì 0x21274:lú,hù 0x21277:jié 0x21278:shì 0x2127A:zuān 0x21281:yì 0x21284:fèn 0x21285:fèn,biàn 0x21289:mò 0x2128D:shù 0x2129B:áo 0x2129D:pǐ 0x2129E:píng,pìng 0x2129F:pō 0x212A0:jiá 0x212A1:zhóu 0x212A3:qiū 0x212A7:yǒu 0x212A8:tán 0x212AB:rǒng 0x212AD:mì 0x212B6:yì 0x212B8:rǒng 0x212BB:liè 0x212BC:qióng 0x212D9:huí 0x212DA:jì 0x212DF:gào 0x212E7:yóu 0x212E8:chā 0x212E9:dé 0x212EA:yīn 0x212EC:yù 0x212ED:bèi 0x212EF:bó 0x21314:qiāo 0x2131A:chǎ 0x2131C:xīn 0x2131E:chí 0x21323:zào 0x21324:kuí 0x21326:fèi 0x21329:tā,dá 0x2132A:guài 0x2132D:duō 0x21332:guī 0x21334:zhí 0x2134C:chǎn 0x2134D:nǎo 0x21350:hú 0x21352:táo 0x21361:yì 0x21364:niè 0x21365:zhài 0x21366:huán 0x21368:dù 0x2136A:qì 0x2136B:cè 0x2136E:chuí 0x21372:dā 0x21376:zhì 0x21377:gèng 0x2137B:wèng 0x21389:dù 0x2138D:chí 0x21391:àn 0x21392:kuò 0x21394:wò 0x21398:yīng 0x2139A:piǎn 0x213AB:zhá,qì 0x213AC:zhuǎ 0x213AE:sù 0x213B3:nì 0x213BA:zhú 0x213BB:chán 0x213BE:bèng 0x213BF:ní 0x213C0:zhí 0x213C1:huì 0x213D8:xià 0x213DA:zhì 0x213DB:xī 0x213DE:jiǎng 0x213E9:duī 0x213EA:fū 0x213ED:jiāo 0x213EE:cháo 0x213EF:bài 0x213F5:liè 0x213FC:áo 0x2140B:zāo 0x2140C:chù 0x2140F:tuǒ 0x21412:háo,hào 0x21413:kāng 0x21414:yín 0x21416:xiàn 0x2141D:fú,fù 0x2141E:biē 0x21420:kuī 0x21424:qiè 0x21425:sà 0x2143F:dā,da 0x21440:yě,shù 0x21444:zhǎng 0x21446:liáng 0x21448:duǐ 0x2144D:láo 0x2144E:xūn 0x21458:zhì 0x2145A:kū 0x2145E:suì 0x2145F:wō 0x21463:kū 0x2146F:jiǎn 0x21476:jiǎng 0x2147B:zhuì 0x2147D:shuǎng 0x2147E:yú 0x21481:sà 0x21483:yù,ào 0x21484:lǎn 0x2148A:yù 0x2148C:qiǎn 0x2148D:jù 0x2148F:liè 0x21492:shú 0x21493:xiàn 0x21496:gài 0x214A2:tái 0x214A7:tiǎn 0x214AF:mèng 0x214B1:dí 0x214B3:mián 0x214BE:huī,kuì 0x214C9:duò 0x214CD:liè 0x214D2:lài 0x214D3:yín,yīn 0x214D4:lǎn 0x214D6:jiāo 0x214D8:huò 0x214E3:guō 0x214E6:zhàn 0x214ED:mǐ 0x214F0:kuī 0x214F7:duò 0x214FF:yín 0x21507:lèi 0x21515:gòng 0x2151B:tǐng 0x2151C:yáo 0x2151E:wǎng 0x21523:jié,qiè 0x21528:xiū 0x2152A:shù 0x21531:wèi 0x21534:yù 0x21541:zhān 0x21549:āng 0x2154F:sǎng 0x21550:chóu 0x21552:kuà 0x21556:jǔ,féng 0x21557:hài 0x21562:miǎn,mǎn 0x21567:hàng 0x2156A:chóu 0x2156E:líng 0x21570:zōng 0x21589:kūn 0x2158C:zhōng 0x2158E:zhāo 0x21590:diě 0x21591:gǒu 0x21592:yún 0x21593:dān 0x21594:nuó,nuǒ 0x2159B:bǐng 0x2159D:rán 0x2159E:chān 0x215A2:rǒng 0x215A3:yīn 0x215A4:chān 0x215A7:zhì 0x215AA:guài 0x215AB:nuó 0x215AC:shēn 0x215AF:sù 0x215B2:wǒ 0x215B3:chǐ 0x215BA:miè 0x215BB:zhí 0x215BE:qī 0x215C1:gōu 0x215C6:lǒu 0x215C8:zī 0x215CD:dǎng 0x215CF:xiǎn 0x215D1:rǒu 0x215D7:pěng 0x215DE:xī 0x215E2:kuā,běn 0x215E4:guì 0x215E5:chún 0x215E6:jiè 0x215F2:jiè,bēn 0x215F3:xī 0x215F5:kū 0x215F7:gū 0x215F8:zhà,kuā 0x215F9:fàn 0x215FC:xiè 0x2160D:huán,qié 0x2160F:niǎo 0x21610:xì 0x2161B:cū 0x2161D:gǔn 0x21621:xī 0x21627:qiá 0x2162A:māng 0x2162D:zhé 0x21630:juàn 0x21634:biē 0x21640:biē 0x21645:quán 0x2164B:xì 0x2164E:jiǎo,miǎo 0x21650:quán 0x21651:zhǐ 0x21652:tiān 0x21653:kāi 0x21658:sǎn,yì 0x2165B:zī 0x21663:jié 0x2166A:bié 0x2166C:dòu 0x2166D:zuī 0x21676:yǎn 0x21681:bì 0x21685:kuǎi 0x21687:yàn 0x21688:wéi 0x2168A:huān 0x2168C:hào 0x21691:gōng 0x21694:méng 0x21697:lěi 0x21699:dì 0x2169B:bǐng 0x2169C:huān,kàn 0x2169F:wā 0x216A0:jué 0x216A8:chì 0x216AD:bā 0x216AE:jiǔ 0x216B7:dì 0x216B9:zhàng 0x216BB:dà 0x216BC:shí 0x216BD:hào 0x216CC:yè 0x216D7:bì 0x216D8:pǐ 0x216D9:yǎo,yāo 0x216DC:dī 0x216DD:càn 0x216DE:pín 0x216DF:yuè 0x216E0:qiē 0x216E1:pī 0x216F5:tuǒ 0x216F6:xiè 0x216FD:yè 0x21700:fàn 0x21701:guā 0x21702:hù 0x21703:rǔ 0x21709:rǎn,ràn 0x2170A:fǒu 0x2170B:huāng 0x2171A:rú 0x21722:mǎo 0x21725:duī 0x21726:huì 0x21727:xì 0x21728:xiū 0x2172B:rǎn 0x2172C:yī 0x2172F:zhé 0x21731:jì 0x21732:gào 0x21733:yòu 0x21735:pū 0x21748:chù 0x21749:cū 0x2174A:zhé 0x2174B:niǎo 0x2174D:qiè 0x21750:chá 0x21752:niǎo 0x21753:suī 0x21759:chá 0x2175A:chéng 0x2175B:yáo 0x2175C:dù 0x2175D:wāng 0x2175F:niàn 0x21760:mí 0x21766:nǒu 0x21767:xì 0x21769:yāo 0x2176B:chān 0x21798:xiè 0x21799:miè 0x2179A:kěng 0x2179C:cù 0x2179E:shěng 0x2179F:pàn 0x217A0:hù 0x217A2:kè 0x217A3:xiàn 0x217A5:hóu 0x217A6:qióng 0x217A7:zōng 0x217AA:fú 0x217AB:nài 0x217AD:nì 0x217AF:kǔ 0x217BE:nèn 0x217CD:gē 0x217D1:hóu 0x217D3:āi 0x217D5:shī 0x217DE:xiū 0x217DF:cōng 0x217E0:jiāo 0x217E2:zhá 0x217E3:xiāo 0x217E4:liàn 0x217E5:qǔ 0x217E8:shǎn 0x217E9:xiè 0x217EB:gòng 0x217EC:miè 0x217ED:chái 0x217EF:ēn 0x217F3:dòu 0x21806:kòu 0x2180A:tiáo 0x2180B:shī 0x2180F:sāng 0x21812:guān 0x21816:hào 0x21817:zhì 0x21818:yàng 0x21819:tōng 0x2181A:bì 0x2181C:mó,mò 0x2181E:fú 0x21825:qiáng 0x21839:zhì 0x2183C:sōu 0x2183F:niǎo 0x21840:juàn 0x21842:yàng 0x21844:huāng 0x21848:bēng 0x21849:mó 0x2184A:cháo 0x2184E:lǚ,lóu 0x2184F:shāo 0x21850:bǔ 0x21851:zēng 0x21852:sī,xī 0x21854:zuì 0x21855:yuē 0x21856:zān,cān 0x21857:luǎn,luàn 0x21865:qú 0x2187A:miǎo 0x21880:zhuàn 0x21888:dàng 0x2188A:yuān 0x21892:jǔ 0x21895:huǐ 0x21896:qì 0x21898:yùn,yíng 0x2189A:màn 0x2189C:mǒ 0x218B1:piāo 0x218B3:jìn 0x218B9:yāo 0x218C0:chì 0x218C1:nì 0x218C2:sōu 0x218C8:shù 0x218CB:piāo 0x218D4:hàn 0x218E0:yāo 0x218E2:néi 0x218EA:shì 0x218EC:yuān 0x218EE:cài 0x218EF:jié 0x218F9:xiè 0x218FD:yán 0x218FE:xiāo 0x2190B:xiè 0x2190C:lì 0x2190E:fàn 0x21917:zhù 0x21919:nà 0x2191B:zhuǎn 0x2191E:kuī 0x21922:luó 0x2192B:qiā 0x21936:wān 0x2193D:shǔ 0x2193F:chèng,kǒng 0x21941:yì 0x21946:hǎo,hào 0x21948:jiào 0x2194B:huì 0x2194D:xiào 0x2194E:cí,zǐ 0x2195E:jì,bèi 0x21966:nǐ,jìn 0x21968:nǐ,jìn 0x21969:tǐ 0x21976:jù,rú 0x21978:mìng 0x2197D:lí 0x2197F:zhòng 0x21981:xù 0x21983:qióng 0x21984:fú 0x21986:bìn 0x2198A:jì 0x2198D:qí 0x2198E:xì 0x21994:dèng 0x21995:ér 0x2199B:shú 0x2199C:tóng 0x2199D:xiāo,xiáo 0x2199F:pí 0x219A8:dǎn 0x219AA:jí 0x219B3:xiào 0x219B7:cóng 0x219BB:bīn 0x219BC:rǒng 0x219CD:miàn,bīn 0x219D2:miàn 0x219D4:shū 0x219D5:xiáo,shǒu 0x219D6:bǎo 0x219D7:wà 0x219D9:pào 0x219E3:gǎi 0x219E5:hū 0x219E6:héng 0x219E8:zhú 0x219E9:guāi 0x219ED:guì,guǐ 0x219F9:dài 0x219FC:bīn 0x219FD:huǎng,huāng 0x21A00:chá 0x21A04:xià,sāi 0x21A05:jú 0x21A07:yǎo,xiǎng 0x21A16:fěn 0x21A17:zào 0x21A1B:fēng 0x21A22:jū 0x21A23:yù 0x21A29:hūn 0x21A32:jié 0x21A33:xiòng,hùn 0x21A35:nài 0x21A3B:nǒu 0x21A3D:shěng 0x21A3F:yù 0x21A42:huán 0x21A43:gěng 0x21A44:wǎn 0x21A46:tuó 0x21A47:qiāo 0x21A58:yìn 0x21A5A:jiā,zhuàn 0x21A61:suǒ 0x21A63:jié 0x21A64:xī 0x21A65:wěng 0x21A69:máng 0x21A76:yáng 0x21A78:yáo 0x21A7D:máng 0x21A7E:ōu 0x21A81:án 0x21A85:lòu 0x21A91:è 0x21A92:zǐ 0x21A97:è 0x21A99:àn 0x21A9E:huò 0x21AA0:céng 0x21AB0:xiòng 0x21AB1:jì 0x21AB3:zuó 0x21AB5:qí 0x21ABA:zhēng 0x21AC0:jī 0x21AC1:qī,chèn 0x21AC2:juǎn 0x21AC3:níng 0x21ADF:sè 0x21AE5:hè 0x21AE6:rǒng 0x21AE7:qǐn 0x21AEC:jū 0x21AEF:lì 0x21AF5:shí 0x21AF8:nì 0x21AF9:xián 0x21AFA:fū 0x21AFD:rǔ,yù 0x21B01:xiòng 0x21B02:guì 0x21B04:jì 0x21B06:měng,mèng 0x21B07:fū 0x21B09:sài 0x21B0A:yù 0x21B0B:jiào 0x21B0C:mèng 0x21B0D:mí,lóng,mǐ 0x21B0E:qiāng 0x21B10:yí,mí 0x21B13:yí 0x21B15:lóng 0x21B16:hān 0x21B17:nì 0x21B18:lào 0x21B19:sèng 0x21B1C:lǐn 0x21B1E:yù 0x21B25:nuó 0x21B2B:wù 0x21B2F:biǎn 0x21B32:biǎn 0x21B33:xuān,shòu 0x21B35:jiān 0x21B38:biǎn 0x21B42:dé 0x21B47:zhuān 0x21B4B:rǒng 0x21B50:shuàn 0x21B58:jiā 0x21B5B:huǐ 0x21B5E:zhān 0x21B62:bài 0x21B63:liè 0x21B65:xiē 0x21B6D:jiǎn 0x21B6E:shǒu 0x21B73:kào 0x21B77:guān 0x21B78:luàn 0x21B7E:nǒu 0x21B7F:chǎng 0x21B8E:liáng 0x21B99:nài 0x21B9A:rǔ 0x21B9E:zhì 0x21BA6:cáo 0x21BB0:lì 0x21BBB:lán 0x21BBF:chān 0x21BC1:wāng 0x21BC4:lì 0x21BC7:wù 0x21BC8:páo 0x21BC9:yòu 0x21BCB:gān 0x21BCF:ān 0x21BD0:xiū 0x21BD1:shuǐ,zhuǐ 0x21BD2:ruǐ 0x21BD8:bǎn 0x21BD9:yóu 0x21BE2:huó 0x21BE5:huī 0x21BE8:zuò 0x21BE9:xiāo 0x21BEB:mián 0x21BF0:gà 0x21BF1:yuǎn 0x21BF3:bò 0x21BF4:chào 0x21BF5:tuǐ,kuì 0x21BF7:bò,kòu 0x21BFD:gà 0x21BFF:tiāo 0x21C00:ná 0x21C05:hú 0x21C06:niè 0x21C0B:huí 0x21C0C:lǒu 0x21C0E:tí 0x21C10:qiào 0x21C11:qiáo 0x21C12:zhǒng 0x21C16:dī 0x21C1A:lín 0x21C1D:quán 0x21C1E:zhuān 0x21C20:léi,luán 0x21C22:xié 0x21C25:rén,yí 0x21C28:dāng 0x21C2A:dū 0x21C2B:niǎn 0x21C2F:shǐ,diǎo,běi 0x21C32:xián 0x21C39:zhí 0x21C3D:ài 0x21C3E:cī 0x21C3F:pú 0x21C41:shǐ 0x21C45:qū 0x21C46:shǔ 0x21C47:diān 0x21C49:xiǎo 0x21C4A:shuǐ 0x21C4C:huán 0x21C50:yí 0x21C51:juān 0x21C54:zhǐ,qì 0x21C5C:zhào 0x21C63:xù 0x21C6F:lòng 0x21C71:zhù 0x21C73:suǒ 0x21C77:dié 0x21C7A:qú 0x21C7C:kè,kuà 0x21C7D:hū 0x21C7E:jū 0x21C80:qǐng 0x21C8D:bīng 0x21C95:tì 0x21C97:jué 0x21C9A:qiú 0x21CA3:jiàng 0x21CAA:yùn 0x21CAD:mèi 0x21CAE:pī 0x21CB0:qú 0x21CBC:mì 0x21CBF:tì 0x21CC2:kài 0x21CC4:bǐ 0x21CC6:qū,qù 0x21CCF:tiāo 0x21CD1:chù 0x21CD8:jú 0x21CDA:xī 0x21CDE:lìn 0x21CED:chǐ 0x21CEE:jī 0x21CF4:lú 0x21CF8:lì 0x21CFE:jué 0x21D05:zhū 0x21D06:lù 0x21D0E:niè 0x21D14:quán 0x21D2D:yà 0x21D2F:è 0x21D31:hù,jié 0x21D40:máng 0x21D49:wù 0x21D4C:chā 0x21D51:qīn 0x21D52:jié,qǐ 0x21D53:hóng 0x21D55:dān 0x21D56:ěn 0x21D57:zè 0x21D58:hù 0x21D59:àng 0x21D5A:jiè 0x21D5B:fù 0x21D5C:yòng 0x21D5E:fēng 0x21D6C:mù 0x21D76:sè 0x21D77:cóng 0x21D7B:kāng 0x21D82:yào 0x21D83:ài 0x21D84:bāo 0x21D86:pǒ 0x21D88:shǐ 0x21D89:fàn 0x21D8B:jú 0x21D8C:pí 0x21D8E:wèi 0x21D8F:kū 0x21D90:qié 0x21D91:gān 0x21DA2:kuàng 0x21DA3:suì 0x21DA4:bēng,yòng 0x21DA5:jiā 0x21DA6:yà 0x21DAA:kàn 0x21DAB:niè 0x21DAD:xíng 0x21DAF:xì 0x21DB1:lìn 0x21DB2:duǒ 0x21DB4:chǎn 0x21DC8:shì 0x21DCB:duì 0x21DCD:jiāng 0x21DCE:yǔ 0x21DCF:lù 0x21DD0:ěn 0x21DD3:gǔ 0x21DD5:wěi 0x21DD6:chē 0x21DD7:huàn,huán 0x21DD8:bié 0x21DDB:hàn 0x21DDC:tuí 0x21DDD:nà 0x21DDE:qǐ 0x21DE0:tóu 0x21DE1:yuān 0x21DE2:wáng 0x21DE4:wú 0x21DE5:gào 0x21DE8:kēng,xíng 0x21DEA:yí,níng 0x21DF8:xiāo 0x21DFA:guǐ 0x21DFB:yà 0x21DFC:suì 0x21DFD:sǒng 0x21DFF:zhuó 0x21E02:tū,tú 0x21E03:xiǎn,jiǎn 0x21E08:zè 0x21E09:lì 0x21E0C:zhù 0x21E0E:jié 0x21E11:tì 0x21E14:xié 0x21E15:qióng 0x21E17:yà 0x21E18:jū 0x21E1B:yín 0x21E1C:zhí 0x21E1E:kǎn 0x21E1F:zī 0x21E21:kē 0x21E23:niè 0x21E24:qiáng 0x21E25:wǎn 0x21E26:zé 0x21E28:jū 0x21E2A:zì 0x21E44:yà 0x21E47:lín 0x21E49:qí 0x21E4E:huí 0x21E53:qì 0x21E55:yáng 0x21E56:suì 0x21E58:qǐ 0x21E59:guī 0x21E62:qìn 0x21E63:ē 0x21E65:zuò 0x21E68:zè 0x21E69:qì 0x21E6A:jí 0x21E6C:tuó 0x21E6D:dié 0x21E6F:huì 0x21E70:máo 0x21E72:xǔ 0x21E75:hóu 0x21E76:yǎn 0x21E77:xiáng 0x21E78:cōng 0x21E79:hú 0x21E7C:àn,yǎn 0x21E7E:bǐng 0x21E87:duǒ 0x21E90:zhǔ 0x21E91:dié 0x21E92:yōu 0x21E93:qǐ 0x21E94:shí 0x21E95:xūn 0x21E96:yōu 0x21E97:kān 0x21E98:qiǎo 0x21E9B:qiāng,huà 0x21E9C:pén 0x21E9F:quán 0x21EA1:yíng 0x21EA7:shā 0x21EAB:tāo 0x21EAD:hòng 0x21EAE:pǐ 0x21EAF:yáo 0x21EB4:tú 0x21EB5:chái 0x21EB7:xià 0x21EB8:qí 0x21EBA:qióng 0x21EBD:jìn 0x21EC8:zhēn 0x21ECC:zhū 0x21ECE:xī 0x21ED0:wēng 0x21ED1:zhǒng 0x21ED5:suì 0x21ED8:kē 0x21ED9:kuò 0x21EDA:kǎng 0x21EDD:cháo 0x21EDE:bì 0x21EDF:mò 0x21EE0:zhù 0x21EE1:hàn,yán 0x21EE2:yǔ 0x21EE3:yí 0x21EE4:má 0x21EE7:qì 0x21EE8:gùn 0x21EE9:màn 0x21EEA:liáo,liù 0x21EEB:lín 0x21EEC:zú 0x21EED:lěi 0x21EEE:hù 0x21EEF:chuǎng 0x21EF0:qì 0x21EF1:léi 0x21F01:chī 0x21F03:pó 0x21F04:dié 0x21F0A:lěi 0x21F0E:yǐ 0x21F13:diàn 0x21F16:dūn 0x21F17:gāo 0x21F18:hū 0x21F1A:xiāo 0x21F1B:gá 0x21F1C:pēng 0x21F2C:shěn 0x21F31:wéi 0x21F3B:duì 0x21F3C:cháo 0x21F3D:yǐn 0x21F3E:kuài 0x21F3F:kū 0x21F41:zuì 0x21F42:gǔ 0x21F45:yùn 0x21F46:zhì 0x21F49:jì 0x21F4A:chēng 0x21F56:xiè 0x21F5B:zuǐ 0x21F5C:án 0x21F5D:hāo 0x21F60:pǒ 0x21F62:dí 0x21F63:yè 0x21F67:náo 0x21F71:jié 0x21F72:bàng 0x21F73:lǎn 0x21F74:cáng 0x21F76:bì 0x21F7B:zhǎn 0x21F7C:qì 0x21F82:náo 0x21F85:lǜ 0x21F87:kuàng 0x21F89:mó 0x21F8B:lěi,léi 0x21F8C:páo 0x21F92:lì 0x21F93:céng 0x21F95:dàng 0x21F96:lěi 0x21F99:è 0x21F9B:bèng 0x21F9C:jué,huò 0x21FA5:xuán 0x21FA6:niè 0x21FA8:hài 0x21FAE:xiǎn 0x21FB0:jiǎn 0x21FB1:mí 0x21FB2:niè 0x21FBB:cáng 0x21FBC:sǒng 0x21FBD:zēng 0x21FBE:yì 0x21FC2:chóng 0x21FC4:cáng 0x21FC9:lěi 0x21FCA:nuó 0x21FCB:lì 0x21FCE:lí 0x21FCF:luó 0x21FD3:tǎng 0x21FD6:niè,yà 0x21FD7:niè 0x21FD9:jī 0x21FDB:lěi 0x21FDD:nàng 0x21FE0:lín 0x21FE1:líng 0x21FE4:xián 0x21FE5:yù 0x21FE7:zāi 0x21FE8:quǎn 0x21FE9:liè 0x21FEF:yù 0x21FF0:huāng 0x21FFA:nǎo 0x21FFC:xùn 0x21FFE:jú 0x21FFF:huò 0x22001:yì 0x2200A:xī 0x2200B:sè 0x2200C:jiǎo 0x2200D:yōng 0x22015:shī 0x22016:jīng 0x22017:wàn 0x22018:yě 0x22019:jiū 0x2201C:gǒng 0x22021:huī,zuǒ 0x2202A:ěr 0x22035:hàn 0x2203C:fú 0x22040:fú 0x22041:zhuó 0x22042:jī,jì 0x2204F:bāng 0x22052:qí 0x22053:shǐ,hài 0x22055:diǎo 0x22056:pèi 0x22057:xiǎn,gàn 0x22058:sān 0x2205D:cháng 0x2205E:yuē 0x22060:gōng 0x22062:wū 0x22064:fēn 0x22067:chǎn 0x22069:nèi 0x2206A:jué 0x2206C:zhǎo 0x2206E:qián 0x22071:ǎo 0x22076:wǎng 0x22077:zhōng 0x22079:huāng 0x2207B:bù 0x2207C:zhǔ 0x2207D:bì 0x2207E:chāo 0x2207F:zhēng 0x22080:fú 0x22081:kōu,qú 0x22083:zuó 0x22084:xuàn 0x22086:fù 0x2208A:yǎo 0x2208D:bō 0x2208F:bèi 0x22090:xié 0x22091:shì 0x22092:yí 0x22094:hóng 0x22095:cuì 0x22097:yì 0x22098:zhuān 0x2209D:chì 0x220A4:pō,lù 0x220A8:yín 0x220B1:yuàn 0x220B6:jiōng 0x220B9:mào 0x220BA:qiàn 0x220BC:yì 0x220C0:wú 0x220CD:bēi 0x220CE:huò 0x220CF:cóng 0x220D0:kōng 0x220D5:tà 0x220D7:hàn 0x220D8:qiàn 0x220DC:zhí 0x220E2:sè 0x220E5:qiān 0x220E6:guǒ 0x220E9:gǔn,juǎn 0x220EC:jiān 0x220ED:zhōng 0x220EE:miǎn 0x220EF:guǐ 0x220F0:shì 0x220F1:móu 0x220F2:è 0x220F3:bǎ 0x220F4:là 0x220F8:zhòu 0x220FA:jí 0x22100:zǎo 0x22104:zhā 0x22105:yì 0x22107:gǒu 0x2210A:guī 0x2210B:yīng 0x2210C:shǎi 0x2210D:hé,gé 0x2210E:bàng 0x2210F:mò 0x22110:méng 0x22113:wù 0x22114:dài 0x22117:jiǒng 0x2211C:hàn 0x2211F:tōng 0x22120:kōu 0x22121:lí 0x22122:zhì 0x22123:huì 0x22124:zǎn 0x22126:diǎo 0x22127:cù 0x22131:zhì 0x22133:kuǎ 0x22135:xiàng 0x22136:huà 0x22137:liáo 0x22138:cuì 0x22139:qiāo 0x2213A:jiǎo 0x2213C:xū 0x2213D:èr 0x2213F:tuō 0x22140:tán 0x22141:zhì 0x22148:nǎo 0x22149:mào 0x2214A:dì 0x2214B:céng 0x2214E:jiǎo 0x2214F:lián 0x22151:shā 0x22152:dàn 0x22155:suì 0x22156:lián 0x22157:guò 0x2215A:biǎo,biāo 0x2215C:cì 0x2215D:diàn 0x2215E:lǜ 0x2215F:nǐ 0x22160:yǎn 0x22161:lán 0x22164:gài 0x22165:chú 0x22169:bì 0x2216A:zú 0x2216B:huì 0x2216D:lǎi 0x2216E:xián 0x2216F:fèn 0x22170:hè 0x22179:yào 0x2217A:zhǎn 0x2217C:néi 0x2217E:luǒ 0x22180:yuán 0x22182:néng 0x22189:rěn 0x2219C:gé 0x2219E:jiǎn 0x2219F:píng 0x221A3:biè 0x221A6:jiàn 0x221A9:bìng 0x221AF:mì,xuán 0x221B0:hù 0x221B4:diǎo 0x221B6:yōu,zī 0x221B7:yāo,miào 0x221B8:bēng 0x221BA:chén 0x221BB:jī,duì 0x221BD:yāo 0x221C7:guān 0x221C8:yàn 0x221D5:chǐ 0x221D7:shà 0x221D8:yǎn 0x221D9:yì 0x221DA:yì 0x221DB:chè,chǐ 0x221DE:hàn 0x221DF:huāng 0x221E4:shuì 0x221E5:suì 0x221E6:rén 0x221E7:tán 0x221E8:zhǐ 0x221EA:fàn 0x221EB:fěng 0x221F0:tán 0x221F2:mí 0x221F3:pí 0x221F4:bù 0x221F5:nà 0x221F6:tián 0x221F7:bá 0x221F8:yì 0x22202:yǎn 0x22204:tiāo 0x22206:yáo 0x22207:shěn 0x22208:kē,wā 0x22209:tóng 0x2220B:xuǎn 0x22213:yòu 0x22215:bài 0x22219:xiá 0x2221A:lǚ 0x2221B:kùn 0x2221C:zāng 0x2221D:qiú 0x22220:cù,là 0x22221:zuī 0x22222:lǒu 0x22224:xiá 0x2222F:shēn 0x22232:pú 0x22234:jīng 0x22235:qiāng 0x22236:yì,sī 0x22238:niè 0x22239:duī,tuí 0x2223B:jié 0x2223C:suì 0x2223D:zhàn 0x2223E:cōu 0x22241:bēng 0x22242:guān 0x22243:shě 0x22245:jìn 0x22246:dì 0x22251:dān 0x22253:nǎi 0x22255:nóu 0x22257:jí 0x22258:yán 0x2225A:nòu 0x2225C:dù,tú 0x2225D:wèi 0x2225E:piān 0x22262:hú 0x22264:jià 0x22265:yè 0x22266:jǔn 0x22267:lán,lián 0x22268:là 0x22269:yīn 0x2226D:tuí 0x22275:nǎo 0x2227A:zǔ 0x2227F:mà 0x22280:sī,mà 0x22281:zhì 0x22284:huī 0x22285:zhuì 0x22287:huì 0x2228D:chú 0x2228F:chè 0x22292:xiū 0x22293:lán 0x22295:cōng 0x22296:shèn 0x22297:mò 0x22298:yī 0x22299:yáo 0x2229A:xǐ 0x2229B:zuǐ 0x2229C:bìng 0x222A7:yú 0x222A9:lù 0x222AE:tuí 0x222AF:wěi 0x222B1:fén 0x222B2:shěn 0x222BB:liáo 0x222C2:shǔ 0x222C3:dǎn 0x222C4:juǎn 0x222C5:yú 0x222C6:xìn 0x222C7:yáo 0x222C8:sū 0x222D2:huó 0x222D4:qiān 0x222DA:má 0x222DD:kǎi 0x222E1:lǔ 0x222E3:yōu 0x222EE:xiàn 0x222F9:wú 0x222FB:yǐn 0x222FC:xī 0x222FF:zhāi 0x22300:xiè 0x22304:qú 0x22308:lí 0x2230D:qiān 0x22314:líng 0x22315:luán 0x2231A:chān 0x22326:zhèng 0x22328:yán 0x22332:yìn 0x22333:kuí 0x22337:qū 0x22339:fú 0x2233B:yù 0x22341:qí,bì 0x22346:qì,qiè 0x22347:jì 0x22348:yuān,zàng 0x2234E:gào 0x2234F:juàn 0x22351:qí 0x22353:gǎi 0x22355:quàn 0x2235A:wèi 0x22367:zhì 0x2236B:jiǎn 0x2236D:sì 0x22370:yì,zé 0x22371:qiān 0x2237C:lì 0x2237F:zāng 0x22380:yì 0x22382:cái 0x22383:yì 0x22384:gē 0x22386:dié 0x22388:zhī 0x22389:yì 0x2238B:zāi 0x2238C:dài 0x2238E:sù 0x22394:jié 0x22395:chèn 0x22396:qú 0x22398:hàn 0x22399:xián 0x223A0:quán,juàn 0x223A1:jié 0x223A5:juàn 0x223AA:dàn 0x223AD:jīn 0x223B4:bīng 0x223B5:hú 0x223B9:jué 0x223BB:yú 0x223C3:lǐ 0x223C4:qiáng 0x223C5:shuǐ 0x223C6:kū 0x223C8:zhěn 0x223CD:fú 0x223CE:shēn 0x223D2:chuí 0x223D5:tóng 0x223D7:yì 0x223D9:yáng 0x223DC:tuó 0x223DD:zhōu 0x223DE:jí 0x223E4:xùn 0x223E6:shěn 0x223E7:xuān 0x223ED:liú 0x223EE:yuān 0x223EF:hú,shǐ 0x223F0:zhèng 0x223F3:pēng,bēng 0x223F7:jué 0x22402:zhì 0x22403:piān 0x22404:yuàn 0x22406:jiān 0x2240A:páng 0x2240E:zhuàn 0x22410:xián 0x22412:bēng 0x22414:cōng 0x22416:mò 0x2241A:guó 0x2241E:chéng 0x2241F:qiāo 0x22426:bì 0x22429:qiǎng 0x2242B:zhōu 0x22432:fán 0x22433:biē 0x2243E:bó 0x2243F:rǎng,rǒng 0x22445:dǐng 0x22446:quán 0x22447:jiù 0x22448:yáo 0x22453:xiá 0x22456:zǎo 0x2245D:dān 0x2245F:wǔ 0x22460:tuó 0x22462:hū 0x22467:xī 0x2246C:lái 0x2246E:fēi 0x22479:hú 0x22486:xiān 0x22489:shǎn 0x2248D:fèi 0x22490:cuò 0x22492:fú 0x22494:chù 0x2249D:diū 0x2249E:làn 0x224A9:xǐ 0x224AF:biāo 0x224B0:yù 0x224B1:suì 0x224B2:xǐ 0x224B7:póu 0x224B9:shǎn 0x224BE:jiào 0x224C0:yì 0x224C3:wán 0x224C4:jǐ 0x224C6:wán 0x224C7:tuì,nà 0x224CB:àng 0x224CD:tiān 0x224CE:chí 0x224D2:rán 0x224D4:sà 0x224D5:yín 0x224D6:pī 0x224D7:cǐ 0x224D8:tóng,tāo 0x224D9:yǐn 0x224DC:gé 0x224DD:tiāo 0x224DE:zhēng 0x224DF:zhòu 0x224E1:yí,tí 0x224E2:kuà 0x224E3:sōng 0x224E7:dì 0x224EC:xié 0x224EE:xiāo 0x224EF:guàng,wǎng 0x224F0:tuǒ 0x224F1:fēng,fèng 0x224F2:wú,hú 0x224F5:xiù 0x224FF:yóu 0x22501:líng 0x22502:yàn 0x22505:dōng 0x22506:qì 0x22507:táo 0x22508:hán 0x2250A:chí 0x2250B:sōng 0x22511:quǎn 0x22514:hàn,jí 0x2251F:rǒu,niǔ 0x22520:qì 0x22521:kāi 0x22522:yú 0x22523:chā,shà 0x22524:chèng 0x22525:yù 0x22527:bìng 0x22529:cōng,sǒng 0x2252A:zhū 0x2252C:yù 0x22531:jué,què 0x22532:liù 0x22533:sāo 0x22534:yù 0x22545:shuài 0x2254B:yuàn 0x2254E:zhāng 0x22551:shuài 0x22553:chǔ 0x22554:zhāng,zhàng 0x22555:sǎn,sàn 0x22556:xiān 0x22558:cuī 0x22559:měng 0x2255A:dí 0x2255E:zhì 0x2255F:ào 0x22566:xiū 0x22568:pián 0x2256A:jiào 0x2256B:kuǎn 0x2256C:sà 0x2256D:xiàn 0x2256E:zhà 0x2256F:diàn 0x22577:yí 0x2257A:huì 0x2257B:shàn 0x22584:chóng 0x22585:yí 0x22586:xiè 0x22587:zhì 0x22588:tiào 0x2258A:pīng 0x2258B:xián 0x2258E:xiān 0x2258F:sù 0x22591:cuán 0x22597:sǒng 0x2259B:hēi 0x2259D:xiàn 0x2259F:yóu 0x225A1:yù 0x225A4:tái 0x225A6:jué 0x225A7:nàng 0x225A9:diān 0x225AB:yì 0x225AC:bì 0x225B3:xū 0x225B4:yì 0x225B5:rù 0x225B7:gōng 0x225BA:yì 0x225BF:zhì 0x225C0:xīn 0x225C2:jì 0x225C4:xià 0x225C8:zhāo 0x225C9:nè 0x225CA:xiè,jiá 0x225CE:yì 0x225EB:fǔ 0x225ED:shè 0x225EF:yuán 0x225F0:fǎn 0x225F2:fū 0x225F3:wù 0x225F4:xī 0x225F5:hǒng 0x225F9:jì 0x225FA:chàng 0x225FF:mò 0x22600:pèi 0x22603:mú,wǔ 0x22604:qiú 0x22605:mào,róu 0x22607:dá,dàn 0x22609:xiá 0x2260A:shēn 0x2260B:tè 0x2260C:hóng 0x2260D:bì,fú 0x2261D:nǐ 0x2261F:qiáo 0x22627:ruǎn 0x22638:jiàng 0x22639:chā 0x2263A:mǐ,mí 0x2263D:yì 0x2263F:suō 0x22641:wù 0x22642:xuān 0x22645:xí 0x22647:yǐ 0x22650:náo 0x22653:wèi 0x2266E:kàn 0x22671:lòng 0x22672:lǚ 0x22673:zhuǎng 0x2267A:zhì 0x2267C:xìng 0x2267E:gěng 0x2267F:jìn 0x22680:xiàn 0x22681:jì 0x22682:cuò 0x22684:láo 0x22685:fěn 0x22686:jù 0x2268B:miào 0x2268C:xiá 0x22691:sù 0x226A8:zhì 0x226AA:hù 0x226AB:kòu 0x226AD:suǒ 0x226AE:nì 0x226BA:tēng 0x226BB:zhù 0x226C1:dá,chè 0x226C3:qiú 0x226C4:yà 0x226C6:xián 0x226C9:nèi 0x226CD:zhǐ 0x226CE:bié 0x226D2:chǒng 0x226D3:lán 0x226D4:dōng 0x226D5:qūn 0x226D6:xiàng 0x226D8:xiáo 0x226D9:wǎn 0x226DA:rù 0x226DB:wàng 0x226DC:nì 0x226DE:bāi 0x226DF:yà 0x226E5:sī 0x226E6:yǐn 0x226E8:yù 0x226EE:lí 0x226EF:huò 0x22717:bàng 0x22723:xī 0x22725:jiū 0x22728:xiè,dié 0x22729:qiān 0x2272A:nuò,ruò 0x2272B:xǐng 0x2272C:duó 0x2272D:jǐ 0x2272E:wǔ 0x2272F:mú,móu,mǔ 0x22730:yàn,yǎn 0x22731:qì 0x22732:ná 0x22733:chì 0x22734:hóu 0x22736:sào 0x22738:náo 0x2273B:chěng 0x2273C:chěng 0x2273D:kuí,kuǐ 0x2273F:jià 0x22740:tú 0x22741:hōng 0x22742:dú 0x22745:xiá 0x22746:zhòng 0x22747:huò 0x22748:chóng 0x22749:dá 0x2274C:mào 0x2274D:yào 0x22753:juān 0x2276C:shì 0x2276F:yín 0x22773:gǔ 0x22774:wù 0x22778:guò 0x22779:tì 0x2277B:hōng 0x22787:rě 0x22789:yí 0x2278B:tǔn 0x2278F:qióng 0x22790:hài 0x22792:qì 0x22795:huò 0x22796:tì 0x22797:pī,bī 0x2279A:gěng 0x2279C:xiè 0x2279E:mì,mí 0x2279F:gào 0x227A0:tā 0x227A1:xiǎng 0x227A3:shū 0x227A6:fú 0x227AC:zhuān 0x227AD:liù 0x227C5:yóu 0x227CA:chěng 0x227CB:duī 0x227E2:lí 0x227E3:yàng 0x227E4:lí 0x227E7:lǔ 0x227E8:mǔ 0x227E9:suì 0x227EA:ài,xì 0x227ED:kòu 0x227EF:zhé,shì 0x227F0:ài 0x227F1:téng 0x227F3:lǜ 0x227F4:tuí 0x227F5:bī 0x227FE:huì 0x227FF:huán 0x2281B:kuò 0x2281D:xīn 0x22821:sào 0x2282B:shù 0x2282C:què 0x2282D:bā 0x2282E:tuì 0x22832:fù 0x22833:biē 0x22835:tǎng 0x22837:xiàng 0x22839:sī,xī 0x2283A:bó 0x2283C:mái 0x2283D:dàng 0x2283F:guì 0x22840:hēi 0x22841:xī 0x22842:dàng 0x22843:yì 0x22845:bī 0x22847:gū 0x22848:cuì 0x22849:sè 0x2284D:gé 0x2284E:yù 0x2284F:nǎ 0x22851:lì 0x22852:zhì 0x22870:zhào 0x22874:jī 0x22875:ruǎn 0x22879:chòng 0x22882:jié 0x2288C:chàng 0x2288D:zhé 0x22892:sū,sù 0x22893:yōng 0x22896:qì 0x22897:zhuó 0x2289A:kài 0x2289C:yè 0x2289E:qì,jì,kuài 0x228B9:xiòng 0x228C9:yī 0x228CA:chǒu 0x228CE:tuǎn 0x228CF:ài 0x228D0:pīn 0x228D3:liè 0x228D4:mián 0x228D5:ài,chī 0x228D7:mǒ 0x228D8:wèi 0x228D9:yìng 0x228DA:nǐ 0x228DE:bó 0x228E0:liù 0x228F3:ruì 0x228F5:chú 0x228FB:lǘ 0x228FC:chá 0x228FF:chù 0x22901:sào 0x22902:lí 0x22904:sōng 0x22906:lì,là 0x2290B:xì 0x2290D:yān 0x2290E:cuō,zuǒ 0x22910:liú 0x22918:méng 0x2291A:zhàn 0x22924:zhuàng 0x22927:miǎo 0x22929:lì 0x2292B:jǔ 0x2292F:xiè 0x22930:xiè 0x22931:lǒng 0x22932:lóng 0x22942:téng 0x22943:zhù 0x2294B:chán 0x2294C:xiǎn 0x2294F:yíng 0x22950:pèi 0x22958:xié 0x2295A:jiào 0x2295E:chōng 0x22973:hē 0x2297D:tǔn 0x22985:hǒng,zhuàng 0x22988:mán 0x2298A:jīn 0x2298C:qú 0x2298D:dǒu 0x2298E:qiú 0x2298F:zāi 0x22991:shēng 0x22992:zāi 0x22995:yǐ,zhí 0x2299A:huà 0x2299F:kān 0x229B0:yuè 0x229B1:nì 0x229B2:sī 0x229B4:wǒ 0x229B8:cán 0x229BA:jiān 0x229BC:miè 0x229BD:sháo,qī 0x229BF:rǒng 0x229C0:gān 0x229C5:qiáng 0x229C7:shú 0x229C8:zhuó 0x229CF:shī 0x229D1:tì 0x229D6:zhá 0x229D7:zhān 0x229DD:fèn 0x229DE:miè 0x229E0:zè 0x229E4:zhì 0x229E5:qiān 0x229E6:hàn 0x229E7:gé 0x229EE:cán 0x229F0:guó 0x229F1:jiāo 0x229F3:yōng 0x229F4:áo 0x229FB:zhá 0x229FD:xì 0x22A01:xū 0x22A02:wǔ 0x22A0F:jué 0x22A10:jí,jī 0x22A12:chì 0x22A14:wǎn 0x22A16:miè 0x22A17:zéi 0x22A1C:jié 0x22A1D:shí 0x22A1F:xī,xì 0x22A21:è 0x22A25:hù 0x22A26:hù 0x22A28:lì 0x22A2B:chù 0x22A2E:yī 0x22A2F:mǎo 0x22A30:xū 0x22A31:zhōng 0x22A33:yì 0x22A3A:liáo 0x22A3F:jiān 0x22A40:jiǎn 0x22A41:jú 0x22A44:zhù 0x22A48:wǔ 0x22A4F:kè 0x22A50:kě 0x22A51:lì 0x22A52:bǐ 0x22A53:gé 0x22A55:xū 0x22A56:shā 0x22A57:líng 0x22A58:kē 0x22A5E:bó 0x22A5F:biān 0x22A60:shuān 0x22A61:qí 0x22A62:shàn 0x22A66:jī 0x22A68:qiǎo,xiǔ 0x22A6E:yì 0x22A6F:jué 0x22A70:zhǎng 0x22A72:xìn 0x22A77:tuō 0x22A78:hài 0x22A79:xià 0x22A7B:tuó 0x22A7C:yí 0x22A83:cù 0x22A87:jiāng 0x22A88:nán 0x22A8B:pěng,féng,bàng 0x22A8D:jié,jiā 0x22A8E:xuē 0x22A8F:hú,gǔ 0x22AA5:yǒu 0x22AA6:nǔ 0x22AA7:yè 0x22AAA:yìn 0x22AAC:kǒng 0x22AB6:xiāo 0x22AB7:xiāng 0x22ABC:náo 0x22ABE:zhàng 0x22AD0:jié 0x22AD3:nǔ 0x22AD4:shàn,quán 0x22AE2:jiá 0x22AE7:zhǒu 0x22AE8:rǒng,rēng 0x22AEB:lù 0x22AEC:sà,cuō,shā 0x22AED:nù 0x22AEF:bó 0x22AF0:zhé 0x22AF2:qǐn 0x22AF4:cī 0x22AF5:zú 0x22AF7:wǒ 0x22AF8:wǔ,wū 0x22AFB:nié 0x22AFF:xiān 0x22B00:hóng 0x22B2B:tìng 0x22B2C:jǐn 0x22B31:jié 0x22B32:hè 0x22B33:tū 0x22B34:zhé,niè,dié 0x22B35:pīn,pān,biàn,fān 0x22B36:jìn 0x22B37:nàn 0x22B3C:dùn 0x22B3E:xī 0x22B3F:xiè 0x22B41:xì 0x22B42:láo 0x22B43:duǎn,dòu 0x22B44:jì 0x22B45:chā 0x22B46:chōu 0x22B48:gāng 0x22B4E:xiáng 0x22B4F:dǎo 0x22B65:biàn 0x22B66:xiāo 0x22B67:xīn 0x22B81:yǔ 0x22B82:xián 0x22B83:lí 0x22B84:qiǎn 0x22B87:měi 0x22B89:qiāo 0x22B8A:yà 0x22B8C:qiā,jié 0x22B8D:qiòng 0x22B8F:bàng 0x22B90:zhēng 0x22B9A:zè 0x22B9B:shuàn,tuán 0x22B9E:sào 0x22BC5:lù,jué 0x22BC9:xié 0x22BCB:fǔ 0x22BCC:zhài 0x22BE9:zè 0x22BEB:duàn,wǎn 0x22BED:dèng 0x22BEE:yù 0x22BF0:lǜ 0x22BF2:wàn 0x22BF3:xué 0x22BF4:jiǎo 0x22BF5:yuě 0x22BF6:zhì 0x22BF7:wěi,huī 0x22BF9:gé 0x22BFA:jǔ 0x22BFC:yǎn 0x22BFD:cuò 0x22BFE:mào 0x22C06:fú 0x22C07:āi 0x22C0A:xuān 0x22C0C:gāng 0x22C0D:ān 0x22C12:jí 0x22C18:pí 0x22C19:zhǐ 0x22C1C:nuó 0x22C3F:pàn 0x22C41:yí 0x22C44:jié 0x22C46:zī 0x22C48:jià 0x22C49:wǎi 0x22C4C:jià 0x22C5F:chǎn,chī 0x22C61:suǒ 0x22C62:suǒ,sè 0x22C63:jí 0x22C64:sǒng 0x22C66:tī 0x22C67:pī 0x22C68:pó 0x22C6E:mì 0x22C74:yè 0x22C76:qìn 0x22C77:jìn 0x22C7A:juē 0x22C7D:yuān 0x22C7E:ruán 0x22C94:bàn,bān,pān 0x22CB0:bīn 0x22CB4:wèi 0x22CB5:zào 0x22CB6:qiè 0x22CB7:sōu 0x22CB8:lǔ 0x22CBC:dié 0x22CBD:chuāi 0x22CBE:bì 0x22CBF:zhú 0x22CC0:mā,mó 0x22CC1:fèi 0x22CC2:piē 0x22CC3:yìn 0x22CC4:xuàn,xuán 0x22CC6:ào,áo 0x22CC7:zhuó,zú 0x22CC8:zú 0x22CCB:bǐ 0x22CD1:làng 0x22CD3:tì 0x22CD9:tiǎo 0x22CDA:jiān 0x22CDF:tǒng 0x22CFD:duō 0x22CFE:dòng 0x22D02:biǎn 0x22D20:zhì 0x22D22:fén 0x22D26:káng 0x22D27:zhì 0x22D28:zhāi,zhì,chì 0x22D29:bì 0x22D2A:kuǎn 0x22D2C:bàn 0x22D2D:juē 0x22D2E:qū 0x22D30:qī 0x22D31:léi 0x22D32:xié,jié 0x22D33:tāng 0x22D3C:sōu 0x22D3E:bèi 0x22D47:yàng 0x22D48:jiǎn,zhǎn 0x22D65:zào 0x22D80:zhuài,chuái 0x22D83:fán 0x22D85:shé 0x22D87:qióng 0x22D89:pò 0x22D8B:tiě 0x22D8C:shā 0x22D8D:zá,sà 0x22D91:niǎo 0x22D92:guài 0x22D93:cuǐ 0x22DA1:qiào,jiǎo 0x22DA3:dié 0x22DB3:pīn 0x22DB4:cí 0x22DB6:bàng 0x22DCD:yìn 0x22DD1:xiǎn 0x22DD4:yǐ 0x22DD5:miǎo 0x22DD6:duǎn 0x22DD7:zhòu 0x22DD9:kōng 0x22DE2:zhāng 0x22DF6:liú 0x22DF8:zhǐ 0x22DF9:chǎn 0x22DFA:dú 0x22DFB:yuán 0x22DFE:suò,cè 0x22DFF:jié 0x22E00:lì 0x22E01:gǒng 0x22E0C:bāng 0x22E17:guó 0x22E18:liáo 0x22E19:shěn 0x22E23:niǎo 0x22E25:cuàn 0x22E26:wěi 0x22E28:tuō 0x22E2B:sū 0x22E2D:lóng 0x22E33:xiāo 0x22E34:yǎn,yán 0x22E43:qǐng 0x22E4D:xī 0x22E4F:yú 0x22E51:zhèng,zhēng 0x22E52:xiè 0x22E53:chāi 0x22E54:fèn 0x22E56:guó 0x22E58:jǐng 0x22E59:làn 0x22E5A:xiān 0x22E5D:líng 0x22E6E:lěi 0x22E72:jùn 0x22E73:xiào 0x22E7C:zá 0x22E84:guān 0x22E85:qiè 0x22E86:luò 0x22E87:yào 0x22E88:luán 0x22E89:tà 0x22E91:luò 0x22E9E:bǎ 0x22E9F:chàn 0x22EA1:zhuó 0x22EAB:tiǎo 0x22EAF:wān 0x22EB0:líng,lìng 0x22EB4:yù 0x22EB5:qì,qǐ 0x22EB7:qí 0x22EBC:jì 0x22EBD:bó,jiào 0x22EBF:shī 0x22EC0:fǔ 0x22EC2:guī 0x22EC5:diǎn 0x22EC7:hāo 0x22EC9:gǎi 0x22ECB:qí 0x22ED3:chéng 0x22ED4:huì 0x22ED7:xiá,guī 0x22ED8:shí 0x22ED9:zhì 0x22EDA:qí 0x22EDC:hài 0x22EDF:jiǎo 0x22EE0:lì 0x22EE2:liǎo 0x22EE4:qiāo,qiáo 0x22EE8:sà 0x22EEA:qī 0x22EEB:shī 0x22EEE:jié,fú 0x22EF5:bèi,lù 0x22EF6:biān 0x22EF7:bā 0x22EF8:jūn 0x22EF9:pī 0x22EFC:dǎn 0x22EFF:táng 0x22F00:kuǐ 0x22F01:kū 0x22F03:kǒu 0x22F09:shī 0x22F0A:shī,tuó 0x22F0B:jī 0x22F0C:bào 0x22F10:kě 0x22F11:kuāng 0x22F16:mǐn 0x22F19:liáo 0x22F1A:è 0x22F1B:gé,guó,è 0x22F1F:wǎng 0x22F20:duó 0x22F23:qià 0x22F24:huá 0x22F26:hǒng 0x22F29:pēng 0x22F2B:jiào 0x22F30:qū 0x22F31:zì 0x22F32:zhòu 0x22F33:kuāng 0x22F35:shā 0x22F37:jì 0x22F38:wēi,wéi 0x22F39:pū,bǔ 0x22F3A:xué 0x22F3C:shāo 0x22F42:láng 0x22F43:zhǐ 0x22F44:tǐng 0x22F47:dà 0x22F55:yáng 0x22F56:jìn 0x22F57:zhǐ 0x22F5A:zhuó,dū 0x22F5C:zá 0x22F5D:chán 0x22F62:mào 0x22F66:kōng 0x22F67:zhōu 0x22F68:hū 0x22F69:pēng 0x22F6D:jiù 0x22F78:chuò 0x22F79:mǐn 0x22F7E:xiào 0x22F80:dǔ 0x22F81:wéi 0x22F83:cán 0x22F84:yú 0x22F85:dù 0x22F86:kāi 0x22F87:pì 0x22F8A:chéng 0x22F8E:chǔn 0x22F90:shǎo 0x22F91:yǎn 0x22F92:kuài 0x22F94:yuē 0x22FA6:qí 0x22FA7:zhēng 0x22FA9:kè 0x22FAA:qí 0x22FAB:zhǐ 0x22FAC:lù 0x22FB1:pī 0x22FB2:nuò 0x22FB3:pǎo 0x22FBA:fěi 0x22FBF:wén 0x22FC2:méng 0x22FC8:shǎn 0x22FCC:xiòng,xuàn 0x22FCE:duò 0x22FCF:biào,pāo 0x22FDA:yōu 0x22FDC:màn 0x22FDE:liǎo 0x22FE1:xié 0x22FE2:luàn 0x22FE3:qiāo 0x22FE4:dèng 0x22FE6:chéng 0x22FE7:chéng 0x22FED:chuò 0x22FF8:cè 0x23000:léi 0x23001:zhǎn 0x23002:lǐ 0x23003:lián 0x23004:qún 0x2300D:chén 0x2300F:chéng 0x23010:gū 0x23012:zòng 0x23013:chóu,dǎo 0x23014:chuàn,chuò 0x2301C:lèi 0x2301D:shuò 0x2301E:lǜ 0x23023:fú 0x23025:lì 0x23027:sàn 0x2302B:sān 0x2302F:sà 0x23033:niè 0x23036:zuān 0x23037:lǐ,lí 0x2303B:shǔ,zhǔ 0x2303E:fú 0x23049:bì 0x2304D:dào 0x23052:shī 0x23056:gàn 0x23057:tàn 0x2305C:màn 0x2305F:lí 0x23062:bì 0x23066:pán 0x23068:yōu 0x2306D:jiū 0x2306F:guō 0x23070:liáo 0x23073:wò 0x23074:qià 0x23075:dǒu 0x23077:liè 0x23079:jiǎo 0x2307B:liè,luō 0x23081:tiāo,qiāo 0x23084:guō 0x23086:pāng 0x23087:qiāo 0x23089:dí 0x2308A:yùn 0x23092:lè 0x23096:sī 0x23097:xīn 0x2309C:xīn 0x2309D:xiàng 0x2309E:luǒ 0x230A4:bēng 0x230A5:tiāo,qiāo 0x230AC:xiào 0x230AE:dōu,tóu 0x230B3:dàng 0x230B4:tíng 0x230B5:zhuàn 0x230BB:ōu,kōu 0x230BD:wò 0x230C4:xīn 0x230C5:ruǎn 0x230C8:zhuó 0x230C9:dàng 0x230CD:cuì,chà 0x230D1:zhuó 0x230D7:cóng 0x230D8:chǎn,chuáng 0x230DD:yǎng 0x230E7:yǎn 0x230F3:yǎn,yè 0x230F5:zhèn,shēn 0x230FD:nuǒ 0x230FE:yàn 0x23105:fǎng 0x23109:yǎn 0x2310A:yú 0x2310D:tí 0x2310E:fù 0x2310F:běn 0x23111:yǎn 0x23113:huī 0x23119:huǎng 0x2311C:guì 0x2311D:yàn 0x2311F:hú 0x23120:biāo 0x23127:suì,wéi 0x2312E:zì 0x2312F:jì 0x23130:ě 0x23131:jì 0x23132:kuǐ 0x23134:liàng 0x23138:huò 0x2313A:wéi 0x2313B:zhuō 0x2313F:tǐng 0x23143:zǎi 0x23144:yòu 0x23149:rèn 0x2314D:miàn,bīng 0x2315A:nà,niǔ 0x2315D:tū 0x2315F:dān 0x23161:jué 0x23164:xū 0x23165:dī 0x23170:xiàng 0x23177:xiòng 0x2317A:yǒu 0x2317B:guǎ,jiōng 0x2317E:xī 0x23188:hè 0x2318D:dǐng 0x23190:lú 0x23192:xú 0x23194:zhòu 0x23195:xiàn 0x23196:huāng 0x23197:chā 0x23198:shǐ 0x23199:gàn 0x2319A:nuǒ,chǐ 0x2319B:àn,wǎn 0x2319F:xiē,jiē 0x231A7:hào 0x231B2:qīn 0x231B3:gěng 0x231B4:shān 0x231B5:fú 0x231BD:zè 0x231C7:dàn 0x231D6:diǎn 0x231D7:shēn 0x231D9:zǔ 0x231E2:biē 0x231E6:chuí 0x231E7:zhè 0x231E8:dài 0x231EB:wǒ 0x231EC:qióng 0x231F0:lín 0x231F2:hūn 0x231F3:jī 0x23205:cáo 0x2320A:mù 0x2320D:dié 0x2320E:wèi 0x23220:biàn 0x23221:tǐ 0x23225:tú 0x23236:gèng 0x23244:chí 0x23245:còu 0x23246:tǐ 0x23252:huò 0x23253:qī 0x23254:sāo 0x23255:sàng 0x23256:xuǎn 0x23257:àng 0x23258:nài 0x2325A:yáng 0x2325B:shū 0x2325C:shā 0x23261:tǐng 0x23269:yà 0x2326A:huǎng 0x2326E:bīn 0x2327E:òu 0x2327F:cáo 0x23281:áo 0x23283:mào 0x23294:méng 0x23296:tiān 0x2329D:sàng 0x2329E:xù 0x2329F:kàn 0x232A7:lǎng,zhào 0x232B6:biē 0x232B7:cóng 0x232BA:xián 0x232C4:tūn 0x232C9:yù 0x232CA:dàn 0x232CB:yìng 0x232CD:zhāo 0x232CF:pù 0x232D8:huì 0x232DE:ài 0x232DF:mǒ 0x232E2:jīng 0x232E3:lán 0x232F2:liè 0x232F3:piǎo,bào 0x232F5:bó 0x232F6:qióng 0x232F9:bì 0x232FF:yōng 0x23305:lì 0x2330D:niè 0x2330F:dé 0x23313:huān 0x23317:yuè 0x2331A:chūn 0x2331C:lì 0x2331E:zhāng 0x2331F:líng 0x23320:chún 0x23327:cè 0x23328:xún 0x2332C:jǔ 0x2332D:hui,dá 0x2333E:tōng 0x23346:níng 0x23347:jù 0x2334F:chà 0x23356:zāo 0x2335B:yù 0x2335F:kěn,wěi 0x23366:kuàng 0x23367:fěi 0x2336F:yùn 0x23370:qiǎn 0x23374:quán 0x23378:pò 0x2337A:pěi 0x23384:gèng 0x23385:yì,huān 0x23386:luò 0x23391:kuān 0x23393:xuǎn 0x23394:niàn 0x2339A:hú 0x2339B:jú,xuè 0x233A9:yè 0x233AE:xī 0x233B1:yuè 0x233B2:tǎng 0x233B3:pìn 0x233B4:dǔn,è,ài 0x233B5:bèi,pō 0x233B8:liǎo 0x233C0:yǒng 0x233CE:yā 0x233D1:jiǎo 0x233D4:kùn,kǔn 0x233D6:zhèn 0x233D7:shù 0x233DA:shí 0x233DE:yóu 0x233DF:pài 0x233E0:xiáo 0x233E1:jí 0x233F6:qī 0x233F7:hé 0x233FA:kǒng 0x23402:yè 0x23403:chì 0x2340A:kǎo,jú 0x2340B:yuè 0x2340E:wǎ 0x2340F:niǎn 0x23411:cí 0x23413:yí 0x23424:jiu 0x2342B:yāng 0x2342C:lí 0x2342E:dāi 0x2342F:chóng 0x23435:yí 0x2343A:hàn 0x2343F:yī 0x23441:chòng 0x23442:hù 0x23443:zhuǎ 0x23466:qióng 0x23467:duò 0x23478:tóng 0x23479:xiān 0x2347F:fú 0x23482:diàn 0x23483:xí 0x23484:xiē 0x23485:zhèn 0x23486:qiào 0x23487:tū 0x234B7:hàn 0x234B8:kuàng 0x234B9:suō 0x234BB:shòu 0x234BC:tiáo 0x234C0:zhēn,zhěn 0x234C3:nèi 0x234C5:qiǎn 0x234C6:yín 0x234C8:liǎng 0x234C9:shà,jié 0x234CA:zì 0x234CB:pí 0x234CC:gāo,jú 0x234CF:jìn 0x234D0:yóu 0x234D2:shàn 0x234D4:mì 0x234D5:òu 0x234D7:hū 0x234DB:yòu 0x234DD:měng 0x23510:zhǐ 0x23513:bǐ 0x23517:shēn 0x23518:qì 0x23519:xiān 0x2351A:pán 0x2351B:kǎng 0x2352B:shuān 0x2352C:pí 0x2352E:zāi 0x2352F:zhǔ 0x23531:sōu,sāo 0x23532:jiǒng 0x23535:chán 0x23536:fán,fàn 0x23537:xiáo 0x23538:yǐn 0x23539:hóu 0x2353A:mào 0x2353B:tú,chán 0x2353D:jì 0x23541:yí 0x23543:yù 0x23544:jiōng 0x23545:pào 0x23547:xiāo 0x23549:gǒu 0x2354C:gōu 0x2354D:sǔn 0x2354E:xiǎn 0x2354F:zhuǎn 0x2357E:chóu,bì 0x23584:qiāo 0x23585:tí 0x23586:yún 0x23589:shān 0x2358A:liè,lì 0x2358C:zhǐ 0x23590:pāi 0x235A3:jú 0x235A4:lái 0x235A8:zǐ 0x235AA:qú 0x235AB:gǔ,què 0x235AC:jué 0x235AD:zhí 0x235AE:àng 0x235AF:qìn 0x235B0:pí 0x235B1:zuī 0x235B3:qián 0x235B5:cuó 0x235B7:jí 0x235B8:tí 0x235B9:rú 0x235BB:hǎi 0x235BC:xún 0x235BE:bèi 0x235BF:zhí 0x235C1:dùn,zā 0x235CB:dǎng 0x235D0:réng 0x235F2:gān 0x235F5:gàng,gāng 0x235F6:tà 0x235F8:tuò 0x235F9:yàng 0x235FA:kū 0x235FB:zhì 0x23616:jiān 0x23617:nì 0x23618:shēn,zhēn 0x23619:bàng 0x2361A:shuài 0x2361B:dōu 0x2361D:qiān 0x2361E:hán 0x2361F:qiā 0x23620:gǎn 0x23623:chún 0x23624:chá,sà 0x23625:bì 0x23626:yī 0x23627:fū 0x23628:ě,ē 0x2362A:láo 0x2362B:háo 0x2362C:lí 0x23631:tè 0x23632:shēn 0x23634:yín 0x23637:jiān 0x2363B:chá,tú 0x23657:niè 0x23658:còu 0x2365B:yí 0x2365F:táng 0x23662:juàn 0x23670:chì 0x23671:gǒu 0x23674:jié 0x23675:zhé 0x23676:hú 0x23677:máng 0x2367B:zōu 0x2367C:sì,cí 0x2367F:fèi 0x23680:zī 0x23681:zī 0x23683:jié 0x23684:sī 0x23686:chūn 0x23687:pào 0x2368B:yé 0x2368C:dī,shì 0x2368E:léi 0x2368F:xū 0x23690:rú 0x23692:pá 0x23693:juàn 0x23694:xì 0x23695:yè,yǎn 0x23696:ān 0x23698:yì 0x23699:jiān,jiàn 0x2369C:sōng 0x2369D:wǒ 0x2369F:sè 0x236A0:zhǐ 0x236A1:bī 0x236A2:zhuàn 0x236A6:jiàng 0x236A7:hào 0x236A9:chì 0x236AA:dùn 0x236D3:bó 0x236D4:jí 0x236D5:chuǎ 0x236D7:luò 0x236DA:ruǐ 0x236EB:hú 0x236F1:dàn,lǎn 0x236F4:hǎn 0x236F5:què 0x236F6:shā 0x236F7:zhǎn 0x236F8:zé 0x236F9:chuán,chuǎi 0x236FA:qī 0x236FB:dié 0x236FD:zhà 0x236FE:tòu 0x23701:cī 0x23702:sà 0x23704:luó 0x23707:jí 0x23722:luǒ 0x23723:qín 0x23727:qióng 0x23728:juàn 0x2372C:ài 0x2372D:jiǎn 0x23739:tì 0x2373A:wén 0x2373D:qiāo 0x23741:pái,bēi 0x23742:hún 0x23745:ài 0x23747:shuò 0x23748:lián 0x23749:duì 0x2374B:tà 0x2374C:jǐn 0x2374D:bì 0x2374E:yǎn 0x2374F:gào 0x23750:piáo 0x23751:yù,yú 0x23752:shè 0x23755:jiān 0x23757:hú 0x2375A:liè 0x2375C:biàn 0x2375D:sù 0x2375E:jiāo 0x23778:zhuì 0x2377D:hān 0x23787:dùn 0x23790:xiě 0x23791:méng 0x23792:fū 0x23793:lù 0x23794:tàn 0x23797:liú 0x23798:xiān 0x23799:sǎng 0x2379C:còu 0x2379D:zhuāng 0x2379F:chēn 0x237B0:liàn 0x237B4:lí 0x237C0:pèng 0x237C1:tuǒ 0x237C4:tuò 0x237C6:liáo 0x237C7:xiào 0x237C8:chuì 0x237C9:huài 0x237CA:niǎo 0x237CB:qiān 0x237CC:lì 0x237CF:pāo 0x237D0:tiáo 0x237D1:liú 0x237D2:wú 0x237E4:yǐng 0x237E6:zhá 0x237F0:yú 0x237F2:xiǎn 0x237F3:xuán 0x237F4:shuān 0x237F5:xī 0x237F8:méi 0x237F9:sēn 0x237FA:liàn 0x237FC:jiū,qiāo 0x237FD:lào 0x2380E:xiāo 0x2380F:zōu 0x2381A:liú 0x2381C:zhào 0x2381E:zhé,shè 0x23820:lěi 0x2382D:duǎn 0x23837:jiǎn 0x23838:shuān 0x23839:zuó 0x2383A:qiè 0x2383C:lǎo 0x23849:yù 0x2384A:yì 0x2384B:nǐ 0x2384E:cén 0x23855:yàn 0x23857:ruǎn 0x2385E:yán 0x2385F:dié 0x23860:mián 0x23867:léi 0x23869:wān 0x23870:nǎ 0x23876:yán 0x2387A:lěi 0x2387D:shā 0x2387E:hū 0x23881:xī 0x23882:xī 0x23884:yǒu,yōu 0x23885:hān 0x23887:hāi,xī 0x23889:wā 0x2388A:xù 0x2388B:pī 0x2388C:tān 0x2388D:xī 0x2388E:xī 0x2388F:bīn 0x23890:qīn,kēng 0x23891:xī 0x23892:yú 0x23893:xì 0x23895:cì 0x23896:qiàn 0x23897:xiā 0x2389A:wá 0x2389B:è 0x2389C:yǒu,yōu 0x2389D:xìng 0x2389E:ní 0x2389F:hán,xián 0x238A0:bì 0x238A1:shēng 0x238A4:zhān 0x238A5:diàn 0x238A6:yǔ 0x238A8:ǒu 0x238AA:guǐ 0x238AB:wǎng,wāng 0x238AC:qiān 0x238AD:yí 0x238B0:zú 0x238B2:qiān 0x238B3:dìng 0x238B4:kēng 0x238B6:chù 0x238B7:yī 0x238BA:hān 0x238BB:kuǎn 0x238C8:diàn 0x238C9:xì 0x238CA:zī 0x238CB:líng 0x238CC:zì,sì 0x238CE:yù 0x238CF:hūn 0x238D1:sǐ 0x238D2:kǎn 0x238DA:àn 0x238DC:yǒu 0x238DD:jí 0x238DE:hùn 0x238DF:qiā 0x238E0:hóu 0x238E1:hóu 0x238E3:diàn 0x238E9:xiē 0x238ED:shè 0x238EE:shà 0x238F2:xié 0x238F3:yáo,yǎo 0x238F4:dà 0x238F6:xiè 0x238F7:chī 0x238F8:yǒu 0x238F9:hē 0x238FA:shà 0x238FF:tái 0x23901:zhú 0x23903:ǎi 0x23907:què 0x23908:zé 0x2390A:lā 0x2390B:lòu 0x2390C:chuài,chǐ,chuò 0x2390E:yǒu 0x23916:tì 0x23918:shī 0x23921:xiào,yǒu 0x23922:xì 0x23928:huò 0x23929:chì 0x2392A:yì 0x2392F:shú 0x23930:yuè 0x23931:chán 0x23932:è 0x23933:xī 0x23934:xī 0x23935:yǐng 0x23936:zú,zā,zǎn 0x23937:zā 0x2393A:zā 0x23942:tà 0x23943:wàn 0x23947:xìn 0x2394A:wàng 0x2394B:fǔ 0x23950:lǔ,lǚ 0x2395E:jiǎn 0x23961:yán 0x23963:bì 0x23964:kěn 0x23965:guàn 0x23968:zī 0x2396E:kuǐ 0x2396F:zhǒu 0x23970:zhì 0x23973:tú 0x23977:tà 0x23979:chù 0x2397A:chēng 0x2397B:chěng 0x2397C:zhù 0x2397E:dà 0x23987:bì 0x23989:jiǎ 0x2398C:yì 0x2398F:yuè 0x23990:gāng 0x23996:gān 0x2399C:qiāo 0x239A0:chú 0x239A1:chú 0x239A2:bì 0x239A6:guì 0x239A9:gǔ 0x239AA:bǐng 0x239AB:yìn 0x239AC:zhuì 0x239AD:gǔ 0x239AF:lì 0x239B5:è,zhēn 0x239B6:dǎi 0x239BC:cán 0x239C2:tì 0x239C3:dù 0x239C4:yì 0x239C8:dié 0x239CA:niǔ 0x239CC:xuè 0x239CD:nè 0x239CE:guì 0x239CF:kǎo 0x239D2:chuǎn,mò 0x239D6:zhá 0x239D7:yóu 0x239D9:bài 0x239DA:shí 0x239DB:diàn 0x239DC:pā 0x239DD:qiú 0x239E1:xuè 0x239E3:mò 0x239E4:kē 0x239E5:yǒu 0x239E6:jiǎo 0x239E7:bó 0x239EC:xiǔ 0x239F2:mǐ 0x239F3:luò 0x239F5:xuè,xù 0x239F7:duò 0x239F9:èr 0x239FA:shān 0x239FC:kuì 0x239FD:nào 0x239FE:miǎn 0x239FF:lì 0x23A00:luàn 0x23A02:dié 0x23A04:qià 0x23A05:lèi 0x23A07:mào 0x23A09:hēng 0x23A0A:chè 0x23A0B:zhì 0x23A0D:gǔ 0x23A0E:cuō 0x23A13:wù 0x23A14:tào 0x23A17:xī 0x23A18:yāo 0x23A19:wěi,wèi 0x23A1B:zú 0x23A1C:mà 0x23A1D:yǔ 0x23A1E:pěng 0x23A1F:yì 0x23A20:qìn,qīn 0x23A21:yuè 0x23A22:juè 0x23A23:jiàng 0x23A24:xù 0x23A25:bēng 0x23A2A:luǒ 0x23A2B:zhuī 0x23A32:dù 0x23A33:xiàng 0x23A36:huì 0x23A3A:gǔ 0x23A3B:kǎo 0x23A3E:xīng 0x23A3F:hún 0x23A40:biān 0x23A44:kè,ài 0x23A45:kǎo 0x23A48:cuó,zuō 0x23A4F:lù 0x23A51:zuì 0x23A52:zāo 0x23A53:jiǎo 0x23A54:guàn 0x23A59:yān 0x23A5A:ér 0x23A5C:qíng 0x23A5F:dèng 0x23A60:sì 0x23A61:suì 0x23A62:liào 0x23A67:shàn 0x23A69:bì 0x23A6A:wèi 0x23A6B:yè 0x23A6D:zhài 0x23A6F:yé 0x23A70:diào 0x23A71:ài,kē 0x23A74:jiàng 0x23A77:sū 0x23A79:huài 0x23A7A:yù 0x23A7D:rǎng 0x23A80:diān 0x23A81:zuān 0x23A82:bān 0x23A84:qín 0x23A87:jiā 0x23A89:pí 0x23A8C:tóu,duì 0x23A90:chóu 0x23A95:guǐ 0x23AA0:jī,jì,qì 0x23AA8:xuè 0x23AAA:diàn 0x23AAD:biàn 0x23AAE:zǎi 0x23AAF:tóng 0x23AB6:shǎn 0x23AB8:gù 0x23AB9:què 0x23AC0:gǔ 0x23AC8:hú 0x23AC9:kuǎi 0x23ACC:gòu 0x23ACE:sù 0x23AD0:chóu 0x23AD2:kēng 0x23AD4:dū 0x23AD9:yì 0x23ADC:dào 0x23ADD:qiāng 0x23AE3:lóng 0x23AE5:lí 0x23AE7:lì 0x23AE8:qīng 0x23AEA:wēi 0x23AEC:móu 0x23AF1:qì 0x23AF3:jiǎng 0x23AF4:xié 0x23AF9:dài 0x23AFB:lóu 0x23B02:guàn 0x23B06:péi 0x23B09:pí 0x23B0B:juàn,chuò 0x23B0D:bēi 0x23B0E:jué 0x23B0F:juàn 0x23B10:shì 0x23B15:xiě 0x23B18:ruí 0x23B19:jìng 0x23B1A:pò 0x23B1B:sān,shān 0x23B20:jī 0x23B29:fēn 0x23B2A:bèi 0x23B2B:jiè,gà 0x23B2C:sā 0x23B2E:pī 0x23B34:dì 0x23B35:máo,mào 0x23B36:ba 0x23B37:ba 0x23B38:tiáo 0x23B39:líng 0x23B3A:shēng 0x23B3B:zhěn 0x23B3C:pī 0x23B3D:wù 0x23B3F:zè 0x23B40:bào 0x23B47:lǚ 0x23B56:hāo 0x23B57:dǒu 0x23B58:fú 0x23B59:ní 0x23B5D:gé 0x23B60:rú 0x23B61:xiǎn 0x23B64:bì 0x23B6E:máo 0x23B72:rǒng 0x23B73:qiú,qú 0x23B77:bó 0x23B79:hāo 0x23B7A:nǎo 0x23B7B:yán 0x23B83:páo 0x23B84:suī 0x23B86:tuò 0x23B88:qū 0x23B89:lí 0x23B8A:dé 0x23B8C:jié 0x23B8D:jié 0x23B8E:gǔn 0x23B8F:jiān 0x23B90:bì 0x23BA0:sàn 0x23BA1:bāng 0x23BA2:chún 0x23BA6:nài 0x23BA7:bǎng 0x23BAA:róng 0x23BAB:jiā 0x23BAC:sōu 0x23BB0:dé 0x23BBE:xiān 0x23BBF:zhān 0x23BC0:mào 0x23BC3:zī 0x23BC5:jì 0x23BC6:qí 0x23BCB:rù 0x23BCC:suō 0x23BCD:rǒng 0x23BCE:wù 0x23BCF:róng,rǒng 0x23BD0:róng 0x23BDA:tà 0x23BDC:sōu 0x23BE4:lí 0x23BE7:cuǐ,suī 0x23BE8:zōng 0x23BE9:mén 0x23BEA:xǐ 0x23BEC:mǎng 0x23BED:niè 0x23BEF:suī 0x23BF1:péi 0x23BF4:bì 0x23BF5:dì 0x23BF8:qú 0x23BF9:qiáo 0x23BFB:fēn 0x23BFC:sù 0x23C03:xū 0x23C07:rǒng 0x23C08:jī 0x23C0B:qú 0x23C0C:liè,hé 0x23C15:sào 0x23C18:kùn 0x23C1A:cuì 0x23C1B:yè 0x23C1C:bìng 0x23C1E:jié 0x23C20:qú 0x23C21:qú 0x23C25:méng 0x23C26:rán,gān 0x23C28:bīn 0x23C29:cháo 0x23C2C:dú 0x23C36:ráng,nǎng 0x23C37:xiān 0x23C3A:táo 0x23C3B:qú 0x23C3C:niè 0x23C3F:shū 0x23C40:lǔ 0x23C42:kùn 0x23C48:mín 0x23C49:mǐn 0x23C4D:dàn 0x23C50:yìn,zhì 0x23C53:xiào,hào 0x23C57:jì 0x23C5C:yīn 0x23C66:fēn 0x23C67:zhòng 0x23C6B:gǔ 0x23C71:chá 0x23C73:liú 0x23C76:bǔ 0x23C7A:pā 0x23C7B:sì 0x23C7C:dāo 0x23C7D:zhěn 0x23C80:shān 0x23C82:chuǎi 0x23C84:jiǔ 0x23C8A:kè 0x23C8B:chí 0x23C91:hù,chí,hé,hú 0x23C92:lì,lè 0x23C93:shā 0x23C96:pài,liú,gū 0x23C97:wéi 0x23C98:wǔ 0x23C9C:yíng 0x23CA1:shā,jí,jié 0x23CA2:dī 0x23CA5:dān 0x23CB1:tū 0x23CB2:hé 0x23CB3:pǒ 0x23CB5:zhǐ 0x23CB6:niǔ 0x23CB7:nì 0x23CBD:rǒng 0x23CBE:guài 0x23CC0:zhí 0x23CC3:jí 0x23CDC:fàn 0x23CDF:jié 0x23CE0:hǎi,mǔ 0x23CE4:zhàn 0x23CE6:xì,náo 0x23CE9:zī 0x23CEC:xí 0x23CED:piào 0x23CF0:bēn 0x23CF2:jiǎn 0x23D13:jiàn 0x23D16:zá 0x23D1E:bèn 0x23D1F:mào,huǎn 0x23D22:zào 0x23D23:zhuàng 0x23D25:kuáng 0x23D28:bí 0x23D2A:pài,pì 0x23D3C:mào 0x23D3D:tàn 0x23D5E:tǔn 0x23D5F:luǒ 0x23D62:tān 0x23D71:án 0x23D77:hán,gàn 0x23D78:zhú 0x23D7A:duò,tuó 0x23D7B:duò,tuó 0x23D7C:gàn 0x23D86:qiòng 0x23D88:wǎng,mǎng 0x23D8A:mò 0x23D8B:zhè 0x23D8C:wěn 0x23D8D:zhuàng 0x23D8F:jiē,diē 0x23D90:pào 0x23D98:sù 0x23D9D:jù 0x23DA0:qī 0x23DA1:càn 0x23DA3:tuán 0x23DA4:shā 0x23DA6:tuó 0x23DA9:huà 0x23DAB:yì 0x23DE0:mín 0x23DE1:zhōng 0x23DE5:shuò 0x23DE9:yì 0x23DEA:wǎng 0x23DEB:áo 0x23DF6:sǔ 0x23DFE:guǐ 0x23DFF:tuǒ 0x23E00:huǐ 0x23E03:xù 0x23E04:zǎn 0x23E06:zǐ 0x23E07:biàn 0x23E09:dá 0x23E0A:yīn 0x23E0B:quǎn 0x23E0E:huài 0x23E0F:ná 0x23E10:zá 0x23E12:tí 0x23E18:yí 0x23E19:tān 0x23E1A:shé 0x23E1B:shuò 0x23E1D:xíng 0x23E20:yǒu 0x23E23:fén 0x23E47:kè 0x23E4B:fú 0x23E52:mǐn 0x23E5A:pì 0x23E5C:jí 0x23E5D:qiào,xiào 0x23E5E:zhǒng 0x23E5F:gàn 0x23E60:yuān 0x23E61:chí 0x23E65:qiàn 0x23E67:zuó,zhà 0x23E69:xié 0x23E6A:máo 0x23E6C:hú 0x23E6E:pì 0x23E6F:xùn 0x23E71:xiá 0x23E72:tí 0x23E75:nà 0x23E76:chuǎ 0x23E80:wǔ 0x23EAC:huāng 0x23EAD:xuè 0x23EAE:tào 0x23EB0:qiào 0x23EB3:jiāo 0x23EBC:dǎng 0x23EBD:bài 0x23ECD:dàng,xiàng 0x23ECE:kòu 0x23ED0:jū 0x23ED1:shā,shài 0x23ED2:jīng 0x23ED5:mó 0x23ED6:nóu 0x23ED8:shuò 0x23EDA:shù 0x23EDB:zhuāng 0x23EDC:fú 0x23EDF:zāng 0x23EE0:xié 0x23EE1:làng 0x23EE2:tōng 0x23EE9:zhé 0x23EEC:càn 0x23EEE:yuè 0x23EF1:zhòu 0x23F1A:tān 0x23F1E:yán 0x23F1F:lù 0x23F20:yǎn 0x23F26:zé 0x23F27:shuài 0x23F45:guō 0x23F46:zhú 0x23F48:rú,ruán 0x23F49:rú 0x23F4C:kǎn 0x23F4D:jì 0x23F4E:gāo,zé,háo 0x23F52:xiè 0x23F55:òu 0x23F56:jiān 0x23F5A:zhí 0x23F5B:zhá 0x23F5D:hǒng 0x23F5F:kuǎn 0x23F61:bó 0x23F64:sè 0x23F65:àn 0x23F66:jiàn 0x23F68:téng 0x23F6B:sōng 0x23F6D:mèng 0x23F6E:yín 0x23F6F:tān 0x23F70:guō 0x23F73:ruán 0x23F74:wèi 0x23F77:sì 0x23FA4:qì 0x23FA6:zhǎng 0x23FC5:dǒng 0x23FC6:fú 0x23FC7:shěn 0x23FC8:sù 0x23FC9:yì 0x23FCA:liàn 0x23FCC:hé 0x23FCE:zhēn 0x23FD0:zé 0x23FD2:cuǐ 0x23FD3:cuǐ 0x23FDD:fèng 0x23FDE:lǐ 0x23FDF:kòu 0x23FE3:xiào 0x23FE4:yǒu 0x24003:háo 0x24009:hàn 0x2400A:kěn 0x2401D:yù 0x24023:huǎn 0x24024:suō,shàn,shuài 0x24026:là 0x24028:dòu 0x24029:jiàn 0x2402A:pō 0x2402B:biǎn 0x24030:xuè 0x24032:biàn 0x24037:wèi 0x24061:dàn 0x24062:jié 0x24063:bài 0x24065:niǎn 0x24066:xiàn 0x24067:sè 0x2406A:huá 0x2406B:chuā 0x2406E:òu 0x2406F:liè 0x24070:dí 0x24071:cài 0x24073:zhá 0x24075:lǘ 0x24079:huò 0x2407C:lì 0x2407D:yǐng 0x2407F:wěi 0x24080:bì 0x24081:guó 0x24083:pì 0x24086:biāo 0x240A0:yǎn 0x240A4:zhuàn 0x240B2:hóng 0x240B6:lìn 0x240B7:è 0x240B9:yǐn 0x240BA:làn 0x240BC:yào 0x240BF:xuàn 0x240C0:lì 0x240E8:làn 0x240E9:líng 0x240EA:xī 0x240EB:hōng 0x240ED:jiǎo 0x240EE:zhuó 0x240F2:zhí 0x240F5:bó 0x240F6:tēng 0x240F7:ǎn 0x240FA:xún 0x240FB:lěi 0x240FC:zāng 0x240FD:huǐ 0x2410E:xì 0x2410F:hóng 0x24111:fàn 0x24112:jiǎn 0x24113:cóng 0x24114:zá 0x24116:cā,zá 0x24118:yōu 0x2411B:duì 0x2411C:pān 0x24125:tà 0x24127:pàn 0x2412B:fān 0x2412C:xī 0x24136:yào,shuò 0x24137:luó 0x2413A:biān 0x2413C:jìn 0x2413D:lì 0x2414A:yàn 0x2414B:dòu 0x2414E:màn 0x24150:gōng 0x24151:rǎng 0x24152:càn 0x24163:mén 0x24171:gǔ 0x24172:shuàn 0x24178:yán,yàn 0x24179:bì 0x24180:biāo 0x24181:chéng 0x24182:kuì 0x24184:huǒ,zāi 0x2418D:chì 0x2418F:wò 0x24191:còu 0x24192:zhì 0x24199:shuǐ 0x2419C:guà 0x2419D:pū 0x2419E:xù 0x2419F:sī 0x241A1:wǔ 0x241AE:fū 0x241B0:shì 0x241B3:huì 0x241B4:huāng 0x241B5:pā 0x241BC:zhǔ 0x241BE:yí 0x241C3:lì 0x241C4:shǎn 0x241DC:mín 0x241DE:gē 0x241E0:hū 0x241EF:ēn,āo 0x241F0:fá 0x241F3:xù,xuè 0x241F4:yí,xī 0x241FE:yíng 0x24214:chí 0x24219:yí 0x24225:dí 0x24226:huǐ,méi 0x24227:hé 0x24229:zhǎ 0x24236:yún 0x24237:xiān 0x2424C:xián 0x2424D:lào 0x2424E:shào 0x2424F:shì 0x24250:zhuó 0x24264:biē 0x24265:jiǔ 0x24266:wō 0x24267:jiǎo 0x24268:fú 0x2426A:xiāng 0x2426B:kài 0x242B2:nǎo 0x242B4:huò 0x242B5:jí 0x242B6:là 0x242BB:fōu 0x242BC:shǎn 0x242BD:liào,liǎo 0x242BE:miè 0x242BF:chè 0x242C2:mó 0x242CF:lóu 0x242E8:duò 0x242EB:nǎo 0x242ED:jī 0x242F0:zhù 0x24302:sù 0x24303:duò 0x24307:jiǒng 0x2430A:zǎi 0x2430B:huǐ 0x2430C:yǐng 0x2430D:hú 0x2430E:lìn,lǐn 0x2430F:wěng 0x24310:hàn 0x24314:nán 0x24337:xì 0x24339:gàn 0x2433E:hè 0x2433F:jī 0x24340:xiǎng 0x24341:shā 0x24350:tuì 0x24352:zhāo 0x24353:shù 0x24355:yǒu 0x24356:jiān 0x2435C:zào 0x24364:zhāng 0x2437D:ruò 0x24384:yān 0x2438B:cuì 0x24397:jí 0x24398:shāng 0x243A3:è 0x243A4:láo 0x243A5:tǎn,chān 0x243A7:zhù 0x243AD:lǐn,yǐn 0x243AF:zēng 0x243B1:juǎn 0x243B2:hū 0x243D7:shěn 0x243D8:huò 0x243DC:kuì 0x243F1:chù 0x243F2:zhòu 0x243F6:āo 0x243F8:zhuó 0x243FD:xīng 0x243FF:miè 0x24400:hū 0x24414:tán 0x24419:bì 0x24423:dǐng 0x24429:kài 0x2442B:biāo 0x24430:huò 0x24431:liè 0x24432:cuàn 0x24443:xiàn 0x24444:rè 0x24453:yuè 0x24455:xūn 0x24457:liǎo,zhāo 0x24463:shā 0x24466:shì 0x2446A:xiè 0x24473:xiāo 0x24477:yé 0x24478:lǎn 0x24479:yì 0x2447F:liǎn 0x24494:bó 0x24495:cāo 0x2449D:yào 0x244A6:liàn,yàn 0x244BB:tà 0x244D1:jì 0x244D4:xī 0x244D5:zhì 0x244DA:xī 0x244DD:yuè 0x244E4:xiǎn 0x244E6:zhuò 0x244EF:zhǎng,jú 0x244F5:zǔ 0x244F7:ná 0x244FE:dào 0x244FF:liè 0x24500:ná 0x24509:páo 0x2450B:jù 0x24516:luǒ 0x24519:shuǎ 0x2451A:shàng 0x2451D:luǒ 0x2451F:fēn 0x24523:bào 0x24528:lì 0x2452B:xiòng 0x24536:dāng 0x24540:chèng 0x24544:zhǎng 0x24547:sǒu 0x2454A:shén 0x24552:gě 0x24558:yū,wù 0x2455A:huī 0x2455B:chè 0x2455D:jiào,bó 0x2455E:zhù 0x2455F:shū 0x24562:xiáo 0x24566:níng 0x2456D:jiāng 0x2456F:jiāng,zhuàng 0x24577:diào 0x2457D:qiáng 0x2457E:qiú,fǔ 0x24580:fēng 0x24586:zhàn 0x24587:kē 0x24592:dié 0x24593:zé 0x24596:guāng 0x24597:sè 0x24598:fèn,fén 0x2459B:jiǎng 0x2459D:yán 0x2459E:zhì 0x245A2:lì 0x245A6:líng 0x245AA:yí 0x245AC:qǔ 0x245AD:pán 0x245AE:gōu 0x245B0:jiǎ 0x245B1:hé 0x245B3:pèng 0x245B5:jù 0x245B7:chè 0x245BA:liè 0x245BB:shì 0x245BC:pò 0x245BD:xiàng 0x245BF:pì 0x245C0:luǒ 0x245C1:cù 0x245C3:yǔ 0x245C7:kòng 0x245C8:xiè 0x245CD:wǎn 0x245CE:yǎn 0x245CF:péi 0x245D3:chéng 0x245D8:tí 0x245D9:chè,tuò 0x245DA:bì 0x245DB:liàn 0x245DC:jiǎ 0x245DE:tíng 0x245E2:tī 0x245E8:dié 0x245EA:shù 0x245EB:lí 0x245EC:lǘ 0x245ED:xià,xiā 0x245EF:cuī 0x245F3:bō 0x245F4:tuí 0x245F5:pú 0x245F7:lìn 0x245F8:fèn,fén 0x245FA:bó 0x245FB:chàn 0x245FE:dāng 0x245FF:tǎi 0x24600:dào 0x24603:lì 0x24605:yá 0x24606:yá 0x24607:zhān 0x2460A:yí 0x2460C:qī 0x24614:hù 0x24616:tīng 0x24618:kǒu 0x2461B:chún 0x2461C:yóu 0x2461D:fèn 0x2461F:nuó 0x24620:tiàn 0x24621:jìn 0x24622:pí 0x24623:chén 0x24624:pì 0x24626:jiè 0x24627:guǐ 0x24632:zhuàng 0x24635:hú 0x24636:chǒu 0x24637:shù 0x24638:tāo 0x24639:pí 0x2463A:rǒng 0x2463B:rǒng 0x2463D:hǒu 0x2463E:pēng 0x24645:bài 0x24647:xiá 0x2464B:qǐn 0x2464C:nǐ 0x2464E:tāo 0x2464F:qù 0x24652:xié 0x24654:zhào 0x24655:huā 0x24656:xīn 0x24658:shōu 0x2465B:tú 0x2465D:liáng 0x2465E:bì 0x2465F:chū 0x24661:xīng 0x24663:xīn 0x24664:fū 0x24669:jiè 0x2466D:fǔ 0x24670:tè 0x24671:shè 0x24674:chāo 0x24675:chuī 0x2467C:rán 0x2467D:hǒu 0x2467E:bēng 0x24680:cǎi 0x24685:mú 0x24689:xū 0x2468A:dié 0x2468D:chǎn 0x2468E:yú 0x2468F:zhòng 0x24693:lí 0x24694:shōu 0x2469A:dú 0x2469C:māo 0x2469D:huáng 0x2469F:táo 0x246A1:dù 0x246A2:tí 0x246A3:shēng 0x246A4:méi 0x246A8:zhēn 0x246A9:qín 0x246AA:pì 0x246AB:táng 0x246AC:cāng 0x246AD:yáo 0x246AF:xiù 0x246B0:bāng 0x246B1:gǔ 0x246B5:bù 0x246BC:gòu 0x246BD:bó 0x246C1:wèn 0x246C4:jì 0x246CA:lā 0x246CD:cuī 0x246CE:mǐn 0x246CF:cǔ 0x246D0:ōu 0x246D1:yōng 0x246D6:máo 0x246D7:kè 0x246D8:māng 0x246D9:dǐng 0x246DA:huān 0x246DB:duǒ 0x246DC:jiāng 0x246DD:sù 0x246E2:céng 0x246E3:tà 0x246E5:huáng 0x246E6:jué 0x246E7:xún 0x246EA:xiòng 0x246EC:mì 0x246ED:qún 0x246EE:láo 0x246F1:zhì 0x246F2:wěi,wéi 0x246F7:sè 0x246FB:zāng 0x24701:ǎn 0x24702:wèi,guì 0x24704:huái,huài 0x24707:zhàn 0x24709:yīng 0x2470A:gē 0x2470B:huì 0x2470D:quán 0x24713:liè 0x24714:jú 0x24715:bà 0x24716:léi 0x24718:mán 0x24719:líng 0x2471C:lì 0x2471D:jǐ 0x24721:huí 0x24722:xìn 0x24723:shì,shé 0x24724:zhé 0x24727:bō 0x2472B:chā 0x2472F:chā 0x24730:jīng 0x24731:bā 0x24732:bèi,pèi 0x24735:yàn 0x24737:hù 0x24739:yú 0x2473B:bì,pí 0x2473C:chuán 0x2473E:jǐ 0x24742:mù 0x24744:máo 0x24745:zhōng 0x24747:yè 0x24748:dōu 0x24749:yě 0x2474D:rì 0x2474E:yīn 0x24750:hào 0x24752:nà 0x24753:tiè 0x24754:fù,chái 0x24755:mǔ 0x24756:zǎi 0x24758:hú 0x2475A:chēn 0x2475B:tuó 0x2475E:chù 0x2475F:fú,fèi 0x24767:bào 0x2476C:dǐ 0x2476D:cǎi 0x2476E:lù 0x2476F:pǒ 0x24770:dá 0x24771:yè 0x24773:yǐ 0x24777:xiáng 0x24778:bī 0x24779:zhū 0x2477B:yí 0x2477D:lǜ 0x2477F:kuāng 0x24782:zhì 0x24787:wá,kuáng 0x24788:dī 0x24789:shù 0x2478A:liè 0x2478B:zǎo 0x2478C:zhì 0x2478D:náo 0x24797:chái 0x2479A:xiāo 0x2479B:zàng 0x2479E:yù 0x2479F:dòu 0x247A0:chà 0x247A1:xié 0x247A2:yáng 0x247A4:xiǎn 0x247A5:bǎo 0x247AE:zhài,zhāi 0x247B0:qiú 0x247B2:hú 0x247B3:zài 0x247B4:jué 0x247B6:hān,hàn 0x247BF:àn 0x247C0:zào 0x247C3:shà 0x247C5:xiàn 0x247C6:chǐ 0x247C7:yǎn 0x247C9:àn 0x247CD:zhé 0x247CE:jué 0x247D1:lì 0x247D3:lè 0x247D6:cǎi 0x247D8:lù 0x247DA:jiā 0x247DD:xià 0x247DE:xiào 0x247DF:yān 0x247E0:xū 0x247E2:dùn 0x247E3:yíng 0x247E4:huī,xūn 0x247E5:tí 0x247E6:nóu 0x247E7:xǐ 0x247EA:tú 0x247F7:wāi 0x247F8:chēn 0x247FC:hōng 0x247FE:tí 0x247FF:xuān 0x24800:zá 0x24807:gé 0x2480B:lóu 0x2480C:chái 0x2480D:pán 0x2480E:jí 0x24810:tà 0x24813:xī 0x24816:xiāo 0x24818:sāo 0x24819:jiā 0x2481A:sù 0x2481B:huāng 0x2481D:cuō 0x2481F:tà 0x24820:shuāi 0x2482A:fú 0x2482B:lì 0x2482D:shè 0x2482F:táng 0x24836:diān 0x2483A:bì 0x2483C:gòu 0x2483D:cù 0x2483F:qiān 0x24842:léi,lěi 0x24843:sù 0x24846:zòng,zōng 0x24847:hāo 0x2484F:chì 0x24850:cáo 0x24853:wò 0x24854:xiāo 0x24855:liè,wěn 0x24856:yán,yān 0x2485D:bì 0x2485F:huàn 0x24861:xī 0x24862:chī 0x24863:xū 0x24864:náo,nà,rú 0x24865:yán,xiàn 0x24867:xiè 0x24868:zhá 0x2486A:suì,wěi 0x2486C:xì 0x2486D:bēng,péng 0x2486E:rán 0x2486F:shuò,xī,què 0x24870:bān 0x24871:guì 0x24872:kāi 0x24873:chēn 0x24876:xù 0x2487E:è 0x2487F:lì 0x24880:xī 0x24881:huàn 0x24882:sù 0x24884:chǎng 0x2488A:lù 0x2488B:yán 0x2488E:dāng 0x2488F:dǎn 0x24890:yāng 0x24892:zhǎi 0x24893:jù,qú 0x24895:duó 0x24896:sāo,shān 0x24897:lái 0x24898:sù 0x2489F:zé 0x248A3:bì 0x248A6:yìn 0x248A8:hāo 0x248AA:liè 0x248AD:háo 0x248AE:yáng 0x248B4:shuò,lì 0x248B5:lài,ài 0x248B6:qióng 0x248B9:lěi 0x248BA:xié 0x248BC:shì 0x248C3:lǔ 0x248C5:què 0x248C6:lián 0x248CC:xiào 0x248CE:yīng 0x248D1:xié 0x248D8:líng 0x248D9:yōu 0x248DE:dǎng 0x248DF:lǎn 0x248E0:xiāo 0x248E8:yì 0x248EC:wū 0x248EE:yì 0x248EF:tuō 0x248F0:bǔ 0x248F2:xìn 0x248F5:sī 0x248F6:jīn 0x248F8:bā 0x248F9:fǎ 0x248FB:mò 0x248FC:ruò 0x2490A:dà 0x2490B:jì 0x24910:sù 0x24911:qióng 0x24912:bā 0x24926:tián 0x24927:yóu 0x24929:tuó 0x2492B:wài 0x2492C:yòu 0x2492E:dōng 0x24931:xǐ 0x24932:kǒng 0x24936:qióng 0x24937:duī 0x24938:duò 0x2493A:yì 0x24952:xī 0x24953:qīn 0x24954:sù 0x24957:liú 0x24959:wán 0x2496D:chē 0x2496E:zhū 0x24970:mào 0x24977:quán 0x2497D:yū 0x2497F:yì 0x24980:mí 0x24983:lái 0x24984:zhì 0x249A4:ní 0x249A6:bān 0x249AA:dōng 0x249AE:zhì 0x249D5:yì 0x249D8:líng 0x249D9:yú 0x249DA:cōng 0x249DB:dì 0x249DC:zhì 0x249E0:ruǎn 0x249E3:jiàn 0x249E9:wàn 0x249EB:jīn,jìn,duī 0x249ED:páng 0x24A0D:lù 0x24A0E:qú 0x24A10:xǐ,tāo 0x24A11:dá 0x24A16:hù 0x24A17:luǒ 0x24A19:lè 0x24A36:gǒng 0x24A3B:lìng 0x24A42:láo 0x24A44:zhuàn 0x24A68:zǎo 0x24A69:hào 0x24A6A:xiàng 0x24A6D:hào 0x24A6E:lì 0x24A71:diàn,tiàn 0x24A72:gé 0x24A7D:huán 0x24A84:è 0x24A86:xiá 0x24A8B:jiān 0x24A8C:qí 0x24A8D:xiá 0x24A8E:yǒu 0x24AA1:zhēng 0x24AAA:zhuàn,chūn 0x24AAE:chàn 0x24AC9:xiè 0x24AD5:náo 0x24ADD:jì 0x24ADE:tián 0x24AE3:yǎn 0x24AE7:hǎo 0x24AE8:xín 0x24AE9:líng 0x24AEB:bān 0x24AEC:běng 0x24AF1:gōu 0x24AF2:líng 0x24AF5:kuò,guó 0x24AF6:qià 0x24AF7:jiào 0x24AF9:ēn 0x24AFA:yáo 0x24AFB:dū 0x24B01:huǒ,guǒ,luǒ 0x24B02:dǔ 0x24B03:pēi 0x24B0C:yuán 0x24B0F:lóu 0x24B10:xíng 0x24B13:lián,liǎn 0x24B14:yáo 0x24B15:xī 0x24B16:yáo 0x24B18:xī 0x24B1B:lú 0x24B1D:yàn 0x24B20:quán 0x24B25:ráng 0x24B26:wà 0x24B27:zú 0x24B28:fàn 0x24B29:yì 0x24B2A:dù,kān 0x24B2B:suì 0x24B2D:pī 0x24B2F:hán,qiàn 0x24B31:xù 0x24B33:gǒng 0x24B35:dì 0x24B37:nà 0x24B3E:duò,tuó 0x24B3F:wā 0x24B42:niè 0x24B48:diào 0x24B49:huāng 0x24B4C:tí 0x24B4D:fàn 0x24B51:wú 0x24B52:áng 0x24B54:píng 0x24B59:hán,gān 0x24B5B:gāng 0x24B5C:lí 0x24B5E:dūn 0x24B5F:fù 0x24B60:nà 0x24B62:cèi,suì 0x24B67:jiē 0x24B69:qìng 0x24B6B:yīng 0x24B6C:xiáng 0x24B71:hú 0x24B74:sù 0x24B7B:gē 0x24B7C:è 0x24B7D:xù 0x24B86:xī 0x24B8A:kāng 0x24B8B:guó 0x24B8C:jiē 0x24B8D:chuán 0x24B8E:léi 0x24B8F:héng 0x24B90:zūn 0x24B95:piè 0x24B98:dēng 0x24B99:xī 0x24B9A:léi 0x24B9C:shàn 0x24BA7:lú 0x24BA9:duì 0x24BAA:jùn 0x24BAD:chàn 0x24BAF:xié 0x24BB0:wā 0x24BB1:zhé 0x24BB3:zhuān,guàn 0x24BB7:liù 0x24BB8:léi 0x24BBC:dài 0x24BBD:gān 0x24BC4:shì 0x24BC7:yǎn 0x24BCC:gān 0x24BD0:yán 0x24BD6:suī 0x24BDA:zhōng 0x24BDC:shì 0x24BE1:shèng 0x24BE5:chǎn 0x24BF7:huáng 0x24BF8:yìn 0x24BFB:měng 0x24C02:ráng 0x24C05:xiáng 0x24C08:bèi,fú 0x24C0C:chuán 0x24C11:pú 0x24C19:kē,gé 0x24C1A:lā,lá 0x24C1D:quǎn 0x24C1F:hàng 0x24C20:chì 0x24C21:máng 0x24C26:zhà 0x24C2A:fèn 0x24C2C:chào 0x24C33:jǐng 0x24C43:liè 0x24C45:nà 0x24C46:nà 0x24C47:tóng 0x24C4B:rán 0x24C4C:zǔ 0x24C4D:pī,pǒ 0x24C4E:yǒu 0x24C50:shū 0x24C5B:liè 0x24C5C:shōu 0x24C5D:tuǎn 0x24C5F:gǎo 0x24C60:sháo 0x24C61:tuó 0x24C63:nán 0x24C67:tuǒ 0x24C68:gōng 0x24C69:diào 0x24C74:měng 0x24C75:bāng 0x24C77:xié 0x24C78:sì 0x24C79:tǐng 0x24C7A:guì 0x24C7D:fú 0x24C7E:guì 0x24C89:guì 0x24C91:zhǔ 0x24C93:lái 0x24C95:lǔn 0x24C96:tiǎn 0x24C97:rǎn 0x24C9A:dōng 0x24CA8:juàn 0x24CA9:yán 0x24CAC:ruán 0x24CAD:dǎn 0x24CB0:mào 0x24CB6:luán,niǎo 0x24CB8:xù,zī 0x24CBA:xī 0x24CC2:má 0x24CC3:qī 0x24CC5:chà 0x24CC8:shāng 0x24CC9:hàn 0x24CCA:píng 0x24CCE:jī 0x24CD3:lì 0x24CD5:yù 0x24CD6:bān,fān 0x24CD8:tēng 0x24CDD:chóu 0x24CE0:chóu 0x24CE4:qī 0x24CE5:xī 0x24CE6:bèi 0x24CEA:yè 0x24CED:guǎng 0x24CEF:zhù 0x24CF3:léi,huǐ 0x24CF4:léi 0x24CF5:chā 0x24D00:guǎng,qiāo 0x24D0D:dié 0x24D13:yǎ 0x24D18:niè 0x24D19:shū,xū 0x24D1B:zhì 0x24D1F:zhì 0x24D22:zhì 0x24D23:pǐ 0x24D25:jiū 0x24D26:jiū 0x24D27:yì 0x24D28:yòu,yǒu 0x24D2A:jiū 0x24D2F:huàn 0x24D31:dù 0x24D3B:táo 0x24D3C:qiè,cí 0x24D3D:qín 0x24D3E:xìn 0x24D3F:chān 0x24D40:jì 0x24D42:qìn 0x24D4A:dù 0x24D4B:zhī 0x24D4E:ǒu 0x24D50:wù 0x24D52:wén 0x24D58:bì 0x24D5B:bēi 0x24D5D:mǔ 0x24D5E:jìn 0x24D5F:táo 0x24D60:liáo 0x24D65:cáo,zhǒu 0x24D66:zhá 0x24D6C:chǐ 0x24D6D:yā 0x24D6E:kuí 0x24D6F:yìn 0x24D78:lóng,pāng 0x24D79:qià 0x24D7B:hāng 0x24D7C:shàng,shāng 0x24D7D:hài 0x24D7E:chā 0x24D80:jiǎo 0x24D81:lǎo 0x24D88:xī 0x24D8B:bó 0x24D93:zhǐ 0x24D95:tùn 0x24D96:fú 0x24D98:hū 0x24D9A:niè 0x24D9B:yì 0x24D9C:zhuàng 0x24DA0:chá 0x24DA4:suān 0x24DA7:yùn 0x24DAE:dù 0x24DB0:xī 0x24DB1:chuàn 0x24DB2:xíng 0x24DB3:jiǎo 0x24DB4:shēn 0x24DC0:wāng 0x24DC1:bēi 0x24DC2:féi 0x24DC3:jiàn 0x24DC4:quán 0x24DC5:yì,yá 0x24DC6:dōng 0x24DC7:xù 0x24DC8:nà,niè 0x24DC9:jí 0x24DCC:zhěn 0x24DCD:qí 0x24DCE:duī 0x24DCF:yín 0x24DD1:jiù 0x24DD2:pí,bì,bēi 0x24DD3:xìn 0x24DD4:lún 0x24DD5:cǎi 0x24DD6:lìng 0x24DD7:biē 0x24DD8:dào 0x24DD9:dé 0x24DDF:la 0x24DE1:xī,nüè 0x24DE2:jù 0x24DE4:xiáo 0x24DE6:jīng 0x24DF9:wài 0x24DFB:nǎo 0x24DFC:xiāng 0x24DFD:què 0x24DFE:qiè 0x24DFF:tū 0x24E00:xǔ 0x24E01:huì 0x24E05:mín 0x24E06:wěi 0x24E08:yóu 0x24E09:tuí 0x24E0A:dài 0x24E0E:kě,hài 0x24E0F:nà,niè 0x24E11:fù 0x24E12:yù 0x24E13:zhǐ 0x24E15:hān 0x24E16:āi 0x24E17:fù 0x24E21:yāng 0x24E24:shí 0x24E26:chán 0x24E2A:chì 0x24E2B:yùn 0x24E2C:shuāi 0x24E2E:sù 0x24E2F:sǎng 0x24E31:è,kè,kài,yà 0x24E32:zhěng 0x24E33:ái 0x24E34:suǒ 0x24E35:bù 0x24E37:qún 0x24E38:yì 0x24E39:yǎn 0x24E3B:nà 0x24E3C:wǔ 0x24E47:lì 0x24E48:lì 0x24E4A:xī 0x24E4B:jué 0x24E4C:shī 0x24E4E:yǎ 0x24E5B:chén 0x24E5C:yíng 0x24E5D:bì 0x24E5E:chè 0x24E61:zhā 0x24E62:tuǒ 0x24E63:hù 0x24E64:téng 0x24E65:yìng 0x24E66:bǐ 0x24E67:níng 0x24E68:liàn 0x24E69:xìn 0x24E6A:yǔ 0x24E72:bèi 0x24E74:mó 0x24E75:duī 0x24E77:dǎo 0x24E78:qí 0x24E80:shuāi 0x24E83:xiāo,jiāo,yāo 0x24E84:zhǒng,tóng 0x24E85:zhuì 0x24E87:biàn 0x24E89:wěi 0x24E8A:xī,sī 0x24E8C:dēng 0x24E8E:xiē 0x24E8F:pān 0x24E90:niè 0x24E93:bié 0x24E94:shè 0x24E95:fèi 0x24E96:mǐn 0x24E97:qì,jì 0x24EAA:shàn 0x24EAB:suǒ 0x24EB7:jí 0x24EBA:dǎn,dàn,tán 0x24EBB:juàn 0x24EBC:lù 0x24EBE:ào 0x24EC2:yì 0x24EC3:shǔ 0x24EC4:suì 0x24EC5:wèi 0x24EC6:wán 0x24EC7:chǔ 0x24ECC:wò 0x24ED6:bì 0x24ED8:yǐn 0x24ED9:huó 0x24EDC:kài,è 0x24EDD:níng 0x24EE2:ài 0x24EE4:lì 0x24EE6:zhāi 0x24EF1:lù 0x24EF6:biàn 0x24EF7:pán 0x24EFF:guì 0x24F00:sū 0x24F01:méng 0x24F02:xiǎn 0x24F03:lòng,lóng 0x24F05:qì 0x24F0B:chàn 0x24F0C:yì 0x24F0D:háng 0x24F0F:liǎn 0x24F10:guàn,huàn 0x24F12:wěi,huà 0x24F17:jué 0x24F18:léi 0x24F19:luán 0x24F1A:lì 0x24F1C:pí 0x24F22:huǎn 0x24F2E:guī 0x24F33:jú 0x24F36:dēng 0x24F3A:fèi 0x24F41:zhī 0x24F43:mèi 0x24F45:huàn 0x24F49:pā 0x24F4A:bǐ 0x24F4C:pō 0x24F53:ér 0x24F55:huàn 0x24F63:chàng 0x24F65:luò 0x24F66:fǒu 0x24F6F:chóu 0x24F71:zú 0x24F72:nán 0x24F73:xiǎo 0x24F79:bài 0x24F7A:lù 0x24F7C:luò 0x24F7F:niàn 0x24F80:zé 0x24F84:zhù 0x24F85:hú 0x24F88:huī 0x24F89:tǎng 0x24F8A:chóu 0x24F91:huáng 0x24F92:dōu 0x24F9B:miào 0x24F9D:bó 0x24FA0:dì 0x24FA2:děng 0x24FA3:pū 0x24FA5:sōng 0x24FA6:chóu 0x24FAB:yào 0x24FAC:měng 0x24FAD:lóng 0x24FB2:lián 0x24FB5:bié 0x24FBA:lǚ 0x24FBF:sè 0x24FC0:zuó 0x24FC4:cún 0x24FC5:líng 0x24FC6:zhěng 0x24FC7:pǐ 0x24FC8:báo 0x24FCB:què 0x24FCE:pī 0x24FCF:nàn 0x24FD0:pī 0x24FD1:bǒ 0x24FD2:bèi 0x24FD3:fā 0x24FD5:mǐn 0x24FD6:mò 0x24FD7:wà 0x24FD8:zhāo 0x24FD9:zhì,pí 0x24FDA:cū 0x24FDF:xún 0x24FE0:jí 0x24FE1:guì,qí 0x24FE3:chéng 0x24FE7:hàn 0x24FE8:xiào 0x24FE9:què 0x24FEB:chuò 0x24FED:fǔ 0x24FF3:qǐn 0x24FF4:lù 0x24FF5:què 0x24FF6:diǎn 0x24FF7:qiān 0x24FFC:chǎng 0x24FFD:tà 0x24FFE:bēi 0x25001:dù 0x25002:běng,bāng 0x25003:hòu 0x25008:zhǎ 0x25009:zhǎ 0x2500E:què 0x2500F:má 0x25010:hán 0x25013:liú 0x25014:lù 0x25016:zī 0x25018:pǐ 0x25019:zhòu 0x2501B:zāo 0x2501D:niǔ 0x25020:huì 0x25023:xué,qiào 0x25025:là 0x2502B:nóu,rǎn 0x2502C:yǎn,yè 0x2502D:rǎn 0x2502E:nǎo 0x25030:là 0x25031:guǎng 0x25032:dú 0x25035:lú 0x25039:jiǎn 0x2503A:xiè 0x2503B:qì 0x2503E:xiàng 0x25041:guǒ 0x25042:jié 0x25043:màng 0x25046:xiā 0x25047:kuī 0x2504E:yòng 0x25050:hǎi 0x25051:mì 0x25052:yào 0x25055:wēn 0x2505F:lì 0x25060:juàn,quán,quān 0x25061:wū 0x25062:qiáo 0x2506E:diào 0x2506F:chù,chuò 0x25072:suō 0x25075:chōng 0x25078:quān 0x25079:shè 0x25082:měng 0x25083:jù 0x2508B:tú 0x25092:nóng 0x25093:mó 0x25099:fèn 0x250A2:áo 0x250A3:guō 0x250A4:hú 0x250A5:cán 0x250A6:dūn 0x250A7:hǎi 0x250A8:jiǎo 0x250B0:gū 0x250B5:jīn 0x250B8:yáng 0x250C0:chà 0x250CC:huī 0x250D4:qú 0x250D5:kē 0x250DF:qīng 0x250E0:yì 0x250E3:kǎi 0x250E4:jiǎo 0x250E7:chōu,jiǎo,yǎo 0x250E8:bǔ 0x250E9:gèn,yǎn 0x250EA:jiāo 0x250EB:zhī 0x250EE:wèn 0x250F0:bīn 0x250F4:xiòng 0x250F5:fàn 0x250F8:yí 0x250F9:chuàn 0x250FA:yào 0x250FD:yāng 0x250FE:dù 0x250FF:yǎn 0x25101:méng 0x25107:chī,hūn 0x25108:mù 0x25109:jiāo 0x2510B:nǜ 0x2510D:guó 0x2510E:xuè 0x25111:fú 0x25112:xuē 0x25113:fū 0x25114:pèi,pò 0x25115:mò 0x25116:xī 0x25117:wò,nài 0x25118:shǎn 0x2511B:xī 0x2511C:qì 0x2511D:miàn 0x25126:dǎn 0x25128:chǒu 0x25131:fèi 0x25132:mié 0x25134:xuè,jué 0x25135:xù,yù 0x25136:sī 0x25137:jǔ 0x25138:mǎo 0x25139:bào 0x2513B:yí 0x2513C:guā 0x2513D:nì 0x2513F:yí,dì 0x25141:zuò 0x25144:nǔ 0x25151:diàn 0x25152:fàn 0x25153:yì 0x25154:shì 0x25157:cū 0x25158:zhěn,mí 0x2515E:shì 0x2515F:jiǎo 0x25160:hòu 0x25161:ér 0x25166:lèi 0x25167:xuè 0x25168:gèng 0x2516A:shōu 0x2516C:juān 0x25174:jié 0x25175:wéi 0x25177:shǒu 0x25178:jìng 0x2517A:xú 0x2517B:chòng 0x25185:jiāng 0x25186:mòu 0x25189:yù 0x2518C:jué 0x25191:tìng 0x25194:xiāo 0x25196:dōu 0x25198:guó 0x25199:máng 0x2519A:wāng 0x2519B:xù 0x2519C:wàng 0x2519D:suō 0x2519E:juàn 0x2519F:yuè 0x251A1:hán 0x251A3:shēn 0x251A5:xié 0x251A6:liú 0x251A7:rún 0x251AF:bì 0x251B2:nào 0x251B6:wàn 0x251B7:jiù 0x251B8:quē 0x251C4:nì 0x251C6:mí 0x251C7:suō 0x251C9:qiǎng 0x251CC:hàn,qià 0x251CD:zhuó 0x251CE:mí 0x251CF:xù 0x251D1:lǎng 0x251D2:jié 0x251D3:dìng 0x251D4:chàng,zhāng 0x251D5:zhì 0x251D6:fēi 0x251D7:jiá 0x251D8:jùn 0x251D9:huò 0x251DA:qī 0x251DB:jū,jù,xì 0x251DC:zhūn,guō 0x251DE:diàn 0x251DF:jiǎo 0x251E0:yā 0x251E2:zhǎn 0x251ED:zhī 0x251EF:mài 0x251F0:hū 0x251F1:xiè 0x251F2:shí 0x251F3:guī 0x251FF:xù 0x25202:jí 0x25204:chuàng 0x25206:mào 0x25207:ruán 0x25208:xū 0x25209:huàn 0x2520A:shà 0x2520B:jǔ 0x2520F:kuàng 0x25211:hóu 0x25212:guān 0x25213:guā 0x25215:mí 0x25216:dié 0x25217:bì 0x25218:liǎng 0x25219:là 0x2521A:shǎn 0x2521B:lù 0x2521C:xì 0x2521F:sǒu 0x2522C:ōu 0x2522E:léng 0x25237:kū 0x25238:guī 0x2523B:xī 0x2523C:pán,pān 0x2523D:sè 0x2523E:juè 0x2523F:hòng 0x25240:guàn 0x25241:jù 0x25243:nài 0x25244:huá 0x25245:gé 0x25246:lì 0x25247:gòu 0x25248:tì 0x2524A:mà 0x2524B:téng 0x2524C:dá 0x25250:qī 0x25251:yù,hè 0x25252:jiǎo 0x25253:miè 0x25254:gěng 0x25255:mèng,méng 0x25256:wèi 0x25258:tí 0x25259:qí 0x2525C:chén 0x2525D:dōu 0x2525F:pán 0x25270:hàn,qià 0x25274:mì 0x25275:má 0x25276:lù 0x25277:qī 0x25278:kēng 0x2527A:dié 0x2527B:qì 0x2527C:jiāo 0x2527D:kāng 0x2527E:qiāo 0x2527F:mì 0x25280:shān,sǎn 0x25287:jiān 0x25288:lí 0x25289:kè 0x2528A:xù 0x25291:mán,màn 0x25292:fèng 0x25293:chàn 0x25294:huǐ 0x252A7:kòu 0x252AA:wěi 0x252AB:guàn 0x252AC:jí 0x252AD:zùn 0x252AE:huò 0x252AF:xié 0x252B4:suì 0x252B6:ruǎn 0x252B8:tè 0x252BC:zhèng 0x252BD:kūn 0x252BE:xiǎng 0x252BF:mián 0x252C1:xì 0x252CC:sā 0x252D9:è 0x252DA:miè 0x252DB:zhǔ 0x252DC:zōu 0x252DD:měng 0x252DF:xī 0x252E1:táng 0x252E3:jià 0x252E4:cháng 0x252E5:jí 0x252EE:zhuó 0x252FF:hè 0x25300:chá 0x25301:qì 0x25302:mián 0x25303:zhěn 0x25304:kū 0x25305:yè 0x25306:zhōu 0x25308:jiān 0x2530A:pàn 0x2530D:huī 0x2530F:míng 0x25310:liù 0x25318:shuì 0x2531A:mài,yá,shù 0x2531B:lí 0x2531E:shuò 0x2531F:yí 0x25324:lì 0x25328:xiē,miè 0x25329:tè 0x2532A:xiū 0x2532D:xuàn 0x2532E:lì 0x2532F:méng 0x25330:wéi 0x25331:méng 0x2533A:yào 0x2533B:lán 0x2533C:líng 0x2533D:yīng 0x2533E:yīng 0x2533F:lì 0x25340:jiǎn 0x25341:guī,guì 0x25345:guān 0x25346:xiè 0x25349:shè 0x2534B:zuī,xiē,huǐ 0x25353:kàn,yǎn 0x25354:léi 0x2535A:biàn 0x2535D:shǔ 0x2535E:nǜ 0x2535F:xù,yì 0x25363:hào 0x25368:guǐ 0x2536A:zhài 0x2536B:láng 0x2536C:cuān 0x2536D:zhì 0x2536E:féng,fēng 0x2536F:qīn 0x25371:zé 0x25372:nà 0x25373:niǔ 0x25374:yì 0x25377:cōng 0x25378:shī 0x25379:jiǎn 0x2537A:zōng 0x2537B:yǎn 0x2537C:yīng 0x25380:ruǎn 0x25382:róng 0x25383:xì 0x25385:guān 0x25386:kài 0x25388:wù 0x2538A:qín 0x2538B:cōng 0x2538D:zé 0x2538E:xiè 0x25390:yù 0x25391:zàn 0x25392:chuāng 0x25393:lǐ 0x25394:lǐ 0x25395:xù 0x25396:mí 0x25397:xù 0x25398:ruǎn 0x2539B:guì 0x2539C:rǒng 0x2539F:máo 0x253A1:qín 0x253A2:cuàn 0x253A3:cuàn 0x253A4:cuàn 0x253AE:wū 0x253B0:fǎ 0x253B1:bá 0x253B8:qià 0x253B9:zhì 0x253BA:tiào 0x253C4:zhì 0x253C5:zhí 0x253C7:huàn 0x253C8:chóu 0x253CA:zhì 0x253CE:yǐng 0x253D2:wù 0x253D3:bēi 0x253D5:hóng 0x253D6:shěn 0x253D8:jué 0x253D9:kuì 0x253DC:yǐ 0x253DD:yà 0x253E0:bī 0x253E4:kuà 0x253E5:qiān 0x253E8:zhāo 0x253EA:kǎi 0x253EB:shāng 0x253EE:àn 0x253EF:zhé 0x253F0:zhì 0x253F7:zhì 0x253F9:jiǎo 0x25400:sī 0x25401:pú 0x25402:ǒu 0x2540A:zhuó 0x25411:yīng 0x25413:huān 0x25415:yà 0x25418:shí 0x25419:pā,bā 0x2541A:pǔ 0x2541E:máng 0x2541F:chāi 0x25429:yún 0x2542C:gǔ 0x25439:dǎn 0x2543B:náo 0x2543D:zhé 0x2543F:hú 0x25445:kēng 0x25447:dié 0x25448:tīng 0x2544B:guài 0x2544E:qiōng 0x2544F:shǐ 0x25450:jiǎ 0x25451:ào 0x25452:nǎ,kēng 0x25453:pǐn 0x25454:jiá 0x25461:zhè 0x25462:bù 0x25463:wǒ 0x25465:chǎ 0x2546A:náo 0x2546B:kān,kǎn 0x2546F:dú 0x25470:guài 0x25471:qióng 0x25473:róng 0x25474:yǐ 0x25475:duī 0x25476:lěi 0x25478:zhōu 0x25479:kuā 0x2547A:ē 0x2547B:xiān 0x2547C:diàn 0x2547D:nuò 0x2547E:è 0x2547F:yōng 0x25480:wù 0x25481:kēng 0x25493:zhì 0x25497:zhǐ 0x25498:xún 0x2549B:zhèng 0x2549E:yáng 0x254A0:huò 0x254A1:jí 0x254A2:nǎo,lì 0x254A7:yà 0x254A8:lù 0x254AB:fū 0x254AC:sǎn 0x254AD:chù 0x254AE:wěi 0x254B0:fǔ 0x254B1:kēng 0x254B2:sì 0x254B3:kàng 0x254B5:yì 0x254B6:huà 0x254BE:yǔ 0x254C3:lì 0x254C6:lǐn 0x254C7:dǔ 0x254C8:è 0x254CC:qiǎng 0x254CD:dú 0x254D0:jié 0x254D1:chuò 0x254D2:xiàn,kàn 0x254D6:gǎo 0x254EC:dào 0x254F0:hōng 0x254FB:zōng 0x254FE:qì 0x254FF:tuó 0x25500:hōng 0x25501:pǐ 0x25502:gèng 0x25504:niè 0x25507:kōng 0x2550A:zhǐ 0x25511:xiǎo 0x25521:shè 0x25522:yú 0x25523:jiāng 0x25529:qǐ 0x2552A:chěn 0x2552B:sǎng 0x2552D:suǒ 0x2552E:qián 0x2552F:huì 0x25531:shàn 0x25532:è 0x2553B:qiū 0x2553D:kè 0x25540:wēng 0x25541:zī 0x25542:jí 0x25547:dǎ 0x25549:cuò 0x2554D:lǒu 0x2554E:kāng 0x2554F:kuò 0x25550:dí 0x25551:qiē,jū 0x25553:mò 0x25556:guǒ 0x25557:hōng 0x25558:cháo,suǒ 0x25559:hēi 0x25562:cáo 0x25563:zhé 0x25566:gǔn 0x25570:xū 0x25571:péng,pēng 0x25572:jué 0x25575:gǎn 0x25576:sī 0x25578:suì 0x25579:què 0x2557B:wú,wǔ 0x2557C:yán 0x2557D:pèng 0x2557E:xiǎo 0x2557F:pān 0x2558D:là 0x25597:bèng 0x25598:zhěn 0x25599:jí 0x2559C:jǐn 0x2559D:lián 0x2559E:kěn 0x255A0:zhóu,dú 0x255A8:zào 0x255AA:lè 0x255AB:qī 0x255AC:bìng 0x255B5:yǐn 0x255B6:pīn 0x255BB:sǒu 0x255BC:lǜ 0x255BE:dí 0x255BF:dú 0x255C0:liǎo 0x255C1:zhuó 0x255CA:chǎng 0x255D2:chèn 0x255D3:tà 0x255D9:què 0x255DA:dào 0x255DD:rǎng 0x255DF:pò 0x255E6:zhōng 0x255E7:xiē 0x255EA:jiāng 0x255EB:qú 0x255EC:lěi 0x255ED:cà 0x255EE:quē 0x255F5:xiàng 0x255F6:lèi 0x255FA:làn 0x255FF:lǎ 0x25601:lǎ 0x25604:yù 0x2560A:jiào 0x2560B:qín 0x2560C:jī 0x2560F:gǎn 0x25612:yì 0x25620:yì 0x25621:zhī 0x25624:biǎo 0x25625:shēng 0x25626:jiù,shè 0x2562B:hē 0x2562C:fú 0x2562E:jū 0x25640:zuǒ 0x25641:yí 0x25646:xiàn,zhī 0x25647:yí 0x25649:sì,tái 0x2564B:chuì 0x2564E:mò 0x25661:zhān 0x25663:xún 0x25666:rú 0x25668:huò 0x2566C:shāo 0x25670:shòu 0x2567E:yòu 0x2567F:yù 0x25682:jùn 0x25689:zī 0x2568A:lù 0x2569A:chǐ 0x2569B:kūn 0x256A0:zhùn 0x256A6:hóu 0x256A9:xǔ 0x256BE:zōng 0x256BF:yìng 0x256C2:zhū 0x256C5:liù 0x256D1:nù 0x256D8:bì 0x256DA:chì 0x256DC:zǔ 0x256DD:féng 0x256DE:lù 0x256DF:pǔ 0x256E5:zhuàn 0x256E7:zhé 0x256E8:shī 0x256E9:yǔ 0x256EA:lù 0x256EB:liáng 0x256EF:jué 0x256F0:liào 0x256F1:bēng 0x25703:yì 0x25704:guān 0x2570C:ǎo 0x2570F:guì 0x25710:mǐn 0x25712:yǎn 0x25713:lán 0x25716:bó 0x25719:zàn 0x2571A:yǒu 0x25725:yì 0x25726:nǐ,xiǎn 0x2572C:nǐ,xiǎn 0x2572D:guǒ 0x2572E:jùn 0x25730:shī 0x25732:xiǎn,jiǎn 0x25734:qiān 0x25735:què 0x25736:kuí 0x25740:shé 0x25742:huò 0x25744:wàn 0x2574A:fèi 0x2574B:fèi 0x2574C:jī 0x2574D:yù,wáng 0x25751:zhī 0x25752:guà 0x25754:jié 0x25755:máng 0x25756:hé,xié 0x25758:yǒu 0x2575F:dù 0x25760:sī,xiù 0x25762:lì 0x25765:jié 0x25766:niǔ 0x25767:bà 0x25768:yú 0x2576E:zhī 0x25778:hé 0x25779:kē 0x2577E:dù,zhà 0x2577F:jiā 0x25781:chēn 0x25783:chuì,shù 0x25784:hé 0x25785:zhǎi 0x2578A:mèi 0x2578D:hé 0x2578E:zǐ 0x2578F:zhú 0x25792:tuó 0x25798:zùn 0x2579A:rú 0x2579B:duò 0x2579C:jiàng 0x257A7:héng 0x257A9:bēng,hé 0x257AA:mò,mǐ 0x257AF:zú 0x257B2:biē 0x257B4:kù 0x257B5:jiá 0x257BA:zhuō 0x257BC:xiū 0x257C3:hé 0x257C5:qiāo 0x257CD:fěi 0x257CE:shēng 0x257D2:zhuì 0x257D3:kuǎn 0x257D4:zè 0x257D5:xiān 0x257D7:bì 0x257D8:yì 0x257DA:chàng 0x257EA:mào 0x257F6:wǎn 0x257FD:wū 0x257FE:kū 0x257FF:wǒ 0x25800:xīng 0x25801:kē 0x25803:jiū 0x25804:duān 0x25805:huàn 0x25808:zhì,jì 0x25809:cè 0x2580A:róu 0x2580B:jí 0x2580D:yè 0x2581B:jīng 0x2581C:yàng 0x25821:zǒng 0x25829:cǎn 0x25831:sī 0x25832:lì 0x25833:gǔ 0x25834:chàng 0x25836:fěi 0x25837:liú 0x25839:jié 0x2583A:yūn 0x2583D:zhì 0x25840:chóu 0x25841:biē 0x25852:jī 0x2585C:luó,suì 0x2585D:jiān,qiān 0x2585F:chuāng 0x25860:shuǎng 0x25862:lǜ 0x25863:jùn 0x25864:jiào 0x25866:tì,dì 0x25867:zhā 0x2586A:yì 0x2586C:cōng 0x2586D:něi 0x2586E:jiā 0x25874:jì 0x2587D:ài 0x25887:jiǎn 0x2588A:bèn 0x2588C:fán 0x2588D:hù,suì 0x2588E:zùn 0x2588F:diàn 0x25890:gāo 0x25891:gǎo,hào 0x25892:láo,lào 0x25894:zhuó,zhào 0x2589F:hù 0x258A2:tuí 0x258A6:bì 0x258A7:jú,yì 0x258AE:huá 0x258B2:chéng 0x258B6:kuài 0x258B7:dāng 0x258B8:gé 0x258B9:xié 0x258BB:jié 0x258BD:cān 0x258C6:zú 0x258C8:pú 0x258CB:shǔ 0x258CC:bǔ 0x258D7:níng 0x258D8:yǎn 0x258D9:zhòu,còng 0x258DB:méng 0x258DD:biǎn 0x258DF:xiàng 0x258E4:lù 0x258E5:lí 0x258E9:jì 0x258EB:miè 0x258EC:lèi 0x258EE:zhì 0x258EF:yōu 0x258F0:biǎn 0x258F8:mù 0x258F9:ràn 0x258FA:ràn 0x25902:niǎo 0x2590A:quán 0x2590B:zhé 0x25910:lèi,léi 0x25917:dǎng 0x25918:jué 0x2591C:líng 0x2591E:líng 0x2591F:yán 0x25923:yǎo 0x25924:zhèn 0x25925:qī 0x25926:ài 0x25928:nú 0x25929:mǎng 0x25931:kǎn,hān 0x25933:jiū,cuàn 0x25934:yǎn 0x25935:miàn 0x25937:yín 0x25938:wán 0x25939:yào,yǎo 0x2593A:wā 0x2593B:pí 0x2593C:suì 0x25945:kǒng 0x25948:hóng,wòng 0x2594A:mǐng 0x2594B:líng 0x2594C:yì,dié 0x2594D:shēn,shèn 0x2594F:zuò 0x2595B:tū,bá 0x2595D:yòng 0x2595F:wà 0x25960:guǐ 0x25961:hòng 0x25965:shì 0x25967:xiòng 0x25969:ā,xiàng 0x25971:chéng 0x25973:kēng 0x25974:yì 0x25975:yàng 0x25976:tíng 0x25977:dòu 0x25978:chá 0x25979:liù 0x2597D:qiú 0x2597E:xuǎn 0x2597F:shēn 0x25980:kuān,mì 0x25981:tòng 0x25983:qiǎn 0x25985:chòu 0x2598A:wěn 0x2598C:lòng 0x2598D:ǎn,yǎn 0x25994:kǎn 0x25996:yǎo 0x25998:fú 0x2599C:bèng 0x2599D:lǎn 0x2599E:qià 0x2599F:diàn 0x259A2:jiào 0x259A3:guī 0x259A5:xiòng 0x259A8:kè 0x259B6:xiàn 0x259B7:wòng 0x259C2:gǒng 0x259C6:ǒu 0x259C7:kē,cháo 0x259CB:kū 0x259D1:tián,diān,yǎn,chǎn 0x259D2:gòu 0x259D3:mǎ 0x259D5:liù 0x259D9:wèi 0x259DA:wěn 0x259E1:gòng 0x259E3:tú 0x259E4:níng 0x259E7:mì 0x259EB:láng 0x259EC:qiǎn 0x259ED:mán 0x259EE:zhé 0x259F0:huà 0x259F1:yōng 0x259F2:jìn,jǐn 0x259F4:mèi 0x259F7:fú 0x259FB:qú 0x25A0C:liù 0x25A0D:fù 0x25A0E:dàn 0x25A10:gǒng 0x25A12:cuì,cuàn 0x25A15:xǐng 0x25A1C:tū 0x25A1D:shòu 0x25A2A:qióng 0x25A33:róng 0x25A3B:lì 0x25A3F:jī 0x25A40:tuò 0x25A4C:tóng 0x25A52:tán 0x25A54:líng 0x25A56:yì 0x25A57:ruǎn 0x25A59:pǎ 0x25A5D:cà 0x25A61:yuè 0x25A62:què 0x25A63:zhù 0x25A64:hài 0x25A71:fá 0x25A72:hài 0x25A80:bū 0x25A81:pīng 0x25A82:liè 0x25A8A:kuǐ,jué 0x25A8B:fú 0x25A8C:tiǎn 0x25A8D:wò 0x25A8F:jū 0x25A98:zhēn 0x25A9A:fú 0x25AA2:lóng 0x25AA6:xì 0x25AA7:tián 0x25AAB:jì 0x25AAF:yào,qiáo 0x25AB1:cù 0x25AB4:pàng 0x25AB5:qiè 0x25ABB:lóng 0x25ABC:jǐ 0x25AC2:tóng 0x25AC3:yí 0x25AC5:chāng 0x25ACB:gōng 0x25ACE:dòng 0x25AD6:xiāng 0x25AD9:tǐng 0x25ADB:zhuān 0x25ADC:yǐ 0x25ADD:yì 0x25ADE:zǐ 0x25ADF:qǐ 0x25AE2:chǎ 0x25AEC:dùn 0x25AEF:chōng 0x25AF0:lù 0x25AF1:dùn 0x25AF3:fāng 0x25AF4:shì 0x25AF5:tì 0x25AF6:jī 0x25AF7:qiū 0x25AF8:shuǐ 0x25AF9:chén 0x25AFC:huàng 0x25AFD:shi 0x25B00:yún 0x25B06:lóng 0x25B08:mǎn 0x25B09:gōu 0x25B0D:xiān 0x25B0E:mò 0x25B10:shěn 0x25B12:pō 0x25B13:yào 0x25B14:qū 0x25B15:rǎn 0x25B19:jù 0x25B1C:yǐn 0x25B1D:bái 0x25B1E:niè 0x25B20:chōu 0x25B2A:róng 0x25B2B:chuǎn 0x25B2C:niè 0x25B2D:lì,liè 0x25B2E:jiāng 0x25B2F:kǎo 0x25B30:cè,zhà 0x25B31:chòng 0x25B32:zhuā,duò 0x25B33:zǐ 0x25B34:yáng 0x25B3C:wěn 0x25B4B:jì 0x25B4C:jì 0x25B50:lǜ 0x25B51:qiú 0x25B52:dùn 0x25B53:báo 0x25B54:chān 0x25B56:bó 0x25B58:chī 0x25B59:zhè,niè 0x25B5A:màng 0x25B5C:jì 0x25B5D:miào 0x25B5E:yuàn 0x25B60:wú 0x25B61:zhì 0x25B62:pīng 0x25B65:chōng 0x25B6B:mí 0x25B6C:féi 0x25B6D:cuō 0x25B6E:méng 0x25B8D:yín 0x25B8E:mǎng 0x25B8F:diǎn 0x25B90:diāo 0x25B92:qián,zhān 0x25B95:hàng 0x25B96:zhí 0x25B97:jú 0x25B98:niàn 0x25B9C:mí 0x25B9D:gǔ 0x25BA3:zhuā 0x25BA4:niè 0x25BA5:zhuó 0x25BA7:yè 0x25BA8:còng 0x25BAA:xū,jí 0x25BAC:xì 0x25BAF:bō 0x25BBE:cǎn,zān 0x25BC3:yǎn 0x25BD1:jǐn 0x25BD4:jǔ 0x25BD5:dàng 0x25BD6:dù 0x25BD8:yé 0x25BD9:jìng 0x25BDA:kè 0x25BDB:luò 0x25BDC:wěi 0x25BDD:tū 0x25BDE:yóu 0x25BDF:pài 0x25BE1:pí 0x25BE2:dìng 0x25BE4:wěi 0x25BE5:chè 0x25BE6:jiàn,shà 0x25BE8:sī 0x25BE9:zhuó 0x25BEA:sòu 0x25BEC:ruǎn 0x25BEE:yú 0x25BF3:è 0x25BF6:kǔ 0x25BF8:zhù 0x25BFE:xiá 0x25C1B:fú 0x25C1C:táo 0x25C1D:xī 0x25C1E:chōu,sǒu 0x25C1F:yuán 0x25C20:lǘ 0x25C21:cè 0x25C22:shàn 0x25C23:liú 0x25C25:xì 0x25C26:jī 0x25C27:yǐ 0x25C28:tán 0x25C2A:hú 0x25C2D:cuō,zhǎ,cī 0x25C2E:gě 0x25C30:shì,shé 0x25C31:sāo 0x25C32:hòng 0x25C33:xiàn 0x25C36:xiá 0x25C3B:mù 0x25C3C:suǒ 0x25C3E:zhài 0x25C40:fū 0x25C41:sè 0x25C42:nú 0x25C43:yì 0x25C67:qín 0x25C68:qìng 0x25C75:huì,suì,xí 0x25C76:shuǎng 0x25C77:dǎn 0x25C78:ōu 0x25C79:mò 0x25C7A:qiān 0x25C7B:chì,tú 0x25C7C:pái,pì 0x25C7D:juàn 0x25C80:cháo 0x25C81:liè 0x25C82:bīng 0x25C83:kòu 0x25C84:dàn 0x25C85:chóu 0x25C86:tōng 0x25C87:dàn 0x25C88:mǎn 0x25C89:hù 0x25C8A:liáo 0x25C8B:xián 0x25C8D:cáo 0x25C8E:lù 0x25C8F:chuàn 0x25C90:wú 0x25C91:mán 0x25C95:zǐ 0x25C97:dù 0x25C9A:shuàng 0x25C9B:fù 0x25C9C:jù 0x25C9D:zhòu 0x25C9F:diào 0x25CA0:wàng 0x25CA1:chuāng 0x25CA2:qiān 0x25CA3:tuì 0x25CA5:lián 0x25CA6:biāo 0x25CA7:lí 0x25CAA:lí 0x25CC6:bì 0x25CC7:fù 0x25CC8:cuì 0x25CC9:dū 0x25CCB:zàn,zān 0x25CCC:lóng 0x25CCD:xún 0x25CCE:qióng 0x25CCF:jī 0x25CD0:qiǎn 0x25CD2:jiǎn 0x25CD3:shāo 0x25CD4:duò 0x25CD5:shū 0x25CD6:bù 0x25CD7:xū 0x25CD8:dǒng 0x25CDA:rán 0x25CDC:yáng 0x25CDD:ruǐ 0x25CDE:lìn 0x25CDF:jiǎn 0x25CE0:dì 0x25CE1:fén 0x25CE2:diàn 0x25CE3:zuì 0x25CE5:nǐng 0x25CEA:suàn 0x25CEB:tiǎn 0x25CEC:àn 0x25CEF:cè 0x25CF0:dìng 0x25CF1:shēn 0x25CF2:dù 0x25CF3:tí 0x25CF4:jiǎo 0x25CF5:zuì 0x25CF6:zhǎng 0x25CF7:jiǎn 0x25CF8:dàn 0x25CF9:dǎn 0x25CFA:sǒng 0x25D10:zhǎn 0x25D11:tíng 0x25D12:zhì 0x25D15:yóu 0x25D16:pái 0x25D21:lǐ 0x25D24:qián 0x25D26:suì,dí 0x25D27:jǔ 0x25D28:ài 0x25D29:gé 0x25D2A:jù 0x25D2B:tún,diàn 0x25D2C:bì 0x25D2D:qià 0x25D2E:bó 0x25D2F:huì 0x25D31:jiàn 0x25D34:gōu 0x25D35:suàn 0x25D3A:cí 0x25D3B:qiàng 0x25D3F:yán 0x25D4F:diàn 0x25D52:miè 0x25D5C:pò 0x25D5D:lǐng 0x25D5E:jié 0x25D5F:zhù 0x25D60:gǔ 0x25D63:duān 0x25D64:zhào 0x25D66:shǎo 0x25D67:qǐn 0x25D68:mí 0x25D6A:píng 0x25D6B:cóng 0x25D6C:chōu 0x25D6F:sà 0x25D76:tiǎn 0x25D85:liú 0x25D86:lǘ 0x25D87:lǔ 0x25D88:zōu 0x25D8C:lǜ 0x25D8D:huǎn 0x25D8F:tiáo 0x25D90:tuí 0x25D91:qiǎng 0x25D92:lìn 0x25D93:bēi 0x25D94:páo 0x25D95:zhān 0x25D97:lì 0x25D9B:tí 0x25D9C:hú 0x25DA2:liè 0x25DB5:huǐ 0x25DB6:qū 0x25DB7:xuǎn 0x25DB9:jìng 0x25DBA:dié 0x25DBB:suí 0x25DBD:wèi 0x25DBF:yán 0x25DC0:yān 0x25DC1:bàn 0x25DC3:jiǎng 0x25DC4:nǐ 0x25DC5:lì 0x25DC6:hú 0x25DC7:qì 0x25DC8:zhōng 0x25DD1:bì 0x25DD4:yú 0x25DD5:dié 0x25DD6:lìn 0x25DD7:lì 0x25DD8:zhuó 0x25DD9:jì 0x25DDA:jū 0x25DDC:fēng 0x25DDE:yù 0x25DE8:liè 0x25DE9:zá 0x25DEA:qián 0x25DEB:jiē 0x25DEC:guān 0x25DEE:zhuó,zhāo 0x25DF1:fù 0x25DF9:sè 0x25DFC:cù 0x25E03:huǐ 0x25E08:dàng 0x25E09:lóng 0x25E0A:yì 0x25E17:sǎ 0x25E18:yuè 0x25E1A:dí 0x25E21:gǎn 0x25E22:zān 0x25E23:shàn 0x25E24:yù 0x25E25:bǒ 0x25E27:dìng 0x25E28:fán,bǒ,bǔ 0x25E2A:yù 0x25E2C:shēn 0x25E32:gōng 0x25E34:miè 0x25E35:tún 0x25E38:liè 0x25E41:zhā,zuò 0x25E42:pēi 0x25E44:mí 0x25E46:míng 0x25E47:fàn 0x25E49:nà 0x25E4A:sì 0x25E4B:yí 0x25E4C:jiā 0x25E4D:zhù 0x25E53:bān 0x25E54:yù 0x25E56:pǒ 0x25E5A:huān 0x25E5B:càn 0x25E5C:jiāo 0x25E60:tán 0x25E69:zhì 0x25E6B:mǐ 0x25E6C:kǎo 0x25E71:yāo 0x25E72:duì 0x25E73:quǎn,huán 0x25E74:bù 0x25E75:chù 0x25E76:qiǎo 0x25E77:liú 0x25E78:bó 0x25E7A:kāng 0x25E7B:fèn 0x25E85:dào 0x25E89:dòu 0x25E8A:gé 0x25E99:líng 0x25E9A:xí 0x25E9C:nì 0x25E9D:zhōu 0x25E9E:zhōu,yù 0x25EA3:chōu 0x25EB4:niān 0x25EB5:jī 0x25EB7:qū 0x25EC4:kāi 0x25EC7:xiàn 0x25EC9:hé 0x25ECB:lín 0x25ECD:zī 0x25ED1:ǒu,lì 0x25ED2:cù,mì 0x25ED7:chá 0x25EDD:zhòng 0x25EDE:bú 0x25EE4:chōu 0x25EE5:xì 0x25EE6:sà 0x25EE7:xián,jiān 0x25EE8:sè 0x25EE9:miàn 0x25EEB:fán 0x25EEC:zhī 0x25EEE:cuì 0x25EF4:xià 0x25EFE:nuò 0x25EFF:lí 0x25F00:zú 0x25F02:cuī 0x25F03:zé 0x25F05:lí 0x25F18:qí 0x25F1A:zhuō 0x25F1B:cuì 0x25F1C:pū 0x25F1E:fán 0x25F1F:tán 0x25F29:zī 0x25F2A:zǔ 0x25F2B:zhōu 0x25F2C:róng 0x25F2D:lín 0x25F2E:tán 0x25F36:shì 0x25F3A:cuǐ 0x25F3B:zī 0x25F3C:fū 0x25F41:xiào 0x25F48:fēng,lǐ 0x25F4F:xiàn 0x25F50:jiàn 0x25F52:fèn 0x25F57:lì 0x25F58:mò,miè 0x25F5F:yōu 0x25F65:huò 0x25F67:qū 0x25F6C:niàng 0x25F70:mí 0x25F73:qì 0x25F76:hé 0x25F78:liàn 0x25F7F:zuò 0x25F82:líng 0x25F85:zhú 0x25F87:niǎo 0x25F8A:jǐ 0x25F8B:réng 0x25F8C:jié 0x25F8D:gǎn 0x25F90:yì 0x25F93:zhóu 0x25F95:wù 0x25F9A:gěng,dǎn 0x25F9B:cù 0x25F9D:miè,miǎn 0x25FA1:xún,jī 0x25FA3:zhī 0x25FA4:xiáo 0x25FA7:fú 0x25FA8:hú 0x25FAC:dī 0x25FAE:jué 0x25FAF:diào 0x25FB9:shǒu 0x25FBC:wǎng 0x25FC3:nà 0x25FC4:dī 0x25FC5:shì 0x25FC6:cí 0x25FC7:shū 0x25FC9:wà,mò 0x25FCA:chè 0x25FCB:fán,biàn 0x25FCD:gū 0x25FCE:yuān,wǎn 0x25FD1:guān,lún 0x25FDA:qiè 0x25FDC:zhǎn,zhěn 0x25FDD:dài 0x25FDE:shē 0x25FE6:zhōu 0x25FE7:xiǎng 0x25FE8:míng 0x25FE9:zì 0x25FEA:huāng 0x25FEB:mí,yì,wèi 0x25FED:xì 0x25FEE:zhì,shì 0x25FEF:pài 0x25FF0:duǒ 0x25FF4:cì 0x25FF5:móu 0x25FF7:chào 0x25FF9:yì 0x25FFA:gōu 0x26007:jīng 0x26013:zēng,jiē 0x26014:pīng 0x26015:yè 0x26016:jié 0x26018:pī,bī 0x2601B:shā 0x2601C:zhuàng 0x2601D:jiǒng 0x26020:liú 0x26021:yǔ 0x26023:jū 0x26028:nuò 0x26038:mào 0x26044:chēn 0x26046:zhuàn,juàn,shuàn 0x26047:niàn 0x26048:kòng 0x26049:jiē 0x2604A:huà 0x2604D:xīn 0x2604E:zuó 0x2604F:yàn 0x26050:jué 0x26055:hū 0x26056:zhòu 0x26057:shè 0x26059:yǎn 0x2605B:xiè,dié 0x2605C:dié 0x2605F:chēn,chén,zhěn 0x26072:jiǎn 0x26073:jì 0x26076:chuò 0x26077:hóng 0x26080:dá 0x26084:kāi 0x26085:xīng,xǐ 0x26086:huì 0x26087:jiǎn 0x26088:zhòu 0x26089:zhǎ 0x2608A:fù 0x2608B:chì 0x2608C:běng 0x2608D:nuò 0x26091:jì 0x26092:qián 0x26094:wàn 0x26095:óu 0x26096:bì 0x26097:shuò 0x260A0:jīng 0x260A1:yè 0x260C4:fěi 0x260C7:lí 0x260CA:lì 0x260CB:pí 0x260D2:suì 0x260D3:liú 0x260D4:hé 0x260D5:hǔn 0x260D6:tǎn 0x260D7:shuò 0x260D8:zhì 0x260D9:bó 0x260DD:xì 0x260E1:pó,tāo 0x260E2:qǔn 0x260E4:mù 0x260FD:yōng 0x26102:dài 0x2610A:qǐ 0x2610B:diǎo 0x2610C:niè 0x2610D:shuǎng 0x2610F:shāo 0x26110:kǔn,mí 0x26111:suì 0x26113:dōu 0x26114:dié 0x2611C:gōng 0x2612F:zhuǎn 0x26130:guó 0x2613C:xū 0x2613D:qú 0x26140:xún 0x26143:jiāo,qiāo 0x26144:zhé 0x26146:diàn 0x26147:sāng 0x26148:bēng 0x2614A:suǒ 0x2614B:qiǎn 0x2614F:xū 0x26151:xún 0x26154:mò 0x26175:suì 0x26176:là,liè 0x26177:zhǔ,zhù 0x26178:zhòu 0x2617A:lì 0x2617C:dān 0x2617D:jú 0x2617F:yùn 0x26180:chǎn 0x26181:luó 0x26184:sè 0x26186:lián 0x26188:zuǎn,zuí 0x2618B:lài 0x2618C:shuǎng 0x2618D:qiè 0x26198:dōu 0x2619E:wù 0x2619F:méng 0x261A1:jì 0x261A4:chī 0x261A6:nǐ 0x261B8:yáo 0x261BB:là 0x261BE:lǜ 0x261C0:suì 0x261C1:fū 0x261C4:lěi 0x261C5:wěi 0x261CE:cōng 0x261D4:lì 0x261D6:pín 0x261D8:jūn 0x261D9:jǔ 0x261DB:là 0x261E7:jì 0x261EA:miè 0x261EC:yào 0x261ED:biān 0x261F1:cóng 0x261F2:sī,chī 0x261F5:sī 0x261F8:hé 0x26203:nàng 0x26205:dié 0x26208:chè 0x26209:yùn 0x2620B:xiǔ 0x2620C:shū 0x2620E:chǎn 0x2620F:mín 0x26210:lián 0x26211:yīn 0x26212:xīng 0x26213:wēi 0x26214:gǔ 0x26215:tóu 0x26216:tā 0x26217:fěi 0x26218:dā 0x26219:niè 0x2621A:cù 0x2621B:zuǒ 0x2621C:jié 0x2621D:xuàn 0x2621E:bó 0x2621F:jīn 0x26220:yǐn 0x26221:xū 0x26223:yú 0x26224:xiòng 0x26226:qì 0x26227:bēi 0x26228:xíng 0x26229:gǒng 0x2622C:zuǐ 0x26230:jiē 0x26232:kāi,gǔ 0x26235:xíng 0x26236:bēi 0x26237:shū 0x26238:yù 0x2623A:zhǒu 0x2623B:zhǎn 0x26242:zhōng 0x26246:chá 0x26248:chuí 0x26249:liù 0x2624E:suī 0x26250:zhǔ 0x26259:biàn 0x2625D:xìn 0x2625F:yà 0x26262:líng 0x26267:yà 0x2626C:tīng 0x26279:dí 0x26281:pí 0x26282:hù 0x26283:cén 0x2628A:tiān 0x2628B:mǒu 0x2628C:juǎn 0x2628E:mǒu 0x26290:jù 0x26291:liǔ 0x26293:lǐng 0x26297:liǔ 0x26298:hù 0x262A6:fú 0x262A7:hú 0x262AA:è 0x262AB:gōng 0x262AC:gū 0x262B1:guà 0x262B9:lüè 0x262BB:fán 0x262BC:lǜ 0x262BD:méng 0x262BE:fú 0x262BF:liú 0x262C5:xié 0x262C6:gū 0x262C8:xiàn 0x262C9:bó 0x262CB:jì 0x262D3:quān 0x262D4:lù 0x262DE:shuò 0x262E1:mǒu 0x262E2:yù 0x262E3:hàn 0x262E9:yuè 0x262EA:dàn 0x262EF:yú 0x262F0:jiān 0x262F3:gāng 0x262FF:cáo 0x26300:shèn 0x26301:liǔ,lóu 0x26306:jiāo 0x26309:sù 0x2630A:sù 0x2630B:zhòng 0x26312:liào 0x26314:xuǎn 0x26315:lù 0x26317:jì 0x2631A:yán 0x2631F:lù 0x26321:mǐn 0x26322:tí 0x26326:huàn 0x26329:yì 0x2632A:tǎn 0x2632C:wǔ,wú 0x26330:jī 0x26337:dú 0x26338:kūn 0x2633A:jūn 0x2633F:shī 0x26340:nàn 0x26341:pò 0x26344:shū 0x26345:quàn 0x2634C:rèn 0x2634F:fén 0x26352:tà 0x26353:tún 0x26355:yáng 0x26366:duō 0x26367:cī 0x26369:gǔ 0x2636A:fén 0x2636D:róu 0x26371:gāo 0x26372:xiáng,yàng 0x26374:xiáng 0x26375:hǒu 0x26377:tāo 0x26378:shàn 0x26379:yáng 0x2637A:zì 0x2637C:yuán 0x26384:sú 0x26387:chuàn 0x26388:xiáng,xiè 0x2638A:bān 0x2638C:mǎn 0x2638E:fǔ 0x2638F:lǎ 0x26390:lǐ 0x26392:jié 0x26393:yōu 0x26398:yù 0x2639A:chì 0x2639C:chuàn 0x2639D:yì 0x2639E:shān 0x263A2:jí 0x263A3:yān 0x263A6:wù 0x263A7:chún,dūn,dùn 0x263A8:máng 0x263AD:fú 0x263AE:jiā 0x263AF:gòu 0x263B0:gú 0x263B1:jiá 0x263B5:xián 0x263B7:jìn 0x263B8:zì 0x263B9:lóu 0x263BC:gòu 0x263C0:rén 0x263C2:shān 0x263C5:jué 0x263C6:tóng 0x263C7:yǒu 0x263D4:jiān 0x263D5:dú 0x263D7:hú 0x263DB:sāo 0x263DC:yù 0x263E2:mài 0x263E4:zhī 0x263E5:yān 0x263E6:gāo 0x263E8:huài 0x263EE:quán 0x263F1:yǎng,chài 0x263F3:zuǐ 0x263F7:xiāo 0x263F8:yì,chí 0x263F9:yǎn 0x263FA:hóng,gòng 0x263FB:yú,yù 0x263FF:chì 0x26401:chí 0x26404:háng 0x26405:sè 0x26406:pā 0x26407:tà 0x26408:fēn 0x26409:chī 0x2640C:hóng 0x2640D:xuè 0x26416:zhǐ 0x2641B:qú,yù 0x26420:xī 0x26421:fú 0x26423:shū 0x26424:hài 0x26426:pò 0x26428:cǐ 0x26430:chài 0x26433:hōng 0x26438:pǎo 0x26439:shēn 0x2643A:xiāo 0x2643D:xuān,líng 0x2643E:cǐ 0x2643F:tíng 0x26440:pò 0x26447:tà 0x26448:chā 0x2644B:zú 0x2644C:huò 0x2644D:xù 0x2644E:yàn 0x2644F:chài 0x26451:tuó 0x26458:xián 0x26459:xuān 0x2645A:hóu 0x2645B:huǎn 0x2645C:gé 0x2645D:chǒng 0x2645E:bì 0x2645F:hōng 0x26460:hōng 0x26461:chí,chī 0x26463:chá 0x2646F:zhǎ 0x26471:zhái,huò 0x26472:tà 0x26475:pò 0x26476:tà 0x26478:yóu 0x26479:fú 0x2647A:cī 0x2647B:dá 0x2647C:tǎ 0x2647E:liú 0x26481:cī 0x26483:hōng 0x26485:hàn 0x26486:lā 0x26488:shī 0x2648D:tóng 0x2648E:huì 0x2648F:hé 0x26490:piē 0x26491:yù 0x2649C:xiān 0x2649D:hǎn 0x2649F:pò 0x264A6:là 0x264A7:huò 0x264B0:tài 0x264B4:lǎo 0x264B6:shù 0x264BA:dào 0x264BB:diǎn 0x264C8:xiòng 0x264CB:wàng 0x264CD:chě 0x264CE:nài 0x264D0:jué 0x264D3:ér,liè 0x264D4:ér,xū 0x264D5:nǘ 0x264D6:nǜ 0x264DD:zhuǎn 0x264E2:nuò 0x264E4:liè 0x264E5:lěi 0x264E7:bā 0x264EC:chēng 0x264EF:guī 0x264F0:quán 0x264F1:gè 0x264F3:gǒng 0x264F4:shào,shāo 0x264F9:lái 0x264FA:zhēng 0x264FB:yì 0x264FC:gǔn 0x264FD:wēi 0x264FE:lǔn,kǔn 0x26502:shí 0x26503:yīng 0x26504:shěng 0x26505:tú 0x26506:bì 0x26508:zé 0x26509:zhòng 0x2650B:rǒng 0x2650C:qí,sí 0x2650D:fù 0x2650E:cè 0x26513:lí 0x26514:mán,màn 0x26516:lián 0x26517:biāo 0x2651B:chuáng 0x2651C:yì 0x26520:pài 0x26525:yì,shì 0x26526:kuài 0x26529:biāo,pāo 0x2652B:chì,yì 0x2652C:qú 0x2652D:mò 0x2652E:zhé 0x2652F:shà 0x26530:shà,xū 0x26537:yāo 0x26538:gōng 0x26539:nài 0x2653C:xiè 0x2653F:tiàn 0x26546:yé 0x26549:shā 0x2654F:sào 0x26552:diān 0x26553:xù 0x26559:qú 0x26560:hōng 0x26561:shèng 0x26562:tìng 0x26570:duo 0x26575:liáo 0x26577:hòng 0x26578:lǐ 0x2657A:xiǎng,gāo 0x2657D:shèn 0x26580:fū 0x26588:yǎn 0x26589:wǎng 0x2658A:qī 0x2658B:duǒ 0x2658D:huà 0x2658E:qiān 0x26590:xiè 0x2659D:cì 0x2659E:shēng,wén 0x265A2:èr 0x265A4:xīng 0x265A6:tuì 0x265A7:yàn 0x265A9:liè 0x265AC:mí 0x265B8:zòng 0x265BA:zī 0x265BC:hú 0x265BD:yíng 0x265BE:lián 0x265BF:dā 0x265C0:tián 0x265C1:tiàn 0x265CB:róng 0x265CD:ài 0x265D0:ài 0x265D1:zhé 0x265D2:guō 0x265D3:lù 0x265D4:zhāo 0x265D5:mí 0x265D6:liáo 0x265D7:zhé 0x265DB:qǔ 0x265DC:cōng 0x265DF:tīng,tè 0x265E1:tán 0x265E2:zhǎn 0x265E3:hú 0x265E5:piē 0x265E7:dā 0x265E8:róng 0x265EE:nǎo 0x265F3:náng 0x265F4:dāng 0x265F5:jiǎo 0x265FB:jù 0x265FC:ěr 0x2660A:lì 0x2660C:guō 0x2660D:wài,wà 0x26612:niè 0x26614:jīn 0x26629:pǐ 0x2662A:chì 0x26632:pǐ 0x26633:yì 0x26634:dū 0x26635:wǎ 0x26636:xūn 0x26638:qì 0x26639:shàn,yuè 0x2663C:xū 0x2663F:hē 0x26640:pàn 0x26642:pēi 0x26644:xiōng 0x26646:chǐ 0x26647:tān 0x26648:zuì,cuì 0x26649:zuǎn 0x2664A:qì 0x2664B:dū 0x26659:shuǐ 0x2665C:nǎ 0x2665D:xī 0x26667:chǎo 0x26668:yì 0x2666B:zhēng 0x2666E:jú 0x2666F:dài 0x26671:sān 0x26674:zhù 0x26675:wàn 0x26676:gǔ 0x26678:sān 0x26679:bàn 0x2667A:jià,jiā 0x2667B:mài 0x26688:tuò,dù 0x2668A:qì 0x2668F:zhuāng 0x26690:tuó 0x26693:píng 0x2669D:pēng 0x2669E:kuāng,kuàng 0x2669F:yí 0x266A1:xiè,mài 0x266A2:yuē 0x266A3:hén 0x266A5:hóu,yóu 0x266A6:zhēng 0x266A7:chǔn 0x266A8:shì 0x266A9:wǎ 0x266AB:xié 0x266B8:gèng 0x266C5:è 0x266CF:kú 0x266D0:nà 0x266D3:jū 0x266D4:xuàn 0x266D5:qū 0x266D6:chè 0x266D7:lǚ 0x266D8:hé 0x266D9:shèng 0x266DA:nàn 0x266DC:hé,hán 0x266DD:chá 0x266DE:yān 0x266DF:gěng 0x266E0:niè 0x266E2:guó 0x266E3:yán 0x266E4:guǎn 0x266E7:zhì 0x266E8:lao 0x266EF:dǔ 0x266F0:qì 0x266F1:qū 0x266F2:jué 0x26701:fēng 0x26703:xù 0x26704:tuì 0x26706:hán 0x26707:kū 0x2670A:shēn 0x2670B:zhì 0x2670D:pàng 0x2670E:zhēng 0x2670F:lì 0x26710:wǎn 0x26712:fǎn 0x26713:xìn 0x26716:yà 0x2671B:jū 0x2671C:shèn 0x2672D:mǎng 0x2672F:tǔn 0x26730:zhuó 0x26731:xī 0x26732:yìn 0x26733:jīng 0x26734:tún 0x26737:gèng 0x26738:jì 0x2674F:zhuǎn,shuàn 0x26752:tiē 0x26754:zhī 0x26756:jí 0x2675A:yíng 0x2675B:wèi 0x2675D:huàn 0x2675E:tíng 0x2675F:chán 0x26762:kuí 0x26763:qià,kē 0x26764:bàn 0x26765:chā,zhá 0x26766:tuǒ 0x26767:nǎn 0x26768:jiē 0x2676A:yān 0x2676C:tú 0x2676E:wěn 0x26770:cōng 0x26773:xù 0x26774:yìn 0x26777:bèng 0x2677C:lǘ 0x26781:zāi 0x26782:dā,da 0x26786:niè 0x26787:jǔ 0x26788:hóu 0x2678C:gèng 0x26795:hóu 0x26796:kān 0x26797:gōng 0x26799:huǐ 0x2679A:xiè 0x2679D:xì 0x2679E:hán 0x2679F:mí 0x267A1:wěng 0x267A2:hùn 0x267A3:sāo 0x267A4:xìn,zǐ 0x267A5:zhé 0x267A6:huò,hè 0x267A8:gōng 0x267AB:sài 0x267AC:jīn,jiàn 0x267AD:wā 0x267B1:duǐ 0x267B2:chī 0x267BD:xī,wèi,jí 0x267C2:mí 0x267C3:zāng 0x267C4:sǎng,sào 0x267D3:tún 0x267D4:zhì 0x267D5:wěn 0x267D8:yín 0x267D9:tǔn 0x267DB:chōng 0x267DC:zé 0x267DE:xiāo 0x267DF:mó 0x267E0:cù 0x267E3:biǎn 0x267E4:xiū 0x267E7:yí 0x267EE:huǎng 0x267F0:zhā 0x267F1:suō 0x267F2:hún 0x267F3:jù 0x26801:cù 0x26804:jī 0x26805:xún 0x26806:sǔn,zhuàn 0x26807:céng 0x26809:yì 0x2680E:biāo 0x26812:jué 0x26813:lì 0x26816:pào 0x2681B:zā 0x2681C:yè 0x2681E:bì 0x2681F:zhè 0x26820:zhè 0x26822:jiù 0x26823:zhé 0x26826:shù 0x2682A:xī 0x26837:xǔ 0x26838:nǎi 0x26839:xián 0x2683A:gǔn 0x2683B:wèi 0x2683E:jí 0x2683F:sà 0x26842:dǒng 0x26843:nuó,nié 0x26844:dù 0x26845:zhēng 0x26846:kū 0x26849:míng 0x26855:báo 0x26856:huì 0x26859:zōng 0x26868:sàn 0x2686A:tēng 0x2686B:yí 0x2686D:yù 0x26871:yào,shào 0x26872:nǐng 0x26874:chóu,zhǒu 0x26875:hùn 0x26877:duì 0x26879:qì 0x2687A:yǐng 0x2687B:bìng 0x2687C:níng 0x2687D:huáng 0x26886:yǐng 0x2688A:báo,bó 0x2688E:guàng 0x2688F:lěi 0x26890:zǔn 0x26899:chǎn,qiān,xiān 0x268A3:jiǎn 0x268A7:méng 0x268A9:xiào,sōu 0x268AF:xìn,xìng 0x268B1:lí 0x268BA:qiǎo 0x268BF:wěi,juǎn 0x268C0:nà,niè,zhé 0x268C2:pāng 0x268C4:léi 0x268C7:luó 0x268CB:luán 0x268CD:gēng 0x268CF:luán 0x268D2:qú 0x268D6:luó 0x268D8:náng 0x268DB:luó 0x268DC:yuè 0x268E2:shuì 0x268E5:mì 0x268E6:wáng 0x268E7:cè 0x268E8:jiān 0x268E9:wǎng 0x268EF:jiā 0x268F4:huán 0x268F8:liàn 0x268F9:zì 0x268FA:bái 0x268FB:shǒu,bǎi 0x268FE:wǎn 0x26902:shū 0x26907:guī 0x26908:xī 0x2690A:rú 0x2690B:yào 0x2690E:gāo 0x26915:yuè 0x26918:yōng 0x26919:wà 0x2691A:bó 0x2691F:xìn 0x26922:pì 0x26923:bó 0x26926:hài,hè,ài 0x26927:zhài 0x26928:wò 0x2692A:yè 0x2692B:bì,bí 0x2692C:hài 0x26938:chì 0x2693B:zhì 0x2693D:ní 0x26941:wú 0x26942:ǎi 0x26948:ǎi 0x26949:yǔ 0x2694A:chì 0x2694D:jìng 0x2694E:zhì 0x2694F:zhì 0x26950:zhì 0x26951:jú,jǔ,póu 0x26956:hán,xián 0x2695A:pīng 0x2695D:yǎo 0x26963:yóu 0x26964:pīng 0x26966:mò 0x2696C:zuò 0x2696D:pò 0x2696F:xué 0x26970:kuáng 0x26971:yì 0x26972:pò 0x2697B:zhuì 0x26983:ní 0x26984:qiǔ 0x26985:còu 0x2698C:yǎo 0x26991:fén 0x26995:xiá 0x26997:jiāng 0x26998:chā 0x2699B:xiào 0x2699C:chā 0x269A2:chéng 0x269A3:cuì 0x269A7:qióng,gǒng 0x269A9:yù 0x269AB:yú 0x269AF:wèn 0x269B1:chā 0x269B2:yǔ,yù 0x269B9:zuó 0x269BA:dǎo 0x269BD:juàn,fàn 0x269BE:dǎo 0x269BF:yīng 0x269C1:fěng 0x269C5:wèng 0x269C8:jìn 0x269C9:qì 0x269CB:qìn 0x269CD:kuò 0x269CF:tān 0x269D0:xiān 0x269D2:tiān 0x269D4:kuò 0x269D6:tiàn 0x269D8:hú 0x269D9:zhū 0x269DA:zhān 0x269DB:tà 0x269DD:tiān 0x269DE:tà 0x269DF:tà 0x269E0:huá 0x269E1:yǎn,tiàn 0x269E2:tiè 0x269E4:tiè 0x269E5:tà 0x269EC:huài 0x269EE:jiá 0x269EF:qì 0x269F1:tà 0x269F4:tān 0x269F5:huà 0x269F8:zhuàn 0x269F9:huā 0x269FC:lán 0x26A06:zūn 0x26A07:yì 0x26A08:fú 0x26A09:wù 0x26A0B:fú 0x26A0D:dīng 0x26A0E:tà 0x26A16:chào 0x26A19:rì 0x26A1A:quǎn 0x26A1C:gē 0x26A21:fú 0x26A22:dì 0x26A23:diāo 0x26A24:yǒng 0x26A26:jià 0x26A29:lóng 0x26A2C:yǒng 0x26A2D:pí 0x26A2F:huó 0x26A30:qióng 0x26A32:fán 0x26A33:wú 0x26A34:tóng 0x26A35:háng 0x26A38:tān 0x26A3E:hēng 0x26A44:tiāo 0x26A48:zhōu 0x26A4B:bài 0x26A4C:xiè 0x26A4D:dāo,diāo 0x26A4F:jīn,wéi 0x26A55:hū 0x26A56:bēi 0x26A58:dìng 0x26A5C:nuó 0x26A5D:wèi 0x26A5E:yú 0x26A60:xīng 0x26A61:fú 0x26A62:xiàn 0x26A63:qì 0x26A64:tū 0x26A67:jí 0x26A69:yìng 0x26A6B:dèng,téng 0x26A6C:wēi 0x26A6D:xī 0x26A6F:pái 0x26A71:shéng 0x26A72:yǒu 0x26A74:ái 0x26A75:jiàn 0x26A77:gōu 0x26A78:ruò 0x26A7C:gòng 0x26A7F:shà 0x26A80:táng 0x26A87:lù 0x26A88:áo 0x26A8A:qì 0x26A8B:xiū 0x26A8D:dāi 0x26A91:fá 0x26A92:wèi 0x26A94:dùn 0x26A95:liáo 0x26A96:fān 0x26A97:huáng,héng 0x26A98:jué 0x26A99:tà 0x26A9A:zùn 0x26A9B:ráo 0x26A9C:cān 0x26A9D:téng 0x26AA0:huà 0x26AA1:xū 0x26AA3:zhān 0x26AA7:gǎn 0x26AAA:péng 0x26AAB:cān 0x26AAC:xiē 0x26AAD:dá 0x26AB1:jì 0x26AB6:lǐ 0x26AB9:pán 0x26ABD:lóng,lǒng 0x26ABE:lì 0x26ABF:xí 0x26AC0:téng 0x26AC3:líng 0x26AC8:lǐ 0x26AC9:rán 0x26ACA:líng 0x26ACE:gǔn 0x26AD4:pō 0x26AD5:mò 0x26AD6:pāi 0x26AD9:bà 0x26AE1:qí 0x26AE4:yán 0x26AEA:wà 0x26AEB:ǎng 0x26AED:mìng 0x26AEE:mǐn 0x26AEF:xùn 0x26AF0:méng 0x26AF3:guǎi 0x26AF6:jiāo 0x26AFB:gǎi 0x26B01:cái 0x26B02:wù 0x26B03:zhé 0x26B04:rěn 0x26B05:kōu 0x26B14:zhǎo 0x26B15:zhōng 0x26B16:qiú 0x26B17:guō 0x26B18:gōng,sōng 0x26B19:pū 0x26B1A:hù 0x26B1B:miǎn 0x26B1E:tiān 0x26B23:wǎng 0x26B38:zhú 0x26B39:dá,dàn 0x26B3A:xiòng,huǎng 0x26B3B:ná 0x26B3E:juān 0x26B41:niǎn 0x26B48:hù 0x26B49:shā 0x26B5C:zhī 0x26B5F:tā 0x26B61:sī 0x26B65:yì 0x26B6D:qióng 0x26B6E:zhì 0x26B6F:lǚ,lóu 0x26B70:rú 0x26B72:qí 0x26B73:yǔ 0x26B74:zhōu 0x26B75:yáng 0x26B76:xiǎn 0x26B77:móu 0x26B78:chóu 0x26B79:huī 0x26B7A:jiū 0x26B7B:jiù 0x26B7C:piǎo,bì 0x26B81:jiào 0x26B83:guāi,kuā 0x26B85:mò 0x26B90:xī 0x26B91:pú 0x26BAF:jì 0x26BB6:wěn 0x26BB7:bèi 0x26BB8:yǐ 0x26BB9:fú 0x26BBA:sī 0x26BBB:juān 0x26BBC:jì,qí 0x26BBE:nì 0x26BC0:bèn 0x26BC5:xù 0x26BC8:qǐn 0x26BC9:bó 0x26BCC:wáng 0x26BCD:zhè 0x26BCF:wò 0x26BD0:sháo 0x26BD1:zào 0x26BD2:yǎng 0x26BD5:sòng 0x26BD6:niè 0x26BDB:bì 0x26BE3:cú 0x26BE4:qiāng 0x26BEA:xiào 0x26BEB:zhī 0x26BEC:shé 0x26BEF:zhì 0x26BF0:pēng 0x26C0F:diào 0x26C16:wò 0x26C18:zhǐ 0x26C19:bì 0x26C1B:fén 0x26C21:nà 0x26C25:bāng 0x26C2A:qiú 0x26C2B:nǐ 0x26C2C:bó 0x26C2D:dùn 0x26C2F:shǐ 0x26C30:xū 0x26C31:cháng 0x26C32:xū 0x26C33:yé 0x26C34:mí 0x26C38:xīn 0x26C39:zhuó 0x26C3A:fù 0x26C3D:pǐ 0x26C3E:xuè 0x26C40:yù 0x26C41:xián 0x26C42:yù 0x26C43:yú 0x26C45:jū 0x26C46:tā 0x26C47:kōng 0x26C4A:zhēng 0x26C4B:méng 0x26C4C:gāng 0x26C52:mù 0x26C53:xǐ 0x26C54:bì 0x26C56:fù 0x26C5C:xiào 0x26C60:jiū 0x26C63:gǒu 0x26C70:chí 0x26C71:jiū 0x26C72:jiū 0x26C75:shā 0x26C77:fēi 0x26CAB:fú 0x26CAF:wàn 0x26CB0:xū 0x26CB1:bō 0x26CC1:hào,mào 0x26CC3:xié 0x26CC4:pián 0x26CC5:yǔ 0x26CC7:tián 0x26CC8:pí,bì 0x26CCA:shǐ 0x26CCB:kuǎi 0x26CCC:jī 0x26CCF:zhā 0x26CD0:nài,nà 0x26CD1:mǒu 0x26CD3:fú 0x26CD4:dù 0x26CD7:shěng 0x26CD8:chá 0x26CDA:chí 0x26CDB:guǐ 0x26CDC:mín 0x26CDD:tāng,dàng 0x26CDE:bài 0x26CDF:qiāng 0x26CE1:zhuó 0x26CE2:wèi 0x26CE3:xún 0x26CE5:miǎo 0x26CE6:zāi 0x26CE7:yóu 0x26CE9:yòu 0x26CEB:shān 0x26CEC:hé 0x26CED:lǚ 0x26CEE:zhí 0x26CF2:jìng 0x26CF3:zhēn 0x26CF6:méng 0x26CF7:yóu 0x26CF9:wò 0x26CFA:bá 0x26CFD:juàn 0x26CFE:rú 0x26CFF:còu 0x26D00:zhī 0x26D09:hú 0x26D0A:yāng 0x26D0C:jùn 0x26D0D:shé 0x26D0E:kòu 0x26D11:qián 0x26D14:méng 0x26D1A:tiáo 0x26D50:niè 0x26D5F:chí 0x26D61:xiōng,gōng 0x26D63:hùn 0x26D66:dí 0x26D67:láng 0x26D69:zāo,qiú 0x26D6A:cè 0x26D6B:suǒ 0x26D6C:zù 0x26D6D:suī 0x26D6F:xiá 0x26D71:xiè 0x26D74:jié 0x26D75:yóu 0x26D77:gòu 0x26D78:gěng 0x26D7C:jùn 0x26D7D:huǎng 0x26D7E:jí 0x26D7F:pōu 0x26D80:wū 0x26D82:yì 0x26D85:nǎi 0x26D87:rǒng,ruǎn 0x26D88:nán 0x26D8A:píng 0x26D8B:shàn 0x26D8C:diāo 0x26D8D:jí 0x26D8E:huā 0x26D8F:duì 0x26D90:kǒng 0x26D91:tà 0x26D93:hòng 0x26D95:shū 0x26D99:héng 0x26D9A:fěn 0x26DB2:kòu 0x26DD9:nián 0x26DDD:chú 0x26DE6:qiàng 0x26DF2:xì 0x26DF3:hú 0x26DF4:sòng 0x26DF5:wò 0x26DF7:hài 0x26DF8:rú 0x26DF9:méng 0x26DFB:sǎn 0x26DFD:wú 0x26DFF:yóu 0x26E01:tān 0x26E02:shēn 0x26E06:qǐ 0x26E08:guó 0x26E09:qià 0x26E0A:xiān 0x26E0F:suī 0x26E10:lù 0x26E13:qī 0x26E14:diāo 0x26E17:qí 0x26E18:jiá 0x26E19:yóu 0x26E1A:xí 0x26E1B:cháo 0x26E21:mì 0x26E22:lòu 0x26E23:bǐ 0x26E2A:péi 0x26E2E:zhēn 0x26E2F:shēn 0x26E30:chǎn 0x26E31:fù 0x26E36:qū 0x26E37:sī 0x26E3A:zuī 0x26E6B:zhào 0x26E7D:pí 0x26E80:còu 0x26E86:gāo 0x26E87:dú 0x26E89:fū 0x26E8A:guān 0x26E8B:sǎo 0x26E8C:sǒu 0x26E8D:jiǎn 0x26E8E:póu 0x26E90:cán 0x26E91:bèng 0x26E92:mòu 0x26E93:zhāo 0x26E94:xiáo 0x26E96:jú 0x26E97:shū 0x26E98:jiǎn 0x26E99:lí 0x26E9B:chuàn 0x26E9C:lào,láo 0x26E9E:hè 0x26E9F:hú 0x26EA0:gū 0x26EA1:zhǎng 0x26EA2:jié 0x26EA3:xiàng 0x26EA5:dū 0x26EA6:hán 0x26EA7:jiá 0x26EA8:xiàng 0x26EA9:jí 0x26EAA:shǔ 0x26EAB:làng 0x26EAC:jī 0x26EAD:shān 0x26EB0:tāo,tiáo 0x26EB1:zī 0x26EB2:shuàn 0x26EB4:jí 0x26EB5:chù 0x26EB6:jì 0x26EB7:shēn 0x26EB8:lìn,lín 0x26EB9:liáo 0x26EBB:sǎn 0x26EBD:ǎn 0x26EBE:ruǎn 0x26EC0:tí,tái 0x26EC1:dàn 0x26EC3:huán 0x26EC5:sà 0x26F06:ruí 0x26F07:wū 0x26F08:jù 0x26F09:huán 0x26F0A:léng 0x26F0B:lù 0x26F0E:tān 0x26F0F:zēng 0x26F13:qián 0x26F17:xī 0x26F21:cǐ 0x26F22:shé 0x26F27:sà 0x26F2A:mào 0x26F2B:qú 0x26F2D:bó 0x26F2E:gǎn,gàn 0x26F30:qiè,hé 0x26F31:juàn 0x26F32:dāng 0x26F33:cháng 0x26F34:yáng 0x26F35:hé 0x26F37:jī 0x26F39:bǐng 0x26F3B:méi 0x26F3F:dūn 0x26F40:ǎo 0x26F41:jīng 0x26F42:lù 0x26F43:miàn 0x26F44:diàn 0x26F45:hè 0x26F47:jiān 0x26F4A:huá 0x26F4B:gōu 0x26F4E:lù 0x26F4F:fú 0x26F50:huǐ 0x26F52:zéi 0x26F54:jìn 0x26F55:sī 0x26F56:qūn 0x26F5C:dàn 0x26F5E:wàn 0x26F5F:biǎn 0x26F64:jiá 0x26F6B:dǎn 0x26F6C:jiū 0x26F6D:xián 0x26F6E:bó 0x26F8F:xiá 0x26F91:biāo 0x26F95:pò 0x26F98:sǎo 0x26F99:bèi 0x26F9A:shà 0x26F9B:wěi 0x26F9D:cāng 0x26F9E:lù 0x26FA9:dàn 0x26FAB:gǔ 0x26FAC:zā 0x26FAD:bǎng 0x26FAE:gàn,gǎn 0x26FB1:chāo 0x26FB2:jì 0x26FB3:liē 0x26FB5:qióng 0x26FB6:jiàn 0x26FB7:lù 0x26FB8:duān 0x26FB9:suān 0x26FBA:yáo 0x26FBB:yǐn 0x26FBD:tà 0x26FBE:yáo 0x26FBF:jīng 0x26FC0:chú 0x26FC1:fú 0x26FC2:yuán 0x26FC3:shǎo 0x26FC5:bìng 0x26FC6:dàng 0x26FC7:shì 0x26FCA:lú 0x26FCB:qiè 0x26FCC:luó 0x26FCD:pò 0x26FCF:méng,mèng 0x26FD0:jié 0x26FD3:jī 0x26FD6:lù 0x27004:chàng 0x27005:miè,mò 0x27006:méng 0x27007:jiǎn 0x2700A:cǎi 0x2700C:sù 0x27014:hè 0x27015:sà 0x27017:zī 0x27018:kēng 0x27019:gěng 0x2701A:sī 0x27020:tí 0x27021:zhàn 0x27022:xiè 0x27023:shuí 0x27024:chǐ 0x27025:yōu 0x27026:lǔ 0x27027:mèng 0x27028:liè 0x27029:sì 0x2702C:xī 0x2702D:fán 0x2702E:fū 0x2702F:shěn 0x27030:tí 0x27031:chài 0x27032:yuè 0x27034:fū 0x27035:jiàn,shǎn 0x27036:dì 0x2703A:xié 0x2703B:dān 0x2703F:zhí 0x27043:xù 0x27048:niè 0x27049:fàn 0x2704A:méng 0x2704B:mǐn 0x2707E:lóu 0x2707F:dú,shǔ 0x27081:zhàn 0x27082:jiàn 0x27083:hàn 0x27084:dàn 0x27085:sēn 0x27086:jiàn 0x27087:tán,xún 0x27088:jiǎo 0x27089:pó 0x2708B:píng 0x2708D:zhuàn,sūn 0x2708F:liáo 0x27090:zì 0x27092:zhuó 0x27094:hù 0x27099:xì 0x2709B:méng 0x2709C:jù 0x2709D:miè 0x2709E:xián 0x270A0:kuì 0x270A1:méng 0x270A2:jiān 0x270A6:nóu 0x270A8:dì 0x270A9:sāo 0x270CF:chù 0x270D0:zhí 0x270D1:qián 0x270D2:lǚ 0x270D4:zhuó 0x270D8:zuò 0x270D9:hán 0x270DA:suǐ 0x270DB:gòu 0x270DD:chǒu 0x270DE:jì 0x270DF:yì 0x270E0:yú 0x270E8:nóu 0x270E9:nǐ 0x270EA:ruò 0x270EE:lín 0x270F1:níng 0x2710D:qiáo 0x2710E:yáo 0x2710F:fù 0x27110:shuāng 0x27111:kuì 0x27112:qú 0x27113:dǒng 0x27114:shǔ 0x2711A:lí 0x2711B:jú 0x2711C:ruǐ 0x27120:zhá 0x27124:xiāo 0x27138:mén,wěi 0x27139:shí 0x2713A:diān 0x2713B:lì 0x2713C:dèng,téng 0x2713D:zàn,zā 0x2713F:luó 0x27140:cán 0x27143:āo 0x27146:jiǎn 0x27148:diào 0x2714B:yíng 0x27156:yì 0x27157:dǎng 0x27158:nóu 0x2715A:yuè 0x2716E:lǐ 0x2716F:lí 0x27170:hù 0x27172:yòu 0x2717A:nàng 0x27182:chèn 0x27189:fēng 0x2718A:biē 0x2718F:mǎn 0x27190:gàn 0x27191:huò,suǐ 0x27193:cū 0x27195:yǒu 0x27198:yòu 0x2719C:xū 0x271A1:xù 0x271A2:hǔ 0x271A3:lú 0x271A5:xiá 0x271A6:yì 0x271AE:hǔ 0x271AF:hù 0x271B0:zǐ 0x271B7:gōng 0x271B8:tuī 0x271B9:wū 0x271BA:líng 0x271BB:gū 0x271BC:zhōng,dōng 0x271C4:lú 0x271C8:zù 0x271CC:tóng 0x271CD:xiā 0x271CE:hé 0x271D3:yuè 0x271D9:nán 0x271DA:bó 0x271DB:hū 0x271DC:qì 0x271DD:shú 0x271DE:qiāng 0x271DF:zhōu 0x271E0:yào 0x271E1:gū 0x271E5:bān 0x271E6:kǎn 0x271EE:hé 0x271EF:jì 0x271F0:hú 0x271F1:yán 0x271F6:chūn 0x271F7:dǐng 0x271F8:qiū 0x271F9:hóu 0x271FC:hào 0x271FF:zù 0x27201:xián 0x27204:xià 0x27205:xì 0x27208:sè,xì 0x2720C:gé 0x2720D:xì 0x27211:gé 0x27214:lǚ 0x27216:gé 0x27217:kè 0x27219:shòu 0x2721A:zhù 0x2721C:téng 0x2721D:yà 0x2721E:nì 0x27226:luò 0x27227:suī,méng 0x2722A:chǎn 0x2722D:wù 0x2722F:yū 0x27239:zǎo 0x2723B:yì 0x2723C:xī,jí 0x2723D:hóng 0x2723E:quán 0x2723F:wǎng 0x27240:chǐ 0x27241:xì 0x27242:tiǎn 0x27243:yǔn 0x27245:yī 0x27246:jí 0x27247:huī 0x27248:fóu,fú 0x2724A:fǔ 0x2724D:jí 0x2724E:xuán 0x27251:tài 0x27253:dù 0x27257:yuán 0x2725B:dì 0x2725E:zhǔ 0x2725F:tāi 0x27261:rǒng 0x27262:xué 0x27263:yù 0x27264:fàn 0x27265:běi 0x27267:qǔ,jié 0x27269:bù 0x2726A:jiā 0x2726B:zhá 0x2726D:nǔ 0x2726E:shé,yán,yí 0x27272:lì 0x27284:guǐ 0x27285:guǎi 0x27287:dài,dé 0x2728F:gāi 0x27292:cì 0x27294:yǎn 0x27295:sōng 0x27296:shì 0x27298:kù 0x27299:zhǐ 0x2729A:tóng 0x2729B:qú 0x2729C:è 0x2729E:xíng 0x2729F:rú 0x272A0:yú,shū 0x272A3:yì 0x272A4:yì 0x272A5:xù 0x272A6:fǒu 0x272A7:gé,è 0x272AC:hé 0x272AD:yīn 0x272AF:hòng 0x272B1:duǒ 0x272BD:xíng 0x272BE:fán 0x272C9:qī 0x272CA:shā,shuō 0x272CC:dù 0x272CD:dì,xué 0x272CE:lí 0x272CF:yì 0x272D0:xí 0x272D1:gěng 0x272D2:tóng,shì 0x272D3:kào 0x272D4:hòng 0x272D5:kùn 0x272D6:niè 0x272D7:chí 0x272D8:tí 0x272DA:tóng 0x272E0:lí,lǐ 0x272E1:nà 0x272F1:zhān 0x272F2:běi 0x27301:tiáo 0x27303:zā 0x27304:è,yè 0x27305:shòu 0x27306:kōng 0x27307:péng 0x27308:fù 0x27309:lù 0x2730A:xiè 0x2730B:xiè 0x2730C:xiū 0x2730D:lù 0x2730E:tiǎn 0x2730F:tà 0x27310:cì 0x27311:qū 0x27313:fù 0x27314:zhī 0x27316:xiè,shè 0x27317:zǒu 0x27318:fèi 0x27319:mín 0x2731A:xīng 0x2731D:tóng 0x2731E:qí 0x27320:piāo 0x27322:suì 0x27323:ěr 0x27327:hǔ 0x2733B:sōng 0x2733D:biē 0x2733E:dīng 0x2733F:bǎn 0x27340:shī,lǐ 0x27341:xiè 0x27342:xiáo 0x27343:fěi 0x27352:chuǎn,chuǎi 0x27353:shuài 0x27354:yāo 0x27355:jué 0x27356:shěng,nìng 0x27358:yōu 0x27359:fàn 0x2735C:kuí 0x2735D:dì 0x2735F:máo 0x27360:jié 0x27362:yán,yǐn 0x27365:wēi 0x27368:sāng 0x27369:jié 0x2736A:yú 0x2736B:wèi 0x2736C:è 0x2736D:quán 0x2736E:jiǒng 0x2736F:féng 0x27370:lóng 0x27371:dié 0x27372:pián 0x27374:liàn 0x27375:hú 0x27376:lǜ 0x2737F:diàn 0x27383:cuì 0x27384:móu,wù 0x27395:wáng 0x27396:juān 0x27397:kē 0x27398:yán 0x27399:jiǎo 0x273A1:gōng 0x273A3:róng 0x273A4:sūn 0x273A5:shàn 0x273A8:chí 0x273AA:qí 0x273AB:suǒ 0x273AD:yè 0x273AE:zǎo 0x273AF:quē 0x273B0:zhǎn 0x273B1:bā 0x273B2:zú 0x273B3:suǒ 0x273B4:zhé 0x273B5:xì 0x273B7:chǔ 0x273B8:jiǎo 0x273B9:zuì 0x273BA:gē 0x273BB:wù,móu 0x273BE:lüè 0x273BF:jí 0x273C2:xié 0x273C3:xié 0x273C6:dǒu 0x273CB:qiū 0x273D1:píng 0x273D3:liú 0x273E5:jié 0x273E7:huì 0x273EB:shà 0x273F8:zhí 0x273F9:ài 0x273FA:xù,òu 0x273FB:bì 0x273FD:yē 0x273FE:nì 0x273FF:zhú 0x27401:sù 0x27403:xié 0x27404:yù,yú 0x27405:qū 0x27408:zú 0x27409:zhī 0x2740A:zhāng 0x2740B:lüè 0x2740C:wěi 0x2740D:chōng 0x2740E:mì 0x27410:jī 0x27412:sù 0x27413:yě 0x27414:xí,yì 0x27415:tuán 0x27416:lián,liàn 0x27417:xuán 0x27419:wù 0x2741F:máo 0x2742C:hóng 0x2742F:lüè 0x27430:dú 0x27431:cóng 0x27432:chán 0x27433:lù 0x27434:sù 0x27440:lüè 0x27446:zhōng 0x27447:lí 0x27448:fèi 0x2744A:jǐng 0x2744B:kuì 0x2744C:yì 0x2744D:huá 0x2744E:cuì 0x27450:yù 0x27451:běng 0x27452:tūn 0x27453:shǔ 0x27454:dài 0x27455:wū 0x27456:cì 0x27457:nìng 0x27458:dàng 0x27459:zú 0x2745A:hán 0x2745C:pí 0x2745D:chuàn 0x27460:dù 0x27461:pá 0x27464:zhū 0x27466:xié 0x27467:zhé 0x27468:qiè 0x27469:xuān 0x2746B:sào 0x27480:bì 0x27482:fù 0x27488:lì 0x2748E:é 0x27490:yē 0x27491:shǔ 0x27493:sè 0x27495:qī 0x27496:guò 0x27497:sè 0x27499:fù 0x2749A:máo 0x2749C:léi 0x2749D:zhān 0x274A8:chài 0x274AD:wèi 0x274BD:léi 0x274BF:zéi 0x274C0:yīng 0x274C1:ài 0x274C2:xiē 0x274C4:bì 0x274CB:chán 0x274CE:pí,bī 0x274CF:cóng 0x274D0:liè 0x274D1:qí 0x274D3:jì 0x274D4:jīng 0x274D5:dōng 0x274D6:féi 0x274D7:yí 0x274D8:tuán 0x274E8:měng 0x274E9:cán 0x274EA:yá 0x274F2:yǎng 0x274F4:tíng 0x274F8:zhí 0x274FA:xiè 0x274FB:lǜ 0x274FD:lì,chài 0x274FF:máo 0x27502:xiá 0x27505:sòu 0x27516:sū 0x27517:xuè 0x2751D:lì 0x2751E:yuán 0x27521:zhǎn 0x27523:tà 0x27524:xuán 0x27525:wèi 0x27526:yè 0x27527:páng 0x27528:máo 0x27529:tí 0x2752A:pín 0x2752C:dù 0x2752D:qiú 0x2752E:yǐ 0x27533:tuó 0x27534:chài 0x27537:jìn 0x2753C:é 0x27543:chán 0x27544:yīng 0x27545:líng 0x27547:xiǎn 0x27549:qī 0x2754B:yuè 0x2754C:lüè 0x2754D:yíng 0x2754E:qú 0x27552:fěi 0x27553:zī 0x27559:qīng 0x2755D:níng 0x2755E:wèi 0x2755F:shuāng 0x27561:fù 0x27564:mò 0x27565:mò 0x27566:tuó 0x27567:chài 0x27568:zàng 0x2756E:lí 0x2756F:lí,shī 0x27571:xiá 0x27572:juǎn 0x27574:nán 0x27575:mì 0x27578:huáng 0x2757A:shuāng 0x2757C:xǔ 0x2757F:fěi 0x27581:xiè,wén 0x27586:tà 0x27587:yǒng 0x27589:zhǎn 0x27591:qiáng 0x27592:náng 0x27594:lìn 0x27598:luán 0x27599:xiǎn 0x2759A:fú 0x2759C:líng 0x275A0:sāo 0x275A2:huì 0x275A8:tíng 0x275AA:qíng 0x275AC:huāng 0x275AE:àn 0x275B5:mǎn 0x275B7:nì,nǜ 0x275BB:guó 0x275BC:ǒu 0x275BF:xiàng 0x275C1:jīn 0x275C6:zhēng 0x275C8:nú 0x275CB:sàn 0x275CC:hù 0x275CE:zú 0x275CF:huǐ 0x275D2:jī 0x275D6:yè 0x275E6:xíng 0x275E9:là 0x275EA:yù,qú 0x275EB:jué 0x275F1:shù,yù 0x275F2:zhēng 0x275F4:yǒng 0x275F6:gē 0x275F8:jiàn 0x275F9:xìn,xiān 0x275FC:huī 0x275FF:shuài 0x27602:chōng 0x27603:háng 0x27608:liǎo 0x2760D:jiāng 0x2760F:gōng 0x27611:zhuó,bào 0x27617:qǐ 0x2761C:qiān 0x2761E:dǒu 0x2761F:pō,bō 0x27622:hù 0x27625:niǔ 0x27627:qì 0x27628:diāo 0x27629:diāo 0x2762B:lì 0x2762E:xiōng 0x2763D:ná 0x2763F:zhēng 0x27640:là 0x27641:zhì,zī,jì,pī 0x27643:ě 0x27644:bō 0x27645:pō 0x27646:xū 0x27647:yòng,dǎn 0x27648:cí 0x27649:lì 0x2764C:páo 0x2764F:xiù,yǒu 0x2765B:pù 0x2765D:ché 0x2765E:qì 0x27661:yì 0x27663:tí 0x27664:duǒ 0x27665:lóng,tǒng 0x27667:jiàn 0x2766D:zhàn 0x2766E:yuàn 0x27676:yú 0x27678:gēng 0x2767A:hòu 0x2767E:qǐ 0x27680:mù 0x27681:huàn 0x27682:lòng 0x27683:xì 0x27684:é 0x27685:lǎng 0x27686:fèi 0x27687:wǎn,wèn 0x27689:cūn 0x2768B:péng 0x2768F:cuò 0x27690:wēng 0x276A1:gǎo 0x276A5:cuì 0x276A8:qì,shà,qiè 0x276A9:lí 0x276AA:qiè 0x276AB:qiàn,jīng 0x276AC:kōng 0x276AD:běng 0x276AF:shòu 0x276B7:wēi 0x276C4:shān 0x276CF:zī 0x276D2:tì 0x276D3:qiān 0x276D4:dú 0x276D7:tú 0x276DA:wēi 0x276DE:hú 0x276DF:xīng 0x276E1:shān 0x276E2:zhǐ 0x276E7:chǐ 0x276F8:zhòu 0x276F9:wēng 0x276FA:chí 0x276FB:suǒ 0x276FC:xiè 0x276FE:kè 0x27701:shài,shā,shǎi 0x27702:shī 0x27703:shòu 0x27705:jiè 0x27709:gǎo 0x2770A:lǚ 0x27714:xiè 0x2771A:zhǐ 0x2771E:mán,màn 0x27720:shuài 0x27721:kè 0x27723:diǎo 0x27724:yī 0x27726:sù 0x27727:chuāng 0x27731:cuì 0x27732:tuò 0x27735:xiè 0x2773D:xuán 0x27742:hè 0x27743:jué 0x27746:tì 0x27747:fèi 0x27749:zhǐ 0x2774A:shì 0x2774B:tuí 0x2774E:chōng,chuáng,chóng 0x27750:tì 0x27751:zhàn 0x27752:héng 0x27754:qú 0x27755:wéi 0x27757:dūn 0x27758:bào 0x2775C:liáo 0x27764:sī 0x2776A:biǎo 0x2776B:xiè 0x2776C:bié,bì 0x2776E:cǒng 0x27772:jù 0x27773:hé 0x27777:kuì 0x27778:yōng 0x27780:shù 0x2778D:niè 0x2778F:yú 0x27790:zhuó 0x27791:méng 0x27792:hú 0x27795:liè 0x2779D:jiē 0x2779E:xióng 0x277A3:yǎn 0x277A9:jié 0x277AA:là,lié 0x277AB:shù 0x277AC:jié 0x277AD:léi 0x277B0:zú 0x277B2:shì 0x277B8:wéi,suì 0x277B9:dū 0x277BA:sù 0x277C3:xié 0x277C4:ráng 0x277CC:luò 0x277D1:qiān 0x277D8:nàng 0x277D9:líng 0x277DC:jì 0x277E0:mìng 0x277E3:gǔ 0x277E8:xuán 0x277EC:xū 0x277F1:bó 0x277FC:wēi 0x27802:kū 0x27806:wǎn 0x27808:chà 0x2780A:mào 0x2780B:kè 0x2780E:cì 0x27812:xiàn 0x27813:mò 0x2781A:hūn 0x2781B:chàn 0x2781C:shī 0x2781D:zhěn 0x2781E:è 0x2781F:mí 0x27821:shī 0x27822:qū 0x27823:shū 0x27825:cī 0x27826:yǎn 0x27829:hū 0x2782A:qī 0x2782B:zhì,dí,chì 0x2782C:huāng 0x27834:zhǐ 0x27836:yǒu 0x2783C:gào 0x2783D:yǎo 0x2783E:pōu 0x27847:yí 0x27848:chèng 0x27849:jì 0x2784B:ǎi,yá 0x2784D:dòng 0x2784F:suì 0x27851:jiù 0x27858:qì,qīn 0x27859:lián 0x2785A:xuǎn 0x2785C:liǎo 0x27861:yùn 0x27862:xuǎn 0x27863:cóu 0x27864:piān 0x27866:kuí 0x27868:tí 0x27869:huǎn 0x2786A:dān,dàn 0x2786B:guì,kuì 0x2786C:chēn 0x2786E:shǎng 0x2786F:jì 0x27874:liàn 0x27875:kān 0x27876:shèng 0x27878:dōu 0x27879:yóu 0x2787A:qí 0x2787C:xiǎo 0x27882:yì 0x27883:lóu 0x27886:chuāng 0x2788B:lào 0x2788C:gāo 0x27890:zēng 0x27892:wéi,wěi 0x27896:jiān 0x2789B:yīng 0x2789C:fán 0x2789D:lì 0x2789E:qiān 0x278A2:yào 0x278A6:kuī,kuí,guì 0x278A7:wéi 0x278A9:què 0x278AC:xiǎo 0x278AD:què 0x278B0:hū 0x278B5:duō 0x278B6:chù 0x278B9:shēn,jīn 0x278BC:zhuó 0x278BD:é 0x278BE:jì 0x278C1:tán 0x278C3:pā 0x278CB:jiè 0x278CC:qiào 0x278D1:qián 0x278D2:jù 0x278D5:qiú 0x278D6:tuó 0x278DA:nuò 0x278DB:sì 0x278DF:yí 0x278E1:gǔ 0x278E2:hùn 0x278E3:pá 0x278E4:zī 0x278E6:jiāo 0x278E9:xǐ 0x278EA:shǎo,shào 0x278EC:yí 0x278ED:zhì 0x278F5:lùn 0x278F7:zhōu 0x278F8:jué 0x278F9:tán 0x278FA:nuò,chuò 0x278FB:jù 0x278FC:hú 0x278FE:zhì 0x27903:bī 0x2790D:chì,tì 0x2790E:xuān 0x2790F:jí 0x27910:guǎ 0x27911:jú 0x27912:wò 0x27913:tuó 0x27915:qiú 0x27916:wēi 0x27917:duān 0x27919:shòu 0x2791B:zhěn 0x2791C:nè,lì 0x2791F:xì 0x27920:zhé 0x27921:zhì 0x27923:ná 0x27928:jiān 0x2792E:yáo 0x2792F:guó,yuè 0x27932:dǐ 0x27934:huò 0x27935:jīng 0x2793C:jué 0x2793D:yuè,jiàn 0x27944:jí 0x27946:sù 0x27948:jiān 0x2794A:kūn 0x2794B:wò 0x2794C:kuàng 0x2794D:biāo 0x2794E:jué 0x27951:bì 0x27953:chán 0x27955:zī 0x27956:lí,shǐ 0x2795A:fó 0x2795B:qiǎn 0x2795C:yǎn 0x2795E:tàn 0x2795F:mò 0x27963:kòu 0x27964:xī,xiē 0x2796E:hù,dǐ 0x2796F:hù 0x27971:fú 0x27974:yàng 0x27975:guò 0x27977:rén 0x27978:yìn 0x27979:fēng 0x2797A:jùn,yùn 0x2797C:yún 0x2797F:xùn 0x27981:xì 0x2798E:xiā 0x27991:háng 0x2799A:hù,dǐ 0x2799D:hū,hào 0x2799E:pù 0x2799F:fān 0x279A4:jiā 0x279A7:yí,tuō 0x279AD:tuō,xī 0x279AE:ná 0x279B8:yín 0x279B9:yìn 0x279C3:jì 0x279C4:wàng 0x279C5:shì,jiàn 0x279C6:duī 0x279C7:duò 0x279C9:tuó 0x279CA:wā 0x279CB:lì 0x279CF:rè,rě 0x279D2:cì 0x279D3:xù 0x279D4:zhōu 0x279D5:zì 0x279DC:wǎng 0x279DD:yǎ 0x279DF:jì 0x279E0:chǎo 0x279E9:jí 0x279F5:shǎn 0x279F6:tú 0x279F8:bié 0x279F9:xì 0x279FA:pī 0x279FB:zhà 0x279FE:huì 0x27A00:suō,zuò 0x27A02:hè 0x27A04:yuē 0x27A06:wū,huǎng 0x27A08:líng,wū 0x27A0A:zhà 0x27A0B:huá 0x27A17:chán 0x27A1F:è 0x27A21:chén 0x27A27:suì 0x27A29:tiǎn 0x27A30:zhì 0x27A31:tì 0x27A32:āo 0x27A33:zhuó 0x27A34:zì 0x27A35:kē 0x27A37:sè 0x27A38:tián 0x27A39:lù 0x27A3E:shán 0x27A3F:zhǎ 0x27A43:chōng 0x27A45:yàn 0x27A52:mǔ 0x27A53:hū 0x27A5A:chī 0x27A5D:sù 0x27A63:nǎo 0x27A66:jí 0x27A67:duó 0x27A68:hòu 0x27A6A:còng 0x27A6B:zhā,chà 0x27A6C:yín 0x27A6E:xiǎo,sǒu,sòu 0x27A70:biàn 0x27A71:bèng 0x27A72:là 0x27A74:chī,chì 0x27A76:qià 0x27A78:ān 0x27A79:shī,yǐ 0x27A7C:chì,zhǐ 0x27A85:nù 0x27A87:jì 0x27A93:ǒu 0x27A95:xiā 0x27A98:chài,cuǒ,jiē 0x27A9A:ái 0x27A9D:shèng 0x27A9E:hé,gé 0x27AA0:jí 0x27AA1:chī 0x27AA2:xì 0x27AA3:zhēng 0x27AA6:tā 0x27AA8:mà 0x27AAB:pī 0x27AAE:xū,huá 0x27AAF:qiǎn 0x27AB9:xià 0x27ACA:yù 0x27AD1:jié 0x27AD2:xià 0x27AD3:lǔ 0x27AD5:qiè 0x27AD7:chà 0x27ADB:yàng 0x27ADC:jì 0x27ADD:shǎ 0x27ADE:lòu 0x27AE0:jī 0x27AE1:zhì 0x27AE2:wàng 0x27AE4:bì 0x27AE5:ān 0x27AE6:yī 0x27AE7:ān,àn 0x27AEC:lí 0x27AF9:xiān 0x27AFE:jiù 0x27AFF:tǎn 0x27B01:hào 0x27B02:hè 0x27B05:zhā 0x27B06:zhǎn 0x27B07:yì 0x27B08:xì 0x27B0A:xì,sí 0x27B0B:fà 0x27B0C:yán 0x27B0F:mǔ 0x27B15:gū 0x27B1E:yún 0x27B24:zhòng 0x27B26:chǎn 0x27B27:chuáng 0x27B28:huì 0x27B29:zá 0x27B2A:gùn 0x27B2B:jiǎn 0x27B2C:yá 0x27B30:xiàng,xiǎng 0x27B31:hè 0x27B43:dàn 0x27B47:mián 0x27B48:níng,nìng 0x27B4A:méng 0x27B4C:liè 0x27B4D:zhòu 0x27B4E:pū 0x27B4F:tāi 0x27B53:yíng 0x27B54:téng 0x27B55:guó 0x27B5A:qiáng 0x27B5C:lǜ 0x27B5D:sà 0x27B5E:liè 0x27B5F:chí 0x27B60:xiě 0x27B63:guó 0x27B64:bào,báo 0x27B65:luò 0x27B66:juàn,xuān 0x27B6A:è 0x27B73:hé 0x27B75:mèi 0x27B78:xiè 0x27B79:pín 0x27B7B:hān 0x27B7C:chèn 0x27B7D:shàn 0x27B7E:huì 0x27B86:yīng 0x27B88:jiǎn 0x27B8D:ān 0x27B91:tà 0x27B92:yī 0x27B93:tuí 0x27B97:liú 0x27B99:zuó 0x27B9B:lí 0x27B9D:pín 0x27B9E:xuè 0x27BA0:nèn 0x27BA1:dòu 0x27BA4:lǎn 0x27BAA:zhān 0x27BAB:jué 0x27BAC:zhēn,jué 0x27BAD:jí 0x27BAE:qiān 0x27BB0:hān 0x27BB1:fén 0x27BB3:hān 0x27BB4:hóng 0x27BB5:hé 0x27BB6:hóu 0x27BBA:zhàn 0x27BBB:chóu,xiāo 0x27BBC:tài 0x27BBD:qiàn 0x27BBF:shè 0x27BC0:yīng 0x27BC3:qīn 0x27BC6:huò 0x27BC8:xì 0x27BC9:hè 0x27BCA:xì 0x27BCB:xiā 0x27BCC:hāo 0x27BCD:lào 0x27BCF:lì 0x27BD2:chēng 0x27BD6:jùn 0x27BD7:xī 0x27BD8:hǎn 0x27BDE:dòu,dōu 0x27BE0:dōu 0x27BE1:wān,yuè 0x27BE4:dōu 0x27BE5:zài 0x27BE6:juàn 0x27BE8:lǒu 0x27BE9:chù 0x27BEB:zhēng 0x27BEF:qí 0x27BF0:kàn 0x27BF1:huò,yù 0x27BF2:lái 0x27BFA:gāi 0x27BFC:shòu 0x27BFE:dōng 0x27C03:lóu 0x27C04:tuān 0x27C07:yú 0x27C08:wù 0x27C0A:tián 0x27C12:guó 0x27C18:tán 0x27C19:qí 0x27C20:liè 0x27C21:lì 0x27C23:xūn 0x27C28:gèng 0x27C29:tīng 0x27C2A:hàn 0x27C2B:chù 0x27C2D:tún 0x27C2F:xióng 0x27C30:yóu 0x27C31:mò 0x27C32:chǐ 0x27C34:hǔ 0x27C35:dū,dú,zhuó 0x27C37:mǔ 0x27C39:nà 0x27C3B:líng 0x27C3F:ài 0x27C40:xiān 0x27C44:kǎn 0x27C45:sì 0x27C46:sān 0x27C4A:yì 0x27C4F:yì 0x27C50:xiào,xiāo 0x27C52:zhī,zhuō 0x27C53:dòu 0x27C58:mài 0x27C5C:lún 0x27C5D:jué,jùn 0x27C61:qiāng 0x27C62:líng 0x27C69:pián 0x27C6A:còu 0x27C6B:duò 0x27C6C:yǔ 0x27C70:zhuō 0x27C72:xì 0x27C73:huài 0x27C74:míng 0x27C75:táng 0x27C79:pū 0x27C7B:mì 0x27C7C:mán 0x27C7E:guāi 0x27C80:qiān 0x27C82:lín 0x27C83:mǐn 0x27C84:wěi 0x27C85:céng 0x27C87:hù 0x27C88:suí 0x27C8B:jù 0x27C8C:shà 0x27C8D:méng 0x27C97:wéi 0x27C98:xī 0x27C99:lìng 0x27C9C:bì 0x27C9D:wèi 0x27CA1:lì 0x27CA2:zhé 0x27CA4:yóng 0x27CA5:hú 0x27CA6:wán,hé 0x27CA7:bā 0x27CA8:jiān 0x27CAD:zuǒ 0x27CAE:zhǎn 0x27CAF:bō 0x27CB0:qiū,chū 0x27CB1:yāng 0x27CB4:dōng 0x27CB5:qú 0x27CBA:pí 0x27CBB:zhǎi 0x27CBE:shān 0x27CBF:gòu 0x27CC0:biào,nǎo 0x27CC1:yí 0x27CC2:fú 0x27CC4:xìn 0x27CC5:shì,shǐ 0x27CC6:tōng,tóng 0x27CC9:dīng 0x27CCC:tū 0x27CCD:xiāo 0x27CCE:wú 0x27CCF:péi 0x27CD0:huī,xī 0x27CD5:lái 0x27CD9:sì 0x27CDA:cuǐ 0x27CDB:shà 0x27CDC:zhǒu 0x27CDD:zhào 0x27CDE:wéi 0x27CDF:lái 0x27CE0:bì,bǐ 0x27CE3:dǒng 0x27CE6:nǎo 0x27CE7:xiē 0x27CE8:rǎo 0x27CE9:tuàn 0x27CEA:wèi 0x27CEB:yóu,jiū,qiú,yòu 0x27CEC:méi 0x27CED:yuán 0x27CEE:zhòng 0x27CF6:sōu 0x27CF8:gú 0x27CF9:shào 0x27CFB:zhǎo 0x27CFC:pí 0x27CFF:tōng 0x27D01:chī 0x27D02:péng 0x27D03:chán 0x27D04:yōng 0x27D05:shuǎng 0x27D07:wǔ 0x27D09:pí 0x27D0A:huàn 0x27D0C:fú 0x27D0E:biào 0x27D13:náo 0x27D15:biào 0x27D16:wèi 0x27D17:yōng 0x27D19:nǎo 0x27D1A:guài 0x27D20:lì 0x27D22:xìn 0x27D23:yán 0x27D24:pò 0x27D25:péi 0x27D2A:suǒ 0x27D2C:rèn 0x27D2D:shǎn 0x27D32:suǒ 0x27D38:dān 0x27D3A:mèn 0x27D43:shǒu 0x27D48:gòu 0x27D4A:hān,hàn,tàn 0x27D4B:shì 0x27D4C:yǎng 0x27D4E:gǔ 0x27D5B:kē 0x27D5E:jū 0x27D60:pài 0x27D61:cè 0x27D62:bāo 0x27D63:xiōng,mín 0x27D64:cái,zhù 0x27D67:lǐn 0x27D68:ài 0x27D6C:mì,shèn 0x27D6D:lǎi 0x27D71:xiāo 0x27D73:shé 0x27D7B:huó 0x27D7C:nì 0x27D84:zhèng 0x27D86:lìn 0x27D87:zhá 0x27D8A:yún 0x27D8D:xù 0x27D94:chéng 0x27D95:wǒ 0x27D96:xī 0x27D99:bèi 0x27D9C:shāng,shǎng 0x27DA0:yù 0x27DA1:mì 0x27DB2:duǎn,zhuàn 0x27DB5:chà 0x27DB7:zé 0x27DB8:chèng 0x27DBA:tíng 0x27DC5:yí 0x27DCB:yāo 0x27DCE:kū 0x27DD0:fén 0x27DD1:xié 0x27DD2:chèng 0x27DDB:kuì 0x27DDF:bīn 0x27DE1:lóu,lòu 0x27DE5:yì 0x27DE6:mì 0x27DE7:xiè 0x27DF1:guī 0x27DF3:luó 0x27DF6:shàn 0x27DFE:jú 0x27DFF:dū 0x27E02:xiān 0x27E05:zhǐ 0x27E08:bìn 0x27E15:zhǐ 0x27E16:zhuàn,lián 0x27E17:xué 0x27E18:liàn,biǎn,jiǎn 0x27E19:suì 0x27E26:làn 0x27E27:jù 0x27E28:mián 0x27E29:xùn 0x27E2A:zhàn 0x27E2B:gùn 0x27E32:zhì 0x27E3D:wèi 0x27E3E:quǎn,xuàn 0x27E3F:chài 0x27E48:réng 0x27E4A:yuè 0x27E4C:zī 0x27E50:luò 0x27E51:guì 0x27E53:chéng 0x27E55:jū 0x27E56:tiǎn 0x27E57:wàn 0x27E5B:zhī 0x27E5E:nǎn,niǎn 0x27E63:hān 0x27E68:xī 0x27E69:lín 0x27E6C:yān 0x27E6D:xù 0x27E72:hù 0x27E73:gàn 0x27E74:xù,huò 0x27E76:xì 0x27E7A:cuì 0x27E7D:xì 0x27E7E:hú 0x27E85:yān 0x27E8E:yì 0x27E8F:chí 0x27E90:jué 0x27E92:zú 0x27E9C:jiào 0x27E9D:yì 0x27E9F:tǎn 0x27EA0:chì 0x27EA1:bá 0x27EA2:tòu,yì 0x27EA3:zōng 0x27EA4:qiú,jū 0x27EA7:chì 0x27EA8:xǐ 0x27EB0:nì 0x27EB2:cū 0x27EB4:wǔ 0x27EB6:chù 0x27EB7:sū 0x27EB8:yóng 0x27EB9:jǔ 0x27EBA:bá 0x27EBC:cǐ 0x27EBD:dì 0x27EBE:pǎn 0x27EBF:chì,yì 0x27EC1:qiǔ 0x27EC3:yán,qù 0x27ECD:zhǎi 0x27ED2:xiàn 0x27ED3:bèng 0x27ED4:kuāng 0x27ED5:qì 0x27ED6:zhōu 0x27ED7:jú 0x27ED8:qiè 0x27ED9:mò,pò 0x27EDA:yuán 0x27EDC:guì,kuǐ 0x27EDD:zuī 0x27EE7:qiè 0x27EF0:hú,zào 0x27EF1:qiú 0x27EF2:hái,kuī 0x27EF3:fù 0x27EF4:làng 0x27EF5:shà 0x27EF6:xī 0x27EF7:bū 0x27EF8:shì 0x27EF9:yǒng 0x27EFA:guāng,kuāng 0x27EFC:niè 0x27EFF:hǒu 0x27F0A:mì 0x27F0E:è 0x27F0F:xián 0x27F10:yǔn,qūn 0x27F11:xù 0x27F12:qǐn 0x27F13:dōng 0x27F14:léng 0x27F15:qì 0x27F16:lán 0x27F17:fú 0x27F18:qǐ 0x27F19:chǒng 0x27F1C:cù 0x27F1F:mò 0x27F20:bēi 0x27F24:dào 0x27F28:jié,jué 0x27F29:chòng,dòng 0x27F2A:chì 0x27F2B:yù 0x27F2C:cuī 0x27F2D:sù,sōu,sǒu,qiù 0x27F2E:tì 0x27F2F:shù,yú 0x27F30:zhá 0x27F31:fú,bí 0x27F33:chè 0x27F34:fó,zhì 0x27F35:hóu 0x27F36:zhá 0x27F44:jié 0x27F45:zhá 0x27F46:zhān 0x27F49:yǎn 0x27F4A:hái 0x27F4B:wǔ 0x27F4C:huá 0x27F4D:diān,diàn 0x27F4E:yáo 0x27F4F:sōu 0x27F50:qiān 0x27F51:jí 0x27F52:xiòng 0x27F53:qì 0x27F54:jūn 0x27F56:hái 0x27F5E:yǎn 0x27F5F:jié 0x27F60:cuī 0x27F62:tuán 0x27F63:zhāng 0x27F64:piāo 0x27F65:lù 0x27F66:zhī 0x27F67:chù 0x27F68:mì 0x27F69:qiāng 0x27F6B:liàn 0x27F72:lì 0x27F76:é 0x27F77:sù 0x27F78:jué,guì 0x27F7B:jú 0x27F7C:tán 0x27F7D:liáo 0x27F7E:sān,cún 0x27F7F:dòng 0x27F81:zá 0x27F82:zhí 0x27F86:xuàn 0x27F87:líng 0x27F8A:dēng 0x27F8D:zhān,zhàn,chán 0x27F8E:xuān 0x27F8F:qǐn 0x27F90:jiào 0x27F91:pì 0x27F94:hǎn 0x27F9A:yú 0x27F9B:guó 0x27F9D:xún 0x27FA0:xún 0x27FA1:chán 0x27FA2:jié,jí 0x27FA3:jú 0x27FA4:yǎn 0x27FA5:dú 0x27FA7:hòng 0x27FA8:xiàn,xiǎn 0x27FA9:xún,xuàn 0x27FAE:líng 0x27FAF:jié 0x27FB0:yì 0x27FB1:qú 0x27FB2:gān 0x27FB3:fēng 0x27FB5:jué 0x27FB6:qū 0x27FBB:jiù 0x27FBD:jì 0x27FBE:jǐ 0x27FC5:xí 0x27FC6:pāng 0x27FC8:kuàng 0x27FC9:kù,wù 0x27FCB:kù 0x27FCC:zhà 0x27FCF:bà 0x27FD2:chěn 0x27FD3:hù 0x27FD4:nù 0x27FD5:é 0x27FD6:xiōng 0x27FD7:dǔn 0x27FD8:shēng 0x27FD9:wán 0x27FDA:fēn 0x27FDD:xī 0x27FDE:zī 0x27FE0:hù,dì 0x27FE5:bié 0x27FE7:tuò 0x27FE8:bǎn 0x27FE9:gé 0x27FEB:kē 0x27FF2:zhuì,bó 0x27FF3:fú,fèi 0x27FF4:mò 0x27FF5:jiá 0x27FF6:tuó 0x27FF7:yù 0x27FF9:mǔ 0x27FFA:jué 0x27FFB:jú 0x27FFC:guā 0x27FFD:pǒ 0x28000:nǐ,niǎn 0x28004:wǎ 0x28005:yǎn 0x28014:chǒu 0x28015:kuāng 0x28016:hài 0x28018:xiáng 0x28019:xī 0x2801B:cún 0x2801C:tōng 0x2801D:ruò 0x2801F:duó 0x28020:chè 0x28024:lèi 0x28025:zī 0x28027:zhěng 0x28028:zuǒ 0x2802B:kāng 0x2802C:zài 0x2802E:yuān,xuān 0x2802F:qióng 0x28033:fá 0x28034:xún 0x28036:jì 0x28038:chā 0x28040:shū,chōu 0x28041:xuàn 0x28042:xié 0x28043:tī 0x28044:hàn 0x28045:xiān 0x28046:shān 0x28047:tùn 0x28048:háng,gēng 0x28049:kǔn 0x2804A:cén 0x2804B:dōu 0x2804C:nuó 0x2804D:yàn 0x2804E:chéng,jìng 0x2804F:pū 0x28050:qì 0x28051:yuè 0x28052:fū 0x28057:tǐng 0x2805F:wǒ 0x28060:shēng 0x28061:tuǒ 0x28074:tǎn 0x28076:yǎ,yā 0x28077:zhì 0x28078:lù,lì 0x28079:yǎn 0x2807A:jū 0x2807D:dé 0x2807F:chù,zhuó 0x28080:zǔ 0x28081:è 0x28082:zhí,xuě 0x28083:péng 0x28085:biē 0x28087:dǐ 0x28090:lái 0x28092:yè 0x2809C:háo 0x2809D:pán 0x2809E:tàn 0x2809F:kāng 0x280A0:xū,lǚ 0x280A1:zòu 0x280A2:jí 0x280A3:wù 0x280A6:chuàn 0x280A9:pò 0x280AA:yǎn 0x280AB:tuò 0x280AD:dú 0x280AF:pián 0x280B0:chì 0x280B1:hùn 0x280B2:pīng 0x280B4:cōng 0x280B5:zhǎ 0x280BA:wān 0x280BF:wǎi 0x280C3:è 0x280C4:wèi 0x280C5:bāi 0x280C7:jiāng 0x280D3:chá 0x280D5:chù 0x280D6:kuà 0x280D7:téng 0x280D8:zōu,qū 0x280D9:lì 0x280DA:tà 0x280DB:sà 0x280DE:pán 0x280DF:pán 0x280E3:sào 0x280E4:qiāo,kào 0x280ED:zú 0x280EF:zhì 0x280F0:yǎn 0x280F2:jié 0x280F3:néng 0x28104:luán 0x28105:qū 0x28107:dèng,téng 0x28108:liáng 0x28109:chǎn 0x2810A:qiè 0x2810B:lòu 0x2810C:dié,xiè 0x2810D:cuī 0x28110:jǐ 0x28113:cháo 0x28114:shuàn 0x28115:zú 0x28117:kāng 0x2811A:qiāng 0x2811B:lí 0x2812E:shuāi 0x2812F:yù 0x28130:zhāng 0x28131:lěi 0x28145:pó 0x2814A:zhé,chè 0x2814B:xiào 0x2814D:tǎn 0x2814E:cuì 0x2814F:lán 0x28151:xū 0x28152:shù,chú 0x28153:zhǎ,dá 0x28154:cán 0x28157:bǐ 0x28158:pèng 0x2815D:chéng 0x28163:qiáo 0x28164:jī 0x2816A:zhāi 0x2816C:lán 0x28181:tiǎn,yǎn 0x28182:sà 0x28183:jīn 0x28184:zhù 0x28185:duò 0x28187:chà 0x28188:juàn 0x28189:táng 0x2818A:bèng 0x2818C:fán 0x2818D:liè 0x2818E:zéi 0x2818F:suì 0x28199:sè 0x281A7:zhì 0x281A8:tuí 0x281AA:qīng 0x281AC:chuò 0x281B0:tà,dà 0x281B1:bìng 0x281B2:wěn 0x281B5:pǒ 0x281BD:mó 0x281BE:cā 0x281C1:kuàng 0x281C3:cuó,zuān 0x281C4:rǎo 0x281C5:bào 0x281C6:lài 0x281CD:niǎn 0x281CE:lí 0x281D5:jiǎo 0x281D6:lú 0x281D7:lì 0x281D8:lóng 0x281D9:guì 0x281DD:chǎn 0x281E4:xiān 0x281E6:chàn 0x281E8:xiè 0x281E9:zhàn 0x281EF:shuāng 0x281FB:mǐ 0x281FC:luán 0x281FD:luò 0x28200:diān 0x28208:dié 0x2820A:wān 0x2820B:yuè 0x2820C:luán 0x2820E:luán 0x28213:léng 0x28215:wǎi 0x28216:dìn 0x28217:nèn 0x28218:shǎo 0x28219:xiè,zhī 0x2821A:pí 0x28225:máo 0x28227:yǐn 0x28229:bó 0x2822B:zhù 0x2822E:chōng 0x28236:mǔ 0x28237:tuó 0x28239:tǒng 0x2823A:yé 0x28241:huàng 0x28243:rèn 0x28245:yè 0x2824B:tuō 0x28256:zuān 0x28257:yù 0x2825A:ā 0x2825C:zhōu 0x2825D:wān 0x28261:duǒ 0x28262:zhòng 0x28263:hā 0x28264:huáng 0x28265:miàn,tǐ 0x28269:chūn 0x2826A:qiè 0x2826B:gōng,qiōng 0x2826C:tíng 0x2826D:méi 0x28271:tàng 0x28274:róng 0x28277:róng 0x28278:qí 0x28279:guó 0x2827D:xiàng 0x2827E:tián 0x28285:xiāo 0x28288:zhān 0x28289:cuì 0x28294:lán 0x28298:shēn,qū 0x2829A:lěi 0x2829B:lì 0x2829D:chān 0x2829E:niè 0x2829F:luán 0x282A1:tīng 0x282A2:huì,sháo 0x282A7:gōng 0x282B0:qì 0x282B1:yú 0x282B3:xīn 0x282B8:yuè 0x282B9:bā 0x282BA:dài 0x282BB:jī 0x282BC:xuàn 0x282BF:jué 0x282C0:niǔ 0x282C8:dù 0x282C9:jí 0x282D0:pā 0x282D1:gǒng 0x282D2:bèn 0x282D4:kēng,jú 0x282D5:yàng,ǎng 0x282D6:liǔ 0x282D7:ní 0x282D8:zhà 0x282D9:yìn 0x282DA:niǎn,ruǎn 0x282DB:pào 0x282DD:gōng 0x282DE:bù 0x282DF:hé 0x282E0:rǒng 0x282E1:guì 0x282E5:bì 0x282E6:xī 0x282E7:jú 0x282E8:hún 0x282E9:bì,fú 0x282EB:tiāo 0x282EC:zhěng,chèng 0x282EE:hōng,chūn 0x282EF:yì 0x282F0:cì 0x282F2:bìng 0x282F7:gōng 0x282FA:fá 0x282FD:yáng 0x282FE:xǔ 0x28301:hōng 0x28304:zàng 0x28305:chái 0x28306:hóng 0x28308:tián 0x2830C:zhī 0x2830D:xīng 0x2830E:xú 0x28311:zhèn 0x28314:wǎn,wàn 0x28318:jùn 0x2831D:wò,huò 0x28320:lù 0x28322:zhēng 0x28323:rǒng 0x28324:chéng,chèng 0x28325:fú 0x28327:è 0x28328:tāo 0x28329:táng 0x2832B:juān 0x2832C:chào 0x2832D:tà 0x2832E:dǐ 0x28330:zōng 0x28333:kēng 0x28334:tuī 0x28336:kēng 0x28345:rǒng 0x28346:yūn 0x28347:hé 0x28348:zǒng 0x28349:cōng,zǒng 0x2834A:qiū 0x2834E:mù 0x2834F:duó 0x28350:xǔ 0x28351:kēng 0x28352:xiàn,jiàn 0x2835B:dú 0x2835C:kǎn 0x2835E:yīng 0x28362:zī 0x28367:huáng 0x28369:péng 0x2836B:lì 0x2836D:bó,pò 0x2836E:gé,lì 0x2836F:jú 0x28370:kē 0x28372:hú,gǔn 0x28373:yáo 0x28374:táng 0x28376:qióng 0x28377:rǒng 0x28378:liǔ 0x28379:huì 0x2837A:jī 0x28389:zhì 0x2838B:táng,chēng 0x2838C:zhǐ 0x2838D:kāng,liáng 0x28394:yàng 0x28396:tǎng,chǎng 0x28397:hōng 0x2839B:liáng 0x2839D:cáo 0x283A1:nǎi 0x283A2:zǒng 0x283A4:dèng 0x283A6:jiāo 0x283A7:péng 0x283A9:guāng 0x283AA:ér 0x283AB:jiàn 0x283AC:jiào 0x283AD:nuó 0x283AE:zǎo 0x283B3:péng 0x283B4:dāng 0x283B6:qú 0x283B7:lián 0x283B8:mù 0x283B9:lǎn 0x283BE:fén 0x283C2:hún,xuān 0x283C6:kuāng 0x283C8:yǐn 0x283C9:shuàn 0x283CA:jiàn 0x283D2:luò,léi 0x283D4:lù,dú 0x283DA:gé 0x283DB:rǎng,niǎn 0x283DE:pín 0x283E0:lóng 0x283E4:zhěn 0x283E5:xiàn 0x283E8:lìn 0x283E9:lián 0x283EA:shān 0x283EB:bó 0x283EC:lì 0x283F3:xié 0x283F4:gé 0x283F5:mǐn 0x283F6:lián 0x283F9:jué 0x283FA:zhōu 0x283FF:kē 0x28401:dié 0x28403:zhé 0x28405:shū 0x28406:jī 0x28407:lóng 0x28408:guāng 0x28409:zǎo 0x2840A:xiàn 0x2840B:qiān 0x2840D:shēn 0x28410:yǐn 0x28411:jiè 0x28414:shēn 0x28415:shēn,cí 0x28416:sǎ 0x2841B:xì 0x28421:kù 0x28423:qú 0x28425:gé 0x28426:bàn 0x28428:bì 0x28429:qiān 0x28430:bīn 0x28431:bàn 0x28433:zuò 0x28434:pì 0x28436:huò 0x2843E:bàn,biàn 0x2844A:nóng 0x2844C:chén 0x2844E:pēng 0x28451:fǔ 0x28452:tú 0x2845C:pǐ 0x2845D:pò 0x28460:chǐ 0x28463:xuè 0x28464:qì 0x28465:wù 0x28468:zhì 0x28469:dì 0x2846A:cōng 0x2846B:yóu 0x28479:cōng 0x2847C:dì 0x2847D:zhuó 0x2847F:zǒu 0x28480:cóng 0x28483:pàn 0x28484:yǎn 0x28485:qì 0x28486:rǒng 0x28487:jiá 0x28489:zhì,zhuì,suì 0x2848A:qiú 0x2848B:yuè 0x2848D:shì 0x28491:háo 0x28499:tuō,hòu 0x2849C:bié 0x2849E:kàn 0x284A2:chuò 0x284A4:cǐ 0x284A6:yǐn 0x284A7:shì 0x284A8:hài 0x284A9:ruǎn 0x284AB:yáng,nì 0x284AC:chī 0x284AE:cī 0x284B1:gōng 0x284B2:mí,xuè 0x284B4:jǐ 0x284BC:gèn 0x284BD:zào,suō 0x284C1:běng 0x284C7:xǐn 0x284C8:kuò 0x284CA:dié 0x284CD:tíng 0x284DA:shuì 0x284DE:dài 0x284E6:lǐ 0x284E8:yǒng 0x284E9:jiāo 0x284EC:tá 0x284ED:qǔ,còu 0x284EE:yín 0x284EF:yuān 0x284F0:jié 0x284F2:qiān 0x284F3:yāo 0x284F4:yà 0x284F7:qīng 0x284FF:péi 0x28517:jiā 0x28519:tòu 0x2851B:tī 0x28521:dùn,tún,chuàn,chuán 0x28522:chǎn 0x28523:jiā,jià 0x28524:chì 0x28525:jiān,jīn 0x28526:shù 0x2852F:tà 0x28555:zhī 0x28557:yuán 0x2855A:hū 0x2855C:liè 0x28560:zé 0x28562:chù 0x28566:qiù 0x28567:bēng 0x28579:huán 0x2857A:kuā 0x2857B:shēng 0x2857D:jié 0x2857F:wǎng 0x28583:hū 0x2858A:zé,jī 0x2858B:zǎn,zhì 0x2858C:yàng 0x2858E:chǐ 0x2858F:jiù 0x2859A:liáo 0x2859B:yū 0x285A0:biǎn,biàn 0x285A2:kuáng 0x285AC:chòu 0x285AD:yá 0x285AE:zhuó 0x285B0:qiè 0x285B1:xiàn 0x285B3:yuān 0x285B4:wǔ 0x285B5:jiǎo 0x285B6:xiàng 0x285B7:shà 0x285B9:zhì 0x285BC:chòng 0x285BE:biān 0x285BF:wēi 0x285D3:dào 0x285DD:yù,jú 0x285DE:tuí 0x285E1:chào 0x285E5:huì 0x285E6:qiǎn 0x285E8:wěi 0x285F0:yóu 0x285FC:dì,dài 0x285FE:dà 0x28601:yóu 0x28602:jiù 0x28603:tuí 0x28604:zǎn 0x28607:huì 0x28609:shà 0x2860C:huò 0x28614:yáo 0x28619:xiàn 0x2861E:xiàn 0x2862C:dì 0x2862E:jiù 0x28632:huì 0x28634:kào 0x28635:yóu 0x28638:lì 0x2863C:chuán 0x2863E:chí 0x28640:huò 0x28642:yóu 0x28644:yuè 0x2864E:tà 0x2864F:zàn 0x28653:niè 0x28654:zhù 0x28661:xiǎn 0x28669:shí 0x2866B:kǒu 0x2866C:qǐ 0x2866D:tǔ 0x2866E:fán 0x2866F:cūn 0x28672:tún,cūn 0x28673:chā 0x28674:cái,zài 0x28675:xiàng 0x28676:pèi 0x28677:jǐng 0x28678:qí,zhī 0x28679:shǎo 0x2867A:niǔ 0x2867B:nà 0x2867D:qín 0x2868D:bì,bèi 0x28693:bì,fèi,fú 0x28694:bāo 0x28695:biàn 0x28696:zī 0x28697:nà 0x28698:wèi 0x28699:háo 0x286A1:jǐn 0x286A3:zhèng 0x286A7:qié 0x286AE:hào 0x286AF:tóng 0x286B0:zǎo 0x286B1:shèng 0x286B2:cún 0x286B3:huāng 0x286B4:rú 0x286B5:zài 0x286B6:nián 0x286BE:xiān 0x286C8:quán 0x286C9:jì 0x286CA:yín 0x286CB:lǐ 0x286CC:máng 0x286CD:shào 0x286CE:hàn 0x286CF:cuò 0x286D0:jùn 0x286D1:jì 0x286D2:bù 0x286D3:lòng 0x286D4:fǒu 0x286D5:yóu 0x286D6:kuài 0x286DC:xiàng 0x286E1:yún 0x286E3:qín 0x286E4:huí 0x286E5:pú 0x286EB:lí 0x286EC:péi 0x286ED:shū,shè 0x286EE:jū 0x286EF:yí 0x286F0:zhēng 0x286F1:chóng 0x286F3:xí,jí 0x286F5:hǔ 0x286F6:róu,shòu 0x2870C:huàn 0x2870D:qiào 0x2870E:zhī 0x2870F:yíng 0x28710:xǐ 0x28711:qiāo 0x28712:jì 0x28713:zhēng 0x28714:huáng 0x28716:yú 0x28717:zōu 0x28718:méi 0x2871C:shěng 0x28729:quán 0x28730:jiāng 0x28731:hé 0x28733:tóng 0x28734:hé 0x28735:wēn 0x28736:yì 0x28737:páng 0x2873A:wēng 0x2873B:qián 0x2873C:lì 0x2873D:yí 0x2873E:chuàng 0x2873F:xù 0x28740:wěi 0x28746:gē 0x28748:yǔ 0x2874B:zhài 0x2874C:gān 0x2874D:qiān 0x2874E:kāng 0x2874F:lí 0x28750:shēn 0x28751:guàn 0x28753:piáo 0x28756:lí 0x28758:hǔ 0x2875B:tú 0x2875C:shùn 0x2875E:hù 0x2875F:lí 0x28762:lòu 0x28766:dàng 0x28768:zuò 0x28769:shān 0x2876B:shè,xì 0x2876D:féng 0x2876E:jù,zōu 0x2876F:tóng 0x28770:jiǎo 0x28771:qiáo 0x28772:gāo,hào 0x28773:zī 0x28774:huáng 0x28775:shān 0x28778:tán 0x2878C:tuō 0x2878E:lìng 0x28790:chéng 0x28791:wèng 0x28792:zuó 0x28793:yù 0x28795:zhú,chù 0x28797:qún 0x28798:xǐ 0x28799:qú 0x2879B:gé 0x287A2:qī 0x287A3:xū 0x287A8:gài 0x287A9:què 0x287AA:chóu,shòu 0x287AB:méng 0x287B2:shēn 0x287B3:qú 0x287B6:qiāo 0x287B7:cán 0x287BA:lì 0x287BC:wàn 0x287BD:léi 0x287BE:xīng 0x287BF:láng 0x287C2:shì 0x287C3:zhēng 0x287C4:fán 0x287CA:zhì 0x287CF:yín 0x287D1:lì 0x287D6:mó 0x287D7:wěi 0x287D9:yīng 0x287DA:ráng 0x287E0:quān,què,jué 0x287E5:luǒ 0x287F2:dài 0x287F4:yìn 0x287F5:bǐ 0x287F6:gē 0x287F8:wèn 0x287F9:yǎn 0x287FA:miǎn 0x287FC:gǎng 0x287FD:qiú 0x287FE:zhī 0x2880B:gū 0x2880C:tóng 0x2880E:líng 0x2880F:tí 0x28810:cí 0x28811:yí,tuó 0x28812:fàn 0x28813:pō 0x28814:bì 0x28816:bào 0x2881F:pēng 0x28821:suān 0x28824:sōng,nóng 0x28825:wéi 0x28826:xiáo 0x2882C:hào 0x2882D:yǎn 0x28836:yí 0x28837:zāo 0x28838:yǐng 0x28839:nǎn 0x2883F:zā 0x28841:tiǎn 0x28842:xī 0x28843:jiào 0x28844:yán 0x2884C:néi 0x2884D:tǎn 0x2884E:yàn 0x2884F:tiǎn 0x28850:zhì 0x28851:chōu,chóu 0x28852:táo 0x28857:zhà 0x2885E:miǎn 0x28861:wǔ 0x28862:yǐn 0x28863:yàn 0x28864:lǎo 0x28869:pō 0x2886B:hùn 0x2886C:hǎi 0x2886D:mú 0x2886E:cōng 0x28871:kù,dǐng 0x28872:chōu 0x28874:yǒu 0x28878:zhuó 0x2887B:sōu 0x28882:yìn 0x28885:zuì 0x28886:sāng 0x28887:liù 0x28888:hàn 0x28889:wèi 0x2888A:méng 0x2888B:hú 0x2888C:lì 0x2888E:mì,yīn 0x28890:bāng 0x28891:jiǎn 0x2889C:què 0x288A0:méng 0x288A2:mú 0x288A3:hǒng 0x288A4:hù 0x288A5:mí 0x288A6:shài,zhà 0x288A9:shāng 0x288AA:chào 0x288AC:zhuó,tú 0x288AE:zhī 0x288AF:niàn 0x288B5:jì 0x288B8:kē 0x288B9:zhēng 0x288BF:dān 0x288C0:liǎo 0x288C1:zhǎn 0x288C2:gǒng 0x288C3:láo,lào 0x288C4:huā 0x288C5:chuài 0x288C7:jiǎn 0x288C8:kuì 0x288CD:shē 0x288D4:chěn 0x288D5:tǎn 0x288D7:hú 0x288D8:méng 0x288D9:pào 0x288DA:zhǎn 0x288DB:cháng 0x288DD:gǎn,jiǎn 0x288E0:yì 0x288E2:suì 0x288E6:xù 0x288E7:jì 0x288E8:làn 0x288EC:yí 0x288EF:mì 0x288F1:miè 0x288F5:cuán 0x288F8:lǎn 0x288FB:yān,yǎn 0x288FE:mí 0x28902:yǒng 0x28903:cáng,zā 0x28904:jiǎn 0x28907:sōu,zāo 0x2890E:yán 0x28911:juàn 0x28915:è 0x28918:fèn 0x2891A:fèn 0x28921:guàng 0x28922:mái 0x28924:liě 0x28929:chōng 0x2892B:lí 0x28931:zhí 0x28934:xiè 0x28937:chóu 0x28939:jí 0x2893D:pī 0x28942:jié 0x28947:zhǒu,zhù 0x2894D:xiōng 0x28951:kuàng,gǒng 0x28959:jǐng 0x2895B:hù 0x2895E:qián 0x28963:cén 0x28966:qí 0x28967:wǎn,fàn,biān 0x28968:máo 0x2896A:dǒu 0x28974:kǒu 0x28976:dài 0x28978:náo 0x2897A:hóng 0x28982:lǎi 0x28983:duǒ,duò 0x28984:qiān 0x28986:yín 0x28996:lòu 0x28997:huī 0x2899B:fù 0x2899C:máo 0x2899E:zhōu 0x289A1:yóng,yáng 0x289AD:láo 0x289AE:jí 0x289AF:yì 0x289B0:liú 0x289B1:cōng 0x289B3:nǎn 0x289D0:tūn 0x289D1:xiàng 0x289D5:biàn 0x289D6:chuáng 0x289D7:wù 0x289D9:jū 0x289E5:xiē 0x289E6:pī 0x289E7:zhuó 0x289E8:ruì,zhuì 0x289EA:sào 0x289EB:zì 0x289ED:zhèng 0x289F0:zú 0x289F1:qū 0x289F3:chì 0x289F5:zhì 0x28A17:quàn 0x28A18:qiān 0x28A19:yā 0x28A1A:chào 0x28A1B:hé 0x28A1C:rǔ 0x28A20:jū 0x28A21:wù 0x28A2C:chì 0x28A2D:kuàng,gǒng 0x28A2F:còu,zhòu 0x28A30:ruàn 0x28A31:kuò 0x28A32:chí 0x28A33:zú 0x28A34:jiāo 0x28A36:yú 0x28A37:tú 0x28A38:méng 0x28A39:dā 0x28A3A:shuò,xuē 0x28A65:fēng 0x28A66:gǒu 0x28A67:dōng 0x28A68:chǎ 0x28A69:mào 0x28A6A:chǎn 0x28A6B:biān 0x28A6C:yù 0x28A6F:wán 0x28A70:zú 0x28A72:zī 0x28A74:chuān 0x28A75:wǎn 0x28A76:wā 0x28A78:quān,juān 0x28A7B:wǎn 0x28A7D:xià 0x28A84:yìng 0x28A85:jiàn 0x28A88:wěi 0x28A89:tí 0x28A8A:sāo 0x28A8C:qí 0x28A8D:shā 0x28A8E:yù 0x28A8F:jí 0x28A90:dòu,tōu 0x28A91:chǎn 0x28A92:tuán 0x28A95:liú 0x28A97:zhuì 0x28AB3:ruàn 0x28AB6:yàn 0x28AB7:gǔ 0x28AB9:lì 0x28ABA:chā 0x28ABE:dì 0x28ABF:liú 0x28AC0:zhǎn 0x28AC1:pō 0x28AD2:lòu 0x28AD4:zhì,xiè 0x28B01:lián 0x28B05:luǒ 0x28B0D:duò,duì 0x28B10:jué 0x28B11:lì 0x28B12:lán 0x28B14:ruàn 0x28B15:gū 0x28B16:chán 0x28B17:xū 0x28B1A:zhǐ 0x28B41:xuè 0x28B42:bō 0x28B43:chēng 0x28B45:zhù 0x28B46:hēi 0x28B49:bān 0x28B53:dié 0x28B56:zhǎn 0x28B57:guó 0x28B5A:biāo 0x28B5B:là,gě 0x28B7A:jīn 0x28B82:gǎi 0x28B92:mèng 0x28B94:yù 0x28BAA:xǐ 0x28BAC:piāo 0x28BAD:sī 0x28BB4:dèng 0x28BB8:chuō 0x28BB9:dí 0x28BBA:jī 0x28BBB:chán 0x28BBF:zhuó 0x28BD3:cài 0x28BDE:jiàng 0x28BF2:tóu 0x28BFD:lí 0x28C02:qiàn 0x28C06:chuō 0x28C0F:tà 0x28C11:diào 0x28C13:jiǎn 0x28C1B:zhǐ 0x28C1C:jué 0x28C1E:mó 0x28C20:luó 0x28C26:bǎo 0x28C2D:zuǎn 0x28C35:zhē 0x28C38:yú 0x28C3B:bǎo 0x28C3E:mǎ 0x28C3F:xì 0x28C40:hù 0x28C41:yì 0x28C42:é 0x28C43:gū 0x28C44:tú 0x28C45:zhēn 0x28C47:qiú 0x28C48:sù 0x28C49:liàng 0x28C4A:qū 0x28C4B:líng 0x28C4C:guàn 0x28C4D:láng 0x28C4E:tōu 0x28C4F:dā 0x28C50:lòu 0x28C51:huáng 0x28C52:shòu 0x28C53:jiāo 0x28C54:zūn 0x28C55:gǎi 0x28C56:wéi 0x28C59:kūn 0x28C5A:duàn 0x28C5B:sōng 0x28C5C:qí 0x28C5D:yǎng 0x28C61:shì 0x28C63:gǎi 0x28C66:dào 0x28C67:yǎo,ǎo 0x28C6B:qián 0x28C6D:shāo 0x28C6E:cháng 0x28C6F:miǔ 0x28C71:mó 0x28C75:nǎo 0x28C78:cōng 0x28C7A:niè 0x28C7B:zhāo 0x28C7C:cén 0x28C7F:sōng 0x28C80:niè 0x28C81:cì 0x28C84:jùn 0x28C86:shāo 0x28C88:zhú 0x28C89:duǒ,tuǒ,shèng 0x28C8A:àn 0x28C8B:bī 0x28C8E:tì 0x28C90:pǐ 0x28C91:xiá 0x28C92:qiú 0x28C93:shěng 0x28C97:tāng 0x28C9B:mán,mián 0x28C9C:piān 0x28C9E:tì 0x28C9F:róng 0x28CA7:cōng 0x28CAA:jī 0x28CAB:féng 0x28CAC:wù 0x28CAD:jiào 0x28CAE:láo 0x28CAF:zēng 0x28CB0:péng 0x28CB1:cǎn 0x28CB3:nóng 0x28CB5:chǎn 0x28CBE:mán,mián 0x28CBF:guì 0x28CC0:niào 0x28CC1:chōng 0x28CC2:chàn 0x28CC6:nàng 0x28CC9:xiā 0x28CCA:jiū 0x28CCB:jǐ 0x28CCC:zhèn 0x28CD1:tǐng 0x28CD4:mén 0x28CD5:yuè 0x28CD7:zhōng 0x28CD8:tún 0x28CD9:ruì 0x28CDA:xiè,fēn 0x28CDB:xī 0x28CDD:tǐng,rùn 0x28CDE:niǔ 0x28CE0:wǎng 0x28CE1:jiān,guān 0x28CE3:fēn 0x28CF2:biàn,bì 0x28CF7:yí 0x28CFA:dié 0x28CFB:jī 0x28CFC:gǎn 0x28CFF:jiān,xì,mǎ 0x28D00:jiōng 0x28D06:kāi 0x28D0A:què,guān 0x28D0C:nán 0x28D0D:móu 0x28D0E:xù 0x28D0F:sǒng 0x28D10:shèn 0x28D11:kuāng 0x28D12:què 0x28D13:wéi 0x28D17:dié 0x28D18:nán 0x28D1A:ruò 0x28D1B:gōng 0x28D1C:dòu,yòu 0x28D1E:niǎn 0x28D21:chāo 0x28D22:hé 0x28D23:yàn 0x28D29:tú 0x28D2A:bǔ 0x28D2C:hú 0x28D2D:yǒng 0x28D2F:shǐ 0x28D30:chù 0x28D39:xiāo 0x28D3A:mén 0x28D3B:lǐ 0x28D3C:tí 0x28D3E:jiān 0x28D42:zhǐ 0x28D43:guā,fǔ,yuè 0x28D44:guǎn 0x28D46:qì 0x28D48:fēi 0x28D49:yǔ 0x28D4A:zhé 0x28D4B:wěi 0x28D4C:ě 0x28D4D:chān 0x28D4E:xī,qí 0x28D50:gǔ 0x28D57:què 0x28D58:huì 0x28D5A:xié 0x28D5B:yīng 0x28D5D:tà 0x28D5E:wāi 0x28D5F:fú 0x28D60:jiè 0x28D61:pì 0x28D65:shěng 0x28D66:yú 0x28D67:kuā 0x28D69:pì 0x28D6A:xié 0x28D6B:nüè 0x28D6C:xiàn 0x28D6D:jiàn 0x28D6E:xù 0x28D70:bì 0x28D74:nán 0x28D76:liáng 0x28D78:pián 0x28D7C:jìng 0x28D80:tǎ 0x28D81:yàn 0x28D82:ài 0x28D85:xiāo 0x28D86:qiāng 0x28D87:wǔ 0x28D88:táng 0x28D8A:jùn 0x28D90:kuò 0x28D97:làng 0x28D99:něng 0x28D9C:dòu,dǒu 0x28D9D:shú 0x28D9F:jiǎo 0x28DA0:niè 0x28DA2:yú 0x28DA8:cè 0x28DAA:jiǎo,liú 0x28DAC:huà 0x28DAD:wén 0x28DAE:yē 0x28DAF:é 0x28DB0:guāng 0x28DB1:huā 0x28DB2:jiāo 0x28DBA:lèi 0x28DBC:shāng 0x28DBD:yòng 0x28DBF:dēng 0x28DC0:guān 0x28DC1:niú 0x28DC3:suì 0x28DC4:xiàng 0x28DC6:sà 0x28DC7:chāng 0x28DCE:rùn 0x28DD0:yūn 0x28DD2:fēn 0x28DD3:jiàn 0x28DD4:xù 0x28DD8:xì 0x28DD9:shú 0x28DE5:xié 0x28DE6:lì 0x28DE9:tóu 0x28DEC:mǐ 0x28DED:chán 0x28DEE:huō 0x28DF1:zhuǎn 0x28DF2:yuè 0x28DFB:lán 0x28DFD:yán 0x28DFE:dàng 0x28DFF:xiàng 0x28E00:yuè 0x28E01:tǐng 0x28E02:bēng 0x28E03:sàn 0x28E04:xiàn 0x28E05:dié 0x28E06:pì 0x28E07:pián 0x28E09:tǎ 0x28E0B:jiāo 0x28E0C:yē 0x28E0E:yuè 0x28E10:réng 0x28E11:qiǎo 0x28E12:qí 0x28E13:diāo 0x28E14:qí,wéi 0x28E17:hàn 0x28E18:yuán 0x28E19:yóu 0x28E1A:jí 0x28E1B:gài 0x28E1C:hāi 0x28E1D:shì 0x28E1F:qū 0x28E29:wèn 0x28E2C:zhèn 0x28E2D:pō 0x28E2E:yán,yǔn 0x28E2F:gū 0x28E30:jú 0x28E31:tiàn,niǎn 0x28E37:è 0x28E3A:yā 0x28E3B:lìn 0x28E3C:bì 0x28E40:zǐ 0x28E41:hóng 0x28E43:duǒ,duò 0x28E45:duì 0x28E46:xuàn 0x28E48:shǎn,yáng 0x28E4A:shǎn 0x28E4B:yáo 0x28E4C:rǎn 0x28E54:tuó 0x28E57:bīng 0x28E58:xù 0x28E59:tūn 0x28E5A:chéng 0x28E5C:dòu 0x28E5D:yì,yà 0x28E61:chè 0x28E75:juǎn 0x28E76:jī 0x28E78:zhào 0x28E79:bēng,bèng 0x28E7B:tiǎn 0x28E80:pēng 0x28E85:fù 0x28E96:tuǒ 0x28E98:xián 0x28E99:nì 0x28E9A:lóng 0x28E9D:zhuó 0x28E9F:zhēng 0x28EA0:shǔn 0x28EA1:zōng 0x28EA2:fēng 0x28EA3:duàn 0x28EA4:pì 0x28EA5:yǎn 0x28EA6:sǒu 0x28EA7:qiú 0x28EA8:è 0x28EA9:qián 0x28EAB:qiǎn 0x28EAD:cā 0x28EAE:xùn 0x28EB5:zhuì 0x28EB8:mǎo 0x28EB9:jiǎo 0x28EBF:zhǎn 0x28EC0:pí,bī 0x28EC1:xī 0x28EC2:yàn 0x28EC3:fèi 0x28EC4:niè 0x28EC6:zhì 0x28EC8:suǒ 0x28ECA:yì 0x28ECC:lěi 0x28ECD:xù 0x28ECF:yì 0x28ED2:wēi 0x28ED5:jī 0x28ED6:chēn 0x28ED7:dié 0x28EE3:yuán 0x28EE5:xí 0x28EE7:liú 0x28EE8:suǒ 0x28EF1:bēng 0x28EF2:xià 0x28EF3:yàn,yān 0x28EF5:cuī,zuī,duì 0x28EF7:kāng 0x28EFA:qīng 0x28EFB:lóu 0x28EFC:bī 0x28F08:zhàn 0x28F09:cuàn 0x28F0A:wú 0x28F0B:xū 0x28F0C:chēn 0x28F0D:háo 0x28F0E:jué 0x28F10:chèn 0x28F11:chá 0x28F12:chǎn 0x28F13:zhí 0x28F14:xún 0x28F23:gé 0x28F24:chén 0x28F25:yè,gé 0x28F2A:chǔ 0x28F2B:qú 0x28F2C:xiè 0x28F2E:zhàn 0x28F2F:kěn 0x28F31:jué 0x28F3D:qú 0x28F3F:méng 0x28F40:yè 0x28F41:zōu,cóng 0x28F42:pú 0x28F44:shì 0x28F49:shǔ 0x28F4A:chán 0x28F4D:dú 0x28F4F:guō 0x28F50:lù,yáng 0x28F51:yān 0x28F56:niǎo 0x28F57:bīn,pín 0x28F5F:tuí 0x28F66:nì 0x28F67:huān 0x28F68:qián 0x28F6F:xià 0x28F72:líng 0x28F77:lián 0x28F79:yì,lì 0x28F7B:lì 0x28F7C:sì 0x28F7F:dài 0x28F82:wèi 0x28F85:cì 0x28F89:jiǔ 0x28F8A:hóng 0x28F8C:yú 0x28F8E:kuí 0x28F92:háng 0x28F93:gē,yì 0x28F94:fàng 0x28F97:kuí,xié 0x28F9A:guī,fū 0x28F9B:chǐ,qí 0x28F9E:jiǔ 0x28FA1:suī,huǎng 0x28FA4:dié 0x28FAC:suǐ 0x28FB0:qín 0x28FB4:guī 0x28FBB:zhuī 0x28FBE:tiào 0x28FC1:yuè 0x28FC7:zuǐ 0x28FCF:wú 0x28FD0:cuǐ 0x28FDB:zhì,xī 0x28FE0:shuì 0x28FE2:dōng 0x28FED:wéi 0x28FFF:chǒng 0x2900B:rún 0x29016:jí 0x2901C:diāo 0x2901E:cāng 0x29020:kòu,gǔ 0x29023:wéi 0x29027:cán 0x2902A:má 0x2902B:òu 0x29032:sǎn 0x29036:wéi,huī,mí 0x2903C:sǎn 0x2903F:jīn 0x2904C:wéi 0x2905E:cài 0x2905F:lí 0x2906F:yuè 0x29074:yūn 0x29077:chēng 0x2907A:shān 0x29082:hū 0x29083:shài 0x29084:tún 0x29086:fǒu,fù 0x29088:qìn 0x29089:xū,chēn 0x2908D:chuān 0x2908E:fù 0x29092:yì,ài 0x29093:dōng 0x29094:fú 0x29095:fú 0x29096:zé 0x29097:pù 0x29099:líng 0x2909D:shài,yīng 0x2909E:pào 0x290A2:yín,ái 0x290A3:luò 0x290A4:huà 0x290A5:yìn 0x290A6:bèng 0x290A7:yū 0x290A8:shè 0x290AA:xiè 0x290AB:chǔ 0x290B4:shè 0x290B5:diàn 0x290B9:yì 0x290BB:chè 0x290BC:gěng 0x290BD:lóng 0x290BE:píng 0x290BF:yǔn 0x290C0:yàn 0x290C1:mò 0x290C3:suī 0x290CB:jìng 0x290CD:sòng 0x290CE:páng 0x290D0:yá 0x290D1:sè 0x290D2:duǒ 0x290D5:chuáng 0x290D6:xiè 0x290D8:tuán 0x290D9:gōng 0x290DA:xuàn 0x290DC:lā 0x290DE:líng 0x290E0:dài 0x290E1:zhá 0x290EC:yīn 0x290ED:sōng 0x290EF:yǔ 0x290F0:tuó 0x290F1:tuó 0x290F4:bà 0x290F5:rǎn 0x290F6:bó 0x290F7:dài 0x290F9:zhá,zhǎ 0x290FA:hóu 0x290FE:huǐ 0x29105:lú 0x2910A:lìng 0x2910B:rú 0x29115:dàn 0x29116:méng 0x29117:xià 0x29118:wěng 0x29119:hán 0x2911A:zī 0x2911B:zhèn 0x2911C:sè 0x2911D:cuó 0x2911E:lì 0x29120:diān 0x29121:lián 0x29122:gòu 0x29126:péng 0x2912A:yīng 0x2912C:hòu 0x2912E:duì 0x2912F:wù 0x29137:piào 0x29138:hè 0x2913A:lóng 0x2913B:mò 0x2913C:fěi 0x2913D:lǚ 0x2913E:zé 0x2913F:bó 0x29140:diàn,zhí 0x29141:mǎng 0x29143:zhuàng,chóng 0x29144:lù 0x29145:pāng 0x29146:duì 0x29147:bù 0x2914C:chēn 0x2914D:màn 0x29156:xī 0x2915D:ǎn 0x2915E:zhōng,chòng 0x29160:nàn 0x29161:tuò 0x29162:hé 0x29165:duì 0x29166:wān,dān 0x29167:zhōng 0x29168:cén,shèn 0x29169:lì 0x2916A:shuāng 0x2916E:cén 0x29170:sī 0x29172:duì 0x29174:hūn 0x2917C:jiān,jiàn 0x2917D:nóng 0x2917E:dàn 0x2917F:fù 0x29180:huò 0x29181:huì,wèi 0x29182:cí 0x29184:yǒng 0x29185:sà 0x29186:tíng 0x2918E:liù 0x29191:suān 0x29192:líng 0x29193:mán,màn 0x29194:diàn 0x29198:pāo 0x2919A:líng 0x2919D:lì 0x2919F:nóu 0x291A3:liè 0x291A4:shǎn 0x291A6:fèi 0x291AB:shǎn 0x291AE:líng 0x291AF:zhàn,jiān 0x291B1:bīn 0x291B2:lí 0x291B5:sī,xiàn 0x291B6:ráng 0x291B7:jiān 0x291B8:zhuó 0x291BB:líng 0x291BC:líng 0x291BD:mèng 0x291BF:shuāng 0x291C4:líng 0x291C7:hùn 0x291CE:líng 0x291CF:jiān 0x291D0:qú 0x291D4:nóng 0x291D5:jìng 0x291D6:chēn 0x291DC:zhēn,chèng,chēng 0x291DD:qìng 0x291DF:qìng 0x291E0:è,yǎn 0x291E3:sè 0x291E9:bèi 0x291EB:fēi 0x291EE:fèi 0x291EF:féi 0x291F4:fāng 0x291F5:kǔ 0x291FA:zá 0x291FB:huì 0x291FD:féi 0x29201:duì 0x29206:pā 0x29207:niǔ 0x29208:pàng 0x29209:dàn 0x2920A:dān,dàn 0x2920B:ài 0x2920D:tiǎn 0x2920E:chǎo 0x2920F:ǎo,yǒu 0x29210:mèi 0x29211:nǎn 0x29214:bò 0x29215:yù,chì 0x29216:xiān,hān 0x29217:mài 0x2921A:pīng 0x2921C:duī 0x2921E:dào 0x29221:xìng 0x29222:nì,nǜ 0x29223:hān 0x29224:chù 0x29225:shuǎ 0x29226:mǎn 0x2922C:wàn 0x2922D:yì 0x2922E:diào 0x2922F:yān 0x29231:wò 0x29232:suàn 0x29234:ǎn 0x29235:lán 0x29236:nǎn 0x29238:qiǔ 0x29239:miàn 0x2923A:nuǒ 0x2923B:cán 0x2923C:cǎn 0x29240:làn 0x29241:tiǎn 0x29242:yè 0x29244:niǎn 0x29246:shuǎ 0x2924B:cí 0x2924D:jiǎn 0x29250:gàn 0x29254:jiàn 0x29255:guó 0x29257:zhān 0x29259:luǒ 0x2925C:jī,hàng 0x2925D:guì 0x29261:jiá 0x29262:jǐ 0x29265:xuàn 0x29267:fēng 0x2926B:bì 0x2926C:qí,chí 0x2926F:yuán 0x29270:àng 0x29271:dī 0x29274:è 0x29275:fén 0x29278:jù 0x29279:nǐ 0x2927A:tuó 0x2927C:shēn 0x2927D:fú 0x2927E:xiá 0x2927F:qú 0x29280:pò 0x29281:wǎn 0x29282:líng 0x29283:mà 0x29284:zhòu 0x29285:bào 0x29287:yù 0x2928C:běng 0x2928D:mài 0x2928F:jiā 0x29291:yǎng 0x29293:kuǎ,kù 0x29294:jiào 0x29296:bǐng 0x2929A:luò 0x2929B:guǐ 0x2929C:duò 0x2929D:zhì 0x292A1:zhèn 0x292A2:è 0x292A3:zhū 0x292A4:bá 0x292A8:zhèn 0x292A9:fēng,féng 0x292AA:dòu 0x292AB:niǎn 0x292AC:bù 0x292AD:duì 0x292AE:shā,suō 0x292AF:sè 0x292B0:bì 0x292B4:zhì 0x292B5:zhé 0x292B6:bù 0x292BA:jué 0x292BB:xùn 0x292BF:xì 0x292C1:zhuó 0x292C2:bài 0x292C3:yáo,táo 0x292C4:chǒu 0x292C5:tà 0x292C6:qiān 0x292C8:nào 0x292C9:yù 0x292CA:è 0x292CB:jiān 0x292CC:yì 0x292CD:xiāo 0x292CF:niè 0x292D2:bīng 0x292D7:guǒ 0x292D8:xié 0x292D9:diào 0x292DC:jū 0x292DD:suǒ 0x292DE:dié 0x292DF:fú,fù 0x292E0:miǎn 0x292E1:shì 0x292E2:xuàn,yùn 0x292E3:tí 0x292E4:yù 0x292E7:xié,kài 0x292E8:fú 0x292E9:zhì 0x292EA:nǐ 0x292EB:xuàn 0x292EC:yáng 0x292EE:fěng,bāng 0x292EF:zòng 0x292F0:zhòu 0x292F1:xuān 0x292F5:zhū 0x292F7:la 0x292F9:yìng 0x292FA:gào 0x292FB:kuò 0x292FD:é 0x292FE:wéi,wěi,xuē 0x292FF:méi 0x29303:huái,guì 0x29304:chǒu,zhōu 0x29306:suǒ 0x29307:tà 0x29308:suǒ 0x29309:tà 0x2930A:xuè 0x2930C:gǒng 0x2930D:jiǎ 0x2930F:bó,fú,bù,fù 0x29310:tà 0x29311:yuǎn 0x29318:tà 0x2931D:chuí 0x29320:xiōng 0x29321:hé,juē 0x29322:suō 0x29327:mò 0x29328:chóng 0x29329:suī 0x2932A:zé 0x2932B:lù 0x2932C:zhāng 0x2932D:luò 0x2932E:xù 0x2932F:jiān 0x29330:shān 0x29332:xù 0x2933E:jiǎng 0x29342:bào 0x29343:mái 0x29345:tóng 0x29346:xì 0x29349:róng 0x2934B:shéng 0x2934C:zhòu 0x2934E:jiān 0x2934F:fù 0x29350:dèng 0x29353:yōng 0x29354:jū,qū 0x29356:yì 0x29357:bāng 0x29359:sè 0x2935A:suì 0x2935C:duó 0x2935D:xiè 0x29361:huán 0x29365:rǔ 0x29366:nǐ 0x29367:zhòu 0x29368:guì 0x2936A:luò 0x29372:zhī,chàn 0x29373:xù 0x29375:zhī 0x29377:jué 0x29378:jū 0x2937B:yuán 0x2937C:lú 0x2937F:bó,fù 0x29382:róng 0x29383:xiè 0x29389:xǐ 0x2938A:luó 0x2938E:gé 0x29391:zuān 0x29392:hàn,jiān 0x29394:jiāo 0x29395:sǎ 0x29396:qín,qián 0x29397:qūn 0x29398:páo 0x29399:yuè 0x2939A:chè 0x2939B:fú 0x2939C:pēi 0x2939F:mèi,mò,wà 0x293A2:tāo 0x293A4:kēn 0x293A5:xì 0x293AB:duò 0x293AD:yì 0x293B0:suì 0x293B2:xiá 0x293B3:juān 0x293B5:wéi 0x293B7:yì 0x293B9:yù 0x293BB:bài 0x293BC:tuó 0x293BD:tà 0x293BE:páo 0x293C2:bǐng,bì 0x293C5:yùn 0x293C6:yùn 0x293C7:duàn 0x293C8:ruǎn 0x293C9:wéi 0x293CF:wéi 0x293D0:guì,wěi 0x293D2:dá 0x293D3:xiá 0x293D6:hùn 0x293D7:juǎn 0x293D8:suī 0x293DA:suì 0x293DD:lóu 0x293DE:bài 0x293DF:yù 0x293E0:zhèng 0x293E1:guì 0x293E3:kuī 0x293E4:gāo 0x293E5:dān 0x293E9:xiǎn 0x293EA:zhái 0x293EB:sè 0x293ED:kē 0x293EE:bǔ 0x293EF:bó 0x293F2:suì 0x293F4:yù 0x293F5:bǔ,bù 0x293F6:jiū 0x293F7:jiū,jiào 0x293F9:juàn 0x293FA:jué 0x293FC:nà 0x293FD:zhái 0x293FE:tāo 0x293FF:wěi 0x29400:xiá 0x29401:xiè 0x29405:sà 0x29406:jī 0x29409:xiè 0x2940C:duì 0x2940D:zǐ 0x29418:yuǎn 0x29419:qìn 0x2941A:fú 0x2941B:péng 0x2941C:páo 0x2941E:yìn 0x29420:hōng 0x29421:zú 0x29423:gōng 0x29424:dòng 0x29425:hē 0x29426:wò 0x29428:pāng 0x2942B:sù 0x2942C:kǎn 0x2942D:niè 0x2942E:háo 0x2942F:fèng 0x29430:è 0x29431:yè 0x29434:tíng 0x29435:dòng 0x29436:zhé 0x29437:sāng 0x2943B:mò 0x2943C:sù 0x2943E:lè 0x29440:pǔ 0x29441:é 0x29442:zhuó 0x29443:yè 0x29447:xiāng 0x29448:guàng 0x29449:rěn 0x2944A:líng 0x2944D:ào 0x29450:chāi 0x29452:duó 0x29453:qióng 0x29454:kū,yà 0x29455:xū 0x29456:huán 0x29457:yāo 0x29458:zhèn 0x29459:tǐng 0x2945A:běng,lèi 0x2945D:áng 0x2945F:kān,qiān 0x29461:kū,gěn 0x29462:péi,bāi 0x29463:yòu 0x29464:ǎo 0x29465:mén 0x29466:mò 0x2946C:fǔ,guī 0x2946D:qīng 0x2946E:là 0x2946F:dǒu 0x29470:tǎn 0x29473:qiǎn 0x29474:yào 0x29475:wèi 0x29476:hú,kū 0x29477:mò 0x29478:hē 0x29479:xuàn 0x2947B:bì,pó 0x2947C:pō 0x2947E:dī 0x29480:zhěn 0x29482:shī 0x29483:kǎn 0x29484:cè 0x29487:xū 0x29488:zhěn 0x2948A:zhǔ 0x2948F:huì 0x29490:chǐ 0x29493:hǒng 0x29494:nóu 0x29495:niè,pò,è 0x29496:yàn 0x29498:chǒng 0x29499:fǔ,guì 0x2949A:guāng 0x2949B:qī 0x2949D:gěn 0x2949E:tǐng 0x294A2:tǎn 0x294A3:qiǎn 0x294A6:jiù,xìn 0x294A7:xū 0x294A8:qǐ 0x294AA:zhèn 0x294AE:qiú 0x294B0:ě 0x294B3:huì 0x294B4:hòng 0x294B5:qǐng 0x294B7:chē,rǒng 0x294BA:fù 0x294BC:hōng 0x294BD:xī 0x294BE:wú 0x294BF:máng 0x294C2:tī 0x294C5:hōng 0x294D0:bó 0x294D2:qǐn 0x294D3:gěn 0x294D6:fú 0x294D7:kuǐ 0x294DD:bié 0x294DE:jìng 0x294DF:kǎn 0x294E0:guī 0x294E2:gǎo 0x294E3:xū 0x294E4:àn 0x294E5:yuè 0x294E6:wù 0x294E7:yí 0x294E8:jīng 0x294EA:lù 0x294EB:quán 0x294EC:tuí 0x294EE:jì 0x294FA:jiǒng 0x294FB:jué 0x294FC:piē 0x294FD:kūn 0x29500:wài 0x29501:huì 0x29502:dùn 0x29503:yuǎn 0x29504:jié 0x29506:guì 0x29507:gǎo 0x29508:pò 0x29509:mén,mín,hūn 0x2950A:zhuàn 0x2950B:hàng 0x29514:yóng 0x29515:qiú 0x29517:lèi 0x29518:áng 0x29519:pǐ,xìn 0x2951A:wēng,wěng 0x2951D:qìn 0x2951F:qǐn 0x29520:miè 0x29521:dōu 0x29522:mí 0x29523:zhān 0x29525:qǐng 0x29526:yí 0x2952E:bān 0x29531:juān 0x29533:zé 0x29534:xù 0x29535:lán 0x29536:má 0x29537:má 0x29538:ōu 0x29539:bēi 0x2953B:póu 0x2953C:xù 0x29540:ào 0x29546:hǒng 0x29549:hǒng 0x2954A:zhǎn 0x2954C:sěn 0x2954D:gǎo,háo 0x2954F:pó,fán 0x29550:liào 0x29555:wài 0x29556:xuān 0x2955C:kuí 0x2955F:è 0x29560:hàn 0x29561:sè 0x29564:dàn 0x2956A:xuān 0x2956C:è 0x2956D:gài 0x2956F:dāo 0x29571:měng 0x29572:yī 0x29573:nǐng 0x29575:pín 0x29579:cāng 0x2957E:yuàn 0x29580:è 0x29581:niè,yá 0x29584:yǐn 0x29587:qiāo 0x29589:hōng 0x2958A:líng 0x2958C:chān 0x2958D:yǐng 0x29592:guān 0x29594:niǎo 0x29595:xū 0x29596:tán 0x29597:jìn 0x2959B:péng 0x2959D:liáo 0x295A0:bèi 0x295A3:xín,bá 0x295A4:tún 0x295A5:chāo 0x295A6:gān 0x295A8:hū 0x295A9:wǎng 0x295AC:fú 0x295AD:pèi 0x295AF:náo 0x295B0:xún,xín 0x295B1:xuè 0x295B4:liǔ 0x295B5:líng 0x295B6:xuè 0x295B7:qū 0x295B8:háo 0x295B9:yí 0x295BA:hàn 0x295BC:fú 0x295BD:bá 0x295BE:yí 0x295C0:bó 0x295C4:hōng 0x295C5:lì 0x295C9:sà 0x295CA:xī 0x295CE:shì 0x295CF:piāo 0x295D0:huà 0x295D1:yí 0x295D2:bó 0x295D3:bó 0x295D4:něi 0x295D5:qiú 0x295D8:wěi 0x295D9:chè 0x295DA:yóu 0x295DC:wèi 0x295DD:huǐ 0x295DE:sà 0x295E2:hòng 0x295E3:sōu 0x295E4:hàn 0x295E5:páo 0x295E7:fáng 0x295E9:liú 0x295EA:zhòu 0x295EB:pí 0x295ED:lì 0x295F0:chuí 0x295F1:xī 0x295F2:zhēng 0x295F4:bèng 0x295F5:zhēng 0x295F6:suì 0x295F7:yǎn 0x295FC:qīng 0x295FD:wù 0x295FE:liǎng 0x29600:zhào 0x29601:liáng 0x29605:jiē 0x29607:hōng 0x29608:yōu 0x2960A:là 0x2960B:hòu 0x2960D:yuàn 0x2960E:hóng 0x2960F:yè 0x29611:yǐng,yīng 0x29612:xuǎn,juān 0x29613:yóu 0x29618:quán 0x2961C:táng 0x2961D:suǒ 0x2961F:lì 0x29620:sōu 0x29621:lì 0x29624:yù 0x29627:yì 0x2962D:xiū 0x2962E:áo 0x2962F:tuán 0x29630:sù 0x29631:shuài 0x29633:yù 0x29635:fēng 0x29639:sù 0x2963A:tuí 0x2963B:yù 0x2963C:zhēng 0x2963D:zhēng 0x2963F:táo 0x29644:liú 0x29646:chéng 0x29647:suí 0x29648:sāo 0x2964F:gǔ 0x29650:fēng 0x29651:liè 0x29652:piāo,piào 0x29656:lì 0x29658:lóng 0x29659:chū 0x2965A:xiāo 0x2965B:hōng 0x2965C:xiè 0x2965D:shè 0x29660:lóng 0x29661:hōu 0x29662:xuán,shī 0x29663:fēng 0x29665:bá 0x29666:bó 0x29667:táo 0x29668:sù 0x29669:zhào 0x2966A:biāo 0x2966B:sōu 0x2966C:tuí 0x2966D:suǒ 0x2966E:xiāo 0x2966F:héng 0x29670:sāo 0x29672:fēi 0x29677:niù 0x29678:mǎng 0x2967D:huán,xuān 0x2967E:zhī 0x29682:yì 0x29684:yù 0x29687:yí 0x29688:yuē 0x29689:chí 0x29695:yǐn,qiāng 0x29696:niù 0x29697:rǒng 0x2969B:nà 0x296A3:tián 0x296A5:bā 0x296AA:ěr 0x296AB:zhēng 0x296AC:è 0x296AD:póu 0x296AE:jī,nì 0x296AF:ní 0x296B1:jiǒng 0x296B2:jiá 0x296B5:gān 0x296B9:líng 0x296BB:zuì 0x296BE:bèi 0x296C5:shū 0x296C6:yǐ 0x296C7:pāi 0x296CB:nǎo 0x296CC:shì 0x296CE:mǎn 0x296CF:shì 0x296D1:tí 0x296D8:gōng 0x296DD:lèi 0x296DE:bǎo,něi,piǎo 0x296DF:yuān,mán 0x296E0:zuō 0x296E1:láng,náng 0x296E2:xiū 0x296E5:zài 0x296E6:chèng 0x296E7:jiān 0x296E8:mào 0x296E9:jiá 0x296EA:yù 0x296ED:yù 0x296EE:yí 0x296F2:māng 0x296F3:zài,cān 0x296F5:zhuì 0x296F6:tí 0x296F9:xì 0x296FA:jú 0x296FB:zàn,zuǎn,zhān 0x296FC:lù 0x296FD:táo 0x29700:zhuì,duī 0x29701:líng 0x29703:jù 0x29706:jī 0x29707:juǎn,juàn 0x2970A:zī 0x2970C:yuē 0x2970D:dōng 0x29712:nǎng 0x29716:chóng 0x2971F:àng 0x29723:gēng 0x29725:bō 0x29726:dìng 0x29727:wěi 0x2972C:quán 0x2972D:kē 0x29730:pì 0x29731:kǎn,sǎn 0x29732:fú 0x29733:yǒng 0x29735:tuán 0x29736:tǒu 0x29737:yòu,niù 0x29738:yāo 0x2973A:yē 0x2973D:yàn 0x29748:xián 0x2974A:tí 0x2974C:suì 0x29750:cí 0x29754:xǔ 0x29755:wù 0x29756:cān 0x29757:yù 0x2975A:chǎn 0x2975B:xiá 0x2975D:kào,gāo 0x2975E:cāng 0x2975F:chā 0x29760:qiǔ 0x29763:dā 0x29765:sù 0x29768:huā 0x29777:wū 0x29778:yuān 0x2977D:jiàng 0x2977E:xiǎng 0x2977F:zhāi 0x29780:sǎn,chěn,càn 0x29781:mó,mí 0x29783:shǎng,xiǎng 0x29784:cáo 0x29785:suī 0x29786:chuáng 0x29787:mí 0x29788:zhú 0x29789:chóng 0x2978A:jì 0x2978B:chóng 0x29799:lián 0x2979E:hài 0x297A4:dūn 0x297A5:xiǎng 0x297A6:chēng 0x297A7:shǎng 0x297A8:lì 0x297A9:huáng 0x297AC:dèng 0x297AF:liáng 0x297B6:zā 0x297BA:huò 0x297BB:lín 0x297BE:dú,yì 0x297BF:hàn 0x297C0:yōng,yǒng 0x297C1:yuàn,xuàn 0x297C2:guò 0x297C3:líng 0x297C5:liǎn 0x297C7:ào 0x297C8:dāng 0x297C9:yì 0x297CA:nóng 0x297CB:shàn 0x297CD:xìn 0x297D0:dá 0x297D1:yù 0x297D2:cān 0x297D3:wò 0x297D4:chá 0x297D5:bó 0x297D7:jiǎn 0x297DE:méng 0x297DF:wěi 0x297E0:mó 0x297E5:shuì,juǎn 0x297E6:jié 0x297E7:shuò 0x297E8:huò 0x297EB:chuò 0x297ED:lóng 0x297EE:huài 0x297F0:tuō 0x297F3:yú 0x297F6:chàn,jié 0x297F7:yōng 0x297F8:huò 0x297FA:lǎn 0x297FF:nà 0x29800:bā 0x29801:gān 0x29802:yǐ 0x29803:jiá 0x29805:dá 0x29806:dìng 0x29807:xùn 0x29808:rěn 0x29809:juǎn 0x2980A:tuán 0x2980B:xǔ 0x2980C:sòng 0x2980E:cáo 0x2980F:chēng 0x29811:dǐng 0x2981A:hái 0x2981F:wǔ 0x29826:qǐ,shǒu 0x29828:jī,qǐ 0x2982E:kuí 0x2982F:wéi 0x29836:shǒu 0x29837:fú 0x29839:tuán 0x2983B:bié,hān 0x2983D:tán 0x2983E:hāng 0x2983F:piē 0x29843:yú 0x29844:tán,xiāng 0x2984C:xiāng 0x2984E:xiū 0x29853:wěng 0x29854:hài 0x29855:péng 0x2985D:tán 0x2985F:bié 0x29860:xiāng 0x29863:yǐ 0x29866:piáo 0x29867:huán 0x29868:mǔ 0x29869:bā 0x2986B:fàn 0x2986F:dīng 0x29877:fēn,fèi 0x2987A:jiè 0x2987E:suó 0x29884:wàn 0x29885:gē 0x29888:fēn 0x2988A:tuó 0x2988C:wén 0x2988D:guā 0x2988E:duō 0x29890:zhé 0x29891:cǐ 0x29892:yǎo 0x29894:bàn 0x29895:bù 0x29896:mò 0x29898:pǒ 0x2989B:gé 0x2989E:liú 0x298A1:rǎn 0x298A8:gān 0x298AA:hú 0x298AB:móu 0x298AE:xiū 0x298AF:huāng 0x298B0:fú 0x298B1:huí 0x298B3:qú 0x298B4:jié,jí 0x298B5:tuō 0x298B6:yú 0x298B7:mò 0x298B8:zhōu 0x298B9:jiù 0x298BB:shú 0x298BC:kuāng 0x298BD:qióng 0x298BE:liè 0x298BF:fù 0x298CA:xù 0x298D6:lìn 0x298D8:niè 0x298DA:pī,bǐ 0x298DC:fù 0x298DD:bù 0x298DE:yì,sà 0x298E1:bó 0x298E3:é,ě 0x298E9:zhé 0x298EB:lì 0x298EE:tù 0x298EF:dá 0x298F1:lù 0x298F2:yān 0x298F3:dōng 0x298F4:qiè 0x298F5:wǎn,wò 0x298F6:mǐng 0x298F7:zuī,zhù 0x298F8:fù 0x298F9:qū 0x298FA:bēn 0x298FB:ǎo 0x298FC:qiāng 0x29901:qūn 0x29908:què 0x29909:huá,táo 0x2990A:xiàn,jiàn 0x2990B:kùn 0x2990F:cuì 0x29912:yí 0x29916:chī,ér 0x29917:zòng 0x29918:nǎo 0x29919:chéng 0x2991A:duān 0x2991B:yóng 0x2991C:zhě 0x2991E:tàn 0x2991F:yáng 0x29920:xié 0x29921:xuān 0x29923:duàn 0x29924:shuǎ 0x29925:xián 0x29926:xián 0x29929:é 0x29932:lā 0x29938:wèi 0x29939:yōu 0x2993A:yú 0x2993D:tī 0x2993F:jīn 0x29941:táng 0x29942:qí 0x29944:diān 0x29945:tāo 0x29946:lǜ 0x29947:zhàn 0x29948:wēn 0x29949:jì 0x2994A:āo,jiāo 0x2994B:òu,dú 0x2994C:qià 0x29950:shī 0x29951:tǎ 0x29954:mò 0x29958:yóu 0x29960:zhá 0x29963:yáo 0x2996B:chōng 0x2996C:lí 0x2996D:yú 0x2996E:chǎn 0x2996F:yī 0x29972:chì 0x29974:lí 0x2997D:tú 0x2997F:zú 0x29982:xián 0x29987:xì 0x29989:bié 0x2998A:hán,qiān 0x2998B:qí 0x2998C:sāng,shuāng 0x2998E:fēi,fěi 0x29990:shàn,huō 0x29998:huān 0x299A0:bàng 0x299A1:yú 0x299A2:yú 0x299A4:jí 0x299B1:kuǎi 0x299B2:zōng 0x299B9:xiàn 0x299BA:méng 0x299C3:lì 0x299C4:zhì 0x299C5:fán 0x299C6:liè,là 0x299C7:cài 0x299C8:dú 0x299C9:guāng 0x299CA:xiòng 0x299CB:lí 0x299CC:qì 0x299CF:jué 0x299D0:tuō 0x299D2:jù 0x299D3:xiāo 0x299D8:qú 0x299DC:zhuǎn 0x299E1:jué 0x299E6:jiè 0x299E8:zhòu 0x299E9:xiàn 0x299EA:lóng 0x299EB:yǎng 0x299EC:rǎn 0x299ED:yì 0x299EE:liè 0x299EF:bō 0x299F0:hún 0x299F1:jì 0x299F2:dòng 0x299F3:zhōu 0x299F4:quān 0x299F5:jié 0x299FA:jú 0x299FC:bēn 0x299FF:bī 0x29A00:gé 0x29A01:chǔn 0x29A03:qián 0x29A04:sōu 0x29A05:wèi 0x29A06:chéng 0x29A07:lóu 0x29A08:yú 0x29A09:lā 0x29A0A:qián 0x29A0B:diān 0x29A0C:tǎ 0x29A0D:zhàn 0x29A0F:fán 0x29A10:liè 0x29A11:tīng 0x29A12:jī 0x29A13:qiān 0x29A14:hú,huá 0x29A17:yú 0x29A18:qì,gē 0x29A19:yú 0x29A1A:wā 0x29A1C:bà 0x29A1D:qí 0x29A1E:sǎ 0x29A1F:qiāo 0x29A20:yà 0x29A21:xiǎn,sǎn 0x29A28:cī 0x29A29:fàn 0x29A2B:kǔn 0x29A2C:gǔn 0x29A2D:quē 0x29A2E:è 0x29A2F:qióng 0x29A32:mà 0x29A33:kū,dū 0x29A34:yǎo 0x29A37:quē 0x29A38:chū 0x29A39:jiǎ 0x29A3B:zhǔ 0x29A3D:duī 0x29A3E:wá 0x29A40:nǎo 0x29A44:yán 0x29A45:tóng 0x29A4B:xíng,jìng 0x29A4C:gǔn 0x29A4D:pīng 0x29A51:yǔ 0x29A52:hè 0x29A54:zhuó 0x29A57:shē 0x29A58:yǔ 0x29A5B:jì 0x29A5D:qiāng 0x29A5E:shuì 0x29A5F:chuò 0x29A60:zú 0x29A61:léng 0x29A62:ní 0x29A64:wā 0x29A65:zhá 0x29A67:dàn 0x29A6E:dù 0x29A6F:biàn 0x29A70:jiē,hái 0x29A71:qià 0x29A72:hé 0x29A73:chòng 0x29A74:yán 0x29A76:yàn 0x29A7A:sóng 0x29A7B:téng 0x29A7C:yǎo 0x29A7E:kāo 0x29A80:zhuī 0x29A81:guì 0x29A82:ái 0x29A83:hài 0x29A88:suǒ 0x29A89:xù 0x29A8A:biāo 0x29A8C:fèng 0x29A8D:qū,shū 0x29A8E:mǎng 0x29A90:guó 0x29A96:bì 0x29A97:jué 0x29A98:chuáng 0x29A9B:pú 0x29A9F:yì 0x29AA2:qiān 0x29AA3:yì 0x29AA4:è 0x29AA5:líng 0x29AA7:bì 0x29AAD:huò 0x29AAE:mǒ,mó 0x29AB1:xūn 0x29AB4:yàn 0x29AB8:lì 0x29ABA:tán 0x29ABE:luán 0x29AC0:kài 0x29AC1:mào 0x29AC2:xiāo 0x29AC7:ǎi 0x29ACA:tǎ 0x29ACD:mèi 0x29ACF:guō,yōng 0x29AD3:gǎo 0x29AD4:náo 0x29AD5:háo 0x29AE0:quē 0x29AE5:cáo 0x29AE6:sào 0x29AEB:pí 0x29AF2:xiē 0x29AF3:xiāo 0x29AF4:jú 0x29AF9:chéng 0x29AFA:nǎo 0x29B00:nèi 0x29B0D:mǔ 0x29B0F:shāo 0x29B11:diān,chān 0x29B14:líng 0x29B16:zhěn 0x29B17:yǎo 0x29B19:fù,fū 0x29B1A:qián,gàn 0x29B1B:qióng 0x29B1C:jú 0x29B1D:bìng,fǎng 0x29B1E:máo,mán,mián 0x29B1F:zhà 0x29B20:tāi 0x29B24:chōng 0x29B2B:zhǎi 0x29B2D:shī 0x29B2E:yòng 0x29B30:qióng 0x29B31:dào 0x29B32:tì 0x29B33:zhuǐ 0x29B35:yìn 0x29B37:nǎo 0x29B38:bō 0x29B39:kuāng 0x29B3A:zhǐ 0x29B3B:duǒ 0x29B3C:cōng 0x29B3D:bǎo 0x29B47:lí 0x29B4A:jú 0x29B4B:wén,kūn 0x29B4C:liè 0x29B4F:wǒ 0x29B50:shǐ 0x29B51:niǎo 0x29B52:máng 0x29B53:jiū 0x29B58:xiū 0x29B5D:wǒ 0x29B5F:dào 0x29B61:xī 0x29B62:àn 0x29B63:dá 0x29B64:zǒng,zōng 0x29B65:hàn 0x29B66:chuí 0x29B67:bī,bān 0x29B69:dòng 0x29B6B:zhǎng 0x29B6F:yā 0x29B72:dí 0x29B73:huō 0x29B77:mín 0x29B7A:fù 0x29B7C:bǎo 0x29B7D:kè 0x29B7E:máo 0x29B7F:rè 0x29B80:zōng,zǒng,sōng 0x29B81:qià 0x29B82:xiā 0x29B83:sōu 0x29B84:xiū 0x29B85:nà 0x29B89:mán,mián 0x29B8E:zhā 0x29B8F:chán 0x29B90:shè 0x29B91:wǒ 0x29B96:ái 0x29B97:bàng,péng,fǎng 0x29B98:hāo 0x29B9A:sāo 0x29B9B:suǒ 0x29B9C:tì 0x29B9D:yà 0x29B9F:bìng 0x29BA0:róng 0x29BAB:shā 0x29BAC:wěng 0x29BAF:áo 0x29BB1:zhuāng 0x29BB3:piào,piǎo,piē 0x29BB4:suī,cuǐ 0x29BB5:yī 0x29BB6:sōu 0x29BB7:dōu 0x29BB8:sōu,nà 0x29BB9:luó 0x29BC3:fèi,bì 0x29BC4:zùn 0x29BC6:nào 0x29BC7:dēng 0x29BC8:zhí 0x29BC9:cuō 0x29BCA:liáo 0x29BCB:jǐ 0x29BCC:bō 0x29BCD:cóng 0x29BCE:chéng 0x29BCF:bǔ 0x29BD1:sān 0x29BD2:zàn 0x29BD8:jiào 0x29BDB:yào 0x29BDC:lǔ 0x29BDE:càn 0x29BE8:nǐ 0x29BF0:jié,jì 0x29BF1:pú 0x29BF2:zhuàng 0x29BF3:zàn,zuǎn,zā 0x29BFA:lì 0x29BFD:là 0x29C00:chōng 0x29C03:zhàn 0x29C0D:biàn 0x29C0E:wēng 0x29C13:hòng 0x29C17:pīn 0x29C19:sè 0x29C1E:nǐ 0x29C1F:fēn 0x29C20:xǔ 0x29C22:shǐ 0x29C24:jù 0x29C28:jué 0x29C2A:yù 0x29C2C:guō,wāi 0x29C2D:guō 0x29C2F:hú 0x29C32:lì,fèi 0x29C33:xié 0x29C34:ér 0x29C35:yuán 0x29C36:hái,bèn 0x29C39:jìng 0x29C3B:kè 0x29C3D:zōng 0x29C3E:fèi 0x29C40:pēng 0x29C41:gēng 0x29C43:jiān 0x29C44:ní 0x29C46:xián 0x29C47:lì 0x29C48:chǎo 0x29C4A:ér,xiàn 0x29C4B:gēng,pēng 0x29C4C:yù 0x29C4D:hú 0x29C4E:fèi 0x29C4F:áo 0x29C53:ěr 0x29C58:kè 0x29C59:kù 0x29C5A:bó 0x29C5D:yè 0x29C5E:jiào 0x29C66:chǎo 0x29C67:gēng 0x29C68:rù 0x29C6A:yuè 0x29C6C:lín 0x29C71:yù 0x29C72:yuè 0x29C73:zhāi 0x29C74:xiāo 0x29C77:miè 0x29C7B:guǐ 0x29C7C:jiū 0x29C7E:tuò 0x29C81:xí 0x29C82:wěi 0x29C83:zhuó 0x29C84:wèi 0x29C85:kuí 0x29C88:mèi,wéi 0x29C8A:hào 0x29C8B:hāng 0x29C8C:fāng 0x29C8D:niú 0x29C8E:yòu 0x29C8F:huà 0x29C92:làng 0x29CA0:zhú 0x29CA1:guǐ 0x29CA2:bì,mèi 0x29CA3:jiǎ 0x29CA4:tiáo 0x29CA6:lǜ 0x29CA7:kǒng 0x29CA8:zuǐ 0x29CA9:líng 0x29CAA:qí 0x29CAC:zhú 0x29CB1:gǔ 0x29CB2:zù 0x29CB4:yāng 0x29CB5:sū 0x29CB7:kuí 0x29CB9:chāng 0x29CBB:yáo 0x29CBE:yù 0x29CC5:shū 0x29CC6:lài 0x29CC7:yì 0x29CC8:dōu 0x29CCC:wú 0x29CCD:yǐng 0x29CCE:fú 0x29CCF:zhuàn 0x29CD0:fǔ 0x29CD2:sù 0x29CD3:lǐ 0x29CD4:yào 0x29CD5:tuì,tì 0x29CDD:guì 0x29CE1:lǜ 0x29CE2:yàn 0x29CE3:qí 0x29CE4:làng,chāng 0x29CE5:zhú 0x29CE7:guǐ 0x29CE8:hū 0x29CEF:jīng 0x29CF2:chǐ 0x29CF5:jú 0x29CF6:zhá 0x29CF8:miáo 0x29D00:zhū 0x29D01:gān 0x29D02:xiōng 0x29D03:jí 0x29D07:shài 0x29D08:mèi 0x29D09:yùn 0x29D0D:shòu 0x29D10:lǜ 0x29D11:yòu 0x29D12:jiàng 0x29D13:nuó 0x29D18:jù 0x29D19:yòu 0x29D1C:yì 0x29D1D:téng 0x29D1E:wéi 0x29D1F:chě 0x29D20:lìn 0x29D21:gù 0x29D23:lì 0x29D24:liào 0x29D27:jiāo 0x29D28:yáng 0x29D29:biāo 0x29D2A:qí 0x29D2E:yì 0x29D31:bīn 0x29D32:méng 0x29D33:chà 0x29D35:gān 0x29D39:qú 0x29D3A:dí 0x29D3B:léi 0x29D40:líng 0x29D44:huān 0x29D45:qú 0x29D47:luó 0x29D49:kuí 0x29D4D:qiú 0x29D4E:yǔ,yú 0x29D4F:huà 0x29D53:lèi 0x29D55:rèn,dāo 0x29D56:xiǎo 0x29D57:sì 0x29D5A:dù 0x29D5B:biē 0x29D60:niú,wěi 0x29D62:hè,zā 0x29D63:pēi 0x29D65:fèi 0x29D66:mù 0x29D69:fū 0x29D6C:hú 0x29D6D:wáng 0x29D6E:shā,xiǎo 0x29D70:jiāo,qiū 0x29D71:wǔ 0x29D79:fù 0x29D81:bǐng 0x29D82:zhù 0x29D84:zhú 0x29D85:chī 0x29D87:shěn 0x29D88:hū 0x29D89:bū 0x29D8E:rǎn 0x29D96:mù 0x29D98:lì 0x29D9B:jiā 0x29D9E:mà,háng 0x29DA1:méng 0x29DA2:móu 0x29DA3:zhōu 0x29DA4:xiǎn 0x29DA5:huǐ,hóng 0x29DA6:guài 0x29DA7:jiù 0x29DA9:mù 0x29DAB:rù,xuè 0x29DAD:wú 0x29DAF:rú 0x29DB1:zhà 0x29DC1:nuǒ 0x29DC2:xié 0x29DC4:jiàng 0x29DCB:lǐ 0x29DCC:shū 0x29DCD:yì 0x29DCE:dí 0x29DCF:qíng 0x29DD0:jú 0x29DD3:zhì 0x29DD5:láng 0x29DD6:bù 0x29DD7:kuáng 0x29DD8:yì 0x29DDA:bó 0x29DE7:chì 0x29DED:jiàng 0x29DEF:wò 0x29DF0:xùn 0x29DF5:tūn 0x29DF6:máng 0x29DF8:fáng 0x29DF9:zhuó 0x29DFB:qià 0x29DFD:tǎ 0x29DFE:qí 0x29E00:pèng 0x29E01:biē 0x29E02:fèn,pèn 0x29E03:tù 0x29E04:huà 0x29E07:è 0x29E0B:è,yā 0x29E0E:dìng 0x29E10:rú 0x29E16:è 0x29E1E:yàn,qí 0x29E1F:sì 0x29E25:yíng 0x29E26:ní 0x29E27:ní 0x29E28:yí 0x29E39:mí 0x29E3E:yé 0x29E3F:pō 0x29E40:còu 0x29E42:wèi 0x29E44:hài 0x29E45:yīng 0x29E47:tíng 0x29E48:zhì 0x29E49:fēi 0x29E4A:yóu 0x29E4D:kuí 0x29E4E:àn 0x29E4F:bà 0x29E51:hàn 0x29E5E:nán 0x29E5F:nài 0x29E62:jīng 0x29E65:wēi 0x29E71:chù 0x29E73:suǒ 0x29E74:tāo 0x29E75:qí 0x29E76:táng 0x29E77:wěi 0x29E78:gǎn 0x29E7A:gé 0x29E7C:hàn 0x29E7E:nà 0x29E7F:gé 0x29E84:zhēng 0x29E97:tǎ,dá 0x29E9B:sī 0x29E9D:nì 0x29E9E:sǎng 0x29EAB:xié 0x29EAF:zú 0x29EB0:yú,wú 0x29EB1:nì 0x29EB2:qī 0x29EB5:shēn 0x29EBC:bū 0x29ECB:kūn 0x29ECC:lí 0x29ECE:guā 0x29ED6:yǎn 0x29ED7:bù 0x29ED8:jiàn 0x29EDA:wú 0x29EDB:cén,jīn 0x29EDC:lín 0x29EDD:zhuàn 0x29EDF:huī 0x29EE1:tóng 0x29EE2:zhǎ 0x29EE4:hēi 0x29EE7:guǒ 0x29EF1:jǐng 0x29EF5:dié 0x29EF7:yíng 0x29EFC:zhì 0x29F02:wěi 0x29F04:jì 0x29F05:rǒng 0x29F08:ào,yǒu 0x29F09:dāng,hān 0x29F0A:luó 0x29F0B:yè 0x29F0C:wēi 0x29F12:qiáng 0x29F19:gé 0x29F1A:jì 0x29F26:zòu 0x29F28:yí 0x29F2B:zhǎ 0x29F2D:liè 0x29F34:yè 0x29F3C:zhān 0x29F40:chóu 0x29F41:biāo 0x29F46:xù 0x29F47:yōu 0x29F4D:xiè 0x29F4E:wéi 0x29F4F:lì 0x29F5B:bó 0x29F5C:jiǎn 0x29F5D:chán 0x29F5E:kūn 0x29F61:qíng 0x29F67:shuāng 0x29F68:xī 0x29F69:qú 0x29F70:luó 0x29F73:dǎng 0x29F74:nián 0x29F75:lǐ 0x29F77:bà 0x29F79:è 0x29F7A:fū 0x29F7B:fù 0x29F7C:hǔn 0x29F7D:zhà 0x29F7E:ān 0x29F81:qiú 0x29F82:chóu 0x29F83:miǎn 0x29F84:xùn 0x29F85:tù 0x29F86:ní 0x29F87:hu 0x29F88:shū 0x29F8A:xū 0x29F8B:zhòng 0x29F8C:kāng 0x29F92:xiāo 0x29F93:xiāo 0x29F94:cì 0x29F95:chì 0x29F97:diāo,jiāo 0x29F98:yì 0x29F9A:dīng 0x29F9D:hàn,yàn 0x29F9E:wán 0x29FA0:yǐ 0x29FA1:bào 0x29FA2:yì,yuān 0x29FA7:xùn 0x29FAC:xiáng 0x29FB3:bí 0x29FB6:jié 0x29FB7:gē 0x29FB8:zè,yàn 0x29FBA:zhèn 0x29FBB:hú 0x29FBC:xī 0x29FBD:xīn 0x29FBE:xiāo,jiāo 0x29FBF:fù 0x29FC0:zhòng 0x29FC2:mào 0x29FC3:xīn 0x29FC4:qiāng 0x29FC8:fén,fēn 0x29FC9:bān 0x29FCA:huān 0x29FD1:jiāo 0x29FD3:bào 0x29FD4:yā 0x29FD5:yáo 0x29FDB:xì 0x29FDD:jù 0x29FDF:qù 0x29FE0:yuè 0x29FE1:tái 0x29FE2:tǒu 0x29FE3:mò 0x29FE4:zhá 0x29FE5:qú 0x29FE7:fū 0x29FE9:qú,duó 0x29FEA:chì 0x29FEC:yóu 0x29FF7:tí 0x29FFA:wā 0x29FFD:tuó 0x29FFF:chú 0x2A001:gē 0x2A008:yuān 0x2A009:gē,kě 0x2A00A:qú 0x2A00F:jù,jiū 0x2A012:dié 0x2A013:yí 0x2A014:shī 0x2A015:yì 0x2A017:guǐ 0x2A018:jiàng 0x2A01A:sōng 0x2A01B:qióng 0x2A01D:è,yuān 0x2A01E:huāng 0x2A01F:huí 0x2A020:xún 0x2A023:jú 0x2A025:zhái 0x2A026:chì 0x2A027:lǎo 0x2A029:qí,dàn,chú 0x2A02A:xiū 0x2A02C:huī 0x2A02D:tóng 0x2A03A:fù 0x2A03D:xún,xīn 0x2A03E:jié 0x2A03F:mǐ 0x2A040:yù 0x2A048:zhuāng,zhuàng 0x2A049:jiāo 0x2A04A:zhì,zhé 0x2A04B:chéng 0x2A04D:jié 0x2A04E:xiāo 0x2A04F:chén 0x2A050:lí 0x2A051:yuè 0x2A053:zhì 0x2A054:láo 0x2A055:wò 0x2A056:qú 0x2A058:wāng 0x2A05A:yī 0x2A05B:yì 0x2A05C:láng 0x2A05E:tóu 0x2A05F:ān,hàn 0x2A060:jué 0x2A061:yàn 0x2A065:jù 0x2A067:zhèn,chén 0x2A069:zhì,tí 0x2A06A:mǎng 0x2A06E:xiù 0x2A071:chuáng 0x2A072:chū 0x2A078:qiāng 0x2A079:fēi 0x2A07A:cháng,chǎng 0x2A07C:mián 0x2A07D:sù 0x2A07E:ǎo,wò 0x2A080:fǔ 0x2A084:wèi 0x2A085:zhī 0x2A086:mín 0x2A087:chāng 0x2A088:yán 0x2A089:yù 0x2A08B:fù 0x2A08C:tà 0x2A08D:jǐ 0x2A08F:fèi 0x2A092:hú 0x2A093:jū 0x2A095:yǔ 0x2A09B:qí 0x2A09C:méi 0x2A09F:biē 0x2A0A0:guǒ 0x2A0A4:mìng 0x2A0A6:wǎn,yuān 0x2A0A7:wǎn 0x2A0B4:jīng 0x2A0B5:yù 0x2A0B6:xián 0x2A0B9:chūn 0x2A0BA:jí 0x2A0BC:xiāng 0x2A0BD:pén 0x2A0BE:fù 0x2A0C2:liú 0x2A0C4:sāi 0x2A0C5:xuē 0x2A0C6:zòu 0x2A0C8:jié 0x2A0CB:zhān,jiān 0x2A0CD:yú 0x2A0CE:yú 0x2A0CF:méi 0x2A0D0:miǎo 0x2A0D1:mào 0x2A0D2:duó 0x2A0D3:fù 0x2A0DB:jiàn 0x2A0E6:miáo 0x2A0E8:āo 0x2A0ED:kè 0x2A0F6:hóu 0x2A0FA:gòu 0x2A0FC:xī 0x2A0FE:róng 0x2A0FF:gē 0x2A100:pán 0x2A101:yuán 0x2A102:xià 0x2A105:shā 0x2A106:pī,pí 0x2A108:qíng 0x2A109:yōng 0x2A10A:qú 0x2A10C:gòng 0x2A10E:gé 0x2A10F:xiān 0x2A111:sù 0x2A115:bān 0x2A116:qí 0x2A117:hòu 0x2A11B:xī 0x2A11D:wū 0x2A12D:qī 0x2A12E:hù,gù 0x2A12F:guī 0x2A131:dí 0x2A132:shāng 0x2A133:mài 0x2A134:mǐn 0x2A135:jì 0x2A136:xí 0x2A137:xiān 0x2A138:jí 0x2A139:cháng 0x2A13A:kòu 0x2A13B:chōng,zhuāng 0x2A142:zhāng 0x2A143:piǎo,piāo 0x2A144:sù 0x2A145:lüè 0x2A146:lí 0x2A147:mèng 0x2A148:chōng 0x2A149:tiān 0x2A14B:líng 0x2A14D:chì 0x2A156:chōng,zhuāng 0x2A159:chì 0x2A15D:niǎo 0x2A15F:yóng 0x2A16E:mì 0x2A170:shū 0x2A172:xì 0x2A174:è 0x2A175:zī 0x2A178:jié 0x2A179:jī 0x2A17A:hōu 0x2A17B:shèng 0x2A17C:lì 0x2A17E:qī 0x2A180:zhōu 0x2A181:sī 0x2A182:qú 0x2A18B:xié 0x2A197:sī 0x2A19B:xū 0x2A1A0:fù 0x2A1AF:nóng 0x2A1B0:yà 0x2A1B1:liú 0x2A1B2:jiǎ,zhān 0x2A1B3:guī 0x2A1B4:kuí 0x2A1B5:chì 0x2A1B6:càn 0x2A1B7:chú 0x2A1B9:guō 0x2A1BB:dǎn 0x2A1BF:jiàn 0x2A1C1:dāng 0x2A1C2:hòu 0x2A1C4:kòu,kū 0x2A1C6:chù,dú 0x2A1C7:qiān 0x2A1C8:ài 0x2A1CA:pì 0x2A1D1:xùn 0x2A1D2:jīng 0x2A1D3:mèng 0x2A1D5:bīn 0x2A1D6:lán 0x2A1D7:gǔ 0x2A1D8:chóu,táo 0x2A1DB:yōng 0x2A1DC:guá 0x2A1DD:yú 0x2A1DE:zhòu 0x2A1ED:cài 0x2A1EF:liú 0x2A1F0:bǔ 0x2A1F1:luò 0x2A1F2:jié 0x2A1F3:zhēn 0x2A1F4:miè 0x2A1F5:guǎng 0x2A1F7:jiá 0x2A1F9:là 0x2A200:shòu 0x2A203:guō 0x2A206:mèng 0x2A207:qián 0x2A208:lài 0x2A20A:hé 0x2A20B:tuán 0x2A211:huī 0x2A218:hōng 0x2A21C:lǚ 0x2A21F:jiá 0x2A225:guī 0x2A228:yī 0x2A229:huān 0x2A230:luó 0x2A234:jué 0x2A238:guàn 0x2A23B:quán 0x2A23C:niǎo 0x2A23F:mán 0x2A242:yùn 0x2A243:wén 0x2A244:chì 0x2A245:chì 0x2A246:zhī 0x2A248:cí 0x2A249:zhuàng 0x2A24A:huá 0x2A24B:jié 0x2A24C:qú 0x2A24D:tū 0x2A24E:mín 0x2A24F:méi 0x2A250:yú 0x2A251:áo 0x2A252:bān 0x2A254:pī 0x2A255:zhēn 0x2A256:lǔ 0x2A257:chì 0x2A258:tóu 0x2A25A:jiē 0x2A25C:zhān 0x2A262:jīn 0x2A263:lǔ 0x2A266:jiàn,jiǎn,gàn 0x2A267:tàn 0x2A268:chāng 0x2A26A:cì 0x2A26D:wāi 0x2A26E:còu 0x2A26F:kàn 0x2A271:biàn 0x2A278:wēn 0x2A27B:qiān 0x2A27F:gàn 0x2A282:huì 0x2A284:gǎn,gàn 0x2A286:jì 0x2A287:gàn,tàn 0x2A289:huái 0x2A28D:sì 0x2A290:fū 0x2A295:pí 0x2A297:cā 0x2A29C:bèn 0x2A2A2:shí,shǐ 0x2A2A5:huán 0x2A2A7:guī 0x2A2AA:ǒu 0x2A2B3:páo 0x2A2B5:yǐng 0x2A2B6:tǐng 0x2A2B7:xiào 0x2A2B9:zhù 0x2A2BB:yú 0x2A2C1:jiàn 0x2A2C4:qǔ 0x2A2C5:wǎn 0x2A2C6:kūn 0x2A2C7:zhuī 0x2A2C9:yù 0x2A2CA:guǒ 0x2A2CB:píng 0x2A2CC:zuǐ 0x2A2CD:zú 0x2A2CF:zhū 0x2A2D0:nuàn 0x2A2D1:zhū 0x2A2D6:piāo 0x2A2D7:mí 0x2A2DC:bì 0x2A2DD:sù 0x2A2E1:pú 0x2A2E2:mí 0x2A2EB:yè 0x2A2EC:yǔ 0x2A2EE:yù 0x2A2F0:zhǔ 0x2A2F3:líng 0x2A2FA:nòu 0x2A2FE:líng 0x2A300:liǎo 0x2A302:tuō 0x2A304:bǐ 0x2A305:nà 0x2A306:qú 0x2A308:pí 0x2A309:dǒu 0x2A30A:niè 0x2A30B:tún 0x2A30D:jī 0x2A30F:líng 0x2A313:kù 0x2A314:sù 0x2A318:tǒu 0x2A31E:nái 0x2A31F:zé 0x2A322:tǒng 0x2A323:gé 0x2A324:duī 0x2A327:jié 0x2A329:tián 0x2A32A:tiào 0x2A32B:chí 0x2A32C:qū,chǎo 0x2A32E:shā,suō 0x2A330:bó 0x2A331:lí 0x2A333:luò 0x2A335:liáo 0x2A336:shù 0x2A337:děng 0x2A339:chī 0x2A33A:miè 0x2A33C:táo 0x2A33D:hún 0x2A33F:nié 0x2A341:jùn 0x2A342:hù 0x2A344:lù 0x2A345:yè 0x2A347:mò,chǎo,mài 0x2A348:chào 0x2A34C:suò 0x2A34E:kē 0x2A34F:fù 0x2A351:chǎo 0x2A354:suǒ 0x2A357:qiū 0x2A35B:sù,xiè 0x2A35D:yùn 0x2A35F:suǒ 0x2A360:kū 0x2A361:bó 0x2A363:lǒu 0x2A364:mò 0x2A366:liǎn 0x2A367:xuàn 0x2A368:suǒ 0x2A369:mán 0x2A36A:bì 0x2A372:tì 0x2A374:lián 0x2A375:tán 0x2A376:shàn 0x2A378:qú 0x2A379:dú 0x2A37A:huán,huàn 0x2A37B:sào 0x2A37F:kuàng 0x2A383:niè 0x2A385:niè 0x2A386:luó 0x2A387:zuó 0x2A388:yì 0x2A389:xiàn 0x2A38A:chǎo 0x2A38B:tiè 0x2A392:shuò 0x2A394:mǐ 0x2A397:mí 0x2A39B:wǎn 0x2A39D:bèn 0x2A39E:qiāng 0x2A3A0:mǒ 0x2A3A3:liú 0x2A3A4:wò 0x2A3A6:měi 0x2A3A8:tóu 0x2A3AB:mǔ 0x2A3AD:méi 0x2A3B2:zuò 0x2A3B4:tún 0x2A3B5:kàng 0x2A3B6:tún 0x2A3BA:chè 0x2A3BB:zhèng 0x2A3BD:chōng 0x2A3BE:tiān 0x2A3C0:zhì 0x2A3C1:chán 0x2A3C2:chán 0x2A3C5:qīng 0x2A3C6:tūn 0x2A3C7:huǐ 0x2A3C8:què 0x2A3C9:zhān 0x2A3CA:jiān,miǎn 0x2A3CB:chán 0x2A3CD:huáng 0x2A3CF:huī 0x2A3D0:chí 0x2A3D2:huáng 0x2A3D3:héng 0x2A3D4:yǔn 0x2A3D6:tuān 0x2A3D7:biān 0x2A3D9:huáng 0x2A3DA:yǔn 0x2A3DF:mò 0x2A3E0:gōng 0x2A3E2:gōng 0x2A3E4:guì 0x2A3E6:chán 0x2A3E8:què 0x2A3E9:ruì 0x2A3EA:kuàng 0x2A3EB:piào 0x2A3EE:rǔ 0x2A3F2:niǔ 0x2A3F3:hù 0x2A3F4:jǐn 0x2A3F5:nì,lí 0x2A3F6:bào 0x2A3F8:nǐ,chī 0x2A3FA:bì 0x2A3FB:hú 0x2A3FC:lí 0x2A3FF:zhū 0x2A400:nǎ 0x2A402:quǎn 0x2A403:fěng 0x2A404:bǐ 0x2A405:lí 0x2A406:bié 0x2A407:nián 0x2A408:dǒng 0x2A40B:lián 0x2A40C:nì 0x2A40D:lián 0x2A40E:má 0x2A40F:zhé,zhí 0x2A413:jiā 0x2A414:yí 0x2A416:lǒng 0x2A418:yì,yān 0x2A41D:dài,tài 0x2A41E:dù 0x2A423:yǐ 0x2A425:tài 0x2A426:hāng 0x2A427:shù 0x2A42C:wán 0x2A42E:sù 0x2A42F:yǎo 0x2A430:èr 0x2A432:zhèn 0x2A43A:dòu 0x2A43B:jiān 0x2A43F:pāng 0x2A440:huī 0x2A442:chà 0x2A443:shān 0x2A444:lú 0x2A446:yù 0x2A448:yàn 0x2A449:wǎn 0x2A44A:qiào 0x2A44B:luō 0x2A44C:yù 0x2A44F:tú 0x2A450:wèi 0x2A452:tùn 0x2A455:hǔn 0x2A456:bēn 0x2A457:qiè 0x2A459:jīn,qián 0x2A45A:lái,lí 0x2A45C:zhǐ 0x2A45D:yú 0x2A45F:cì 0x2A466:yè 0x2A467:dié 0x2A468:chà 0x2A469:diàn 0x2A46A:mán 0x2A46C:dèng 0x2A46D:wēi 0x2A46E:niǎn 0x2A46F:lèi 0x2A470:bīng 0x2A471:wū,wò 0x2A473:zhěn 0x2A476:róu 0x2A477:wài 0x2A478:mì,yān 0x2A479:jiè 0x2A47B:hóu 0x2A47D:zhài 0x2A47E:rǔ 0x2A47F:zī 0x2A480:pán 0x2A482:mò 0x2A484:mì 0x2A486:qī 0x2A487:mò 0x2A48A:zhī 0x2A48B:bān,pán 0x2A48D:miè 0x2A48F:lù 0x2A491:qī 0x2A492:chōng 0x2A494:lí 0x2A495:yì 0x2A498:dèng 0x2A499:cuō 0x2A49B:duì 0x2A49C:mà 0x2A49D:yǎn 0x2A49F:zèng 0x2A4A0:yǎn,ǎn,àn 0x2A4A1:duì,dài 0x2A4A2:pū 0x2A4A5:yuè 0x2A4A9:huò 0x2A4AA:mài 0x2A4AB:jiǎn 0x2A4AC:nóng 0x2A4AD:qín 0x2A4AF:qín 0x2A4B2:yè 0x2A4B4:tái 0x2A4B9:jiān 0x2A4BC:chá 0x2A4BE:dàn 0x2A4BF:téng 0x2A4C0:lì 0x2A4C3:niǎng 0x2A4C4:chán 0x2A4C5:zāng 0x2A4CA:yù 0x2A4CC:zuì 0x2A4CD:biān 0x2A4D0:chǔ 0x2A4D8:rán 0x2A4DA:rán 0x2A4DB:yāng 0x2A4DC:bǒ 0x2A4E1:cù 0x2A4EC:mí 0x2A4EE:kě 0x2A4F0:cù 0x2A4F7:xí 0x2A4F9:má 0x2A4FB:shī 0x2A4FC:diān 0x2A4FF:shī 0x2A502:dǐng 0x2A503:jiōng 0x2A505:yuán 0x2A506:gān 0x2A50A:huì 0x2A50B:jī 0x2A50D:péng 0x2A50F:dēng 0x2A511:bèng 0x2A514:pāng,péng 0x2A515:tà,lóng 0x2A517:yuān 0x2A518:gāo 0x2A519:yuān 0x2A51F:jiā 0x2A523:kōng 0x2A526:dòng 0x2A529:xián 0x2A52A:qì 0x2A52C:sāng 0x2A530:yìn 0x2A533:lóng 0x2A536:tēng 0x2A537:lóng 0x2A53A:rèn 0x2A53D:yìn 0x2A53E:píng 0x2A53F:pū 0x2A540:yuán 0x2A541:rǒng,chén 0x2A543:fāng 0x2A547:hāng 0x2A548:mí 0x2A549:hú 0x2A54A:zī 0x2A54C:líng 0x2A54D:jiōng 0x2A54E:rǒng 0x2A552:píng 0x2A553:guāng 0x2A554:ěr 0x2A55D:cù 0x2A55E:jùn 0x2A566:xiǔ 0x2A568:ér 0x2A569:tì 0x2A56B:yáng 0x2A56D:ài 0x2A56E:hú 0x2A56F:xí,xié 0x2A571:hú 0x2A573:sī 0x2A574:lǐ 0x2A576:yì 0x2A577:gǔ 0x2A579:táng 0x2A580:què 0x2A581:zōng 0x2A582:lí 0x2A584:jiào 0x2A587:fán 0x2A588:pú 0x2A589:sī 0x2A58B:jié 0x2A58C:lú 0x2A58D:lì 0x2A58E:chán 0x2A590:yào,yà 0x2A595:huī 0x2A599:hōu 0x2A59A:diān 0x2A59B:qiù 0x2A59C:jué 0x2A59E:pì 0x2A5A2:kuī 0x2A5A5:xǐ 0x2A5A6:tī 0x2A5A9:xù 0x2A5AF:biǎn 0x2A5B2:hē 0x2A5B3:lián 0x2A5B6:sù 0x2A5B7:liào 0x2A5BC:jīn 0x2A5C1:lì 0x2A5C2:chán 0x2A5C5:qí 0x2A5C6:qí 0x2A5C9:zī 0x2A5CB:zī 0x2A5CD:qí 0x2A5CF:qí 0x2A5D0:zī 0x2A5D2:zhāi 0x2A5D3:zhāi 0x2A5D4:pà 0x2A5D6:jū 0x2A5D9:yǎn 0x2A5DC:háng 0x2A5DD:nà 0x2A5E4:yǎn 0x2A5E6:zhàn 0x2A5E7:shǐ 0x2A5E8:zhí 0x2A5ED:zhā 0x2A5F4:rǒng 0x2A5F5:zhā 0x2A5F7:yì 0x2A5F8:míng 0x2A5F9:yá 0x2A5FB:zhì 0x2A5FD:kuò,huá 0x2A5FE:xiá 0x2A600:pián 0x2A601:tà,xiá 0x2A603:yǐ 0x2A606:xiū 0x2A607:zhāi 0x2A609:duǒ 0x2A60A:è 0x2A60E:yín,niè 0x2A610:è 0x2A611:suān 0x2A612:ān 0x2A613:cuó 0x2A615:tuó 0x2A617:tuó 0x2A618:xiá 0x2A61B:chuò 0x2A61D:suān 0x2A625:jì 0x2A626:qiǎn 0x2A627:zú 0x2A628:zhāi 0x2A629:yǔn,kǔn 0x2A62A:zhàn 0x2A62C:yí,yà,yá 0x2A632:yá,yí,yà,cī 0x2A633:yuē 0x2A639:hé 0x2A63A:qià 0x2A63E:chā 0x2A643:óu 0x2A648:hú 0x2A64A:yàn 0x2A64C:qiè 0x2A64D:bó 0x2A64E:qiāng 0x2A64F:jiè,jiá 0x2A65B:nì 0x2A65E:chǎn 0x2A65F:qǐn 0x2A661:zāo 0x2A664:yǐn 0x2A665:xiè 0x2A667:qí 0x2A668:jiàn,jiān 0x2A66B:xū 0x2A66D:zèng 0x2A66F:è 0x2A673:zū 0x2A674:yǐ 0x2A679:zhí 0x2A67A:lì 0x2A67D:lì 0x2A67E:yín 0x2A681:lián 0x2A683:chán 0x2A685:jué 0x2A687:zá 0x2A68E:zhāi 0x2A68F:pián 0x2A691:lóng 0x2A693:lóng 0x2A698:lóng 0x2A69D:lóng 0x2A6A0:lóng 0x2A6A2:mǎng 0x2A6A5:zhé 0x2A6AC:gàn 0x2A6AD:gōu 0x2A6AE:rán 0x2A6AF:cù 0x2A6B0:jiāo 0x2A6B7:bǒ 0x2A6B9:zhù 0x2A6BA:qiū 0x2A6BB:yāng 0x2A6C0:xiào 0x2A6C2:huí 0x2A6C3:qū 0x2A6C8:líng 0x2A6CA:yín 0x2A6CE:pì 0x2A6D2:lián 0x2A79D:duó 0x2A7DD:jì,jī 0x2A848:bái 0x2A84F:zhān 0x2A8AE:luán 0x2A8FB:lóu 0x2A917:liào 0x2AA0A:sóng 0x2AA17:juē 0x2AA30:qū 0x2AA36:shē 0x2AA58:yǎn 0x2AA9D:yōng 0x2AEB9:nǔ 0x2AED0:cōng 0x2AFA2:xiàn 0x2B061:lì 0x2B088:fèi 0x2B099:sù 0x2B0DC:kòu 0x2B127:yán 0x2B128:chī 0x2B137:yì 0x2B138:xūn 0x2B1ED:wěi 0x2B230:qià 0x2B2D0:gǒng 0x2B300:jī 0x2B328:luó 0x2B359:yì 0x2B35F:yí 0x2B362:náo 0x2B363:tóng 0x2B36F:xián 0x2B370:xǐ 0x2B372:xiǎo 0x2B37D:xuān 0x2B3CB:juē,qiāo 0x2B404:yuè 0x2B406:kuài 0x2B409:líng 0x2B410:ní 0x2B413:bù 0x2B461:méng 0x2B4B6:hán 0x2B4E7:fū 0x2B4E9:cōng 0x2B4EF:jī 0x2B4F6:xuān 0x2B4F9:jī 0x2B50D:fán 0x2B50E:jué 0x2B536:niè 0x2B5AE:yǐ 0x2B5AF:fǔ 0x2B5B3:yūn 0x2B5E0:zhāng 0x2B5E6:bù 0x2B5E7:sù 0x2B5EE:huáng 0x2B5F4:zhān 0x2B61C:wén 0x2B61D:jué 0x2B623:hàn 0x2B624:ái 0x2B626:táo 0x2B627:lù 0x2B628:tí 0x2B62A:yuán 0x2B62C:xí 0x2B688:xù 0x2B689:hóng 0x2B692:fú 0x2B694:huí 0x2B695:shī 0x2B696:cǐ 0x2B699:pū 0x2B6AD:liè 0x2B6DB:zhī 0x2B6DE:jué 0x2B6E2:níng 0x2B6ED:kuáng 0x2B6F6:chì 0x2B6F8:tí 0x2B7A9:mén 0x2B7C5:liáng 0x2B7E6:suì 0x2B7F7:lì 0x2B7F9:hóng 0x2B7FC:dá 0x2B806:kuǐ 0x2B80A:xuán 0x2B81C:ní 0x2B851:yīn 0x2B8B8:dàn 0x2BAC7:ě,è 0x2BB5F:ōu 0x2BB62:lǔn 0x2BB7C:láo 0x2BB83:shàn 0x2BC1B:xíng 0x2BD77:lì 0x2BD87:dié 0x2BDF7:xīn 0x2BE29:kōu 0x2C029:wěi 0x2C02A:xiàn 0x2C0A9:jiā 0x2C0CA:zhì 0x2C1D5:wàn 0x2C1D9:pèi,bèi 0x2C1F9:guó 0x2C27C:ōu,ǒu 0x2C288:xún 0x2C2A4:chǎn 0x2C317:hé 0x2C35B:lì 0x2C361:dàng 0x2C364:xún 0x2C488:què 0x2C494:gěng 0x2C497:lán 0x2C4FC:tuí 0x2C542:gōng,lǒng 0x2C613:xún 0x2C618:dǎn 0x2C621:yīn 0x2C629:tīng 0x2C62B:huán 0x2C62C:qiàn 0x2C62D:lín,chēn 0x2C62F:zhǔn 0x2C642:yǎn 0x2C64A:mò 0x2C64B:xiāng 0x2C72C:màn 0x2C72F:liǎng 0x2C79F:pín 0x2C7C1:yì 0x2C7FD:dōng 0x2C8D9:xū 0x2C8DE:zhǔ 0x2C8E1:jiàn 0x2C8F3:hěn 0x2C907:yīn 0x2C90A:shì 0x2C91D:huì 0x2C925:zhuàn 0x2CA02:qí 0x2CA0E:yóu 0x2CA7D:xún 0x2CAA9:nóng 0x2CB29:yì 0x2CB2D:lún 0x2CB2E:chǎng 0x2CB31:jīn 0x2CB38:shù 0x2CB39:shén 0x2CB3B:lú 0x2CB3F:zhāo 0x2CB41:mǔ 0x2CB4A:dù 0x2CB4E:hóng 0x2CB5A:chún 0x2CB5B:bō 0x2CB64:hóu 0x2CB69:wēng 0x2CB6C:wèi,huì 0x2CB6F:piě 0x2CB73:xǐ 0x2CB76:hēi 0x2CB78:lín 0x2CB7C:suì 0x2CBB1:yīn 0x2CBBF:qí,gài 0x2CBC0:jī 0x2CBCE:tuí 0x2CC56:dí 0x2CC5F:wěi 0x2CCF5:pī 0x2CCF6:jiōng 0x2CCFD:shēn 0x2CCFF:tú 0x2CD02:fēi 0x2CD03:huō 0x2CD0A:lín 0x2CD8B:jū 0x2CD8D:tuó 0x2CD8F:wéi 0x2CD90:zhào 0x2CD9F:là 0x2CDA0:liàn 0x2CDA8:jì 0x2CDAD:jì 0x2CDAE:xǐ 0x2CDD5:bū,bǔ 0x2CE18:yǎn 0x2CE1A:yuè 0x2CE23:xiān 0x2CE26:zhuó 0x2CE2A:fán 0x2CE7C:xiè 0x2CE88:yǐ 0x2CE93:chǔ 0x30EDD:biáng 0x30EDE:biángdde-calendar-5.9.1/calendar-service/assets/resources.qrc000066400000000000000000000001321423264401600232610ustar00rootroot00000000000000 pinyin.dict dde-calendar-5.9.1/calendar-service/src/000077500000000000000000000000001423264401600200315ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/src/calendarhuangli.cpp000066400000000000000000000153031423264401600236600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "calendarhuangli.h" #include "lunarandfestival/lunarmanager.h" #include #include #include CalendarHuangLi::CalendarHuangLi(QObject *parent) : QObject(parent) , m_database(new HuangLiDataBase(this)) { } //获取指定公历月的假日信息 QString CalendarHuangLi::GetFestivalMonth(quint32 year, quint32 month) { return m_database->QueryFestivalList(year, static_cast(month)); } QString CalendarHuangLi::GetHuangLiDay(quint32 year, quint32 month, quint32 day) { stDay viewday{static_cast(year), static_cast(month), static_cast(day)}; QList viewdate{viewday}; CaHuangLiDayInfo hldayinfo; //获取阴历信息 stLunarDayInfo lunardayinfo = SolarToLunar(static_cast(year), static_cast(month), static_cast(day)); //获取宜忌信息 QList hllist = m_database->QueryHuangLiByDays(viewdate); //将黄历信息保存到CaHuangLiDayInfo hldayinfo.mSuit = hllist.begin()->Suit; hldayinfo.mAvoid = hllist.begin()->Avoid; hldayinfo.mGanZhiYear = lunardayinfo.GanZhiYear; hldayinfo.mGanZhiMonth = lunardayinfo.GanZhiMonth; hldayinfo.mGanZhiDay = lunardayinfo.GanZhiDay; hldayinfo.mLunarDayName = lunardayinfo.LunarDayName; hldayinfo.mLunarFestival = lunardayinfo.LunarFestival; hldayinfo.mLunarLeapMonth = lunardayinfo.LunarLeapMonth; hldayinfo.mLunarMonthName = lunardayinfo.LunarMonthName; hldayinfo.mSolarFestival = lunardayinfo.SolarFestival; hldayinfo.mTerm = lunardayinfo.Term; hldayinfo.mZodiac = lunardayinfo.Zodiac; hldayinfo.mWorktime = lunardayinfo.Worktime; //返回json return hldayinfo.toJson(); } QString CalendarHuangLi::GetHuangLiMonth(quint32 year, quint32 month, bool fill) { CaHuangLiMonthInfo monthinfo; SolarMonthInfo solarmonth = GetSolarMonthCalendar(static_cast(year), static_cast(month), fill); LunarMonthInfo lunarmonth = GetLunarMonthCalendar(static_cast(year), static_cast(month), fill); monthinfo.mFirstDayWeek = lunarmonth.FirstDayWeek; monthinfo.mDays = lunarmonth.Days; QList hllist = m_database->QueryHuangLiByDays(solarmonth.Datas); for (int i = 0; i < lunarmonth.Datas.size(); ++i) { CaHuangLiDayInfo hldayinfo; hldayinfo.mAvoid = hllist.at(i).Avoid; hldayinfo.mSuit = hllist.at(i).Suit; stLunarDayInfo lunardayinfo = lunarmonth.Datas.at(i); hldayinfo.mGanZhiYear = lunardayinfo.GanZhiYear; hldayinfo.mGanZhiMonth = lunardayinfo.GanZhiMonth; hldayinfo.mGanZhiDay = lunardayinfo.GanZhiDay; hldayinfo.mLunarDayName = lunardayinfo.LunarDayName; hldayinfo.mLunarFestival = lunardayinfo.LunarFestival; hldayinfo.mLunarLeapMonth = lunardayinfo.LunarLeapMonth; hldayinfo.mLunarMonthName = lunardayinfo.LunarMonthName; hldayinfo.mSolarFestival = lunardayinfo.SolarFestival; hldayinfo.mTerm = lunardayinfo.Term; hldayinfo.mZodiac = lunardayinfo.Zodiac; hldayinfo.mWorktime = lunardayinfo.Worktime; monthinfo.mCaLunarDayInfo.append(hldayinfo); // qDebug() << hldayinfo.mGanZhiYear << hldayinfo.mGanZhiMonth << hldayinfo.mGanZhiDay // << hldayinfo.mLunarDayName << hldayinfo.mLunarFestival << hldayinfo.mLunarFestival // << hldayinfo.mLunarLeapMonth << hldayinfo.mLunarMonthName << hldayinfo.mSolarFestival // << hldayinfo.mTerm << hldayinfo.mZodiac << hldayinfo.mWorktime; } return monthinfo.toJson(); } CaLunarDayInfo CalendarHuangLi::GetLunarInfoBySolar(quint32 year, quint32 month, quint32 day) { CaLunarDayInfo lunardayinfo; //获取阴历信息 stLunarDayInfo m_lunardayinfo = SolarToLunar(static_cast(year), static_cast(month), static_cast(day)); //将阴历信息保存到CaLunarDayInfo lunardayinfo.mGanZhiYear = m_lunardayinfo.GanZhiYear; lunardayinfo.mGanZhiMonth = m_lunardayinfo.GanZhiMonth; lunardayinfo.mGanZhiDay = m_lunardayinfo.GanZhiDay; lunardayinfo.mLunarDayName = m_lunardayinfo.LunarDayName; lunardayinfo.mLunarFestival = m_lunardayinfo.LunarFestival; lunardayinfo.mLunarLeapMonth = m_lunardayinfo.LunarLeapMonth; lunardayinfo.mLunarMonthName = m_lunardayinfo.LunarMonthName; lunardayinfo.mSolarFestival = m_lunardayinfo.SolarFestival; lunardayinfo.mTerm = m_lunardayinfo.Term; lunardayinfo.mZodiac = m_lunardayinfo.Zodiac; lunardayinfo.mWorktime = m_lunardayinfo.Worktime; //返回CaLunarDayInfo return lunardayinfo; } CaLunarMonthInfo CalendarHuangLi::GetLunarCalendarMonth(quint32 year, quint32 month, bool fill) { CaLunarMonthInfo lunarmonthinfo; //获取阴历月信息 LunarMonthInfo lunarmonth = GetLunarMonthCalendar(static_cast(year), static_cast(month), fill); //将阴历月信息保存到CaLunarMonthInfo lunarmonthinfo.mDays = lunarmonth.Days; lunarmonthinfo.mFirstDayWeek = lunarmonth.FirstDayWeek; for (int i = 0; i < lunarmonth.Datas.size(); ++i) { CaLunarDayInfo m_lunardayinfo; stLunarDayInfo lunardayinfo = lunarmonth.Datas.at(i); m_lunardayinfo.mGanZhiYear = lunardayinfo.GanZhiYear; m_lunardayinfo.mGanZhiMonth = lunardayinfo.GanZhiMonth; m_lunardayinfo.mGanZhiDay = lunardayinfo.GanZhiDay; m_lunardayinfo.mLunarDayName = lunardayinfo.LunarDayName; m_lunardayinfo.mLunarFestival = lunardayinfo.LunarFestival; m_lunardayinfo.mLunarLeapMonth = lunardayinfo.LunarLeapMonth; m_lunardayinfo.mLunarMonthName = lunardayinfo.LunarMonthName; m_lunardayinfo.mSolarFestival = lunardayinfo.SolarFestival; m_lunardayinfo.mTerm = lunardayinfo.Term; m_lunardayinfo.mZodiac = lunardayinfo.Zodiac; m_lunardayinfo.mWorktime = lunardayinfo.Worktime; lunarmonthinfo.mCaLunarDayInfo.append(m_lunardayinfo); } //返回CaLunarMonthInfo return lunarmonthinfo; } dde-calendar-5.9.1/calendar-service/src/calendarhuangli.h000066400000000000000000000027751423264401600233360ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 CALENDARHUANGLI_H #define CALENDARHUANGLI_H #include "dbmanager/huanglidatabase.h" #include class HuangLiDataBase; class CalendarHuangLi : public QObject { Q_OBJECT public: explicit CalendarHuangLi(QObject *parent = nullptr); QString GetFestivalMonth(quint32 year, quint32 month); QString GetHuangLiDay(quint32 year, quint32 month, quint32 day); QString GetHuangLiMonth(quint32 year, quint32 month, bool fill); CaLunarDayInfo GetLunarInfoBySolar(quint32 year, quint32 month, quint32 day); CaLunarMonthInfo GetLunarCalendarMonth(quint32 year, quint32 month, bool fill); private: signals: public slots: private: HuangLiDataBase *m_database; }; #endif // CALENDARHUANGLI_H dde-calendar-5.9.1/calendar-service/src/calendarprogramexitcontrol.cpp000066400000000000000000000017231423264401600261740ustar00rootroot00000000000000#include "calendarprogramexitcontrol.h" #include #include CalendarProgramExitControl *CalendarProgramExitControl::getProgramExitControl() { static CalendarProgramExitControl programExitControl; return &programExitControl; } CalendarProgramExitControl *CalendarProgramExitControl::operator->() const { return getProgramExitControl(); } void CalendarProgramExitControl::addExc() { #ifdef CALENDAR_SERVICE_AUTO_EXIT readWriteLock.lockForWrite(); ++m_excNum; readWriteLock.unlock(); #endif } void CalendarProgramExitControl::reduce() { #ifdef CALENDAR_SERVICE_AUTO_EXIT //1秒后退出,防止程序频繁的开启关闭 QTimer::singleShot(1000,[=]{ readWriteLock.lockForWrite(); --m_excNum; if ( m_excNum < 1 ) { exit(); } readWriteLock.unlock(); }); #endif } void CalendarProgramExitControl::exit() { qApp->exit(); } CalendarProgramExitControl::CalendarProgramExitControl() { } dde-calendar-5.9.1/calendar-service/src/calendarprogramexitcontrol.h000066400000000000000000000016331423264401600256410ustar00rootroot00000000000000#ifndef CALENDARPROGRAMEXITCONTROL_H #define CALENDARPROGRAMEXITCONTROL_H #include /** * @brief The CalendarProgramExitControl class * 后端程序退出控制 * 采用计数的方式来判断程序是否退出 * 在接口入口处添加计数,接口处理结束后减少计数,若计数为0则程序退出 */ class CalendarProgramExitControl { public: static CalendarProgramExitControl *getProgramExitControl(); CalendarProgramExitControl *operator->() const; /** * @brief addExc 接口入口处添加计数,跟reduce配对使用 */ void addExc(); /** * @brief reduce 接口处理结束后使用该函数,用来减少计数,跟addExc配对使用 */ void reduce(); private: CalendarProgramExitControl(); void exit(); private: int m_excNum = 0; QReadWriteLock readWriteLock; }; #endif // CALENDARPROGRAMEXITCONTROL_H dde-calendar-5.9.1/calendar-service/src/calendarscheduler.cpp000066400000000000000000001244361423264401600242170ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "calendarscheduler.h" #include "src/commondatastruct.h" #include "src/scheduledatainfo.h" #include "src/utils.h" #include "lunarmanager.h" #include "pinyin/pinyinsearch.h" #include "jobremindmanager.h" #include "lunardateinfo.h" #include #include #include #include #include #include #define RECURENCELIMIT 3650 //递归次数限制 #define UPDATEREMINDJOBTIMEINTERVAL 1000 * 60 * 10 //提醒任务更新时间间隔毫秒数(10分钟) QMap CalendarScheduler::m_festivalIdMap; quint32 CalendarScheduler::nextFestivalJobId = INT32_MAX; QMutex CalendarScheduler::m_getJobIdMutex; CalendarScheduler::CalendarScheduler(QObject *parent) : QObject(parent) , m_database(new SchedulerDatabase(this)) { IsFestivalJobEnabled(); //将提醒提醒任务管理放入子线程 m_jobremindmanager = new JobRemindManager; threadremind = new QThread(this); m_jobremindmanager->moveToThread(threadremind); threadremind->start(); initConnections(); } CalendarScheduler::~CalendarScheduler() { if (!threadremind->isFinished()) { m_jobremindmanager->disconnect(); threadremind->quit(); threadremind->wait(); } //清空黄历数据 logOffEmptyData(); delete m_jobremindmanager; } void CalendarScheduler::initConnections() { connect(this, &CalendarScheduler::NotifyUpdateRemindJobs, m_jobremindmanager, &JobRemindManager::UpdateRemindJobs); connect(m_jobremindmanager, &JobRemindManager::ModifyJobRemind, this, &CalendarScheduler::OnModifyJobRemind); connect(this, &CalendarScheduler::NotifyJobChange, m_jobremindmanager, &JobRemindManager::NotifyJobsChanged); connect(this, &CalendarScheduler::signalRemindJob, m_jobremindmanager, &JobRemindManager::RemindJob); connect(this, &CalendarScheduler::signalNotifyMsgHanding, m_jobremindmanager, &JobRemindManager::notifyMsgHanding); connect(m_jobremindmanager, &JobRemindManager::saveNotifyID, this, &CalendarScheduler::saveNotifyID); connect(this, &CalendarScheduler::signalCloseNotification, m_jobremindmanager, &JobRemindManager::closeNotification); } void CalendarScheduler::DeleteJob(qint64 id) { m_database->DeleteJob(id); //获取通知弹框id closeNotification(id); QList ids; ids.append(id); m_database->deleteRemindJobs(ids); AfterJobChanged(ids); } QString CalendarScheduler::GetJob(qint64 id) { return m_database->GetJob(id); } // 给定日程Json信息,解析为job类型传入数据库 qint64 CalendarScheduler::CreateJob(const QString &jobInfo) { Job job = josnStringToJob(jobInfo); qint64 id = m_database->CreateJob(job); QList ids; ids.append(id); m_database->deleteRemindJobs(ids); AfterJobChanged(ids); return id; } // 可将要改动的日程信息直接传入数据库操作层中 void CalendarScheduler::UpdateJob(const QString &jobInfo) { Job oldJob = josnStringToJob(jobInfo); oldJob = josnStringToJob(m_database->GetJob(oldJob.ID)); qint64 id = m_database->UpdateJob(jobInfo); //获取修改后的日程信息 QString newJobInfo = m_database->GetJob(id); Job job = josnStringToJob(newJobInfo); //是否删除日程提醒相关信息 bool isDeleteRemindData = true; //获取该日程的提醒信息 QList remindJobs = m_database->getRemindJob(job.ID); struct JobIn { qint64 jobID; qint64 recurID; }; QVector jobInVector; //如果重复规则或忽略列表不一样 if ((oldJob.RRule != job.RRule || oldJob.Ignore != job.Ignore)) { isDeleteRemindData = false; QDateTime endDateTime = job.Start; for (int i = remindJobs.size() - 1 ; i >= 0; --i) { //获取结束时间 endDateTime = endDateTime > remindJobs.at(i).Start ? endDateTime : remindJobs.at(i).Start; } if (remindJobs.size() > 0) { //根据起止时间和重复规则,获取生成的日程开始时间 QList jobtimelist = GetJobTimesBetween(job.Start, endDateTime, job); QVector jobStartDateTime; foreach (auto jobTime, jobtimelist) { jobStartDateTime.append(jobTime.start); } foreach (auto rjob, remindJobs) { //如果生成的开始时间列表内不包含提醒日程的开始时间,则表示该重复日程被删除 if (!jobStartDateTime.contains(rjob.Start)) { int notifyID = m_database->getNotifyID(rjob.ID, rjob.RecurID); JobIn jobin {rjob.ID, rjob.RecurID}; //如果改日程已经提醒,且通知弹框未操作 if (notifyID >= 0) { emit signalCloseNotification(static_cast(notifyID)); isDeleteRemindData = true; jobInVector.append(jobin); } else if (rjob.Start > QDateTime::currentDateTime()) { //删除没有触发的提醒日程 isDeleteRemindData = true; jobInVector.append(jobin); } } } } } else if (oldJob.RRule == job.RRule && job.RRule.isEmpty()) { //不是重复日程 int notifyID = m_database->getNotifyID(job.ID, job.RecurID); //如果日程被提醒,且通知弹框未操作, if (notifyID > 0) { isDeleteRemindData = false; } JobIn jobin{ job.ID, job.RecurID}; jobInVector.append(jobin); } //是否删除对应的提醒日程数据 if (isDeleteRemindData) { foreach (auto jobin, jobInVector) { m_database->deleteRemindJobs(jobin.jobID, jobin.recurID); } } if (-1 != id) { QList ids; ids.append(id); AfterJobChanged(ids); } } /** * @brief GetJobs 获取指定范围内的日程 * @param start 起始时间 * @param end 结束时间 * @return 返回指定范围内的日程JSON格式 */ QString CalendarScheduler::GetJobs(const QDateTime &start, const QDateTime &end) { QString strJson; QList joblist = m_database->GetAllOriginJobs(); QList jobArrList = GetJobsBetween(start, end, joblist, m_festivalJobEnabled); //获取时间范围内所有的Job strJson = JobArrListToJsonStr(jobArrList); return strJson; } /** * @brief QueryJobs 查询指定时间范围日程 * @param params 查询条件json字符串 * @return 返回指定范围内的日程JSON格式 */ QString CalendarScheduler::QueryJobs(const QString ¶ms) { QJsonDocument doc; QJsonParseError err; doc = QJsonDocument::fromJson(params.toUtf8(), &err); QJsonObject obj = doc.object(); QString strKey = obj.value("Key").toString(); QDateTime starttime = Utils::fromconvertData(obj.value("Start").toString()); QDateTime endtime = Utils::fromconvertData(obj.value("End").toString()); QList joblist = m_database->GetAllOriginJobs(strKey); QList jobArrList = GetJobsBetween(starttime, endtime, joblist, m_festivalJobEnabled, strKey); QString strJson = JobArrListToJsonStr(jobArrList); return strJson; } QString CalendarScheduler::QueryJobsWithLimit(const QString ¶ms, qint32 maxNum) { QJsonParseError err; QJsonDocument doc = QJsonDocument::fromJson(params.toUtf8(), &err); QJsonObject obj = doc.object(); QDateTime start = Utils::fromconvertData(obj.value("Start").toString()); QDateTime end = Utils::fromconvertData(obj.value("End").toString()); QString strKey = obj.value("key").toString(); QList joblist = m_database->GetAllOriginJobs(strKey, QString("start asc")); //获取时间范围内符合条件的Job,不扩展 QList jobArrList = GetJobsBetween(start, end, joblist, false, strKey, false); jobArrList = FilterDateJobsWrap(jobArrList, start, end); //根据manNum获取指定数量的Job多余的直接丢弃 int jobCount = 0; QList resArr; foreach (stJobArr jobarr, jobArrList) { if (jobarr.jobs.size() > 0) { int jobsLength = jobarr.jobs.size(); jobCount += jobsLength; if (jobCount >= maxNum) { int edge = jobsLength - (jobCount - maxNum); QList jobs; for (int i = 0; i < edge; ++i) { jobs.append(jobarr.jobs.at(i)); } jobarr.jobs = jobs; resArr.append(jobarr); break; } resArr.append(jobarr); } } QString strJson = JobArrListToJsonStr(resArr); return strJson; } QString CalendarScheduler::QueryJobsWithRule(const QString ¶ms, const QString &rules) { QJsonParseError err; QJsonDocument doc = QJsonDocument::fromJson(params.toUtf8(), &err); QJsonObject obj = doc.object(); QDateTime start = Utils::fromconvertData(obj.value("Start").toString()); QDateTime end = Utils::fromconvertData(obj.value("End").toString()); QString strKey = obj.value("key").toString(); QList joblist = m_database->GetAllOriginJobsWithRule(strKey, rules); //获取时间范围内符合条件的Job,不扩展 QList jobArrList = GetJobsBetween(start, end, joblist, false, strKey, false); jobArrList = FilterDateJobsWrap(jobArrList, start, end); QString strJson = JobArrListToJsonStr(jobArrList); return strJson; } void CalendarScheduler::remindJob(const qint64 id, const qint64 recurID) { //根据日程id获取日程信息和稍后提醒次数 Job job = m_database->getRemindJob(id, recurID); emit signalRemindJob(job); } //检测当前环境是否为中文环境来决定是否开启获取节日日程开关 void CalendarScheduler::IsFestivalJobEnabled() { QString str_lcall(qgetenv("LC_ALL").data()); QString str_language = qgetenv("LANGUAGE"); QString str_lang = qgetenv("LANG"); qDebug() << str_lcall << str_language << str_lang; if (("C" != str_lcall) && (str_language.startsWith("zh") || str_lang.startsWith("zh"))) { m_festivalJobEnabled = true; } } /** * @brief CalendarScheduler::GetJobsBetween 对查询到的日程进行解析处理 * @param start 查询的开始时间 * @param end 查询的结束时间 * @param joblist 查询到的日程list * @param needFestival 是否需要返回节日日程 * @param querykey 查询的关键字 * @param bextend 是否需要扩展跨天日程 * @return 日程list */ QList CalendarScheduler::GetJobsBetween(const QDateTime &start, const QDateTime &end, const QList &joblist, bool needFestival, const QString &querykey, bool bextend) { QList jobArrList; int days = static_cast(start.daysTo(end)); for (int i = 0; i <= days; ++i) { stJobArr arr; QDateTime tem = start.addDays(i); arr.date = tem.date(); jobArrList.append(arr); } //判断是否需要获取中国节日日程 if (needFestival) { FillFestivalJobs(start, end, querykey, jobArrList); } foreach (Job jb, joblist) { qint64 interval = jb.Start.secsTo(jb.End); //当前job开始结束时间差,单位秒 QList jobtimelist = GetJobTimesBetween(start, end, jb); if (jobtimelist.isEmpty()) { continue; } foreach (stJobTime jobtime, jobtimelist) { Job jobtem = jb; jobtem.Start = jobtime.start; jobtem.End = jobtime.start.addSecs(interval); jobtem.RecurID = jobtime.recurID; int idx = static_cast(start.daysTo(jobtime.start)); if (idx >= 0 && idx <= days) { jobArrList[idx].jobs.append(jobtem); } // extend 指把跨越多天的 job 给扩展开,比如开始日期为 2019-09-01 结束日期为 2019-09-02 的 // job, 将会扩展出一个job 放入 2019-09-02 那天的 extendJobs 字段中。 if (!bextend) { continue; } //需要扩展的天数 int extenddays = static_cast(jobtem.Start.daysTo(jobtem.End)); for (int i = 0; i < extenddays; ++i) { int tIdx = idx + i + 1; if (tIdx == jobArrList.size()) { break; } if (tIdx < 0) { continue; } jobArrList[tIdx].extends.append(jobtem); } } } return jobArrList; } QList CalendarScheduler::GetJobTimesBetween(const QDateTime &start, const QDateTime &end, const Job &job) { QList jobtimelist; if (start <= end) { QList igonrelist = GetIgnoreList(job); //如果没有规则,则直接判断其开始结束时间就可以了 if (job.RRule.isEmpty()) { //开始时间小于job的结束时间并且结束时间要大于job的开始时间,保证有交集,保证 if (start <= job.End && end >= job.Start) { stJobTime jobtime; jobtime.start = job.Start; jobtime.end = job.End; jobtime.recurID = 0; jobtimelist.append(jobtime); } return jobtimelist; } int count = 0; //当前为日程的第几次重复 stRRuleOptions options = ParseRRule(job.RRule); QDateTime jobstart = job.Start; //当前原始job的起始时间 QDateTime jobend = job.End; //当前原始job的结束时间 int dateinterval = static_cast(jobstart.secsTo(jobend)); //job的开始结束间隔日期 //是否为农历日程 if (job.IsLunar) { QVector recurJobDates; LunarDateInfo lunardate(job); QMap ruleStartDate = lunardate.getRRuleStartDate(start.date(), end.date(), job.Start.date()); QDateTime recurDateTime; recurDateTime.setTime(job.Start.time()); QDateTime copyEnd; QMap::ConstIterator iter = ruleStartDate.constBegin(); for (; iter != ruleStartDate.constEnd(); iter++) { recurDateTime.setDate(iter.value()); //如果在忽略时间列表中,则忽略 if (igonrelist.contains(recurDateTime)) continue; copyEnd = recurDateTime.addSecs(dateinterval); stJobTime jt; jt.start = recurDateTime; jt.end = copyEnd; jt.recurID = iter.key(); jobtimelist.append(jt); } } else { //公历日程数据 int dayofweek = jobstart.date().dayOfWeek(); //判断是周几 if (dayofweek > Qt::Friday && options.rpeat == RepeatType::RepeatWorkDay) //周末并且options为工作日重复 jobstart.setDate(jobstart.date().addDays(7 - dayofweek + 1)); //在周末设置工作日重复日程,需要重新设置日程开始时间 QDateTime next = jobstart; //next为下一新建日程起始日期 //只有当下一个新建日程的起始日期小于查询日期的结束日期才会有交集,否则没有意义 //注意一定要判断是否有交集,因为Job的创建日期可能远远早于查询日期,查询到的是多次重复后与查询时间有交集的 while (true) { QDateTime copystart = next; //这里应该比较date,而不是datetime,如果是非全天的日程,这个设计具体时间的问题,会导致返回的job个数出现问题 if (copystart.date() > end.date()) { //起始日期超出查询结束日期直接退出 break; } QDateTime copyend = next.addSecs(dateinterval); //如果查询时间范围和Job时间范围有交集则保存 //另外需要保证该新建任务没有被删除即未被ignore,新建任务重复的规则删除是删除该次重复包含的的所有天, if (OverLap(start, end, copystart, copyend) && !ContainsInIgnoreList(igonrelist, copystart)) { stJobTime jt; jt.start = copystart; jt.end = copyend; jt.recurID = count; jobtimelist.append(jt); } count++; //当结束重复为按多少次结束判断时,检查重复次数是否达到,达到则退出 //当重复次数达到最大限制直接返回 //options.tcount表示重复的次数,而count表示总次数,所以这里不能有“=” if ((options.type == RepeatOverCount && options.tcount < count) || count > RECURENCELIMIT) { break; } //根据rule获取下一个Job的起始日期 next = GetNextJobStartTimeByRule(options, copystart); //判断next是否有效,时间大于RRule的until //判断next是否大于查询的截止时间,这里应该比较date,而不是datetime,如果是非全天的日程,这个设计具体时间的问题,会导致返回的job个数出现问题 if ((options.type == RepeatOverUntil && next.date() >= options.overdate.date()) || next.date() > end.date()) { break; } copystart = next; } } } else { qDebug() << __FUNCTION__ << "start time later than end time param error! do nothoing"; } return jobtimelist; } /** * @brief FillFestivalJobs 获取指定范围内的节日日程信息 * @param start 起始时间 * @param end 结束时间 */ void CalendarScheduler::FillFestivalJobs(const QDateTime &start, const QDateTime &end, const QString &querykey, QList &listjob) { QList festivaldays = GetFestivalsInRange(start, end); if (!querykey.isEmpty()) { festivaldays = FilterDayFestival(festivaldays, querykey); } foreach (stDayFestival day, festivaldays) { int index = static_cast(start.daysTo(day.date)); if (index >= 0 && index < listjob.size()) { foreach (QString festival, day.Festivals) { if (!festival.isEmpty()) { Job jb; jb.Title = festival; jb.Type = JobTypeFestival; jb.AllDay = true; jb.Start = QDateTime(QDate(day.date.date()), QTime(0, 0)); jb.End = QDateTime(QDate(day.date.date()), QTime(23, 59)); jb.RRule = "FREQ=YEARLY"; jb.ID = GetFestivalId(festival); listjob[index].jobs.append(jb); } } } } } /** * @brief GetIgnoreList 获取指定Job的忽略列表 * @param job 查询的Job * @return 当前Job的忽略列表 */ QList CalendarScheduler::GetIgnoreList(const Job &job) { QList list; if (!job.Ignore.isEmpty()) { QJsonParseError err; QJsonDocument doc = QJsonDocument::fromJson(job.Ignore.toLocal8Bit(), &err); if (QJsonParseError::NoError == err.error) { QJsonArray arr = doc.array(); for (int i = 0; i < arr.count(); ++i) { QString str = arr.at(i).toString(); QDateTime datetime = QDateTime::fromString(str, Qt::ISODate); list.append(datetime); } } } return list; } /** * @brief ContainsInIgnoreList 检查日期是否在忽略列表里 * @param ignorelist 日期忽略列表 * @param start 需要检测时间 * @return bool 如果在忽略列表中则返回true */ bool CalendarScheduler::ContainsInIgnoreList(const QList &ignorelist, const QDateTime &time) { return ignorelist.contains(time); } /** * @brief OverLap 判断两个时间范围是否有交集 * @param start 第一个时间范围的开始时间 * @param end 第一个时间范围的结束时间 * @param jobstart 第二个时间范围的开始时间 * @param jobend 第二个时间范围的结束时间 * @return bool 有交集返回true否则返回false */ bool CalendarScheduler::OverLap(const QDateTime &start, const QDateTime &end, const QDateTime &jobstart, const QDateTime &jobend) { bool boverlap = false; if ((start <= jobstart && end >= jobstart) || (start >= jobstart && start <= jobend)) { boverlap = true; } return boverlap; } /** * @brief GetNextJobStartTimeByRule 根据规则获取下一个job开始时间 * @param options 包含重复规则相关字段结构体 * @param datetime 上一个Job的时间 * @return QDateTime 下一个重复Job的起始时间 */ QDateTime CalendarScheduler::GetNextJobStartTimeByRule(const stRRuleOptions &options, const QDateTime &datetime) { QDateTime next; quint8 dayofweek; //日程所在年 int year = datetime.date().year(); //日程所在月 int month = datetime.date().month(); //日程所在日 int day = datetime.date().day(); //日程时间 QTime nextTime = datetime.time(); //判断next日期是否合法,需要先给next赋值,所以使用do-while do { switch (options.rpeat) { case RepeatDaily: next = datetime.addDays(1); break; case RepeatWorkDay: dayofweek = static_cast(datetime.date().dayOfWeek()); //计算当前为周几如果是周五或者是周末需要跳过,否则直接下一天 //需要跳过因为工作日不包括周末 if (dayofweek >= Qt::Friday) { next = datetime.addDays(7 - dayofweek + 1); } else { next = datetime.addDays(1); } break; case RepeatWeekly: next = datetime.addDays(7); break; case RepeatMonthly: //月份超过12月,则进入下一年 if (++month == 13) { year += 1; month = 1; } next = QDateTime(QDate(year, month, day), nextTime); break; case RepeatYearly: next = QDateTime(QDate(++year, month, day), nextTime); break; default: break; } } while (!next.isValid()); return next; } /** * @brief ParseRRule 解析重复规则 * @param rule 规则字符串 * @return stRRuleOptions 包含重复规则相关字段的结构体 */ stRRuleOptions CalendarScheduler::ParseRRule(const QString &rule) { //无规则的不走这里判断所以此处默认rule不为空 //局部变量初始化 stRRuleOptions options {}; QStringList rruleslist = rule.split(";", QString::SkipEmptyParts); //rpeat重复规则 0 无 1 每天 2 每个工作日 3 每周 4每月 5每年 //type结束重复类型 0 永不 1 多少次结束 2 结束日期 if (rruleslist.contains("FREQ=DAILY") && rruleslist.contains("BYDAY=MO,TU,WE,TH,FR")) { options.rpeat = RepeatWorkDay; } else if (rruleslist.contains("FREQ=DAILY")) { options.rpeat = RepeatDaily; } else if (rruleslist.contains("FREQ=WEEKLY")) { options.rpeat = RepeatWeekly; } else if (rruleslist.contains("FREQ=MONTHLY")) { options.rpeat = RepeatMonthly; } else if (rruleslist.contains("FREQ=YEARLY")) { options.rpeat = RepeatYearly; } for (int i = 0; i < rruleslist.count(); i++) { if (rruleslist.at(i).contains("COUNT=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); options.type = RepeatOverCount; options.tcount = liststr.at(1).toInt() - 1; } if (rruleslist.at(i).contains("UNTIL=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); options.type = RepeatOverUntil; options.overdate = QDateTime::fromString(liststr.at(1).left(liststr.at(1).count() - 1), "yyyyMMddThhmmss"); options.overdate = options.overdate.addDays(1); } } return options; } /** * @brief JobArrListToJsonStr 将jobArrList转化为json字符串 * @param jobArrList jobArrList * @return json字符串 */ QString CalendarScheduler::JobArrListToJsonStr(const QList &jobArrList) { QString strJson; QJsonDocument doc; QJsonArray jsonarr; foreach (stJobArr jobarr, jobArrList) { QJsonObject obj; QJsonArray jobsJsonArr; QJsonObject objjob; obj.insert("Date", jobarr.date.toString("yyyy-MM-dd")); foreach (Job job, jobarr.jobs) { objjob = Utils::JobToObject(job); jobsJsonArr.append(objjob); } foreach (Job job, jobarr.extends) { objjob = Utils::JobToObject(job); jobsJsonArr.append(objjob); } obj.insert("Jobs", jobsJsonArr); jsonarr.append(obj); } doc.setArray(jsonarr); strJson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); return strJson; } QList CalendarScheduler::GetRemindJobs(const QDateTime &start, const QDateTime &end) { QList jobs; jobs = m_database->GetJobsContainRemind(); QDateTime endDate = start.addDays(8); QList jobArrList = GetJobsBetween(start, endDate, jobs, false, "", false); //此处获取的数据不需要展开,因此extend为空 if (jobArrList.size() > 0) { jobs.clear(); foreach (stJobArr jobarr, jobArrList) { foreach (Job job, jobarr.jobs) { QDateTime jbtm = GetJobRemindTime(job); //如果计算出的时间无效则忽略该Job继续 if (!jbtm.isValid()) { continue; } if (jbtm >= start && jbtm <= end) { job.RemidTime = jbtm; jobs.append(job); } } } } return jobs; } /** * @brief GetJobRemindTime 计算job的提醒时间 * @param job 日程 * @return 日程提醒时间,调用方需判断日程时间是否有效 */ QDateTime CalendarScheduler::GetJobRemindTime(const Job &job) { QDateTime tm = job.Start; if (job.AllDay) { tm.setTime(QTime(0, 0, 0)); } return ParseRemind(tm, job.Remind); } /** * @brief ParseRemind 根据规则和给定的任务时间计算提醒时间 * @param tm 日程开始时间 * @param strremind 日程提醒规则 * @return 日程提醒时间,调用方需判断日程时间是否有效 */ QDateTime CalendarScheduler::ParseRemind(const QDateTime &tm, const QString &strremind) { // 提醒的提前时间最大为 7 天 //创建一个无效的时间,如果计算出有效时间则根据计算结果更新否则返回无效结果用于调用方判断 QDateTime remindtm(QDate(2020, 13, 31), QTime(24, 24, 100)); if (!strremind.isEmpty()) { QRegExp reg("\\d;\\d\\d:\\d\\d"); // QRegExp reg("\\d;\\d+?:\\d+?"); if (reg.exactMatch(strremind)) { //提前多少天 qint64 nDays; //提醒时间 int hour, min; int ret = sscanf(strremind.toStdString().c_str(), "%lld;%d:%d", &nDays, &hour, &min); //判断解析出来的规则是否合法 //对ndays,hour,min的判断应该包含边界值 if (-1 != ret && nDays >= 0 && nDays <= 7 && hour >= 0 && hour <= 23 && min >= 0 && min <= 59) { remindtm = tm.addDays(-nDays); //多少天前 remindtm.setTime(QTime(hour, min, 0)); } } else { bool bsuccess = false; //一天以内的时间单位是分钟 qint32 nMinutes = strremind.toInt(&bsuccess); //nMinutes为非全天日程提醒的分钟数,应该包含边界值 if (bsuccess && (nMinutes >= 0 && nMinutes <= 60 * 24 * 7)) { remindtm = tm.addSecs(-nMinutes * 60); //将分转换成秒进行回退 } } } return remindtm; } void CalendarScheduler::AfterJobChanged(const QList &Ids) { //发送更新jobs信号 emit JobsUpdated(Ids); //停止所有提醒任务,获取未来10分钟内有提醒的日程,更新提醒任务 UpdateRemindTimeout(false); } QList CalendarScheduler::FilterDateJobsWrap(const QList &arrList, const QDateTime &start, const QDateTime &end) { QList wraplist; foreach (stJobArr jobarr, arrList) { QList jobs, extendjobs; foreach (Job jb1, jobarr.jobs) { if (OverLap(start, end, jb1.Start, jb1.End)) { jobs.append(jb1); } } foreach (Job jb2, jobarr.extends) { if (OverLap(start, end, jb2.Start, jb2.End)) { extendjobs.append(jb2); } } if (jobs.size() + extendjobs.size() > 0) { jobarr.jobs = jobs; jobarr.extends = extendjobs; wraplist.append(jobarr); } } return wraplist; } Job CalendarScheduler::josnStringToJob(const QString &str) { // 现将给的Json信息转为Job类型 Job job; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(str.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return job; } QJsonObject rootObj = jsonDoc.object(); if (rootObj.contains("ID")) { job.ID = rootObj.value("ID").toInt(); } if (rootObj.contains("Type")) { job.Type = rootObj.value("Type").toInt(); } if (rootObj.contains("Title")) { job.Title = rootObj.value("Title").toString(); } if (rootObj.contains("Description")) { job.Description = rootObj.value("Description").toString(); } if (rootObj.contains("AllDay")) { job.AllDay = rootObj.value("AllDay").toBool(); } if (rootObj.contains("Start")) { // 此处时间转换为与client同样式 job.Start = QDateTime::fromString(rootObj.value("Start").toString(), Qt::ISODate); } if (rootObj.contains("End")) { job.End = QDateTime::fromString(rootObj.value("End").toString(), Qt::ISODate); } if (rootObj.contains("RRule")) { job.RRule = rootObj.value("RRule").toString(); } if (rootObj.contains("Remind")) { job.Remind = rootObj.value("Remind").toString(); } if (rootObj.contains("Ignore")) { QJsonArray subArray = rootObj.value("Ignore").toArray(); QJsonDocument doc; doc.setArray(subArray); job.Ignore = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); } //添加title拼音 job.Title_pinyin = pinyinsearch::getPinPinSearch()->CreatePinyin(rootObj.value("Title").toString()); //是否为农历日程 if (rootObj.contains("IsLunar")) { job.IsLunar = rootObj.value("IsLunar").toBool(); } return job; } QDateTime CalendarScheduler::getRemindTimeByCount(int count) { qint64 Minute = 60 * 1000; qint64 Hour = Minute * 60; qint64 duration = (10 + ((count - 1) * 5)) * Minute; //下一次提醒距离现在的时间间隔,单位毫秒 if (duration >= Hour) { duration = Hour; } return getRemindTimeByMesc(duration); } QDateTime CalendarScheduler::getRemindTimeByMesc(qint64 duration) { QDateTime currentTime = QDateTime::currentDateTime(); currentTime = currentTime.addMSecs(duration); return currentTime; } void CalendarScheduler::closeNotification(qint64 jobId) { QVector notifyIDVector = m_database->getNotifyID(jobId); foreach (auto notifyID, notifyIDVector) { emit signalCloseNotification(static_cast(notifyID)); } } void CalendarScheduler::UpdateRemindTimeout(bool isClear) { QDateTime tmstart = QDateTime::currentDateTime(); QDateTime tmend = tmstart.addMSecs(UPDATEREMINDJOBTIMEINTERVAL); QList jobList = GetRemindJobs(tmstart, tmend); //获取未提醒的 QList remindJobList = m_database->getValidRemindJob(); //获取未提醒的稍后日程信息,由于15分钟后,1xxx后等不会修改提醒次数 //所以需要根据提醒时间,日程id,日程重复id来判断是否是没有被触发点提醒日程 for (int i = 0; i < jobList.size(); i++) { for (int j = jobList.size() - 1; j < 0; j--) { if (remindJobList.at(j).ID == jobList.at(i).ID && remindJobList.at(j).RecurID == jobList.at(i).RecurID && remindJobList.at(j).RemidTime == jobList.at(i).RemidTime) //如果该日程没有被触发提醒过(创建后没有被提醒,而不是提醒后点了15分钟后等不改变提醒次数的日程) //则移除 remindJobList.removeAt(j); } } if (isClear) { //清空数据库 m_database->clearRemindJobDatabase(); jobList.append(remindJobList); foreach (auto job, jobList) { m_database->saveRemindJob(job); } } else { foreach (auto job, jobList) { Job rJob = m_database->getRemindJob(job.ID, job.RecurID); //如果提醒日程数据库中不存在此日程相关信息,插入相关信息 if (rJob.ID != job.ID || rJob.RecurID != job.RecurID) { m_database->saveRemindJob(job); } } jobList.append(remindJobList); } emit NotifyUpdateRemindJobs(jobList); } void CalendarScheduler::notifyMsgHanding(const qint64 jobID, const qint64 recurID, const int operationNum) { Job job = m_database->getRemindJob(jobID, recurID); //如果相应的日程被删除,则不做处理 if (job.ID == 0) { return; } //如果为稍后提醒操作则需要更新对应的重复次数和提醒时间 qint64 Minute = 60 * 1000; qint64 Hour = Minute * 60; switch (operationNum) { case 2://稍后提醒 ++job.RemindLaterCount; job.RemidTime = getRemindTimeByCount(job.RemindLaterCount); m_database->updateRemindJob(job); break; case 21://15min后提醒 job.RemidTime = getRemindTimeByMesc(15 * Minute); m_database->updateRemindJob(job); break; case 22://一个小时后提醒 job.RemidTime = getRemindTimeByMesc(Hour); m_database->updateRemindJob(job); break; case 23://四个小时后提醒 job.RemidTime = getRemindTimeByMesc(4 * Hour); m_database->updateRemindJob(job); break; case 3://明天提醒 job.RemidTime = getRemindTimeByMesc(24 * Hour); m_database->updateRemindJob(job); break; case 1://打开日历 case 4://提前1天提醒 if (job.AllDay) { //如果为全天则提醒时间为一天前9点提醒 job.RemidTime.setTime(QTime(9, 0)); } else { //如果为非全天,则为开始时间的一天前 job.RemidTime.setTime(job.Start.time()); } job.RemidTime.setDate(job.Start.date().addDays(-1)); m_database->updateRemindJob(job); break; default: //删除对应的数据 QList Ids; Ids.append(jobID); m_database->deleteRemindJobs(Ids); break; } emit signalNotifyMsgHanding(job, operationNum); } void CalendarScheduler::OnModifyJobRemind(const Job &job, const QString &remind) { Job newjob = job; QList ids; //规则不为空则创建一个新的日程 if (!newjob.RRule.isEmpty()) { //修改重复日程的提醒规则相当于“仅修改此日程”的规则,忽略当天的日程,新建一个没有重复规则的日程 //修改新日程的提醒规则 newjob.Remind = remind; //清空日程的重复规则 newjob.RRule.clear(); //设置初始值 newjob.RecurID = 0; QList ignorelist = GetIgnoreList(job); bool bsuccess = true; //判断是否在忽略列表,如果不在忽略列表则加入忽略列表,后面重新创建新日程替代该旧日程 if (!ignorelist.contains(job.Start)) { ignorelist.append(job.Start); QJsonDocument doc; QJsonArray arr; foreach (QDateTime tm, ignorelist) { arr.append(tm.toString(Qt::ISODate)); } doc.setArray(arr); QString strignorejson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); bsuccess = m_database->UpdateJobIgnore(strignorejson, job.ID); } newjob.ID = m_database->CreateJob(newjob); if (bsuccess && -1 != newjob.ID) { ids << job.ID << newjob.ID; m_database->deleteRemindJobs(ids); AfterJobChanged(ids); } } else { ids.append(newjob.ID); m_database->deleteRemindJobs(ids); AfterJobChanged(ids); } } void CalendarScheduler::saveNotifyID(const Job &job, int notifyid) { m_database->updateNotifyID(job, notifyid); } /** * @brief GetFestivalId 根据节日名称获取节日id * @param name 节日名称 * @return 节日id */ quint32 CalendarScheduler::GetFestivalId(const QString &name) { //自动加锁,函数结束销毁时自动解锁 QMutexLocker lock(&m_getJobIdMutex); quint32 id = 0; auto it = m_festivalIdMap.find(name); if (it != m_festivalIdMap.end()) { id = it.value(); } else { id = nextFestivalJobId; m_festivalIdMap.insert(name, id); nextFestivalJobId--; } return id; } /** * @brief CreateJobType 创建日程类型 * param jobTypeInfo json格式的日程类型信息 * return bool 返回操作结果 */ bool CalendarScheduler::CreateJobType(const QString &jobTypeInfo) { JobTypeInfo jobType; if (!JobTypeInfo::jsonStrToJobTypeInfo(jobTypeInfo, jobType)) { return false; } bool isSuccess = m_database->addJobType(jobType.getJobTypeNo(), jobType.getJobTypeName(), jobType.getColorInfo().getTypeNo(), jobType.getAuthority()); //如果为用户自定义类型则创建相关颜色 if (!jobType.getColorInfo().isSysColorInfo()) { isSuccess = m_database->addColorType(jobType.getColorTypeNo(), jobType.getColorHex(), jobType.getColorInfo().getAuthority()); } if (isSuccess) { emit JobTypeOrColorUpdated(); } return isSuccess; } /** * @brief DeleteJobType 删除日程类型 * param typeNo 日程类型编号 * return bool 返回操作结果 */ bool CalendarScheduler::DeleteJobType(const int &typeNo) { bool isExists = m_database->isJobTypeUsed(typeNo); if (isExists) { //获取需要被删除的日程编号 QVector jobsID = m_database->getJobIDByJobType(typeNo); QList ids; foreach (auto &jobID, jobsID) { closeNotification(jobID); ids.append(jobID); } //删除对应的提醒任务 m_database->deleteRemindJobs(ids); //根据日程类型删除日程信息 m_database->DeleteJobsByJobType(typeNo); emit JobsUpdated(QList()); } JobTypeInfo oldInfo; //获取原始的日程类型信息 m_database->getJobTypeByTypeNo(typeNo, oldInfo); bool isSuccess = m_database->deleteJobType(typeNo); //如果为用户自定义类型则删除相关颜色 if (!oldInfo.getColorInfo().isSysColorInfo()) { isSuccess = m_database->deleteColorType(oldInfo.getColorTypeNo()); } if (isSuccess) { emit JobTypeOrColorUpdated(); } return isSuccess; } /** * @brief UpdateJobType 更新日程类型 * param jobTypeInfo json格式的日程类型信息 * return bool 返回操作结果 */ bool CalendarScheduler::UpdateJobType(const QString &jobTypeInfo) { JobTypeInfo jobType; if (!JobTypeInfo::jsonStrToJobTypeInfo(jobTypeInfo, jobType)) { return false; } JobTypeInfo oldInfo; //获取原始的日程类型信息 m_database->getJobTypeByTypeNo(jobType.getJobTypeNo(), oldInfo); //如果颜色有改动 if (oldInfo.getColorInfo() != jobType.getColorInfo()) { //如果原来为自定义颜色则删除 if (!oldInfo.getColorInfo().isSysColorInfo()) { m_database->deleteColorType(oldInfo.getColorTypeNo()); } //如果修改的类型颜色为自定义颜色则创建 if (!jobType.getColorInfo().isSysColorInfo()) { m_database->addColorType(jobType.getColorInfo().getTypeNo(), jobType.getColorInfo().getColorHex(), jobType.getColorInfo().getAuthority()); } } bool isSuccess = m_database->updateJobType(jobType.getJobTypeNo(), jobType.getJobTypeName(), jobType.getColorTypeNo()); if (isSuccess) { emit JobTypeOrColorUpdated(); } return isSuccess; } /** * @brief GetJobTypeList 获取日程类型字符串 * return bool 返回查询结果 */ QString CalendarScheduler::GetJobTypeList() { QString strJson; QList lstJobType; if (m_database->getJobTypeList(lstJobType)) { JobTypeInfo::jobTypeInfoListToJosnString(lstJobType, strJson); } return strJson; } /** * @brief isJobTypeUsed 获取日程类型是否被使用 * return bool 返回是否被使用 */ bool CalendarScheduler::isJobTypeUsed(int iTypeNo) { return m_database->isJobTypeUsed(iTypeNo); } /** * @brief GetColorTypeList 获取日程类型字符串 * return bool 返回查询结果 */ QString CalendarScheduler::GetColorTypeList() { QString strJson = ""; QList lstColorType; if (m_database->getColorTypeList(lstColorType)) { JobTypeInfo::colorTypeInfoListToJosnString(lstColorType, strJson); } return strJson; } dde-calendar-5.9.1/calendar-service/src/calendarscheduler.h000066400000000000000000000142211423264401600236520ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 CALENDARSCHEDULER_H #define CALENDARSCHEDULER_H #include "dbmanager/schedulerdatabase.h" #include "src/scheduledatainfo.h" #include #include class JobRemindManager; class QTimer; class CalendarScheduler : public QObject { Q_OBJECT public: explicit CalendarScheduler(QObject *parent = nullptr); ~CalendarScheduler(); void DeleteJob(qint64 id); QString GetJob(qint64 id); qint64 CreateJob(const QString &jobInfo); void UpdateJob(const QString &jobInfo); QString GetJobs(const QDateTime &start, const QDateTime &end); QString QueryJobs(const QString ¶ms); QString QueryJobsWithLimit(const QString ¶ms, qint32 maxNum); QString QueryJobsWithRule(const QString ¶ms, const QString &rules); //CalendarScheduler: jobtype & color /** * @brief CreateJobType 创建日程类型 * param jobTypeInfo json格式的日程类型信息 * return bool 返回操作结果 */ bool CreateJobType(const QString &jobTypeInfo);// /** * @brief DeleteJobType 删除日程类型 * param typeNo 日程类型编号 * return bool 返回操作结果 */ bool DeleteJobType(const int &typeNo); /** * @brief UpdateJobType 更新日程类型 * param jobTypeInfo json格式的日程类型信息 * return bool 返回操作结果 */ bool UpdateJobType(const QString &jobTypeInfo); /** * @brief GetJobTypeList 获取日程类型字符串 * return bool 返回查询结果 */ QString GetJobTypeList(); /** * @brief isJobTypeUsed 获取日程类型是否被使用 * return bool 返回是否被使用 */ bool isJobTypeUsed(int iTypeNo); /** * @brief GetColorTypeList 获取日程类型字符串 * return bool 返回查询结果 */ QString GetColorTypeList(); void remindJob(const qint64 id, const qint64 recurID); /** * @brief UpdateRemindTimeout 更新未来10分钟有提醒信息的日程 * @param isClear 是否清空日程定时任务数据库 */ void UpdateRemindTimeout(bool isClear); /** * @brief notifyMsgHanding 处理通知弹框信息 * @param jobID 日程ID * @param recurID 重复日程编号 * @param operationNum 操作编号 */ void notifyMsgHanding(const qint64 jobID, const qint64 recurID, const int operationNum); private: void initConnections(); static quint32 GetFestivalId(const QString &name); void IsFestivalJobEnabled(); QList GetJobsBetween(const QDateTime &start, const QDateTime &end, const QList &joblist, bool needFestival, const QString &querykey = QString(), bool bextend = true); QList GetJobTimesBetween(const QDateTime &start, const QDateTime &end, const Job &job); void FillFestivalJobs(const QDateTime &start, const QDateTime &end, const QString &querykey, QList &listjob); QList GetIgnoreList(const Job &job); bool ContainsInIgnoreList(const QList &ignorelist, const QDateTime &time); bool OverLap(const QDateTime &start, const QDateTime &end, const QDateTime &jobstart, const QDateTime &jobend); QDateTime GetNextJobStartTimeByRule(const stRRuleOptions &options, const QDateTime &datetime); stRRuleOptions ParseRRule(const QString &rule); QString JobArrListToJsonStr(const QList &jobArrList); QList GetRemindJobs(const QDateTime &start, const QDateTime &end); QDateTime GetJobRemindTime(const Job &job); QDateTime ParseRemind(const QDateTime &tm, const QString &strremind); void AfterJobChanged(const QList &Ids); QList FilterDateJobsWrap(const QList &arrList, const QDateTime &start, const QDateTime &end); Job josnStringToJob(const QString &str); /** * @brief getRemindTimeByCount 获取下次提醒时间 * @param count 第几次提醒,从1开始 * @return */ QDateTime getRemindTimeByCount(int count); /** * @brief getRemindTimeByMesc 获取下次提醒时间 * @param duration 毫秒时长 * @return */ QDateTime getRemindTimeByMesc(qint64 duration); /** * @brief closeNotification 关闭通知弹框 * @param jobId 日程id */ void closeNotification(qint64 jobId); signals: void NotifyJobChange(const QList &jobs); void NotifyUpdateRemindJobs(const QList &jobs); void JobsUpdated(const QList &Ids); //日程类型发生改变 void JobTypeOrColorUpdated(); void signalRemindJob(const Job &job); void signalNotifyMsgHanding(const Job &job, const int operationNum); void signalCloseNotification(quint32 notifyID); private slots: void OnModifyJobRemind(const Job &job, const QString &remind); void saveNotifyID(const Job &job, int notifyid); private: SchedulerDatabase *m_database; JobRemindManager *m_jobremindmanager; bool m_festivalJobEnabled = false; //是否允许节假日日程 static QMap m_festivalIdMap; //节日对应节日Id static quint32 nextFestivalJobId; //下一个节日id static QMutex m_getJobIdMutex; //节日id获取锁 QThread *threadremind = nullptr; }; #endif // CALENDARSCHEDULER_H dde-calendar-5.9.1/calendar-service/src/calendarservice.cpp000066400000000000000000000234701423264401600236750ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "calendarservice.h" #include "src/commondatastruct.h" #include "calendarprogramexitcontrol.h" CalendarService::CalendarService(QObject *parent) : QObject(parent) { CalendarProgramExitControl::getProgramExitControl()->addExc(); CaLunarDayInfo::registerMetaType(); CaLunarMonthInfo::registerMetaType(); CaHuangLiDayInfo::registerMetaType(); CaHuangLiMonthInfo::registerMetaType(); qRegisterMetaType("Job"); qRegisterMetaType>("QList"); m_scheduler = new CalendarScheduler(this); m_huangli = new CalendarHuangLi(this); initConnections(); CalendarProgramExitControl::getProgramExitControl()->reduce(); } void CalendarService::initConnections() { connect(m_scheduler, &CalendarScheduler::JobsUpdated, this, &CalendarService::JobsUpdated); connect(m_scheduler, &CalendarScheduler::JobTypeOrColorUpdated, this, &CalendarService::JobTypeOrColorUpdated); } //获取指定公历月的假日信息 QString CalendarService::GetFestivalMonth(quint32 year, quint32 month) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString festivalInfo = m_huangli->GetFestivalMonth(year, month); CalendarProgramExitControl::getProgramExitControl()->reduce(); return festivalInfo; } //获取指定公历日的黄历信息 QString CalendarService::GetHuangLiDay(quint32 year, quint32 month, quint32 day) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString huangliInfo = m_huangli->GetHuangLiDay(year, month, day); CalendarProgramExitControl::getProgramExitControl()->reduce(); return huangliInfo; } //获取指定公历月的黄历信息 QString CalendarService::GetHuangLiMonth(quint32 year, quint32 month, bool fill) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString huangliInfo = m_huangli->GetHuangLiMonth(year, month, fill); CalendarProgramExitControl::getProgramExitControl()->reduce(); return huangliInfo; } //通过公历获取阴历信息 CaLunarDayInfo CalendarService::GetLunarInfoBySolar(quint32 year, quint32 month, quint32 day) { CalendarProgramExitControl::getProgramExitControl()->addExc(); CaLunarDayInfo huangliInfo = m_huangli->GetLunarInfoBySolar(year, month, day); CalendarProgramExitControl::getProgramExitControl()->reduce(); return huangliInfo; } //获取阴历月信息 CaLunarMonthInfo CalendarService::GetLunarMonthCalendar(quint32 year, quint32 month, bool fill) { CalendarProgramExitControl::getProgramExitControl()->addExc(); CaLunarMonthInfo huangliInfo = m_huangli->GetLunarCalendarMonth(year, month, fill); CalendarProgramExitControl::getProgramExitControl()->reduce(); return huangliInfo; } // 根据日程json创建日程信息,并返回jobID qint64 CalendarService::CreateJob(const QString &jobInfo) { CalendarProgramExitControl::getProgramExitControl()->addExc(); qint64 jobID = m_scheduler->CreateJob(jobInfo); CalendarProgramExitControl::getProgramExitControl()->reduce(); return jobID; } qint64 CalendarService::CreateType(const QString &typeInfo) { Q_UNUSED(typeInfo); CalendarProgramExitControl::getProgramExitControl()->addExc(); CalendarProgramExitControl::getProgramExitControl()->reduce(); return 0; } // 根据日程id来删除日程记录 void CalendarService::DeleteJob(qint64 id) { CalendarProgramExitControl::getProgramExitControl()->addExc(); m_scheduler->DeleteJob(id); CalendarProgramExitControl::getProgramExitControl()->reduce(); } QString CalendarService::GetJob(qint64 id) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString scheduleInfo = m_scheduler->GetJob(id); CalendarProgramExitControl::getProgramExitControl()->reduce(); return scheduleInfo; } /** * @brief GetJobs 获取指定范围内的日程 * @param startYear 起始年信息 * @param startMonth 起始月信息 * @param startDay 起始日信息 * @param endYear 结束年信息 * @param endMonth 结束月信息 * @param endDay 结束日信息 * @return 返回指定范围内的日程JSON格式 */ QString CalendarService::GetJobs(quint32 startYear, quint32 startMonth, quint32 startDay, quint32 endYear, quint32 endMonth, quint32 endDay) { CalendarProgramExitControl::getProgramExitControl()->addExc(); //getjobs查询的时间为一整天,给查询的日期赋上精准的时间,和queryjobs查询保持一致 QDate startdate(static_cast(startYear), static_cast(startMonth), static_cast(startDay)); //查询的开始时间为当天的0:0 QDateTime start(startdate); QDate enddate(static_cast(endYear), static_cast(endMonth), static_cast(endDay)); //getjobs查询是以天为单位的,如果没有设置时间,则默认时间为00:00,那么查询的就是一个时间点,不符合期望,所以需要显示的设置一个当天最晚的时间点,来代表一整天的时间。 QDateTime end(enddate, QTime(23, 59)); QString scheduleInfo = m_scheduler->GetJobs(start, end); CalendarProgramExitControl::getProgramExitControl()->reduce(); return scheduleInfo; } QString CalendarService::QueryJobs(const QString ¶ms) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString scheduleInfo = m_scheduler->QueryJobs(params); CalendarProgramExitControl::getProgramExitControl()->reduce(); return scheduleInfo; } // 传入要改动的日程信息来更新数据库 void CalendarService::UpdateJob(const QString &jobInfo) { CalendarProgramExitControl::getProgramExitControl()->addExc(); m_scheduler->UpdateJob(jobInfo); CalendarProgramExitControl::getProgramExitControl()->reduce(); } QString CalendarService::QueryJobsWithLimit(const QString ¶ms, qint32 maxNum) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString scheduleInfo = m_scheduler->QueryJobsWithLimit(params, maxNum); CalendarProgramExitControl::getProgramExitControl()->reduce(); return scheduleInfo; } QString CalendarService::QueryJobsWithRule(const QString ¶ms, const QString &rules) { CalendarProgramExitControl::getProgramExitControl()->addExc(); QString scheduleInfo = m_scheduler->QueryJobsWithRule(params, rules); CalendarProgramExitControl::getProgramExitControl()->reduce(); return scheduleInfo; } void CalendarService::remindJob(const qint64 jobID, const qint64 recurID) { CalendarProgramExitControl::getProgramExitControl()->addExc(); m_scheduler->remindJob(jobID, recurID); CalendarProgramExitControl::getProgramExitControl()->reduce(); } void CalendarService::updateRemindJob(bool isClear) { CalendarProgramExitControl::getProgramExitControl()->addExc(); m_scheduler->UpdateRemindTimeout(isClear); CalendarProgramExitControl::getProgramExitControl()->reduce(); } void CalendarService::notifyMsgHanding(const qint64 jobID, const qint64 recurID, const qint32 operationNum) { CalendarProgramExitControl::getProgramExitControl()->addExc(); m_scheduler->notifyMsgHanding(jobID, recurID, operationNum); CalendarProgramExitControl::getProgramExitControl()->reduce(); } // 根据日程json创建日程类型信息,并返回操作结果 bool CalendarService::CreateJobType(const QString &jobTypeInfo) { bool bRet; CalendarProgramExitControl::getProgramExitControl()->addExc(); bRet = m_scheduler->CreateJobType(jobTypeInfo); CalendarProgramExitControl::getProgramExitControl()->reduce(); return bRet; } // 根据日程typeNo删除日程类型信息,并返回操作结果 bool CalendarService::DeleteJobType(const int &typeNo) { bool bRet; CalendarProgramExitControl::getProgramExitControl()->addExc(); bRet = m_scheduler->DeleteJobType(typeNo); CalendarProgramExitControl::getProgramExitControl()->reduce(); return bRet; } // 根据日程json修改日程类型信息,并返回操作结果 bool CalendarService::UpdateJobType(const QString &jobTypeInfo) { bool bRet; CalendarProgramExitControl::getProgramExitControl()->addExc(); bRet = m_scheduler->UpdateJobType(jobTypeInfo); CalendarProgramExitControl::getProgramExitControl()->reduce(); return bRet; } // 返回类型列表 QString CalendarService::GetJobTypeList() { QString strJobType; CalendarProgramExitControl::getProgramExitControl()->addExc(); strJobType = m_scheduler->GetJobTypeList(); CalendarProgramExitControl::getProgramExitControl()->reduce(); return strJobType; } /** * @brief isJobTypeUsed 获取日程类型是否被使用 * return bool 返回是否被使用 */ bool CalendarService::isJobTypeUsed(const int &typeNo) { bool bRet; CalendarProgramExitControl::getProgramExitControl()->addExc(); bRet = m_scheduler->isJobTypeUsed(typeNo); CalendarProgramExitControl::getProgramExitControl()->reduce(); return bRet; } // 返回类型列表 QString CalendarService::GetColorTypeList() { QString strJobType; CalendarProgramExitControl::getProgramExitControl()->addExc(); strJobType = m_scheduler->GetColorTypeList(); CalendarProgramExitControl::getProgramExitControl()->reduce(); return strJobType; } dde-calendar-5.9.1/calendar-service/src/calendarservice.h000066400000000000000000000072351423264401600233430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 CALENDARSERVICE_H #define CALENDARSERVICE_H #include "src/commondef.h" #include "src/dbusdatastruct.h" #include "calendarscheduler.h" #include "calendarhuangli.h" #include #include class CalendarService : public QObject , protected QDBusContext { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "com.deepin.dataserver.Calendar") public: explicit CalendarService(QObject *parent = nullptr); private: void initConnections(); Q_SIGNALS: Q_SCRIPTABLE void JobsUpdated(const QList &Ids); //日程类型发生改变 Q_SCRIPTABLE void JobTypeOrColorUpdated(); public Q_SLOTS: //LunarCalendar Q_SCRIPTABLE QString GetFestivalMonth(quint32 year, quint32 month); Q_SCRIPTABLE QString GetHuangLiDay(quint32 year, quint32 month, quint32 day); Q_SCRIPTABLE QString GetHuangLiMonth(quint32 year, quint32 month, bool fill); Q_SCRIPTABLE CaLunarDayInfo GetLunarInfoBySolar(quint32 year, quint32 month, quint32 day); Q_SCRIPTABLE CaLunarMonthInfo GetLunarMonthCalendar(quint32 year, quint32 month, bool fill); //CalendarScheduler Q_SCRIPTABLE qint64 CreateJob(const QString &jobInfo); Q_SCRIPTABLE qint64 CreateType(const QString &typeInfo); Q_SCRIPTABLE void DeleteJob(qint64 id); Q_SCRIPTABLE QString GetJob(qint64 id); Q_SCRIPTABLE QString GetJobs(quint32 startYear, quint32 startMonth, quint32 startDay, quint32 endYear, quint32 endMonth, quint32 endDay); Q_SCRIPTABLE QString QueryJobs(const QString ¶ms); Q_SCRIPTABLE void UpdateJob(const QString &jobInfo); Q_SCRIPTABLE QString QueryJobsWithLimit(const QString ¶ms, qint32 maxNum); Q_SCRIPTABLE QString QueryJobsWithRule(const QString ¶ms, const QString &rules); //CalendarScheduler: jobtype & color Q_SCRIPTABLE bool CreateJobType(const QString &jobTypeInfo);// Q_SCRIPTABLE bool DeleteJobType(const int &typeNo); Q_SCRIPTABLE bool UpdateJobType(const QString &jobTypeInfo); Q_SCRIPTABLE QString GetJobTypeList(); Q_SCRIPTABLE bool isJobTypeUsed(const int &typeNo); Q_SCRIPTABLE QString GetColorTypeList(); //稍后提醒相关接口 Q_SCRIPTABLE void remindJob(const qint64 jobID, const qint64 recurID); /** * @brief updateRemindJob 每隔10分钟更新提醒日程 * @param isClear 是否情况日程定时任务数据库 */ Q_SCRIPTABLE void updateRemindJob(bool isClear); /** * @brief notifyMsgHanding 通知提示框交互处理 * @param jobID 日程id * @param operationNum 操作编号 , 1:打开日历,2:稍后提醒 3: 明天提醒 4: 提前1天提醒 5:关闭按钮 */ Q_SCRIPTABLE void notifyMsgHanding(const qint64 jobID, const qint64 recurID, const qint32 operationNum); private: CalendarScheduler *m_scheduler; CalendarHuangLi *m_huangli; }; #endif // CALENDARSERVICE_H dde-calendar-5.9.1/calendar-service/src/csystemdtimercontrol.cpp000066400000000000000000000111641423264401600250350ustar00rootroot00000000000000#include "csystemdtimercontrol.h" #include #include #include #include CSystemdTimerControl::CSystemdTimerControl(QObject *parent) : QObject(parent) { createPath(); } CSystemdTimerControl::~CSystemdTimerControl() { } void CSystemdTimerControl::buildingConfiggure(const QVector &infoVector) { if(infoVector.size() ==0) return; QStringList fileNameList{}; foreach(auto info ,infoVector){ fileNameList.append(QString("job-%1-%2-%3").arg(info.jobID).arg(info.recurID).arg(info.laterCount)); createService(fileNameList.last(),info); createTimer(fileNameList.last(),info.triggerTimer); } startSystemdTimer(fileNameList); } void CSystemdTimerControl::stopSystemdTimerByJobInfos(const QVector &infoVector) { QStringList fileNameList; foreach(auto info ,infoVector){ fileNameList.append(QString("job-%1-%2-%3").arg(info.jobID).arg(info.recurID).arg(info.laterCount)); } stopSystemdTimer(fileNameList); } void CSystemdTimerControl::stopSystemdTimerByJobInfo(const SystemDInfo &info) { QStringList fileName; //停止刚刚提醒的稍后提醒,所以需要对提醒次数减一 fileName << QString("job-%1-%2-%3").arg(info.jobID).arg(info.recurID).arg(info.laterCount-1); stopSystemdTimer(fileName); } void CSystemdTimerControl::startSystemdTimer(const QStringList &timerName) { QString command("systemctl --user start "); foreach(auto str,timerName){ command += QString(" %1.timer").arg(str); } execLinuxCommand(command); } void CSystemdTimerControl::stopSystemdTimer(const QStringList &timerName) { QString command("systemctl --user stop "); foreach(auto str,timerName){ command += QString(" %1.timer").arg(str); } execLinuxCommand(command); } void CSystemdTimerControl::removeFile(const QStringList &fileName) { foreach(auto f,fileName){ QFile::remove(f); } } void CSystemdTimerControl::stopAllRemindSystemdTimer() { execLinuxCommand("systemctl --user stop job-*.timer"); } void CSystemdTimerControl::removeRemindFile() { // QString cmd("rm "); cmd +=m_systemdPath; cmd +="job-*"; execLinuxCommand(cmd); } void CSystemdTimerControl::startCalendarServiceSystemdTimer() { QFileInfo fileInfo(m_systemdPath+"timers.target.wants/com.dde.calendarserver.calendar.timer"); //如果没有设置定时任务则开启定时任务 if(!fileInfo.exists()){ execLinuxCommand("systemctl --user enable com.dde.calendarserver.calendar.timer"); execLinuxCommand("systemctl --user start com.dde.calendarserver.calendar.timer"); } } void CSystemdTimerControl::createPath() { m_systemdPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation).append("/.config/systemd/user/"); QDir dir; //如果该路径不存在,则创建该文件夹 if (!dir.exists(m_systemdPath)) { dir.mkpath(m_systemdPath); } } QString CSystemdTimerControl::execLinuxCommand(const QString &command) { QProcess process; process.start("/bin/bash",QStringList()<<"-c"< #include #include struct SystemDInfo{ qint64 jobID = 0; //日程id qint64 laterCount = 0; //稍后提醒次数 qint64 recurID = 0 ; //重复日程编号 QDateTime triggerTimer; //触发时间 }; /** * @brief The CSystemdTimerControl class * systemd timer 控制类 */ class CSystemdTimerControl : public QObject { Q_OBJECT public: explicit CSystemdTimerControl(QObject *parent = nullptr); ~CSystemdTimerControl(); /** * @brief buildingConfiggure 根据日程信息集,创建相关的systemd配置文件,并开启定时任务 * @param infoVector */ void buildingConfiggure(const QVector &infoVector); /** * @brief stopSystemdTimerByJobInfos 根据日程信息集,停止相应的任务 * @param infoVector */ void stopSystemdTimerByJobInfos(const QVector &infoVector); /** * @brief stopSystemdTimerByJobInfo 根据日程信息,停止相关任务 * @param info */ void stopSystemdTimerByJobInfo(const SystemDInfo &info); /** * @brief startSystemdTimer 开启定时任务 * @param timerName 定时任务.timer名称集合 */ void startSystemdTimer(const QStringList &timerName); /** * @brief stopSystemdTimer 停止定时任务 * @param timerName 定时任务.timer名称集合 */ void stopSystemdTimer(const QStringList &timerName); /** * @brief stopAllRemindSystemdTimer 停止所有的日程定时任务 */ void stopAllRemindSystemdTimer(); /** * @brief removeRemindFile 移除日程定时任务相关文件 */ void removeRemindFile(); /** * @brief startCalendarServiceSystemdTimer 开启日程后端定时器 */ void startCalendarServiceSystemdTimer(); private: /** * @brief removeFile 移除.service和.timer文件 * @param fileName */ void removeFile(const QStringList &fileName); /** * @brief createPath * 创建systemd文件路径 */ void createPath(); /** * @brief execLinuxCommand 执行linux命令 * @param command * @return */ QString execLinuxCommand(const QString &command); /** * @brief createService * 创建 .service文件 */ void createService(const QString &name ,const SystemDInfo &info); /** * @brief createTimer * 创建 .timer文件 */ void createTimer(const QString &name ,const QDateTime &triggerTimer); /** * @brief createFile 创建文件 * @param fileName 文件名称 * @param content 内容 */ void createFile(const QString &fileName ,const QString &content); signals: public slots: private: QString m_systemdPath; }; #endif // CSYSTEMDTIMERCONTROL_H dde-calendar-5.9.1/calendar-service/src/dbmanager/000077500000000000000000000000001423264401600217515ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/src/dbmanager/huanglidatabase.cpp000066400000000000000000000076311423264401600256000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "huanglidatabase.h" #include #include #include #include #include #include HuangLiDataBase::HuangLiDataBase(QObject *parent) : QObject(parent), dbpath("/usr/share/dde-calendar/data/huangli.db") { //黄历数据库路径 "/usr/share/dde-calendar/data/huangli.db" OpenHuangliDatabase(dbpath); Q_ASSERT(m_database.isOpen()); } bool HuangLiDataBase::OpenHuangliDatabase(const QString &dbpath) { m_database = QSqlDatabase::addDatabase("QSQLITE"); m_database.setDatabaseName(dbpath); return m_database.open(); } QString HuangLiDataBase::QueryFestivalList(quint32 year, quint8 month) { QString strtable = QString("festival_%1").arg(year); QString strsql = QString("SELECT id,month,name,description,rest,list FROM %1 WHERE month = %2").arg(strtable).arg(month); QSqlQuery query(strsql, m_database); QString strjson; if (query.exec()) { QJsonDocument doc; QJsonArray arr; while (query.next()) { QJsonObject obj; obj.insert("id", query.value("id").toString()); obj.insert("month", query.value("month").toInt()); obj.insert("name", query.value("name").toString()); obj.insert("rest", query.value("rest").toString()); obj.insert("description", query.value("description").toString()); QString strlist = query.value("list").toString(); QJsonParseError error; QJsonArray listarr; QJsonDocument doctmp = QJsonDocument::fromJson(strlist.toLocal8Bit(), &error); if (!doctmp.isNull()) { listarr = doctmp.array(); } else { qDebug() << __FUNCTION__ << error.errorString(); } obj.insert("list", listarr); arr.append(obj); } doc.setArray(arr); strjson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); } else { qDebug() < HuangLiDataBase::QueryHuangLiByDays(const QList &days) { QList infos; QSqlQuery query(m_database); foreach (stDay d, days) { //查询的id qint64 id = QString().sprintf("%d%02d%02d", d.Year, d.Month, d.Day).toInt(); QString strsql("SELECT id, avoid, suit FROM huangli WHERE id = %1"); strsql = strsql.arg(id); //数据库中的宜忌信息是从2008年开始的 stHuangLi sthuangli; //因此这里先将sthuangli内容初始化 sthuangli.ID = id; //如果数据库中有查询到数据,则进行赋值,如果没有,则使用初始值 if (query.exec(strsql) && query.next()) { sthuangli.ID = query.value("id").toInt(); sthuangli.Avoid = query.value("avoid").toString(); sthuangli.Suit = query.value("suit").toString(); } //将黄历数据放到list中 infos.append(sthuangli); } if (query.isActive()) { query.finish(); } return infos; } dde-calendar-5.9.1/calendar-service/src/dbmanager/huanglidatabase.h000066400000000000000000000026031423264401600252370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 HUANGLIDATABASE_H #define HUANGLIDATABASE_H #include "src/lunardatastruct.h" #include "src/dbusdatastruct.h" #include "lunarandfestival.h" #include #include class HuangLiDataBase : public QObject { Q_OBJECT public: explicit HuangLiDataBase(QObject *parent = nullptr); QString QueryFestivalList(quint32 year, quint8 month); QList QueryHuangLiByDays(const QList &days); signals: public slots: private: QSqlDatabase m_database; QString dbpath; bool OpenHuangliDatabase(const QString &dbpath); }; #endif // HUANGLIDATABASE_H dde-calendar-5.9.1/calendar-service/src/dbmanager/schedulerdatabase.cpp000066400000000000000000001237641423264401600261350ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "schedulerdatabase.h" #include "src/commondef.h" #include "pinyin/pinyinsearch.h" #include "src/utils.h" #include #include #include #include #include #include #include #include #include SchedulerDatabase::SchedulerDatabase(QObject *parent) : QObject(parent) , m_dbPath("") { //旧文件路径 QString oldDbPatch = QStandardPaths::writableLocation(QStandardPaths::HomeLocation).append("/.config/deepin/dde-daemon/calendar"); QDir dir; //如果该路径不存在,则创建该文件夹 if (!dir.exists(oldDbPatch)) { dir.mkpath(oldDbPatch); } m_dbPath = oldDbPatch.append("/scheduler.db"); OpenSchedulerDatabase(); } //通过id获取日程信息 QString SchedulerDatabase::GetJob(qint64 id) { QString strjson; QSqlQuery query(m_database); QString strsql = QString("SELECT id, type, title, description, " "all_day, start, end, r_rule, remind, ignore , is_Lunar" " FROM jobs WHERE id = '%1' ") .arg(id); //id唯一因此此处最多只有一条数据 if (query.exec(strsql) && query.next()) { QJsonDocument doc; QJsonObject obj; obj.insert("ID", query.value("id").toInt()); obj.insert("Type", query.value("type").toInt()); obj.insert("Title", query.value("title").toString()); obj.insert("Description", query.value("description").toString()); obj.insert("AllDay", query.value("all_day").toBool()); //调整时间格式,方便前端解析 obj.insert("Start", Utils::toconvertData(query.value("start").toDateTime())); obj.insert("End", Utils::toconvertData(query.value("end").toDateTime())); obj.insert("RRule", query.value("r_rule").toString()); obj.insert("Remind", query.value("remind").toString()); //将QString类型转换为QJsonArray类型,方便前端解析 obj.insert("Ignore", QJsonDocument::fromJson(query.value("ignore").toString().toUtf8()).array()); //数据库包含的都是原始数据所以RecurID默认为0 obj.insert("RecurID", 0); obj.insert("IsLunar", query.value("is_Lunar").toBool()); doc.setObject(obj); strjson = QString::fromUtf8(doc.toJson(QJsonDocument::Compact)); } else { qDebug() << __FUNCTION__ << query.lastError(); } if (query.isActive()) { query.finish(); } return strjson; } /** * @brief GetAllOriginJobs 获取所有原始日程 * @return 返回所有原始日程集合 */ QList SchedulerDatabase::GetAllOriginJobs() { QList jobs; QSqlQuery query(m_database); QString strsql = QString("select id,type,title,description,all_day,start,end,r_rule,remind,ignore,title_pinyin,is_Lunar" " from jobs "); if (query.exec(strsql)) { while (query.next()) { Job jb; jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.IsLunar = query.value("is_Lunar").toBool(); jobs.append(jb); } } if (query.isActive()) { query.finish(); } return jobs; } /** * @brief GetAllOriginJobs 获取所有与key相关的job原始数据 * @param key 搜索词 * @param strsort 查询排序条件 * @return 返回所有原始日程集合 */ QList SchedulerDatabase::GetAllOriginJobs(const QString &key, const QString &strsort) { QList jobs; QSqlQuery query(m_database); QString strKey = key.trimmed(); pinyinsearch *psearch = pinyinsearch::getPinPinSearch(); QString strsql("select id,type,title,description,all_day,start,end,r_rule,remind,ignore,title_pinyin,is_Lunar from jobs"); QMap sqlBindValue; if (psearch->CanQueryByPinyin(strKey)) { //可以按照拼音查询 QString pinyin = psearch->CreatePinyinQuery(strKey.toLower()); strsql += QString(" where instr(UPPER(title), UPPER(:key)) OR title_pinyin LIKE :pinyin"); sqlBindValue[":key"] = key; sqlBindValue[":pinyin"] = pinyin; } else if (!key.isEmpty()) { //按照key查询 strsql += QString(" where instr(UPPER(title), UPPER(:key))"); sqlBindValue[":key"] = key; } //排序条件不为空 if (!strsort.isEmpty()) { strsql.append(QString("order by :strsort ")); sqlBindValue[":strsort"] = strsort; } query.prepare(strsql); for (auto iter = sqlBindValue.constBegin(); iter != sqlBindValue.constEnd(); iter++) { query.bindValue(iter.key(), iter.value()); } if (query.exec()) { while (query.next()) { Job jb; jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.IsLunar = query.value("is_Lunar").toBool(); jobs.append(jb); } } if (query.isActive()) { query.finish(); } return jobs; } QList SchedulerDatabase::GetAllOriginJobsWithRule(const QString &key, const QString &rules) { QList jobs; QSqlQuery query(m_database); QString strKey = key.trimmed(); QString strrule; if (!rules.contains("BYDAY") && rules.contains("DAILY")) { // 每日 strrule = QString("r_rule LIKE '%%1%' AND r_rule NOT LIKE '%BYDAY%' ").arg(rules); } else { // 工作日 每周 每月 每年 strrule = QString("r_rule LIKE '%%1%'").arg(rules); } pinyinsearch *psearch = pinyinsearch::getPinPinSearch(); QString strsql; if (psearch->CanQueryByPinyin(strKey)) { //可以按照拼音查询 QString pinyin = psearch->CreatePinyinQuery(strKey.toLower()); strsql = QString("select id from jobs where title like '%%1%' or title_pinyin like '%%2%' ").arg(key).arg(pinyin); } else if (!key.isEmpty()) { //按照key查询 strsql = QString("select id from jobs where title like '%%1%' ").arg(key); } else { //如果没有key,则搜索所有 strsql = QString("select id from jobs "); } strsql = QString("select id,type,title,description,all_day,start,end,r_rule,remind,ignore,title_pinyin,is_Lunar " " from jobs where id in(%1) and %2") .arg(strsql) .arg(strrule); if (query.exec(strsql)) { while (query.next()) { Job jb; jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.IsLunar = query.value("is_Lunar").toBool(); jobs.append(jb); } } if (query.isActive()) { query.finish(); } return jobs; } /** * @brief GetJobsContainRemind 获取包含提醒规则的jos集合 */ QList SchedulerDatabase::GetJobsContainRemind() { QList jobs; QSqlQuery query(m_database); QString strSql("select id,type,title,description,all_day,start,end,r_rule,remind,ignore,title_pinyin,is_Lunar " "from jobs where remind is not null and remind !=' ' "); if (query.exec(strSql)) { while (query.next()) { Job jb; jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.IsLunar = query.value("is_Lunar").toBool(); jobs.append(jb); } } if (query.isActive()) { query.finish(); } return jobs; } //存储提醒日程的相关信息 void SchedulerDatabase::saveRemindJob(const Job &job) { QSqlQuery query(m_database); QString strsql = "INSERT INTO jobsReminder (jobid,recurid,remindCount,notifyid, remindTime,jobStartTime,jobEndTime)" "values (:jobid,:recurid,:remindCount,:notifyid,:remindTime,:jobStartTime,:jobEndTime)"; query.prepare(strsql); int i = 0; query.bindValue(i, job.ID); query.bindValue(++i, job.RecurID); query.bindValue(++i, job.RemindLaterCount); //通知提醒id默认为-1,表示未提醒 query.bindValue(++i, -1); query.bindValue(++i, job.RemidTime); query.bindValue(++i, job.Start); query.bindValue(++i, job.End); if (query.exec()) { if (query.isActive()) { query.finish(); } } else { qDebug() << __FUNCTION__ << query.lastError(); } } void SchedulerDatabase::updateRemindJob(const Job &job) { //点击稍后提醒后,更新信息并设置通知提醒为-1 QString strsql = QString("UPDATE jobsReminder SET remindCount = '%1' , remindTime = '%2', notifyid = -1 WHERE jobid = %3 and recurid = %4 ") .arg(job.RemindLaterCount) .arg(dateTimeToString(job.RemidTime)) .arg(job.ID) .arg(job.RecurID); QSqlQuery query(m_database); if (query.exec(strsql)) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qWarning() << __FUNCTION__ << query.lastError(); } } void SchedulerDatabase::deleteRemindJobs(const QList &Ids) { if (Ids.size() == 0) return; QStringList idList; for (int i = 0; i < Ids.size(); ++i) { idList.append(QString::number(Ids.at(i))); } QSqlQuery query(m_database); QString sql = QString("delete from jobsReminder where jobsReminder.jobid in ( %1)").arg(idList.join(",")); if (query.exec(sql)) { if (query.isActive()) { query.finish(); } } else { qWarning() << __FUNCTION__ << query.lastError(); } } void SchedulerDatabase::deleteRemindJobs(const qlonglong &jobID, const qint64 recurid) { QSqlQuery query(m_database); QString sql = QString("delete from jobsReminder where jobsReminder.jobid = %1 and jobsReminder.recurid = %2") .arg(jobID) .arg(recurid); if (query.exec(sql)) { if (query.isActive()) { query.finish(); } } else { qWarning() << __FUNCTION__ << query.lastError(); } } QList SchedulerDatabase::getValidRemindJob() { QList jobs{}; QSqlQuery query(m_database); QString sql("select jobs.id, jobs.all_day,jobs.type,jobs.title,jobs.description,jobs.is_Lunar,jobsReminder.jobStartTime as start," "jobsReminder.jobEndTime as end,jobs.r_rule,jobs.remind,jobs.ignore,jobs.title_pinyin,jobsReminder.remindCount," "jobsReminder.remindTime , jobsReminder.recurid from jobs left join jobsReminder on jobs.id = jobsReminder.jobid " "where jobsReminder.remindTime > "); sql += QString(" '%1'").arg(dateTimeToString(QDateTime::currentDateTime())); if (query.exec(sql)) { while (query.next()) { Job jb; jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.RemindLaterCount = query.value("remindCount").toInt(); jb.RemidTime = query.value("remindTime").toDateTime(); jb.RecurID = query.value("recurid").toInt(); jb.IsLunar = query.value("is_Lunar").toBool(); jobs.append(jb); } } if (query.isActive()) { query.finish(); } return jobs; } void SchedulerDatabase::clearRemindJobDatabase() { QSqlQuery query(m_database); QString sql("delete from jobsReminder"); if (query.exec(sql)) { if (query.isActive()) { query.finish(); } } else { qWarning() << __FUNCTION__ << query.lastError(); } } Job SchedulerDatabase::getRemindJob(const qint64 id, const qint64 recurid) { QSqlQuery query(m_database); QString sql = QString("select jobs.id, jobs.all_day,jobs.type,jobs.title,jobs.description,jobs.is_Lunar," "jobsReminder.jobStartTime as start,jobsReminder.jobEndTime as end,jobs.r_rule,jobs.remind,jobs.ignore,jobs.title_pinyin," "jobsReminder.remindCount,jobsReminder.remindTime , jobsReminder.recurid from jobs inner join jobsReminder " "on jobs.id = jobsReminder.jobid where jobsReminder.jobid = %1 and jobsReminder.recurid = %2") .arg(id) .arg(recurid); //id唯一因此此处最多只有一条数据 Job jb; if (query.exec(sql) && query.next()) { jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.RemindLaterCount = query.value("remindCount").toInt(); jb.RemidTime = query.value("remindTime").toDateTime(); jb.RecurID = query.value("recurid").toInt(); jb.IsLunar = query.value("is_Lunar").toBool(); } else { qWarning() << query.lastError(); } if (query.isActive()) { query.finish(); } return jb; } QList SchedulerDatabase::getRemindJob(const qint64 id) { QSqlQuery query(m_database); QString sql = QString("select jobs.id, jobs.all_day,jobs.type,jobs.title,jobs.description,jobs.is_Lunar," "jobsReminder.jobStartTime as start,jobsReminder.jobEndTime as end,jobs.r_rule,jobs.remind,jobs.ignore,jobs.title_pinyin," "jobsReminder.remindCount,jobsReminder.remindTime , jobsReminder.recurid from jobs inner join jobsReminder " "on jobs.id = jobsReminder.jobid where jobsReminder.jobid = %1") .arg(id); //id唯一因此此处最多只有一条数据 QList jbList; if (query.exec(sql) && query.next()) { Job jb; jb.ID = query.value("id").toInt(); jb.Type = query.value("type").toInt(); jb.Title = query.value("title").toString(); jb.Description = query.value("description").toString(); jb.AllDay = query.value("all_day").toBool(); jb.Start = query.value("start").toDateTime(); jb.End = query.value("end").toDateTime(); jb.RRule = query.value("r_rule").toString(); jb.Remind = query.value("remind").toString(); jb.Ignore = query.value("ignore").toString(); jb.Title_pinyin = query.value("title_pinyin").toString(); jb.RemindLaterCount = query.value("remindCount").toInt(); jb.RemidTime = query.value("remindTime").toDateTime(); jb.RecurID = query.value("recurid").toInt(); jb.IsLunar = query.value("is_Lunar").toBool(); jbList.append(jb); } else { qWarning() << query.lastError(); } if (query.isActive()) { query.finish(); } return jbList; } //获取桌面顶部通知ID QVector SchedulerDatabase::getNotifyID(const qint64 id) { QVector notifyid; QSqlQuery query(m_database); QString sql("select distinct jobsReminder.notifyid from jobsReminder where jobsReminder.jobid = "); sql += QString::number(id); if (query.exec(sql) && query.next()) { notifyid.append(query.value("notifyid").toInt()); } if (query.isActive()) { query.finish(); } return notifyid; } int SchedulerDatabase::getNotifyID(const qint64 jobID, const qint64 recurid) { int notifyid = -1; QSqlQuery query(m_database); QString sql = QString("select distinct jobsReminder.notifyid from jobsReminder where jobsReminder.jobid = %1 and jobsReminder.recurid = %2") .arg(jobID) .arg(recurid); if (query.exec(sql) && query.next()) { notifyid = query.value("notifyid").toInt(); } if (query.isActive()) { query.finish(); } return notifyid; } //更新桌面顶部通知ID void SchedulerDatabase::updateNotifyID(const Job &job, int notifyid) { QString strsql = QString("UPDATE jobsReminder SET notifyid = '%1' WHERE jobid = %2 and recurid = %3") .arg(notifyid) .arg(job.ID) .arg(job.RecurID); QSqlQuery query(m_database); if (query.exec(strsql)) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qWarning() << __FUNCTION__ << query.lastError(); } } /** * @brief CreateTables 创建日程相关数据表(新用户创建) */ void SchedulerDatabase::CreateTables() { QSqlQuery query(m_database); bool ret; //table job_types ret = query.exec("CREATE TABLE IF NOT EXISTS \"job_types\" (\"id\" integer primary key autoincrement,\"created_at\"" " datetime,\"updated_at\" datetime,\"deleted_at\" datetime,\"name\" varchar(255),\"color\" varchar(255) )"); if (!ret) { qDebug() << query.lastError(); } ret = query.exec("CREATE INDEX IF NOT EXISTS idx_job_types_deleted_at ON \"job_types\"(deleted_at)"); if (!ret) { qDebug() << query.lastError(); } //table jobs ret = query.exec("CREATE TABLE IF NOT EXISTS \"jobs\" (\"id\" integer primary key autoincrement," "\"created_at\" datetime,\"updated_at\" datetime,\"deleted_at\" datetime," "\"type\" integer,\"title\" varchar(255),\"description\" varchar(255)," "\"all_day\" bool,\"start\" datetime,\"end\" datetime,\"r_rule\" varchar(255)," "\"remind\" varchar(255),\"ignore\" varchar(255) , \"title_pinyin\" varchar(255))"); if (!ret) { qDebug() << query.lastError(); } ret = query.exec("CREATE INDEX IF NOT EXISTS idx_jobs_deleted_at ON \"jobs\"(deleted_at)"); if (!ret) { qDebug() << query.lastError(); } ret = query.exec("CREATE TABLE IF NOT EXISTS \"jobsReminder\" (\"id\" integer primary key autoincrement," "\"jobid\" integer,\"recurid\" integer,\"remindCount\" integer ,\"notifyid\" integer ," "\"remindTime\" datetime ,\"jobStartTime\" datetime ,\"jobEndTime\" datetime) "); if (!ret) { qDebug() << query.lastError(); } ret = query.exec("CREATE TABLE IF NOT EXISTS JobType ( \ ID INTEGER PRIMARY KEY AUTOINCREMENT \ ,TypeNo INTEGER NOT NULL UNIQUE \ ,TypeName VARCHAR(20) NOT NULL \ ,ColorTypeNo INTEGER NOT NULL \ ,CreateTime DATETIME NOT NULL \ ,Authority INTEGER NOT NULL \ )");//Authority:用来标识权限,0:读 1:展示 2:改 4:删 if (!ret) { qDebug() << query.lastError(); } ret = query.exec("CREATE TABLE IF NOT EXISTS ColorType ( \ ID INTEGER PRIMARY KEY AUTOINCREMENT \ ,TypeNo INTEGER NOT NULL UNIQUE \ ,ColorHex CHAR(10) NOT NULL \ ,Authority INTEGER NOT NULL \ )");//Authority:用来标识权限,0:读 1:展示 2:改 4:删 if (!ret) { qDebug() << query.lastError(); } if (query.isActive()) { query.finish(); } m_database.commit(); } /** * @brief initJobTypeTables 初始化日程类型,添加默认日程类型、颜色类型 * @return 无 */ void SchedulerDatabase::initJobTypeTables() { //getJobTypeByTypeNo(int iTypeNo, JobTypeInfo jobType); JobTypeInfo jobType; if (!getJobTypeByTypeNo(1, jobType) || jobType.getJobTypeNo() > 0) { return; } // addJobType(1, "Work", 1, 1); // addJobType(2, "Life", 7, 1); // addJobType(3, "Other", 4, 1); addJobType(4, "Festival", 2, 0); addColorType(1, "#ff5e97", 1); addColorType(2, "#ff9436", 1); addColorType(3, "#ffdc00", 1); addColorType(4, "#5bdd80", 1); addColorType(5, "#00b99b", 1); addColorType(6, "#4293ff", 1); addColorType(7, "#5d51ff", 1); addColorType(8, "#a950ff", 1); addColorType(9, "#717171", 1); return; } void SchedulerDatabase::OpenSchedulerDatabase() { // 重复调用QSQLITE会导致数据库连接覆盖导致失败,需指定每部分的连接名称 m_database = QSqlDatabase::addDatabase("QSQLITE", "SchedulerDatabase"); const QString &dbpath = getDbPath(); m_database.setDatabaseName(dbpath); //这里用QFile来修改日历数据库文件的权限 QFile file; file.setFileName(dbpath); //如果不存在该文件则创建 if (!file.exists()) { m_database.open(); m_database.close(); } //将权限修改为600(对文件的所有者可以读写,其他用户不可读不可写) if (!file.setPermissions(QFile::WriteOwner | QFile::ReadOwner)) { qWarning() << "权限设置失败,错误:" << file.errorString(); } if (m_database.open()) { const QStringList tables = m_database.tables(); QSqlQuery query(m_database); CreateTables(); initJobTypeTables(); //jobs需要添加一个是否为农历日程的字段 //判断jobs表中是否有该字段,如果有则不处理 QString getHasIsLunarField = "select count(1) from sqlite_master where type='table' and " "tbl_name = 'jobs' and sql like '%is_Lunar%'"; if (query.exec(getHasIsLunarField) && query.next()) { //获取是否存在为农历标识字段,若存在则返回1,不存在则返回0 int fieldNum = query.value(0).toInt(); if (fieldNum == 0) { //添加字段 QString alterField = "alter table jobs add is_Lunar bool default false "; if (!query.exec(alterField)) { qWarning() << "Failed to add field," << query.lastError(); }; } } else { qWarning() << "select field failed," << query.lastError(); } if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << m_database.lastError(); } } QString SchedulerDatabase::dateTimeToString(const QDateTime &dateTime) { QTime _offsetTime = QTime(0, 0).addSecs(dateTime.timeZone().offsetFromUtc(dateTime)); return QString("%1.000+%2").arg(dateTime.toString("yyyy-MM-ddThh:mm:ss")).arg(_offsetTime.toString("hh:mm")); } QString SchedulerDatabase::getDbPath() const { return m_dbPath; } void SchedulerDatabase::setDbPath(const QString &dbPath) { m_dbPath = dbPath; } // 执行删除日程的数据库SQL命令,以ID为依据 void SchedulerDatabase::DeleteJob(qint64 id) { QString strsql = QString("DELETE FROM jobs WHERE id = %1").arg(id); QSqlQuery query(m_database); if (query.exec(strsql)) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } } // 执行添加日程的数据库SQL命令,并返回其ID值 qint64 SchedulerDatabase::CreateJob(const Job &job) { QDateTime currentDateTime = QDateTime::currentDateTime(); currentDateTime.setOffsetFromUtc(currentDateTime.offsetFromUtc()); QSqlQuery query(m_database); QString strsql = "INSERT INTO jobs (created_at, updated_at, type, title," "description, all_day, start, end, r_rule, remind, ignore, title_pinyin,is_Lunar)" "values (:created_at, :updated_at, :type, :title, :description," ":all_day, :start, :end, :r_rule, :remind, :ignore, :title_pinyin,:is_Lunar)"; query.prepare(strsql); int i = 0; query.bindValue(i, currentDateTime); query.bindValue(++i, currentDateTime); query.bindValue(++i, job.Type); query.bindValue(++i, job.Title); query.bindValue(++i, job.Description); query.bindValue(++i, job.AllDay); //修改开始结束时间格式,与前端保持一致 query.bindValue(++i, Utils::toconvertData(job.Start)); query.bindValue(++i, Utils::toconvertData(job.End)); query.bindValue(++i, job.RRule); query.bindValue(++i, job.Remind); query.bindValue(++i, job.Ignore); query.bindValue(++i, job.Title_pinyin); query.bindValue(++i, job.IsLunar); if (query.exec()) { if (query.isActive()) { query.finish(); } } else { qDebug() << __FUNCTION__ << query.lastError(); } // 获取最新刚插入日程的ID。由于id为数据库自增,因此插入的日程id一直为最大值。 qint64 jobID; QString returnIdsql = "SELECT MAX(id) FROM jobs"; if (query.exec(returnIdsql) && query.next()) { jobID = query.value(0).toInt(); if (query.isActive()) { query.finish(); } // 共有两次sql语句执行,commit操作需要置于最后 m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); return -1; } return jobID; } // 根据传入的jobInfo中的Id来更新数据库中相应的数据 qint64 SchedulerDatabase::UpdateJob(const QString &jobInfo) { // TODO: 对job数据进行合法性检测 QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobInfo.toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return -1; } QJsonObject rootObj = jsonDoc.object(); // 此处Ignore参数需要单独解析,后续pinyin参数也可能会单独解析 QJsonArray subArray = rootObj.value("Ignore").toArray(); QJsonDocument doc; doc.setArray(subArray); QDateTime currentDateTime = QDateTime::currentDateTime(); currentDateTime.setOffsetFromUtc(currentDateTime.offsetFromUtc()); QSqlQuery query(m_database); QString strsql = "UPDATE jobs SET updated_at = ?, type = ?, title = ?, " "description = ?, all_day = ?, start = ?, end = ?, r_rule = ?, " "remind = ?, ignore = ?, title_pinyin = ? ,is_Lunar = ? WHERE id = ?"; query.prepare(strsql); qint64 id = rootObj.value("ID").toInt(); int i = 0; //修改updatetime时间格式 query.bindValue(i, currentDateTime); query.bindValue(++i, rootObj.value("Type").toInt()); query.bindValue(++i, rootObj.value("Title").toString()); query.bindValue(++i, rootObj.value("Description").toString()); query.bindValue(++i, rootObj.value("AllDay").toBool()); query.bindValue(++i, rootObj.value("Start").toString()); query.bindValue(++i, rootObj.value("End").toString()); query.bindValue(++i, rootObj.value("RRule").toString()); query.bindValue(++i, rootObj.value("Remind").toString()); query.bindValue(++i, QString::fromUtf8(doc.toJson(QJsonDocument::Compact))); query.bindValue(++i, pinyinsearch::getPinPinSearch()->CreatePinyin(rootObj.value("Title").toString())); query.bindValue(++i, rootObj.value("IsLunar").toBool()); query.bindValue(++i, id); if (query.exec()) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } return id; } bool SchedulerDatabase::UpdateJobIgnore(const QString &strignore, qint64 id) { QSqlQuery query(m_database); QString strsql = QString("UPDATE jobs SET ignore='%1' where id=%2;").arg(strignore).arg(id); bool bsuccess = false; if (query.exec(strsql)) { if (query.isActive()) { query.finish(); } bsuccess = m_database.commit(); } return bsuccess; } /** * @brief getJobTypeByTypeNo 根据类型编号获取日程类型信息 * @return */ bool SchedulerDatabase::getJobTypeByTypeNo(int iTypeNo, JobTypeInfo &jobType) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString(" SELECT JobType.TypeNo, JobType.TypeName, JobType.ColorTypeNo, ColorType.ColorHex, JobType.Authority " " FROM JobType LEFT JOIN ColorType " " ON JobType.ColorTypeNo = ColorType.TypeNo " " WHERE JobType.TypeNo = %1 ").arg(iTypeNo);//单个查询时,不过滤Authority为0的结果 bRet = query.exec(strsql); if (bRet) { while (query.next()) { jobType.setJobTypeNo(query.value("TypeNo").toInt()); jobType.setJobTypeName(query.value("TypeName").toString()); jobType.getColorInfo().setTypeNo(query.value("ColorTypeNo").toInt()); jobType.getColorInfo().setColorHex(query.value("ColorHex").toString()); jobType.setAuthority(query.value("Authority").toInt()); } } if (query.isActive()) { query.finish(); } return bRet; } /** * @brief getJobTypeList 获取日程类型json串 * @param 无 */ bool SchedulerDatabase::getJobTypeList(QList &lstJobType) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString(" SELECT JobType.TypeNo, JobType.TypeName, JobType.ColorTypeNo, ColorType.ColorHex, JobType.Authority " " FROM JobType LEFT JOIN ColorType " " ON JobType.ColorTypeNo = ColorType.TypeNo " " WHERE JobType.Authority > 0 " " ORDER BY JobType.CreateTime "); bRet = query.exec(strsql); if (bRet) { QList > lstDefault; lstDefault.append({1, tr("Work"), 1, "#ff5e97", 1}); lstDefault.append({2, tr("Life"), 7, "#5d51ff", 1}); lstDefault.append({3, tr("Other"), 4, "#5bdd80", 1}); for (QList lst : lstDefault) { JobTypeInfo jobType; jobType.setJobTypeNo(lst[0].toInt()); jobType.setJobTypeName(lst[1].toString()); jobType.setColorTypeNo(lst[2].toInt()); jobType.setColorHex(lst[3].toString()); jobType.setAuthority(lst[4].toInt()); lstJobType.append(jobType); } while (query.next()) { JobTypeInfo jobType; jobType.setJobTypeNo(query.value("TypeNo").toInt()); jobType.setJobTypeName(query.value("TypeName").toString()); jobType.setColorTypeNo(query.value("ColorTypeNo").toInt()); jobType.setColorHex(query.value("ColorHex").toString()); jobType.setAuthority(query.value("Authority").toInt()); lstJobType.append(jobType); } } if (query.isActive()) { query.finish(); } return bRet; } /** * @brief isJobTypeUsed 查询日程类型是否被使用 * @return */ bool SchedulerDatabase::isJobTypeUsed(int iTypeNo) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString(" SELECT count(1) FROM jobs WHERE type = %1").arg(iTypeNo); if (query.exec(strsql) && query.next()) { //获取是否存在为农历标识字段,若存在则返回1,不存在则返回0 int fieldNum = query.value(0).toInt(); if (fieldNum > 0) { //被使用 bRet = true; } } if (query.isActive()) { query.finish(); } return bRet; } bool SchedulerDatabase::DeleteJobsByJobType(int iTypeNo) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString("DELETE FROM jobs WHERE type = %1").arg(iTypeNo); query.prepare(strsql); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qWarning() << __FUNCTION__ << query.lastError(); qWarning() << strsql; } return bRet; } QVector SchedulerDatabase::getJobIDByJobType(int iTypeNo) { QVector jobsID; QSqlQuery query(m_database); QString strsql = QString(" SELECT \ id \ FROM \ jobs \ WHERE \ jobs.\"type\" = %1;") .arg(iTypeNo); if (query.exec(strsql)) { //获取所有的有效数据 while (query.next()) { jobsID.append(query.value("id").toInt()); } if (query.isActive()) { query.finish(); } } else { qWarning() << query.lastError(); } return jobsID; } /** * @brief addJobType 新增日程类型 * @param iTypeNo 日程类型编码 * @param strTypeName 日程类型名称 * @param iColorTypeNo 日程类型对应颜色编码 * @param iAuthority 日程类型读写权限 */ bool SchedulerDatabase::addJobType(const int &iTypeNo, const QString &strTypeName, const int &iColorTypeNo, int iAuthority) { bool bRet = false; QDateTime currentDateTime = QDateTime::currentDateTime(); QSqlQuery query(m_database); QString strsql = "INSERT INTO JobType (TypeNo, TypeName, ColorTypeNo, CreateTime, Authority)" " VALUES (:TypeNo, :TypeName, :ColorTypeNo, :CreateTime, :Authority)"; query.prepare(strsql); int i = 0; query.bindValue(i, iTypeNo); query.bindValue(++i, strTypeName); query.bindValue(++i, iColorTypeNo); currentDateTime.setOffsetFromUtc(currentDateTime.offsetFromUtc()); query.bindValue(++i, currentDateTime); query.bindValue(++i, iAuthority); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } return bRet; } /** * @brief updateJobType 更新日程类型 * @param iTypeNo 日程类型编码 * @param strTypeName 日程类型名称 * @param iColorTypeNo 日程类型对应颜色编码 */ bool SchedulerDatabase::updateJobType(const int &iTypeNo, const QString &strTypeName, const int &iColorTypeNo) { bool bRet = false; QSqlQuery query(m_database); //使用占位符的方式更新数据库 QString strsql = "UPDATE JobType SET TypeName = ?,ColorTypeNo = ? WHERE TypeNo = ?"; query.prepare(strsql); int i = 0; query.bindValue(i, strTypeName); query.bindValue(++i, iColorTypeNo); query.bindValue(++i, iTypeNo); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qWarning() << Q_FUNC_INFO << query.lastError(); qWarning() << strsql; } return bRet; } /** * @brief deleteJobType 删除日程类型 * @param strTypeNo 日程类型编码 */ bool SchedulerDatabase::deleteJobType(const int &iTypeNo) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString("DELETE FROM JobType WHERE TypeNo = %1").arg(iTypeNo); query.prepare(strsql); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } return bRet; } /** * @brief getColorTypeList 获取颜色类型json串 * @param 无 */ bool SchedulerDatabase::getColorTypeList(QList &lstColorType) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString(" SELECT TypeNo, ColorHex, Authority " " FROM ColorType " " ORDER BY TypeNo"); bRet = query.exec(strsql); if (bRet) { while (query.next()) { JobTypeColorInfo colorType; colorType.setTypeNo(query.value("TypeNo").toInt()); colorType.setColorHex(query.value("ColorHex").toString()); colorType.setAuthority(query.value("Authority").toInt()); lstColorType.append(colorType); } } if (query.isActive()) { query.finish(); } return bRet; } /** * @brief addColorType 新增颜色类型 * @param iTypeNo 颜色类型编码 * @param strColorHex 颜色16进制编码 * @param iAuthority 颜色类型读写权限 */ bool SchedulerDatabase::addColorType(const int &iTypeNo, const QString &strColorHex, const int iAuthority) { bool bRet = false; QSqlQuery query(m_database); QString strsql = "INSERT INTO ColorType (TypeNo, ColorHex, Authority) VALUES(:TypeNo, :ColorHex, :Authority)"; query.prepare(strsql); int i = 0; query.bindValue(i, iTypeNo); query.bindValue(++i, strColorHex); query.bindValue(++i, iAuthority); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } return bRet; } /** * @brief updateColorType 更新颜色类型 * @param iTypeNo 颜色类型编码 * @param strColorHex 颜色16进制编码 */ bool SchedulerDatabase::updateColorType(const int &iTypeNo, const QString &strColorHex) { bool bRet = false; QSqlQuery query(m_database); QString strsql = "UPDATE ColorType SET strColorHex = ? WHERE TypeNo = ?"; query.prepare(strsql); int i = 0; query.bindValue(i, strColorHex); query.bindValue(++i, iTypeNo); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } return bRet; } /** * @brief deleteColorType 删除颜色类型 * @param iTypeNo 颜色类型编码 */ bool SchedulerDatabase::deleteColorType(const int &iTypeNo) { bool bRet = false; QSqlQuery query(m_database); QString strsql = QString("DELETE FROM ColorType WHERE TypeNo = %1").arg(iTypeNo); query.prepare(strsql); bRet = query.exec(); if (bRet) { if (query.isActive()) { query.finish(); } m_database.commit(); } else { qDebug() << __FUNCTION__ << query.lastError(); } return bRet; } dde-calendar-5.9.1/calendar-service/src/dbmanager/schedulerdatabase.h000066400000000000000000000162501423264401600255710ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 SCHEDULERDATABASE_H #define SCHEDULERDATABASE_H #include "src/commondatastruct.h" #include "src/scheduledatainfo.h" #include "gtest/gtest_prod.h" #include #include #include class SchedulerDatabase : public QObject { Q_OBJECT public: explicit SchedulerDatabase(QObject *parent = nullptr); void DeleteJob(qint64 id); QString GetJob(qint64 id); qint64 CreateJob(const Job &job); qint64 UpdateJob(const QString &jobInfo); bool UpdateJobIgnore(const QString &strignore, qint64 id); QList GetAllOriginJobs(); QList GetAllOriginJobs(const QString &key, const QString &strsort = QString()); QList GetAllOriginJobsWithRule(const QString &key, const QString &rules); QList GetJobsContainRemind(); /** * @brief saveRemindJob 存储提醒日程的相关信息 * @param job 提醒日程 */ void saveRemindJob(const Job &job); /** * @brief updateRemindJob 更新对应的稍后提醒日程 * @param job 日程信息 */ void updateRemindJob(const Job &job); /** * @brief deleteRemindJobs 根据日程id删除提醒日程信息 * @param Ids 日程id集 */ void deleteRemindJobs(const QList &Ids); /** * @brief deleteRemindJobs 根据日程id和重复id删除提醒日程信息 * @param jobID 日程id * @param recurid 重复id */ void deleteRemindJobs(const qlonglong &jobID, const qint64 recurid); /** * @brief getValidRemindJob 获取未提醒的稍后提醒日程 * @return */ QList getValidRemindJob(); /** * @brief clearRemindJobDatabase 清空稍后提醒表 */ void clearRemindJobDatabase(); /** * @brief getRemindJob 根据日程id和重复id获取对应的提醒日程 * @param id 日程id * @param recurid 重复id * @return */ Job getRemindJob(const qint64 id, const qint64 recurid); /** * @brief getRemindJob 根据日程id获取对应的提醒日程 * @param id 日程id * @return */ QList getRemindJob(const qint64 id); /** * @brief getNotifyID 获取桌面顶部通知ID * @param id 日程ID * @return 通知ID */ QVector getNotifyID(const qint64 id); /** * @brief getNotifyID 获取桌面顶部通知ID * @param jobID 日程ID * @param recurid 重复id * @return */ int getNotifyID(const qint64 jobID, const qint64 recurid); /** * @brief updateNotifyID 更新桌面顶部通知ID * @param jobID 日程ID * @param notifyid 通知ID */ void updateNotifyID(const Job &job, int notifyid); /** * @brief getJobTypeByTypeNo 根据类型编号获取日程类型信息 * @param iTypeNo 日程类型编号 * @param jobType 日程类型信息 * @return bool 操作结果 */ bool getJobTypeByTypeNo(int iTypeNo, JobTypeInfo &jobType); /** * @brief getJobTypeList 获取日程类型列表 * @return */ bool getJobTypeList(QList &lstJobType); /** * @brief isJobTypeUsed 查询日程类型是否被使用 * @return */ bool isJobTypeUsed(int iTypeNo); /** * @brief DeleteJobsByJobType 删除使用指定日程类型的全部日程 * @return */ bool DeleteJobsByJobType(int iTypeNo); /** * @brief getJobIDByJobType 根据日程类型获取对应的日程编号 * @param iTypeNo 日程类型 * @return */ QVector getJobIDByJobType(int iTypeNo); /** * @brief addJobType 新增日程类型 * @param iTypeNo 日程类型编码 * @param strTypeName 日程类型名称 * @param iColorTypeNo 日程类型对应颜色编码 * @param iAuthority 日程类型读写权限 */ bool addJobType(const int &iTypeNo, const QString &strTypeName, const int &iColorTypeNo, int iAuthority); /** * @brief updateJobType 更新日程类型 * @param iTypeNo 日程类型编码 * @param strTypeName 日程类型名称 * @param iColorTypeNo 日程类型对应颜色编码 */ bool updateJobType(const int &iTypeNo, const QString &strTypeName, const int &iColorTypeNo); /** * @brief deleteJobType 删除日程类型 * @param strTypeNo 日程类型编码 */ bool deleteJobType(const int &iTypeNo); /** * @brief getColorTypeList 获取颜色类型列表 * @param lstColorType 颜色类型列表 * @return 操作结果 */ bool getColorTypeList(QList &lstColorType); /** * @brief addColorType 新增颜色类型 * @param iTypeNo 颜色类型编码 * @param strColorHex 颜色16进制编码 * @param iAuthority 颜色类型读写权限 */ bool addColorType(const int &iTypeNo, const QString &strColorHex, const int iAuthority); /** * @brief updateColorType 更新颜色类型 * @param iTypeNo 颜色类型编码 * @param strColorHex 颜色16进制编码 */ bool updateColorType(const int &iTypeNo, const QString &strColorHex); /** * @brief deleteColorType 删除颜色类型 * @param iTypeNo 颜色类型编码 */ bool deleteColorType(const int &iTypeNo); QString getDbPath() const; void setDbPath(const QString &dbPath); private: void CreateTables(); /** * @brief initJobTypeTables 初始化日程类型,添加默认日程类型、颜色类型 * @return 无 */ void initJobTypeTables(); void OpenSchedulerDatabase(); /** * @brief dateTimeToString 将时间转换为string格式 * @param dateTime * @return */ QString dateTimeToString(const QDateTime &dateTime); signals: public slots: private: QSqlDatabase m_database; QString m_dbPath; }; #endif // SCHEDULERDATABASE_H dde-calendar-5.9.1/calendar-service/src/dbus/000077500000000000000000000000001423264401600207665ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/src/dbus/dbusnotify.cpp000066400000000000000000000024201423264401600236560ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "dbusnotify.h" DBusNotify::DBusNotify(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { } //根据通知ID关闭桌面顶部通知 void DBusNotify::closeNotification(quint32 notifyID) { QList argumentList; argumentList << notifyID; callWithArgumentList(QDBus::NoBlock, QStringLiteral("CloseNotification"), argumentList); } dde-calendar-5.9.1/calendar-service/src/dbus/dbusnotify.h000066400000000000000000000041601423264401600233260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 DBUSNOTIFY_H #define DBUSNOTIFY_H #include class DBusNotify : public QDBusAbstractInterface { Q_OBJECT public: static inline const char *staticInterfaceName() { return "com.deepin.dde.Notification"; } explicit DBusNotify(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr); inline int Notify(const QList &argumentList) { QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("Notify"), argumentList); int notifyid = -1; if (QDBusMessage::ReplyMessage == reply.type()) { qDebug() << reply.type() << reply.errorName() << reply.errorMessage(); QDBusReply id = reply; if (id.isValid()) { notifyid = id.value(); } } else { qDebug() << reply.type() << reply.errorName() << reply.errorMessage(); } return notifyid; } /** * @brief closeNotification 根据通知ID关闭桌面顶部通知 * @param notifyID 通知ID */ void closeNotification(quint32 notifyID); Q_SIGNALS: // SIGNALS Q_SCRIPTABLE void NotificationClosed(quint32 id, quint32 reason); Q_SCRIPTABLE void ActionInvoked(quint32 id, const QString &reason); }; #endif // DBUSNOTIFY_H dde-calendar-5.9.1/calendar-service/src/dbus/dbusuiopenschedule.cpp000066400000000000000000000020501423264401600253610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "dbusuiopenschedule.h" DbusUIOpenSchedule::DbusUIOpenSchedule(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { } dde-calendar-5.9.1/calendar-service/src/dbus/dbusuiopenschedule.h000066400000000000000000000027701423264401600250370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 DBUSUIOPENSCHEDULE_H #define DBUSUIOPENSCHEDULE_H #include class DbusUIOpenSchedule : public QDBusAbstractInterface { Q_OBJECT public: static inline const char *staticInterfaceName() { return "com.deepin.Calendar"; } explicit DbusUIOpenSchedule(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr); inline void OpenSchedule(const QString strjson) { QList argumentList; argumentList << strjson; //不需要返回结果,发送完直接结束 callWithArgumentList(QDBus::NoBlock, QStringLiteral("OpenSchedule"), argumentList); } }; #endif // DBUSUIOPENSCHEDULE_H dde-calendar-5.9.1/calendar-service/src/jobremindmanager.cpp000066400000000000000000000324531423264401600240500ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "jobremindmanager.h" #include "src/utils.h" #include "dbus/dbusuiopenschedule.h" #include "dbus/dbusnotify.h" #include "csystemdtimercontrol.h" #include #include #define Millisecond 1 #define Second 1000 * Millisecond #define Minute 60 * Second #define Hour 60 * Minute static QString notifyActKeyDefault("default"); static QString notifyActKeyClose("close"); static QString notifyActKeyRemindLater("later"); static QString notifyActKeyRemindAfter15mins("later-15mins"); static QString notifyActKeyRemindAfter1hour("later-1hour"); static QString notifyActKeyRemindAfter4hours("later-4hours"); static QString notifyActKeyRemind1DayBefore("one-day-before"); static QString notifyActKeyRemindTomorrow("tomorrow"); static QString layoutHM("15:04"); JobRemindManager::JobRemindManager(QObject *parent) : QObject(parent) { m_dbusuiopen = new DbusUIOpenSchedule("com.deepin.Calendar", "/com/deepin/Calendar", QDBusConnection::sessionBus(), this); m_dbusnotify = new DBusNotify("com.deepin.dde.Notification", "/com/deepin/dde/Notification", QDBusConnection::sessionBus(), this); //若没开启定时任务则开启定时任务 CSystemdTimerControl systemdTimer; systemdTimer.startCalendarServiceSystemdTimer(); } /** * @brief CallUiOpenSchedule 激活日历前端使之跳转到日视图并弹出编辑框 * @param job 日程信息 */ void JobRemindManager::CallUiOpenSchedule(const Job &job) { QJsonObject obj = Utils::JobToObject(job); QJsonDocument doc; doc.setObject(obj); QString strjson(doc.toJson(QJsonDocument::Compact)); m_dbusuiopen->OpenSchedule(strjson); } /** * @brief RemindJob 日程提醒 * 日程相关信息获取调用dbus服务弹出提醒窗口,并将返回id作为key,job作为value * 插入m_notifymap,等待后续提醒弹窗被点击后操作 * @param job 日程信息 */ void JobRemindManager::RemindJob(const Job &job) { if (!job.Remind.isEmpty()) { int nDays = GetRemindAdvanceDays(job.Remind); if (-1 != nDays) { qint64 duration = 0; bool bmax = GetRemindLaterDuration(job.RemindLaterCount, duration); QStringList actionlist; QVariantMap hints; QString cmd = QString("dbus-send --session --print-reply --dest=com.deepin.dataserver.Calendar " "/com/deepin/dataserver/Calendar com.deepin.dataserver.Calendar.notifyMsgHanding int64:%1 int64:%2 ") .arg(job.ID) .arg(job.RecurID); auto argMake = [&](int operationNum, const QString &text, const QString &transText) { actionlist << text << transText; hints.insert("x-deepin-action-" + text, QString("/bin/bash,-c,%1 int32:%2").arg(cmd).arg(operationNum)); }; QDateTime tm = QDateTime::currentDateTime(); if (tm < job.Start) { //如果提醒规则大于3天且是第二次提醒 if (nDays >= 3 && job.RemindLaterCount == 1) { //default对应的是默认操作,也就是在点击空白区域会出发的操作 argMake(1, notifyActKeyDefault, ""); argMake(5, notifyActKeyClose, tr("Close", "button")); //当前时间与开始时间间隔大于1天 if (tm < job.Start.addDays(-1)) argMake(4, notifyActKeyRemind1DayBefore, tr("One day before start")); } else if ((nDays == 1 || nDays == 2) && bmax) { argMake(1, notifyActKeyDefault, ""); argMake(5, notifyActKeyClose, tr("Close", "button")); argMake(3, notifyActKeyRemindTomorrow, tr("Remind me tomorrow")); } else { argMake(1, notifyActKeyDefault, ""); argMake(5, notifyActKeyClose, tr("Close", "button")); argMake(2, notifyActKeyRemindLater, tr("Remind me later")); //后面的actions会在拉列表中显示 argMake(21, notifyActKeyRemindAfter15mins, tr("15 mins later")); argMake(22, notifyActKeyRemindAfter1hour, tr("1 hour later")); argMake(23, notifyActKeyRemindAfter4hours, tr("4 hours later")); argMake(3, notifyActKeyRemindTomorrow, tr("Tomorrow")); } } else { argMake(1, notifyActKeyDefault, ""); argMake(5, notifyActKeyClose, tr("Close", "button")); } QString title(tr("Schedule Reminder")); QString body = GetRemindBody(job, QDateTime::currentDateTime()); QString appicon("dde-calendar"); QString appname("dde-calendar"); quint32 replaces_id = 0; qint32 timeout = 0; QList argumentList; argumentList << appname << replaces_id << appicon << title << body << actionlist << hints << timeout; qDebug() << __FUNCTION__ << QString("remind now: %1, title:" " %2, body: %3") .arg(QDateTime::currentDateTime().toString()) .arg(title) .arg(body); int notifyid = m_dbusnotify->Notify(argumentList); //将获取到的通知弹框id保存 emit saveNotifyID(job, notifyid); } else { qDebug() << __FUNCTION__ << QString("remind job failed id=%1").arg(job.ID); } } } //通知提示框交互处理 void JobRemindManager::notifyMsgHanding(const Job &job, const int operationNum) { switch (operationNum) { case 1: //打开日历 CallUiOpenSchedule(job); break; case 2://稍后提醒 case 21://15min后提醒 case 22://一个小时后提醒 case 23://四个小时后提醒 case 3://明天提醒 case 4://提前一天提醒 RemindJobLater(job, operationNum); break; default: break; } } void JobRemindManager::closeNotification(quint32 notifyID) { m_dbusnotify->closeNotification(notifyID); } /** * @brief GetRemindAdvanceDays 根据提醒规则获取提前提醒天数 * @param remind 提醒规则 * @return 返回天数值 */ int JobRemindManager::GetRemindAdvanceDays(const QString &remind) { int nDays = 0, min = 0; QRegExp reg("\\d;\\d\\d:\\d\\d"); // QRegExp reg("\\d;\\d+?:\\d+?"); if (reg.exactMatch(remind)) { int hour; int ret = sscanf(remind.toStdString().c_str(), "%d;%d:%d", &nDays, &hour, &min); if (-1 == ret) { nDays = -1; } } else { bool bok = false; min = remind.toInt(&bok); if (bok) { nDays = int(float(min) / float(24 * 60)); } else { nDays = -1; } } return nDays; } /** * @brief GetRemindLaterDuration 根据提醒次数获取下一次提醒距现在的时间间隔 * @param count 该日程已经提醒的次数 * @param duration 下一次提醒距离现在的时间间隔单位毫秒 * @return bool 是否超过一小时 */ bool JobRemindManager::GetRemindLaterDuration(int count, qint64 &duration) { bool bmax = false; duration = (10 + ((count - 1) * 5)) * Minute; //下一次提醒距离现在的时间间隔,单位毫秒 if (duration >= Hour) { bmax = true; duration = Hour; } return bmax; } /** * @brief GetRemindBody 获取日程提醒内容 * @param job 日程信息结构体 * @param tm 查询时间 * @return QString 提醒内容 */ QString JobRemindManager::GetRemindBody(const Job &job, const QDateTime &tm) { QString msgStart; QString msgEnd; msgStart = GetBodyTimePart(tm, job.Start, job.AllDay, true); msgEnd = GetBodyTimePart(tm, job.End, job.AllDay, false); quint32 startdayofyear = static_cast(job.Start.date().dayOfYear()); quint32 enddayofyear = static_cast(job.End.date().dayOfYear()); QString prefix; if (job.AllDay) { //全天日程 if (startdayofyear == enddayofyear) { //非跨天日程,只展示开始时间 prefix = msgStart; } else { //跨天日程,展示整个日程的时间 prefix = QString(tr("%1 to %2")).arg(msgStart).arg(msgEnd); } } else { //非全天日程 if (startdayofyear == enddayofyear) { //非跨天日程,GetBodyTimePart已经返回了日程的日期,即date,所以,这里只需要日程的结束时间,即time msgEnd = job.End.time().toString("HH:mm"); } //展示日程的开始结束时间 prefix = QString(tr("%1 to %2")).arg(msgStart).arg(msgEnd); } //日程时间+title QString strBody = QString("%1 %2").arg(prefix).arg(job.Title); return strBody; } /** * @brief RemindJobLater 稍后提醒 * @param job 日程信息结构体 */ void JobRemindManager::RemindJobLater(const Job &job, const int operationNum) { CSystemdTimerControl systemdTimerControl; SystemDInfo info; info.jobID = job.ID; //如果是稍后提醒则设置对应的重复次数 if (operationNum == 2) { info.laterCount = job.RemindLaterCount; } else { //如果不是稍后提醒,因为次数没有增加所以停止任务的时候需要加一以保证能够停止上次的任务 info.laterCount = job.RemindLaterCount + 1; } info.triggerTimer = job.RemidTime; info.recurID = job.RecurID; //停止相应的任务 systemdTimerControl.stopSystemdTimerByJobInfo(info); if (operationNum != 2) { //如果不是稍后提醒,还原成原来的提醒次数 info.laterCount--; } QVector infoVector; infoVector.append(info); //开启新任务 systemdTimerControl.buildingConfiggure(infoVector); } QString JobRemindManager::GetBodyTimePart(const QDateTime &nowtime, const QDateTime &jobtime, bool allday, bool isstart) { Q_UNUSED(isstart); //ToDo 需确认规则,需根据isstart确认是否为开始时间单独处理 QString strmsg; qint64 diff = nowtime.daysTo(jobtime); //jobtime只可能大于等于当前remind任务执行的当前时间 if (allday) { //全天日程,只展示日期,即date //日程开始时间距离现在超过两天 strmsg.append(jobtime.date().toString(Qt::LocalDate)); if (diff == 0) { //日程开始时间是今天 strmsg = tr("Today"); } else if (diff == 1) { //日程开始时间是明天 strmsg = tr("Tomorrow"); } } else { //非全天日程,展示日期和时间,即date time //日程开始时间距离现在超过两天 strmsg.append(QString(" %1").arg(jobtime.toString("yyyy/MM/dd HH:mm"))); if (diff == 0) { //日程开始时间是今天, strmsg = tr("Today") + " " + jobtime.time().toString("HH:mm"); } else if (diff == 1) { //日程开始时间是明天 strmsg = tr("Tomorrow") + " " + jobtime.time().toString("HH:mm"); } } return strmsg; } /** * @brief UpdateRemindJobs 提醒日程更新槽 * @param jobs 待提醒日程集合 */ void JobRemindManager::UpdateRemindJobs(const QList &jobs) { CSystemdTimerControl systemdTimerControl; //清空日程提醒 systemdTimerControl.stopAllRemindSystemdTimer(); systemdTimerControl.removeRemindFile(); QVector infoVector{}; foreach (auto job, jobs) { SystemDInfo info; info.jobID = job.ID; info.laterCount = job.RemindLaterCount; info.triggerTimer = job.RemidTime; info.recurID = job.RecurID; infoVector.append(info); } systemdTimerControl.buildingConfiggure(infoVector); } //Job被改变删除稍后提醒队列里对应id的Job void JobRemindManager::NotifyJobsChanged(const QList &jobs) { if (jobs.size() == 0) return; CSystemdTimerControl systemdTimerControl; QVector infoVector{}; foreach (auto job, jobs) { SystemDInfo info; info.jobID = job.ID; info.laterCount = job.RemindLaterCount; info.triggerTimer = job.RemidTime; infoVector.append(info); } systemdTimerControl.stopSystemdTimerByJobInfos(infoVector); } dde-calendar-5.9.1/calendar-service/src/jobremindmanager.h000066400000000000000000000051301423264401600235050ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 JOBREMINDMANAGER_H #define JOBREMINDMANAGER_H #include "src/commondatastruct.h" #include #include class QTimer; class DbusUIOpenSchedule; class DBusNotify; class JobRemindManager : public QObject { Q_OBJECT public: explicit JobRemindManager(QObject *parent = nullptr); private: void CallUiOpenSchedule(const Job &job); int GetRemindAdvanceDays(const QString &remind); bool GetRemindLaterDuration(int count, qint64 &duration); QString GetRemindBody(const Job &job, const QDateTime &tm); void RemindJobLater(const Job &job, const int operationNum); QString GetBodyTimePart(const QDateTime &nowtime, const QDateTime &jobtime, bool allday, bool isstart); signals: void ModifyJobRemind(const Job &job, const QString &remind); void saveNotifyID(const Job &job, int notifyid); public slots: void UpdateRemindJobs(const QList &jobs); void NotifyJobsChanged(const QList &jobs); void RemindJob(const Job &job); /** * @brief notifyMsgHanding 通知提示框交互处理 * @param job 日程信息 * @param operationNum 操作编号 * 1:打开日历, * 2:稍后提醒 21:15min后提醒 22:一个小时后提醒 23:四个小时后提醒 * 3:明天提醒 4: 提前1天提醒 */ void notifyMsgHanding(const Job &job, const int operationNum); /** * @brief closeNotification 关闭桌面顶部通知 * @param notifyID 通知ID */ void closeNotification(quint32 notifyID); private: DbusUIOpenSchedule *m_dbusuiopen; //打开日历前端dbus操作相关 DBusNotify *m_dbusnotify; //日程提醒dbus操作相关 }; #endif // JOBREMINDMANAGER_H dde-calendar-5.9.1/calendar-service/src/lunarandfestival/000077500000000000000000000000001423264401600233735ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/src/lunarandfestival/celestialbodies.cpp000066400000000000000000005044561423264401600272500ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "celestialbodies.h" double GetEarthL0(double t) { double result = 0.0; result += 1.75347045673; result += 0.03341656456 * qCos(4.66925680417 + 6283.0758499914 * t); result += 0.00034894275 * qCos(4.62610241759 + 12566.1516999828 * t); result += 3.417571e-05 * qCos(2.82886579606 + 3.523118349 * t); result += 3.497056e-05 * qCos(2.74411800971 + 5753.3848848968 * t); result += 3.135896e-05 * qCos(3.62767041758 + 77713.7714681205 * t); result += 2.676218e-05 * qCos(4.41808351397 + 7860.4193924392 * t); result += 2.342687e-05 * qCos(6.13516237631 + 3930.2096962196 * t); result += 1.273166e-05 * qCos(2.03709655772 + 529.6909650946 * t); result += 1.324292e-05 * qCos(0.74246356352 + 11506.7697697936 * t); result += 9.01855e-06 * qCos(2.04505443513 + 26.2983197998 * t); result += 1.199167e-05 * qCos(1.10962944315 + 1577.3435424478 * t); result += 8.57223e-06 * qCos(3.50849156957 + 398.1490034082 * t); result += 7.79786e-06 * qCos(1.17882652114 + 5223.6939198022 * t); result += 9.9025e-06 * qCos(5.23268129594 + 5884.9268465832 * t); result += 7.53141e-06 * qCos(2.53339053818 + 5507.5532386674 * t); result += 5.05264e-06 * qCos(4.58292563052 + 18849.2275499742 * t); result += 4.92379e-06 * qCos(4.20506639861 + 775.522611324 * t); result += 3.56655e-06 * qCos(2.91954116867 + 0.0673103028 * t); result += 2.84125e-06 * qCos(1.89869034186 + 796.2980068164 * t); result += 2.4281e-06 * qCos(0.34481140906 + 5486.777843175 * t); result += 3.17087e-06 * qCos(5.84901952218 + 11790.6290886588 * t); result += 2.71039e-06 * qCos(0.31488607649 + 10977.078804699 * t); result += 2.0616e-06 * qCos(4.80646606059 + 2544.3144198834 * t); result += 2.05385e-06 * qCos(1.86947813692 + 5573.1428014331 * t); result += 2.02261e-06 * qCos(2.45767795458 + 6069.7767545534 * t); result += 1.26184e-06 * qCos(1.0830263021 + 20.7753954924 * t); result += 1.55516e-06 * qCos(0.83306073807 + 213.299095438 * t); result += 1.15132e-06 * qCos(0.64544911683 + 0.9803210682 * t); result += 1.02851e-06 * qCos(0.63599846727 + 4694.0029547076 * t); result += 1.01724e-06 * qCos(4.26679821365 + 7.1135470008 * t); result += 9.9206e-07 * qCos(6.20992940258 + 2146.1654164752 * t); result += 1.32212e-06 * qCos(3.41118275555 + 2942.4634232916 * t); result += 9.7607e-07 * qCos(0.6810127227 + 155.4203994342 * t); result += 8.5128e-07 * qCos(1.29870743025 + 6275.9623029906 * t); result += 7.4651e-07 * qCos(1.75508916159 + 5088.6288397668 * t); result += 1.01895e-06 * qCos(0.97569221824 + 15720.8387848784 * t); result += 8.4711e-07 * qCos(3.67080093025 + 71430.6956181291 * t); result += 7.3547e-07 * qCos(4.67926565481 + 801.8209311238 * t); result += 7.3874e-07 * qCos(3.50319443167 + 3154.6870848956 * t); result += 7.8756e-07 * qCos(3.03698313141 + 12036.4607348882 * t); result += 7.9637e-07 * qCos(1.807913307 + 17260.1546546904 * t); result += 8.5803e-07 * qCos(5.98322631256 + 161000.685737674 * t); result += 5.6963e-07 * qCos(2.78430398043 + 6286.5989683404 * t); result += 6.1148e-07 * qCos(1.81839811024 + 7084.8967811152 * t); result += 6.9627e-07 * qCos(0.83297596966 + 9437.762934887 * t); result += 5.6116e-07 * qCos(4.38694880779 + 14143.4952424306 * t); result += 6.2449e-07 * qCos(3.97763880587 + 8827.3902698748 * t); result += 5.1145e-07 * qCos(0.28306864501 + 5856.4776591154 * t); result += 5.5577e-07 * qCos(3.47006009062 + 6279.5527316424 * t); result += 4.1036e-07 * qCos(5.36817351402 + 8429.2412664666 * t); result += 5.1605e-07 * qCos(1.33282746983 + 1748.016413067 * t); result += 5.1992e-07 * qCos(0.18914945834 + 12139.5535091068 * t); result += 4.9e-07 * qCos(0.48735065033 + 1194.4470102246 * t); result += 3.92e-07 * qCos(6.16832995016 + 10447.3878396044 * t); result += 3.5566e-07 * qCos(1.77597314691 + 6812.766815086 * t); result += 3.677e-07 * qCos(6.04133859347 + 10213.285546211 * t); result += 3.6596e-07 * qCos(2.56955238628 + 1059.3819301892 * t); result += 3.3291e-07 * qCos(0.59309499459 + 17789.845619785 * t); result += 3.5954e-07 * qCos(1.70876111898 + 2352.8661537718 * t); result += 4.0938e-07 * qCos(2.39850881707 + 19651.048481098 * t); result += 3.0047e-07 * qCos(2.73975123935 + 1349.8674096588 * t); result += 3.0412e-07 * qCos(0.44294464135 + 83996.8473181119 * t); result += 2.3663e-07 * qCos(0.48473567763 + 8031.0922630584 * t); result += 2.3574e-07 * qCos(2.06527720049 + 3340.6124266998 * t); result += 2.1089e-07 * qCos(4.14825464101 + 951.7184062506 * t); result += 2.4738e-07 * qCos(0.21484762138 + 3.5904286518 * t); result += 2.5352e-07 * qCos(3.16470953405 + 4690.4798363586 * t); result += 2.282e-07 * qCos(5.22197888032 + 4705.7323075436 * t); result += 2.1419e-07 * qCos(1.42563735525 + 16730.4636895958 * t); result += 2.1891e-07 * qCos(5.55594302562 + 553.5694028424 * t); result += 1.7481e-07 * qCos(4.56052900359 + 135.0650800354 * t); result += 1.9925e-07 * qCos(5.22208471269 + 12168.0026965746 * t); result += 1.986e-07 * qCos(5.77470167653 + 6309.3741697912 * t); result += 2.03e-07 * qCos(0.37133792946 + 283.8593188652 * t); result += 1.4421e-07 * qCos(4.19315332546 + 242.728603974 * t); result += 1.6225e-07 * qCos(5.98837722564 + 11769.8536931664 * t); result += 1.5077e-07 * qCos(4.19567181073 + 6256.7775301916 * t); result += 1.9124e-07 * qCos(3.82219996949 + 23581.2581773176 * t); result += 1.8888e-07 * qCos(5.38626880969 + 149854.400134808 * t); result += 1.4346e-07 * qCos(3.72355084422 + 38.0276726358 * t); result += 1.7898e-07 * qCos(2.21490735647 + 13367.9726311066 * t); result += 1.2054e-07 * qCos(2.62229588349 + 955.5997416086 * t); result += 1.1287e-07 * qCos(0.17739328092 + 4164.311989613 * t); result += 1.3971e-07 * qCos(4.40138139996 + 6681.2248533996 * t); result += 1.3621e-07 * qCos(1.88934471407 + 7632.9432596502 * t); result += 1.2503e-07 * qCos(1.13052412208 + 5.5229243074 * t); result += 1.0498e-07 * qCos(5.35909518669 + 1592.5960136328 * t); result += 9.803e-08 * qCos(0.99947478995 + 11371.7046897582 * t); result += 9.22e-08 * qCos(4.57138609781 + 4292.3308329504 * t); result += 1.0327e-07 * qCos(6.19982566125 + 6438.4962494256 * t); result += 1.2003e-07 * qCos(1.003514567 + 632.7837393132 * t); result += 1.0827e-07 * qCos(0.32734520222 + 103.0927742186 * t); result += 8.356e-08 * qCos(4.53902685948 + 25132.3033999656 * t); result += 1.0005e-07 * qCos(6.0291496328 + 5746.271337896 * t); result += 8.409e-08 * qCos(3.29946744189 + 7234.794256242 * t); result += 8.006e-08 * qCos(5.82145271907 + 28.4491874678 * t); result += 1.0523e-07 * qCos(0.93871805506 + 11926.2544136688 * t); result += 7.686e-08 * qCos(3.12142363172 + 7238.6755916 * t); result += 9.378e-08 * qCos(2.62414241032 + 5760.4984318976 * t); result += 8.127e-08 * qCos(6.11228001785 + 4732.0306273434 * t); result += 9.232e-08 * qCos(0.48343968736 + 522.5774180938 * t); result += 9.802e-08 * qCos(5.24413991147 + 27511.4678735372 * t); result += 7.871e-08 * qCos(0.99590177926 + 5643.1785636774 * t); result += 8.123e-08 * qCos(6.2705301365 + 426.598190876 * t); result += 9.048e-08 * qCos(5.33686335897 + 6386.16862421 * t); result += 8.62e-08 * qCos(4.16538210888 + 7058.5984613154 * t); result += 6.297e-08 * qCos(4.71724819317 + 6836.6452528338 * t); result += 7.575e-08 * qCos(3.97382858911 + 11499.6562227928 * t); result += 7.756e-08 * qCos(2.95729056763 + 23013.5395395872 * t); result += 7.314e-08 * qCos(0.60652505806 + 11513.8833167944 * t); result += 5.955e-08 * qCos(2.87641047971 + 6283.14316029419 * t); result += 6.534e-08 * qCos(5.79072926033 + 18073.7049386502 * t); result += 7.188e-08 * qCos(3.99831508699 + 74.7815985673 * t); result += 7.346e-08 * qCos(4.38582365437 + 316.3918696566 * t); result += 5.413e-08 * qCos(5.39199024641 + 419.4846438752 * t); result += 5.127e-08 * qCos(2.36062848786 + 10973.55568635 * t); result += 7.056e-08 * qCos(0.32258441903 + 263.0839233728 * t); result += 6.625e-08 * qCos(3.66475158672 + 17298.1823273262 * t); result += 6.762e-08 * qCos(5.91132535899 + 90955.5516944961 * t); result += 4.938e-08 * qCos(5.73672165674 + 9917.6968745098 * t); result += 5.547e-08 * qCos(2.45152597661 + 12352.8526045448 * t); result += 5.958e-08 * qCos(3.32051344676 + 6283.0085396886 * t); result += 4.471e-08 * qCos(2.06385999536 + 7079.3738568078 * t); result += 6.153e-08 * qCos(1.45823331144 + 233141.314404362 * t); result += 4.348e-08 * qCos(4.4234217548 + 5216.5803728014 * t); result += 6.123e-08 * qCos(1.07494905258 + 19804.8272915828 * t); result += 4.488e-08 * qCos(3.6528503715 + 206.1855484372 * t); result += 4.02e-08 * qCos(0.83995823171 + 20.3553193988 * t); result += 5.188e-08 * qCos(4.06503864016 + 6208.2942514241 * t); result += 5.307e-08 * qCos(0.38217636096 + 31441.6775697568 * t); result += 3.785e-08 * qCos(2.34369213733 + 3.881335358 * t); result += 4.497e-08 * qCos(3.27230796845 + 11015.1064773348 * t); result += 4.132e-08 * qCos(0.92128915753 + 3738.761430108 * t); result += 3.521e-08 * qCos(5.97844807108 + 3894.1818295422 * t); result += 4.215e-08 * qCos(1.90601120623 + 245.8316462294 * t); result += 3.701e-08 * qCos(5.03069397926 + 536.8045120954 * t); result += 3.865e-08 * qCos(1.82634360607 + 11856.2186514245 * t); result += 3.652e-08 * qCos(1.01838584934 + 16200.7727245012 * t); result += 3.39e-08 * qCos(0.97785123922 + 8635.9420037632 * t); result += 3.737e-08 * qCos(2.95380107829 + 3128.3887650958 * t); result += 3.507e-08 * qCos(3.71291946325 + 6290.1893969922 * t); result += 3.086e-08 * qCos(3.64646921512 + 10.6366653498 * t); result += 3.397e-08 * qCos(1.10590684017 + 14712.317116458 * t); result += 3.334e-08 * qCos(0.83684924911 + 6496.3749454294 * t); result += 2.805e-08 * qCos(2.58504514144 + 14314.1681130498 * t); result += 3.65e-08 * qCos(1.08344142571 + 88860.0570709867 * t); result += 3.388e-08 * qCos(3.20185096055 + 5120.6011455836 * t); result += 3.252e-08 * qCos(3.47859752062 + 6133.5126528568 * t); result += 2.553e-08 * qCos(3.94869034189 + 1990.745017041 * t); result += 3.52e-08 * qCos(2.05559692878 + 244287.600007228 * t); result += 2.565e-08 * qCos(1.560717849 + 23543.2305046818 * t); result += 2.621e-08 * qCos(3.85639359951 + 266.6070417218 * t); result += 2.955e-08 * qCos(3.39692949667 + 9225.539273283 * t); result += 2.876e-08 * qCos(6.02635617464 + 154717.609887683 * t); result += 2.395e-08 * qCos(1.16131956403 + 10984.1923516998 * t); result += 3.161e-08 * qCos(1.32798718453 + 10873.9860304804 * t); result += 3.163e-08 * qCos(5.08946464629 + 21228.3920235458 * t); result += 2.361e-08 * qCos(4.27212906992 + 6040.3472460174 * t); result += 3.03e-08 * qCos(1.80209931347 + 35371.8872659764 * t); result += 2.343e-08 * qCos(3.576898605 + 10969.9652576982 * t); result += 2.618e-08 * qCos(2.57870156528 + 22483.8485744926 * t); result += 2.113e-08 * qCos(3.71393780256 + 65147.6197681377 * t); result += 2.019e-08 * qCos(0.81393923319 + 170.6728706192 * t); result += 2.003e-08 * qCos(0.38091017375 + 6172.869528772 * t); result += 2.506e-08 * qCos(3.74379142438 + 10575.4066829418 * t); result += 2.381e-08 * qCos(0.10581361289 + 7.046236698 * t); result += 1.949e-08 * qCos(4.86892513469 + 36.0278666774 * t); result += 2.074e-08 * qCos(4.2279477457 + 5650.2921106782 * t); result += 1.924e-08 * qCos(5.5946054986 + 6282.0955289232 * t); result += 1.949e-08 * qCos(1.07002512703 + 5230.807466803 * t); result += 1.988e-08 * qCos(5.19736046771 + 6262.300454499 * t); result += 1.887e-08 * qCos(3.74365662683 + 23.8784377478 * t); result += 1.787e-08 * qCos(1.25929682929 + 12559.038152982 * t); result += 1.883e-08 * qCos(1.90364058477 + 15.252471185 * t); result += 1.816e-08 * qCos(3.68083868442 + 15110.4661198662 * t); result += 1.701e-08 * qCos(4.4110589538 + 110.2063212194 * t); result += 1.99e-08 * qCos(3.93295788548 + 6206.8097787158 * t); result += 2.103e-08 * qCos(0.75354917468 + 13521.7514415914 * t); result += 1.774e-08 * qCos(0.48747535361 + 1551.045222648 * t); result += 1.882e-08 * qCos(0.86684493432 + 22003.9146348698 * t); result += 1.924e-08 * qCos(1.22898324132 + 709.9330485583 * t); result += 2.009e-08 * qCos(4.6285092198 + 6037.244203762 * t); result += 1.924e-08 * qCos(0.60231842508 + 6284.0561710596 * t); result += 1.596e-08 * qCos(3.98332956992 + 13916.0191096416 * t); result += 1.664e-08 * qCos(4.41939715469 + 8662.240323563 * t); result += 1.971e-08 * qCos(1.04560500503 + 18209.3302636602 * t); result += 1.942e-08 * qCos(4.31335979989 + 6244.9428143536 * t); result += 1.476e-08 * qCos(0.93271367331 + 2379.1644735716 * t); result += 1.81e-08 * qCos(0.49112137707 + 1.4844727083 * t); result += 1.346e-08 * qCos(1.51574702235 + 4136.9104335162 * t); result += 1.528e-08 * qCos(5.61835711404 + 6127.6554505572 * t); result += 1.791e-08 * qCos(3.22187270126 + 39302.096962196 * t); result += 1.747e-08 * qCos(3.05638656738 + 18319.5365848796 * t); result += 1.431e-08 * qCos(4.51153808594 + 20426.571092422 * t); result += 1.695e-08 * qCos(0.22047718414 + 25158.6017197654 * t); result += 1.242e-08 * qCos(4.46665769933 + 17256.6315363414 * t); result += 1.463e-08 * qCos(4.69242679213 + 14945.3161735544 * t); result += 1.205e-08 * qCos(1.86912144659 + 4590.910180489 * t); result += 1.192e-08 * qCos(2.74227166898 + 12569.6748183318 * t); result += 1.222e-08 * qCos(5.18120087482 + 5333.9002410216 * t); result += 1.39e-08 * qCos(5.42894648983 + 143571.324284816 * t); result += 1.473e-08 * qCos(1.70479245805 + 11712.9553182308 * t); result += 1.362e-08 * qCos(2.61069503292 + 6062.6632075526 * t); result += 1.148e-08 * qCos(6.0300180054 + 3634.6210245184 * t); result += 1.198e-08 * qCos(5.15294130422 + 10177.2576795336 * t); result += 1.266e-08 * qCos(0.11421493643 + 18422.6293590982 * t); result += 1.411e-08 * qCos(1.09908857534 + 3496.032826134 * t); result += 1.349e-08 * qCos(2.99805109633 + 17654.7805397496 * t); result += 1.253e-08 * qCos(2.79850152848 + 167283.761587666 * t); result += 1.311e-08 * qCos(1.60942984879 + 5481.2549188676 * t); result += 1.079e-08 * qCos(6.20304501787 + 3.2863574178 * t); result += 1.181e-08 * qCos(1.20653776978 + 131.5419616864 * t); result += 1.254e-08 * qCos(5.45103277798 + 6076.8903015542 * t); result += 1.035e-08 * qCos(2.32142722747 + 7342.4577801806 * t); result += 1.117e-08 * qCos(0.38838354256 + 949.1756089698 * t); result += 9.66e-09 * qCos(3.18341890851 + 11087.2851259184 * t); result += 1.171e-08 * qCos(3.39635049962 + 12562.6285816338 * t); result += 1.121e-08 * qCos(0.72627490378 + 220.4126424388 * t); result += 1.024e-08 * qCos(2.19378315386 + 11403.676995575 * t); result += 8.88e-09 * qCos(3.91173199285 + 4686.8894077068 * t); result += 9.1e-09 * qCos(1.98802695087 + 735.8765135318 * t); result += 8.3e-09 * qCos(0.48984915507 + 24072.9214697764 * t); result += 1.096e-08 * qCos(6.17377835617 + 5436.9930152402 * t); result += 9.08e-09 * qCos(0.44959639433 + 7477.522860216 * t); result += 9.74e-09 * qCos(1.52996238356 + 9623.6882766912 * t); result += 8.4e-09 * qCos(1.79543266333 + 5429.8794682394 * t); result += 7.78e-09 * qCos(6.17699177946 + 38.1330356378 * t); result += 7.76e-09 * qCos(4.09855402433 + 14.2270940016 * t); result += 1.068e-08 * qCos(4.64200173735 + 43232.3066584156 * t); result += 9.54e-09 * qCos(1.49988435748 + 1162.4747044078 * t); result += 9.07e-09 * qCos(0.86986870809 + 10344.2950653858 * t); result += 9.31e-09 * qCos(4.06044689031 + 28766.924424484 * t); result += 7.39e-09 * qCos(5.04368197372 + 639.897286314 * t); result += 9.37e-09 * qCos(3.4688469896 + 1589.0728952838 * t); result += 7.63e-09 * qCos(5.86304932998 + 16858.4825329332 * t); result += 9.53e-09 * qCos(4.20801492835 + 11190.377900137 * t); result += 7.08e-09 * qCos(1.7289998894 + 13095.8426650774 * t); result += 9.69e-09 * qCos(1.64439522215 + 29088.811415985 * t); result += 7.17e-09 * qCos(0.16688678895 + 11.729352836 * t); result += 9.62e-09 * qCos(3.53092337542 + 12416.5885028482 * t); result += 7.47e-09 * qCos(5.77866940346 + 12592.4500197826 * t); result += 6.72e-09 * qCos(1.91095796194 + 3.9321532631 * t); result += 6.71e-09 * qCos(5.46240843677 + 18052.9295431578 * t); result += 6.75e-09 * qCos(6.28311558823 + 4535.0594369244 * t); result += 6.84e-09 * qCos(0.3997501208 + 5849.3641121146 * t); result += 7.99e-09 * qCos(0.29851185294 + 12132.439962106 * t); result += 7.58e-09 * qCos(0.96370823331 + 1052.2683831884 * t); result += 7.82e-09 * qCos(5.33878339919 + 13517.8701062334 * t); result += 7.3e-09 * qCos(1.70106160291 + 17267.2682016912 * t); result += 7.49e-09 * qCos(2.59599901875 + 11609.8625440122 * t); result += 7.34e-09 * qCos(2.78417782952 + 640.8776073822 * t); result += 6.88e-09 * qCos(5.15048287468 + 16496.3613962024 * t); result += 7.7e-09 * qCos(1.62469589333 + 4701.1165017084 * t); result += 6.33e-09 * qCos(2.20587893893 + 25934.1243310894 * t); result += 7.6e-09 * qCos(4.21317219403 + 377.3736079158 * t); result += 5.84e-09 * qCos(2.13420121623 + 10557.5941608238 * t); result += 5.74e-09 * qCos(0.24250054587 + 9779.1086761254 * t); result += 5.73e-09 * qCos(3.16435264609 + 533.2140834436 * t); result += 6.85e-09 * qCos(3.19344289472 + 12146.6670561076 * t); result += 6.75e-09 * qCos(0.96179233959 + 10454.5013866052 * t); result += 6.48e-09 * qCos(1.46327342555 + 6268.8487559898 * t); result += 5.89e-09 * qCos(2.50543543638 + 3097.88382272579 * t); result += 5.51e-09 * qCos(5.28099026956 + 9388.0059094152 * t); result += 6.96e-09 * qCos(3.65342150016 + 4804.209275927 * t); result += 6.69e-09 * qCos(2.51030077026 + 2388.8940204492 * t); result += 5.5e-09 * qCos(0.06883864342 + 20199.094959633 * t); result += 6.29e-09 * qCos(4.13350995675 + 45892.730433157 * t); result += 6.78e-09 * qCos(6.09190163533 + 135.62532501 * t); result += 5.93e-09 * qCos(1.50136257618 + 226858.23855437 * t); result += 5.42e-09 * qCos(3.58573645173 + 6148.010769956 * t); result += 6.82e-09 * qCos(5.02203067788 + 17253.0411076896 * t); result += 5.65e-09 * qCos(4.2930923861 + 11933.3679606696 * t); result += 4.86e-09 * qCos(0.77746204893 + 27.4015560968 * t); result += 5.03e-09 * qCos(0.58963565969 + 15671.0817594066 * t); result += 6.16e-09 * qCos(4.06539884128 + 227.476132789 * t); result += 5.83e-09 * qCos(6.12695541996 + 18875.525869774 * t); result += 5.37e-09 * qCos(2.1505644098 + 21954.157609398 * t); result += 6.69e-09 * qCos(6.06986269566 + 47162.5163546352 * t); result += 4.75e-09 * qCos(0.4034384211 + 6915.8595893046 * t); result += 5.4e-09 * qCos(2.83444222174 + 5326.7866940208 * t); result += 5.3e-09 * qCos(5.26359885263 + 10988.808157535 * t); result += 5.82e-09 * qCos(3.24533095664 + 153.7788104848 * t); result += 6.41e-09 * qCos(3.24711791371 + 2107.0345075424 * t); result += 6.21e-09 * qCos(3.09698523779 + 33019.0211122046 * t); result += 4.66e-09 * qCos(3.14982372198 + 10440.2742926036 * t); result += 4.66e-09 * qCos(0.90708835657 + 5966.6839803348 * t); result += 5.28e-09 * qCos(0.8192645447 + 813.5502839598 * t); result += 6.03e-09 * qCos(3.81378921927 + 316428.228673915 * t); result += 5.59e-09 * qCos(1.81894804124 + 17996.0311682222 * t); result += 4.37e-09 * qCos(2.28625594435 + 6303.8512454838 * t); result += 5.18e-09 * qCos(4.86069178322 + 20597.2439630412 * t); result += 4.24e-09 * qCos(6.23520018693 + 6489.2613984286 * t); result += 5.18e-09 * qCos(6.17617826756 + 0.2438174835 * t); result += 4.04e-09 * qCos(5.72804304258 + 5642.1982426092 * t); result += 4.58e-09 * qCos(1.34117773915 + 6287.0080032545 * t); result += 5.48e-09 * qCos(5.6845445832 + 155427.542936241 * t); result += 5.47e-09 * qCos(1.03391472061 + 3646.3503773544 * t); result += 4.28e-09 * qCos(4.69800981138 + 846.0828347512 * t); result += 4.13e-09 * qCos(6.02520699406 + 6279.4854213396 * t); result += 5.34e-09 * qCos(3.03030638223 + 66567.4858652543 * t); result += 3.83e-09 * qCos(1.49056949125 + 19800.9459562248 * t); result += 4.1e-09 * qCos(5.28319622279 + 18451.078546566 * t); result += 3.52e-09 * qCos(4.68891600359 + 4907.3020501456 * t); result += 4.8e-09 * qCos(5.36572651091 + 348.924420448 * t); result += 3.44e-09 * qCos(5.89157452896 + 6546.1597733642 * t); result += 3.4e-09 * qCos(0.3755742644 + 13119.7211028252 * t); result += 4.34e-09 * qCos(4.98417785901 + 6702.5604938666 * t); result += 3.32e-09 * qCos(2.68902519126 + 29296.6153895786 * t); result += 4.48e-09 * qCos(2.16478480251 + 5905.7022420756 * t); result += 3.44e-09 * qCos(2.06546633735 + 49.7570254718 * t); result += 3.15e-09 * qCos(1.24023811803 + 4061.2192153944 * t); result += 3.24e-09 * qCos(2.30897526929 + 5017.508371365 * t); result += 4.13e-09 * qCos(0.17171692962 + 6286.6662786432 * t); result += 4.31e-09 * qCos(3.86601101393 + 12489.8856287072 * t); result += 3.49e-09 * qCos(4.55372342974 + 4933.2084403326 * t); result += 3.23e-09 * qCos(0.41971136084 + 10770.8932562618 * t); result += 3.41e-09 * qCos(2.68612860807 + 11.0457002639 * t); result += 3.16e-09 * qCos(3.52936906658 + 17782.7320727842 * t); result += 3.15e-09 * qCos(5.63357264999 + 568.8218740274 * t); result += 3.4e-09 * qCos(3.83571212349 + 10660.6869350424 * t); result += 2.97e-09 * qCos(0.62691416712 + 20995.3929664494 * t); result += 4.05e-09 * qCos(1.00085779471 + 16460.333529525 * t); result += 4.14e-09 * qCos(1.21998752076 + 51092.7260508548 * t); result += 3.36e-09 * qCos(4.71465945226 + 6179.9830757728 * t); result += 3.61e-09 * qCos(3.71227508354 + 28237.2334593894 * t); result += 3.85e-09 * qCos(6.21925225757 + 24356.7807886416 * t); result += 3.27e-09 * qCos(1.05606504715 + 11919.140866668 * t); result += 3.27e-09 * qCos(6.14222420989 + 6254.6266625236 * t); result += 2.68e-09 * qCos(2.47224339737 + 664.75604513 * t); result += 2.69e-09 * qCos(1.86207884109 + 23141.5583829246 * t); result += 3.45e-09 * qCos(0.93461290184 + 6058.7310542895 * t); result += 2.96e-09 * qCos(4.5168755718 + 6418.1409300268 * t); result += 3.53e-09 * qCos(4.50033653082 + 36949.2308084242 * t); result += 2.6e-09 * qCos(4.04963546305 + 6525.8044539654 * t); result += 2.98e-09 * qCos(2.20046722622 + 156137.475984799 * t); result += 2.53e-09 * qCos(3.49900838384 + 29864.334027309 * t); result += 2.54e-09 * qCos(2.44901693835 + 5331.3574437408 * t); result += 2.96e-09 * qCos(0.84347588787 + 5729.506447149 * t); result += 2.98e-09 * qCos(1.29194706125 + 22805.7355659936 * t); result += 2.41e-09 * qCos(2.00721280805 + 16737.5772365966 * t); result += 3.11e-09 * qCos(1.23668016334 + 6281.5913772831 * t); result += 2.4e-09 * qCos(2.51650377121 + 6245.0481773556 * t); result += 3.32e-09 * qCos(3.55576945724 + 7668.6374249425 * t); result += 2.64e-09 * qCos(4.44052061202 + 12964.300703391 * t); result += 2.57e-09 * qCos(1.79654471948 + 11080.1715789176 * t); result += 2.6e-09 * qCos(3.3307759842 + 5888.4499649322 * t); result += 2.85e-09 * qCos(0.3088636143 + 11823.1616394502 * t); result += 2.9e-09 * qCos(5.70141882483 + 77.673770428 * t); result += 2.55e-09 * qCos(4.0093966444 + 5881.4037282342 * t); result += 2.53e-09 * qCos(4.73318493678 + 16723.350142595 * t); result += 2.28e-09 * qCos(0.95333661324 + 5540.0857894588 * t); result += 3.19e-09 * qCos(1.38633229189 + 163096.180361183 * t); result += 2.24e-09 * qCos(1.65156322696 + 10027.9031957292 * t); result += 2.26e-09 * qCos(0.34106460604 + 17796.9591667858 * t); result += 2.36e-09 * qCos(4.19817431922 + 19.66976089979 * t); result += 2.8e-09 * qCos(4.1408026897 + 12539.853380183 * t); result += 2.75e-09 * qCos(5.50306930248 + 32.5325507914 * t); result += 2.23e-09 * qCos(5.23334210294 + 56.8983749356 * t); result += 2.17e-09 * qCos(6.08587881787 + 6805.6532680852 * t); result += 2.8e-09 * qCos(4.52472044653 + 6016.4688082696 * t); result += 2.27e-09 * qCos(5.06509843737 + 6277.552925684 * t); result += 2.26e-09 * qCos(5.17755154305 + 11720.0688652316 * t); result += 2.45e-09 * qCos(3.96486270306 + 22.7752014508 * t); result += 2.2e-09 * qCos(4.7207808197 + 6.62855890001 * t); result += 2.07e-09 * qCos(5.71701403951 + 41.5507909848 * t); result += 2.04e-09 * qCos(3.9122741125 + 2699.7348193176 * t); result += 2.09e-09 * qCos(0.86881969011 + 6321.1035226272 * t); result += 2e-09 * qCos(2.11984445273 + 4274.5183108324 * t); result += 2e-09 * qCos(5.39839888163 + 6019.9919266186 * t); result += 2.09e-09 * qCos(5.67606291663 + 11293.4706743556 * t); result += 2.52e-09 * qCos(1.64965729351 + 9380.9596727172 * t); result += 2.75e-09 * qCos(5.04826903506 + 73.297125859 * t); result += 2.08e-09 * qCos(1.88207277133 + 11300.5842213564 * t); result += 2.72e-09 * qCos(0.74640926842 + 1975.492545856 * t); result += 1.99e-09 * qCos(3.30836672397 + 22743.4093795164 * t); result += 2.69e-09 * qCos(4.48560812155 + 64471.9912417449 * t); result += 1.92e-09 * qCos(2.17464236325 + 5863.5912061162 * t); result += 2.28e-09 * qCos(5.85373115869 + 128.0188433374 * t); result += 2.61e-09 * qCos(2.64321183295 + 55022.9357470744 * t); result += 2.2e-09 * qCos(5.75012110079 + 29.429508536 * t); result += 1.87e-09 * qCos(4.03230554718 + 467.9649903544 * t); result += 2e-09 * qCos(5.60556112058 + 1066.49547719 * t); result += 2.31e-09 * qCos(1.09802712785 + 12341.8069042809 * t); result += 1.99e-09 * qCos(0.295006252 + 149.5631971346 * t); result += 2.49e-09 * qCos(5.10473210814 + 7875.6718636242 * t); result += 2.08e-09 * qCos(0.93013835019 + 14919.0178537546 * t); result += 1.79e-09 * qCos(0.87104393079 + 12721.572099417 * t); result += 2.03e-09 * qCos(1.56920753653 + 28286.9904848612 * t); result += 1.79e-09 * qCos(2.47036386443 + 16062.1845261168 * t); result += 1.98e-09 * qCos(3.54061588502 + 30.914125635 * t); result += 1.71e-09 * qCos(3.45356518113 + 5327.4761083828 * t); result += 1.83e-09 * qCos(0.72325421604 + 6272.0301497275 * t); result += 2.16e-09 * qCos(2.97174580686 + 19402.7969528166 * t); result += 1.68e-09 * qCos(2.51550550242 + 23937.856389741 * t); result += 1.95e-09 * qCos(0.09045393425 + 156.4007205024 * t); result += 1.79e-09 * qCos(4.4947179809 + 31415.379249957 * t); result += 2.16e-09 * qCos(0.42177594328 + 23539.7073863328 * t); result += 1.89e-09 * qCos(0.37542530191 + 9814.6041002912 * t); result += 2.18e-09 * qCos(2.36835880025 + 16627.3709153772 * t); result += 1.66e-09 * qCos(4.23182968446 + 16840.6700108152 * t); result += 2e-09 * qCos(2.02153258098 + 16097.6799502826 * t); result += 1.69e-09 * qCos(0.91318727 + 95.9792272178 * t); result += 2.11e-09 * qCos(5.73370637657 + 151.8972810852 * t); result += 2.04e-09 * qCos(0.42643085174 + 515.463871093 * t); result += 2.12e-09 * qCos(3.00233538977 + 12043.574281889 * t); result += 1.92e-09 * qCos(5.46153589821 + 6379.0550772092 * t); result += 1.65e-09 * qCos(1.38698167064 + 4171.4255366138 * t); result += 1.6e-09 * qCos(6.23798383332 + 202.2533951741 * t); result += 2.15e-09 * qCos(0.20889073407 + 5621.8429232104 * t); result += 1.81e-09 * qCos(4.12439203622 + 13341.6743113068 * t); result += 1.53e-09 * qCos(1.24460848836 + 29826.3063546732 * t); result += 1.5e-09 * qCos(3.12999753018 + 799.8211251654 * t); result += 1.75e-09 * qCos(4.55671604437 + 239424.390254353 * t); result += 1.92e-09 * qCos(1.33928820063 + 394.6258850592 * t); result += 1.49e-09 * qCos(2.65697593276 + 21.335640467 * t); result += 1.46e-09 * qCos(5.58021191726 + 412.3710968744 * t); result += 1.56e-09 * qCos(3.75650175503 + 12323.4230960088 * t); result += 1.43e-09 * qCos(3.75708566606 + 58864.5439181463 * t); result += 1.43e-09 * qCos(3.28248547724 + 29.8214381488 * t); result += 1.44e-09 * qCos(1.07862546598 + 1265.5674786264 * t); result += 1.48e-09 * qCos(0.23389236655 + 10021.8372800994 * t); result += 1.93e-09 * qCos(5.92751083086 + 40879.4405046438 * t); result += 1.4e-09 * qCos(4.97612440269 + 158.9435177832 * t); result += 1.48e-09 * qCos(2.61640453469 + 17157.0618804718 * t); result += 1.41e-09 * qCos(3.66871308723 + 26084.0218062162 * t); result += 1.47e-09 * qCos(5.09968173403 + 661.232926781 * t); result += 1.46e-09 * qCos(4.96885605695 + 57375.8019008462 * t); result += 1.42e-09 * qCos(0.78678347839 + 12779.4507954208 * t); result += 1.34e-09 * qCos(4.79432636012 + 111.1866422876 * t); result += 1.4e-09 * qCos(1.27748013377 + 107.6635239386 * t); result += 1.69e-09 * qCos(2.74893543762 + 26735.9452622132 * t); result += 1.65e-09 * qCos(3.95288000638 + 6357.8574485587 * t); result += 1.83e-09 * qCos(5.43418358741 + 369.6998159404 * t); result += 1.34e-09 * qCos(3.09132862833 + 17.812522118 * t); result += 1.32e-09 * qCos(3.05633896779 + 22490.9621214934 * t); result += 1.34e-09 * qCos(4.09472795832 + 6599.467719648 * t); result += 1.81e-09 * qCos(4.22950689891 + 966.9708774356 * t); result += 1.52e-09 * qCos(5.28885894415 + 12669.2444742014 * t); result += 1.5e-09 * qCos(5.86819430908 + 97238.6275444875 * t); result += 1.42e-09 * qCos(5.87266532526 + 22476.7350274918 * t); result += 1.45e-09 * qCos(5.07330784304 + 87.30820453981 * t); result += 1.33e-09 * qCos(5.65471067133 + 31.9723058168 * t); result += 1.24e-09 * qCos(2.83326217072 + 12566.2190102856 * t); result += 1.35e-09 * qCos(3.12861731644 + 32217.2001810808 * t); result += 1.37e-09 * qCos(0.86487461904 + 9924.8104215106 * t); result += 1.72e-09 * qCos(1.98369595114 + 174242.46596405 * t); result += 1.7e-09 * qCos(4.41115280254 + 327574.514276781 * t); result += 1.51e-09 * qCos(0.46542099527 + 39609.6545831656 * t); result += 1.48e-09 * qCos(2.13439571118 + 491.6632924588 * t); result += 1.53e-09 * qCos(3.78801830344 + 17363.247428909 * t); result += 1.65e-09 * qCos(5.31654110459 + 16943.7627850338 * t); result += 1.65e-09 * qCos(4.06747587817 + 58953.145443294 * t); result += 1.18e-09 * qCos(0.63846333239 + 6.0659156298 * t); result += 1.59e-09 * qCos(0.86086959274 + 221995.028801495 * t); result += 1.19e-09 * qCos(5.96432932413 + 1385.8952763362 * t); result += 1.14e-09 * qCos(5.16516114595 + 25685.872802808 * t); result += 1.12e-09 * qCos(3.39403722178 + 21393.5419698576 * t); result += 1.12e-09 * qCos(4.92889233335 + 56.8032621698 * t); result += 1.19e-09 * qCos(2.40637635942 + 18635.9284545362 * t); result += 1.15e-09 * qCos(0.23374479051 + 418.9243989006 * t); result += 1.22e-09 * qCos(0.93575234049 + 24492.4061136516 * t); result += 1.15e-09 * qCos(4.58880032176 + 26709.6469424134 * t); result += 1.3e-09 * qCos(4.85539251 + 22345.2603761082 * t); result += 1.4e-09 * qCos(1.09413073202 + 44809.6502008634 * t); result += 1.12e-09 * qCos(6.05401806281 + 433.7117378768 * t); result += 1.04e-09 * qCos(1.54931540602 + 127.9515330346 * t); result += 1.05e-09 * qCos(4.82620858888 + 33794.5437235286 * t); result += 1.02e-09 * qCos(4.12448497391 + 15664.0355227086 * t); result += 1.07e-09 * qCos(4.67919356465 + 77690.7595057385 * t); result += 1.18e-09 * qCos(4.5232017012 + 19004.6479494084 * t); result += 1.07e-09 * qCos(5.71774478555 + 77736.7834305025 * t); result += 1.43e-09 * qCos(1.81201813018 + 4214.0690150848 * t); result += 1.25e-09 * qCos(1.14419195615 + 625.6701923124 * t); result += 1.24e-09 * qCos(3.27736514057 + 12566.08438968 * t); result += 1.1e-09 * qCos(1.08682570828 + 2787.0430238574 * t); result += 1.05e-09 * qCos(1.78318141871 + 18139.2945014159 * t); result += 1.02e-09 * qCos(4.75119578149 + 12242.6462833254 * t); result += 1.37e-09 * qCos(1.43510636754 + 86464.6133168312 * t); result += 1.01e-09 * qCos(4.91289409429 + 401.6721217572 * t); result += 1.29e-09 * qCos(1.23567904485 + 12029.3471878874 * t); result += 1.38e-09 * qCos(2.45654707999 + 7576.560073574 * t); result += 1.03e-09 * qCos(0.40004073416 + 90279.9231681033 * t); result += 1.08e-09 * qCos(0.9898977494 + 5636.0650166766 * t); result += 1.17e-09 * qCos(5.17362872063 + 34520.3093093808 * t); result += 1e-09 * qCos(3.95534628189 + 5547.1993364596 * t); result += 9.8e-10 * qCos(1.28118280598 + 21548.9623692918 * t); result += 9.7e-10 * qCos(3.34717130592 + 16310.9790457206 * t); result += 9.8e-10 * qCos(4.37041908717 + 34513.2630726828 * t); result += 1.25e-09 * qCos(2.7216443296 + 24065.8079227756 * t); result += 1.02e-09 * qCos(0.66938025772 + 10239.5838660108 * t); result += 1.19e-09 * qCos(1.21689479331 + 1478.8665740644 * t); result += 9.4e-10 * qCos(1.99595224256 + 13362.4497067992 * t); result += 9.4e-10 * qCos(4.30965982872 + 26880.3198130326 * t); result += 9.5e-10 * qCos(2.89807657534 + 34911.412076091 * t); result += 1.06e-09 * qCos(1.0015665359 + 16522.6597160022 * t); result += 9.7e-10 * qCos(0.89642320201 + 71980.6335747312 * t); result += 1.16e-09 * qCos(4.19967201116 + 206.7007372966 * t); result += 9.9e-10 * qCos(1.37437847718 + 1039.0266107904 * t); result += 1.26e-09 * qCos(3.21642544972 + 305281.943071049 * t); result += 9.4e-10 * qCos(0.6899787606 + 7834.1210726394 * t); result += 9.4e-10 * qCos(5.58132218606 + 3104.9300594238 * t); result += 9.5e-10 * qCos(3.0382374111 + 8982.810669309 * t); result += 1.08e-09 * qCos(0.52696637156 + 276.7457718644 * t); result += 1.24e-09 * qCos(3.43899862683 + 172146.97134054 * t); result += 1.02e-09 * qCos(1.04031728553 + 95143.1329209781 * t); result += 1.04e-09 * qCos(3.39218586218 + 290.972865866 * t); result += 1.1e-09 * qCos(3.68205877433 + 22380.755800274 * t); result += 1.17e-09 * qCos(0.78475956902 + 83286.9142695536 * t); result += 8.3e-10 * qCos(0.18241793425 + 15141.390794312 * t); result += 8.9e-10 * qCos(4.45371820659 + 792.7748884674 * t); result += 8.2e-10 * qCos(4.80703651241 + 6819.8803620868 * t); result += 8.7e-10 * qCos(3.43122851097 + 27707.5424942948 * t); result += 1.01e-09 * qCos(5.32081603011 + 2301.58581590939 * t); result += 8.2e-10 * qCos(0.87060089842 + 10241.2022911672 * t); result += 8.6e-10 * qCos(4.61919461931 + 36147.4098773004 * t); result += 9.5e-10 * qCos(2.87032884659 + 23020.653086588 * t); result += 8.8e-10 * qCos(3.2113316569 + 33326.5787331742 * t); result += 8e-10 * qCos(1.84900424847 + 21424.4666443034 * t); result += 1.01e-09 * qCos(4.18796434479 + 30666.1549584328 * t); result += 1.07e-09 * qCos(5.77864921649 + 34115.1140692746 * t); result += 1.04e-09 * qCos(1.08739495962 + 6288.5987742988 * t); result += 1.1e-09 * qCos(3.32898859416 + 72140.6286666874 * t); result += 8.7e-10 * qCos(4.40657711727 + 142.1786270362 * t); result += 1.09e-09 * qCos(1.94546030825 + 24279.1070182136 * t); result += 8.7e-10 * qCos(4.32472045435 + 742.9900605326 * t); result += 1.07e-09 * qCos(4.91580912547 + 277.0349937414 * t); result += 8.8e-10 * qCos(2.10180220766 + 26482.1708096244 * t); result += 8.6e-10 * qCos(4.01887374432 + 12491.3701014155 * t); result += 1.06e-09 * qCos(5.49092372854 + 62883.3551395136 * t); result += 8e-10 * qCos(6.19781316983 + 6709.6740408674 * t); result += 8.8e-10 * qCos(2.09872810657 + 238004.524157236 * t); result += 8.3e-10 * qCos(4.90662164029 + 51.28033786241 * t); result += 9.5e-10 * qCos(4.13387406591 + 18216.443810661 * t); result += 7.8e-10 * qCos(6.0694939168 + 148434.534037691 * t); result += 7.9e-10 * qCos(3.03048221644 + 838.9692877504 * t); result += 7.4e-10 * qCos(5.49813051211 + 29026.4852295078 * t); result += 7.3e-10 * qCos(3.05008665738 + 567.7186377304 * t); result += 8.4e-10 * qCos(0.46604373274 + 45.1412196366 * t); result += 9.3e-10 * qCos(2.52267536308 + 48739.859897083 * t); result += 7.6e-10 * qCos(1.76418124905 + 41654.9631159678 * t); result += 6.7e-10 * qCos(5.77851227793 + 6311.5250374592 * t); result += 6.2e-10 * qCos(3.32967880172 + 15508.6151232744 * t); result += 7.9e-10 * qCos(5.59773841328 + 71960.3865832237 * t); result += 5.7e-10 * qCos(3.90629505268 + 5999.2165311262 * t); result += 6.1e-10 * qCos(0.05695043232 + 7856.89627409019 * t); result += 6.1e-10 * qCos(5.63297958433 + 7863.9425107882 * t); result += 6.5e-10 * qCos(3.72178394016 + 12573.2652469836 * t); result += 5.7e-10 * qCos(4.18217219541 + 26087.9031415742 * t); result += 6.6e-10 * qCos(3.92262333487 + 69853.3520756813 * t); result += 5.3e-10 * qCos(5.51119362045 + 77710.2483497715 * t); result += 5.3e-10 * qCos(4.88573986961 + 77717.2945864695 * t); result += 6.2e-10 * qCos(2.88876342225 + 9411.4646150872 * t); result += 5.1e-10 * qCos(1.12657183874 + 82576.9812209953 * t); result += 4.5e-10 * qCos(2.95671076719 + 24602.612434871 * t); result += 4e-10 * qCos(5.55145719241 + 12565.1713789146 * t); result += 3.9e-10 * qCos(1.20838190039 + 18842.1140029734 * t); result += 4.5e-10 * qCos(3.18590558749 + 45585.1728121874 * t); result += 4.9e-10 * qCos(2.44790934886 + 13613.804277336 * t); return result; } double GetEarthL1(double t) { double result = 0.0; result += 6283.31966747491; result += 0.00206058863 * qCos(2.67823455584 + 6283.0758499914 * t); result += 4.30343e-05 * qCos(2.63512650414 + 12566.1516999828 * t); result += 4.25264e-06 * qCos(1.59046980729 + 3.523118349 * t); result += 1.08977e-06 * qCos(2.96618001993 + 1577.3435424478 * t); result += 9.3478e-07 * qCos(2.59212835365 + 18849.2275499742 * t); result += 1.19261e-06 * qCos(5.79557487799 + 26.2983197998 * t); result += 7.2122e-07 * qCos(1.13846158196 + 529.6909650946 * t); result += 6.7768e-07 * qCos(1.87472304791 + 398.1490034082 * t); result += 6.7327e-07 * qCos(4.40918235168 + 5507.5532386674 * t); result += 5.9027e-07 * qCos(2.8879703846 + 5223.6939198022 * t); result += 5.5976e-07 * qCos(2.17471680261 + 155.4203994342 * t); result += 4.5407e-07 * qCos(0.39803079805 + 796.2980068164 * t); result += 3.6369e-07 * qCos(0.46624739835 + 775.522611324 * t); result += 2.8958e-07 * qCos(2.64707383882 + 7.1135470008 * t); result += 1.9097e-07 * qCos(1.84628332577 + 5486.777843175 * t); result += 2.0844e-07 * qCos(5.34138275149 + 0.9803210682 * t); result += 1.8508e-07 * qCos(4.96855124577 + 213.299095438 * t); result += 1.6233e-07 * qCos(0.03216483047 + 2544.3144198834 * t); result += 1.7293e-07 * qCos(2.99116864949 + 6275.9623029906 * t); result += 1.5832e-07 * qCos(1.43049285325 + 2146.1654164752 * t); result += 1.4615e-07 * qCos(1.20532366323 + 10977.078804699 * t); result += 1.1877e-07 * qCos(3.25804815607 + 5088.6288397668 * t); result += 1.1514e-07 * qCos(2.07502418155 + 4694.0029547076 * t); result += 9.721e-08 * qCos(4.23925472239 + 1349.8674096588 * t); result += 9.969e-08 * qCos(1.30262991097 + 6286.5989683404 * t); result += 9.452e-08 * qCos(2.69957062864 + 242.728603974 * t); result += 1.2461e-07 * qCos(2.83432285512 + 1748.016413067 * t); result += 1.1808e-07 * qCos(5.2737979048 + 1194.4470102246 * t); result += 8.577e-08 * qCos(5.64475868067 + 951.7184062506 * t); result += 1.0641e-07 * qCos(0.76614199202 + 553.5694028424 * t); result += 7.576e-08 * qCos(5.30062664886 + 2352.8661537718 * t); result += 5.834e-08 * qCos(1.76649917904 + 1059.3819301892 * t); result += 6.385e-08 * qCos(2.65033984967 + 9437.762934887 * t); result += 5.223e-08 * qCos(5.66135767624 + 71430.6956181291 * t); result += 5.305e-08 * qCos(0.90857521574 + 3154.6870848956 * t); result += 6.101e-08 * qCos(4.66632584188 + 4690.4798363586 * t); result += 4.33e-08 * qCos(0.24102555403 + 6812.766815086 * t); result += 5.041e-08 * qCos(1.42490103709 + 6438.4962494256 * t); result += 4.259e-08 * qCos(0.77355900599 + 10447.3878396044 * t); result += 5.198e-08 * qCos(1.85353197345 + 801.8209311238 * t); result += 3.744e-08 * qCos(2.00119516488 + 8031.0922630584 * t); result += 3.558e-08 * qCos(2.42901552681 + 14143.4952424306 * t); result += 3.372e-08 * qCos(3.86210700128 + 1592.5960136328 * t); result += 3.374e-08 * qCos(0.88776219727 + 12036.4607348882 * t); result += 3.175e-08 * qCos(3.18785710594 + 4705.7323075436 * t); result += 3.221e-08 * qCos(0.61599835472 + 8429.2412664666 * t); result += 4.132e-08 * qCos(5.23992859705 + 7084.8967811152 * t); result += 2.97e-08 * qCos(6.07026318493 + 4292.3308329504 * t); result += 2.9e-08 * qCos(2.32464208411 + 20.3553193988 * t); result += 3.504e-08 * qCos(4.79975694359 + 6279.5527316424 * t); result += 2.95e-08 * qCos(1.43108874817 + 5746.271337896 * t); result += 2.697e-08 * qCos(4.80368225199 + 7234.794256242 * t); result += 2.531e-08 * qCos(6.22290682655 + 6836.6452528338 * t); result += 2.745e-08 * qCos(0.93466065396 + 5760.4984318976 * t); result += 3.25e-08 * qCos(3.39954640038 + 7632.9432596502 * t); result += 2.277e-08 * qCos(5.00277837672 + 17789.845619785 * t); result += 2.075e-08 * qCos(3.95534978634 + 10213.285546211 * t); result += 2.061e-08 * qCos(2.22411683077 + 5856.4776591154 * t); result += 2.252e-08 * qCos(5.67166499885 + 11499.6562227928 * t); result += 2.148e-08 * qCos(5.20184578235 + 11513.8833167944 * t); result += 1.886e-08 * qCos(0.53198320577 + 3340.6124266998 * t); result += 1.875e-08 * qCos(4.73511970207 + 83996.8473181119 * t); result += 2.06e-08 * qCos(2.54987293999 + 25132.3033999656 * t); result += 1.794e-08 * qCos(1.47435409831 + 4164.311989613 * t); result += 1.778e-08 * qCos(3.02473091781 + 5.5229243074 * t); result += 2.029e-08 * qCos(0.90960209983 + 6256.7775301916 * t); result += 2.075e-08 * qCos(2.26767270157 + 522.5774180938 * t); result += 1.772e-08 * qCos(3.02622802353 + 5753.3848848968 * t); result += 1.569e-08 * qCos(6.12410242782 + 5216.5803728014 * t); result += 1.59e-08 * qCos(4.63713748247 + 3.2863574178 * t); result += 1.542e-08 * qCos(4.20004448567 + 13367.9726311066 * t); result += 1.427e-08 * qCos(1.19088061711 + 3894.1818295422 * t); result += 1.375e-08 * qCos(3.09301252193 + 135.0650800354 * t); result += 1.359e-08 * qCos(4.24532506641 + 426.598190876 * t); result += 1.34e-08 * qCos(5.76511818622 + 6040.3472460174 * t); result += 1.284e-08 * qCos(3.08524663344 + 5643.1785636774 * t); result += 1.25e-08 * qCos(3.07748157144 + 11926.2544136688 * t); result += 1.551e-08 * qCos(3.07665451458 + 6681.2248533996 * t); result += 1.268e-08 * qCos(2.09196018331 + 6290.1893969922 * t); result += 1.144e-08 * qCos(3.24444699514 + 12168.0026965746 * t); result += 1.248e-08 * qCos(3.44504937285 + 536.8045120954 * t); result += 1.118e-08 * qCos(2.31829670425 + 16730.4636895958 * t); result += 1.105e-08 * qCos(5.31966001019 + 23.8784377478 * t); result += 1.051e-08 * qCos(3.75015946014 + 7860.4193924392 * t); result += 1.025e-08 * qCos(2.44688534235 + 1990.745017041 * t); result += 9.62e-09 * qCos(0.81771017882 + 3.881335358 * t); result += 9.1e-09 * qCos(0.41727865299 + 7079.3738568078 * t); result += 8.83e-09 * qCos(5.16833917651 + 11790.6290886588 * t); result += 9.57e-09 * qCos(4.07673573735 + 6127.6554505572 * t); result += 1.11e-08 * qCos(3.90096793825 + 11506.7697697936 * t); result += 8.02e-09 * qCos(3.88778875582 + 10973.55568635 * t); result += 7.8e-09 * qCos(2.39934293755 + 1589.0728952838 * t); result += 7.58e-09 * qCos(1.30034364248 + 103.0927742186 * t); result += 7.49e-09 * qCos(4.962758033 + 6496.3749454294 * t); result += 7.65e-09 * qCos(3.36312388424 + 36.0278666774 * t); result += 9.15e-09 * qCos(5.41543742089 + 206.1855484372 * t); result += 7.76e-09 * qCos(2.57589093871 + 11371.7046897582 * t); result += 7.72e-09 * qCos(3.98369209464 + 955.5997416086 * t); result += 7.49e-09 * qCos(5.17890001805 + 10969.9652576982 * t); result += 8.06e-09 * qCos(0.34218864254 + 9917.6968745098 * t); result += 7.28e-09 * qCos(5.20962563787 + 38.0276726358 * t); result += 6.85e-09 * qCos(2.77592961854 + 20.7753954924 * t); result += 6.36e-09 * qCos(4.28242193632 + 28.4491874678 * t); result += 6.08e-09 * qCos(5.63278508906 + 10984.1923516998 * t); result += 7.04e-09 * qCos(5.60738823665 + 3738.761430108 * t); result += 6.85e-09 * qCos(0.38876148682 + 15.252471185 * t); result += 6.01e-09 * qCos(0.73489602442 + 419.4846438752 * t); result += 7.16e-09 * qCos(2.65279791438 + 6309.3741697912 * t); result += 5.84e-09 * qCos(5.54502568227 + 17298.1823273262 * t); result += 6.5e-09 * qCos(1.13379656406 + 7058.5984613154 * t); result += 6.88e-09 * qCos(2.59683891779 + 3496.032826134 * t); result += 4.85e-09 * qCos(0.44467180946 + 12352.8526045448 * t); result += 5.28e-09 * qCos(2.74936967681 + 3930.2096962196 * t); result += 5.97e-09 * qCos(5.27668281777 + 10575.4066829418 * t); result += 5.83e-09 * qCos(3.1892906781 + 4732.0306273434 * t); result += 5.26e-09 * qCos(5.01697321546 + 5884.9268465832 * t); result += 5.4e-09 * qCos(1.29175137075 + 640.8776073822 * t); result += 4.73e-09 * qCos(5.4995330697 + 5230.807466803 * t); result += 4.06e-09 * qCos(5.21248452189 + 220.4126424388 * t); result += 3.95e-09 * qCos(1.87474483222 + 16200.7727245012 * t); result += 3.7e-09 * qCos(3.84921354713 + 18073.7049386502 * t); result += 3.67e-09 * qCos(0.88533542778 + 6283.14316029419 * t); result += 3.79e-09 * qCos(0.37983009325 + 10177.2576795336 * t); result += 3.56e-09 * qCos(3.84145204913 + 11712.9553182308 * t); result += 3.74e-09 * qCos(5.01577520608 + 7.046236698 * t); result += 3.81e-09 * qCos(4.30250406634 + 6062.6632075526 * t); result += 4.71e-09 * qCos(0.86381834647 + 6069.7767545534 * t); result += 3.67e-09 * qCos(1.32943839763 + 6283.0085396886 * t); result += 4.6e-09 * qCos(5.19667219575 + 6284.0561710596 * t); result += 3.33e-09 * qCos(5.54256205741 + 4686.8894077068 * t); result += 3.41e-09 * qCos(4.36522989934 + 7238.6755916 * t); result += 3.36e-09 * qCos(4.00205876835 + 3097.88382272579 * t); result += 3.59e-09 * qCos(6.22679790284 + 245.8316462294 * t); result += 3.07e-09 * qCos(2.35299010924 + 170.6728706192 * t); result += 3.43e-09 * qCos(3.77164927143 + 6076.8903015542 * t); result += 2.96e-09 * qCos(5.44152227481 + 17260.1546546904 * t); result += 3.28e-09 * qCos(0.13837875384 + 11015.1064773348 * t); result += 2.68e-09 * qCos(1.1390455063 + 12569.6748183318 * t); result += 2.63e-09 * qCos(0.00538633678 + 4136.9104335162 * t); result += 2.82e-09 * qCos(5.0439983748 + 7477.522860216 * t); result += 2.88e-09 * qCos(3.13401177517 + 12559.038152982 * t); result += 2.59e-09 * qCos(0.93882269387 + 5642.1982426092 * t); result += 2.92e-09 * qCos(1.98420020514 + 12132.439962106 * t); result += 2.47e-09 * qCos(3.84244798532 + 5429.8794682394 * t); result += 2.45e-09 * qCos(5.70467521726 + 65147.6197681377 * t); result += 2.41e-09 * qCos(0.99480969552 + 3634.6210245184 * t); result += 2.46e-09 * qCos(3.06168069935 + 110.2063212194 * t); result += 2.39e-09 * qCos(6.11855909114 + 11856.2186514245 * t); result += 2.63e-09 * qCos(0.66348415419 + 21228.3920235458 * t); result += 2.62e-09 * qCos(1.51070507866 + 12146.6670561076 * t); result += 2.3e-09 * qCos(1.75927314884 + 9779.1086761254 * t); result += 2.23e-09 * qCos(2.00967043606 + 6172.869528772 * t); result += 2.46e-09 * qCos(1.10411690865 + 6282.0955289232 * t); result += 2.21e-09 * qCos(3.03945240854 + 8635.9420037632 * t); result += 2.14e-09 * qCos(4.03840869663 + 14314.1681130498 * t); result += 2.36e-09 * qCos(5.4691507058 + 13916.0191096416 * t); result += 2.24e-09 * qCos(4.68408089456 + 24072.9214697764 * t); result += 2.12e-09 * qCos(2.13695625494 + 5849.3641121146 * t); result += 2.07e-09 * qCos(3.07724246401 + 11.729352836 * t); result += 2.07e-09 * qCos(6.10306282747 + 23543.2305046818 * t); result += 2.66e-09 * qCos(1.00709566823 + 2388.8940204492 * t); result += 2.17e-09 * qCos(6.27837036335 + 17267.2682016912 * t); result += 2.04e-09 * qCos(2.34615348695 + 266.6070417218 * t); result += 1.95e-09 * qCos(5.55015549753 + 6133.5126528568 * t); result += 1.88e-09 * qCos(2.52667166175 + 6525.8044539654 * t); result += 1.85e-09 * qCos(0.90960768344 + 18319.5365848796 * t); result += 1.77e-09 * qCos(1.73429218289 + 154717.609887683 * t); result += 1.87e-09 * qCos(4.76483647432 + 4535.0594369244 * t); result += 1.86e-09 * qCos(4.63080493407 + 10440.2742926036 * t); result += 2.15e-09 * qCos(2.8125545456 + 7342.4577801806 * t); result += 1.72e-09 * qCos(1.45551888559 + 9225.539273283 * t); result += 1.62e-09 * qCos(3.30661909388 + 639.897286314 * t); result += 1.68e-09 * qCos(2.17671416605 + 27.4015560968 * t); result += 1.6e-09 * qCos(1.68164180475 + 15110.4661198662 * t); result += 1.58e-09 * qCos(0.13519771874 + 13095.8426650774 * t); result += 1.83e-09 * qCos(0.56281322071 + 13517.8701062334 * t); result += 1.79e-09 * qCos(3.58450811616 + 87.30820453981 * t); result += 1.52e-09 * qCos(2.84070476818 + 5650.2921106782 * t); result += 1.82e-09 * qCos(0.44065530624 + 17253.0411076896 * t); result += 1.6e-09 * qCos(5.95767264171 + 4701.1165017084 * t); result += 1.42e-09 * qCos(1.4629013752 + 11087.2851259184 * t); result += 1.42e-09 * qCos(2.04464036087 + 20426.571092422 * t); result += 1.31e-09 * qCos(5.40912137746 + 2699.7348193176 * t); result += 1.44e-09 * qCos(2.07312090485 + 25158.6017197654 * t); result += 1.47e-09 * qCos(6.15106982168 + 9623.6882766912 * t); result += 1.41e-09 * qCos(5.55739979498 + 10454.5013866052 * t); result += 1.35e-09 * qCos(0.06098110407 + 16723.350142595 * t); result += 1.24e-09 * qCos(5.81218025669 + 17256.6315363414 * t); result += 1.24e-09 * qCos(2.36293551623 + 4933.2084403326 * t); result += 1.26e-09 * qCos(3.47435905118 + 22483.8485744926 * t); result += 1.59e-09 * qCos(5.63954754618 + 5729.506447149 * t); result += 1.23e-09 * qCos(3.92815963256 + 17996.0311682222 * t); result += 1.48e-09 * qCos(3.02509280598 + 1551.045222648 * t); result += 1.2e-09 * qCos(5.91904349732 + 6206.8097787158 * t); result += 1.34e-09 * qCos(3.11122937825 + 21954.157609398 * t); result += 1.19e-09 * qCos(5.5214112345 + 709.9330485583 * t); result += 1.22e-09 * qCos(3.00813429479 + 19800.9459562248 * t); result += 1.27e-09 * qCos(1.37618620001 + 14945.3161735544 * t); result += 1.41e-09 * qCos(2.56889468729 + 1052.2683831884 * t); result += 1.23e-09 * qCos(2.83671175442 + 11919.140866668 * t); result += 1.18e-09 * qCos(0.81934438215 + 5331.3574437408 * t); result += 1.51e-09 * qCos(2.68731829165 + 11769.8536931664 * t); result += 1.19e-09 * qCos(5.08835797638 + 5481.2549188676 * t); result += 1.53e-09 * qCos(2.46021790779 + 11933.3679606696 * t); result += 1.08e-09 * qCos(1.04936452145 + 11403.676995575 * t); result += 1.28e-09 * qCos(0.99794735107 + 8827.3902698748 * t); result += 1.44e-09 * qCos(2.54869747042 + 227.476132789 * t); result += 1.5e-09 * qCos(4.50631437136 + 2379.1644735716 * t); result += 1.07e-09 * qCos(1.79272017026 + 13119.7211028252 * t); result += 1.07e-09 * qCos(4.43556814486 + 18422.6293590982 * t); result += 1.09e-09 * qCos(0.29269062317 + 16737.5772365966 * t); result += 1.41e-09 * qCos(3.18979826258 + 6262.300454499 * t); result += 1.22e-09 * qCos(4.23040027813 + 29.429508536 * t); result += 1.11e-09 * qCos(5.16954029551 + 17782.7320727842 * t); result += 1e-09 * qCos(3.52213872761 + 18052.9295431578 * t); result += 1.08e-09 * qCos(1.08514212991 + 16858.4825329332 * t); result += 1.06e-09 * qCos(1.9608524841 + 74.7815985673 * t); result += 1.1e-09 * qCos(2.30582372873 + 16460.333529525 * t); result += 9.7e-10 * qCos(3.5091894021 + 5333.9002410216 * t); result += 9.9e-10 * qCos(3.56417337974 + 735.8765135318 * t); result += 9.4e-10 * qCos(5.01857894228 + 3128.3887650958 * t); result += 9.7e-10 * qCos(1.65579893894 + 533.2140834436 * t); result += 9.2e-10 * qCos(0.89217162285 + 29296.6153895786 * t); result += 1.23e-09 * qCos(3.16062050433 + 9380.9596727172 * t); result += 1.02e-09 * qCos(1.20493500565 + 23020.653086588 * t); result += 8.8e-10 * qCos(2.21296088224 + 12721.572099417 * t); result += 8.9e-10 * qCos(1.5426472031 + 20199.094959633 * t); result += 1.13e-09 * qCos(4.8332070787 + 16496.3613962024 * t); result += 1.21e-09 * qCos(6.19860353182 + 9388.0059094152 * t); result += 8.9e-10 * qCos(4.08082274765 + 22805.7355659936 * t); result += 9.8e-10 * qCos(1.0918183283 + 12043.574281889 * t); result += 8.6e-10 * qCos(1.13655027605 + 143571.324284816 * t); result += 8.8e-10 * qCos(5.96980472191 + 107.6635239386 * t); result += 8.2e-10 * qCos(5.01340404594 + 22003.9146348698 * t); result += 9.4e-10 * qCos(1.69615700473 + 23006.4259925864 * t); result += 8.1e-10 * qCos(3.00657814365 + 2118.7638603784 * t); result += 9.8e-10 * qCos(1.39215287161 + 8662.240323563 * t); result += 7.7e-10 * qCos(3.3355519084 + 15720.8387848784 * t); result += 8.2e-10 * qCos(5.86880116464 + 2787.0430238574 * t); result += 7.6e-10 * qCos(5.67183650604 + 14.2270940016 * t); result += 8.1e-10 * qCos(6.16619455699 + 1039.0266107904 * t); result += 7.6e-10 * qCos(3.21449884756 + 111.1866422876 * t); result += 7.8e-10 * qCos(1.37531518377 + 21947.1113727 * t); result += 7.4e-10 * qCos(3.58814195051 + 11609.8625440122 * t); result += 7.7e-10 * qCos(4.84846488388 + 22743.4093795164 * t); result += 9e-10 * qCos(1.48869013606 + 15671.0817594066 * t); result += 8.2e-10 * qCos(3.48618399109 + 29088.811415985 * t); result += 6.9e-10 * qCos(3.55746476593 + 4590.910180489 * t); result += 6.9e-10 * qCos(1.93625656075 + 135.62532501 * t); result += 7e-10 * qCos(2.66548322237 + 18875.525869774 * t); result += 6.9e-10 * qCos(5.41478093731 + 26735.9452622132 * t); result += 7.9e-10 * qCos(5.15154513662 + 12323.4230960088 * t); result += 9.4e-10 * qCos(3.62899392448 + 77713.7714681205 * t); result += 7.8e-10 * qCos(4.17011182047 + 1066.49547719 * t); result += 7.1e-10 * qCos(3.89435637865 + 22779.4372461938 * t); result += 6.3e-10 * qCos(4.53968787714 + 8982.810669309 * t); result += 6.9e-10 * qCos(0.96028230548 + 14919.0178537546 * t); result += 7.6e-10 * qCos(3.29092216589 + 2942.4634232916 * t); result += 6.3e-10 * qCos(4.09167842893 + 16062.1845261168 * t); result += 6.5e-10 * qCos(3.34580407184 + 51.28033786241 * t); result += 6.5e-10 * qCos(5.75757544877 + 52670.0695933026 * t); result += 6.8e-10 * qCos(5.75884067555 + 21424.4666443034 * t); result += 5.7e-10 * qCos(5.4512239985 + 12592.4500197826 * t); result += 5.7e-10 * qCos(5.25043362558 + 20995.3929664494 * t); result += 7.3e-10 * qCos(0.53299090807 + 2301.58581590939 * t); result += 7e-10 * qCos(4.31243357502 + 19402.7969528166 * t); result += 6.7e-10 * qCos(2.53852336668 + 377.3736079158 * t); result += 5.6e-10 * qCos(3.20816844695 + 24889.5747959916 * t); result += 5.3e-10 * qCos(3.17816599142 + 18451.078546566 * t); result += 5.3e-10 * qCos(3.61529270216 + 77.673770428 * t); result += 5.3e-10 * qCos(0.45467549335 + 30666.1549584328 * t); result += 6.1e-10 * qCos(0.14807288453 + 23013.5395395872 * t); result += 5.1e-10 * qCos(3.32803972907 + 56.8983749356 * t); result += 5.2e-10 * qCos(3.41177624177 + 23141.5583829246 * t); result += 5.8e-10 * qCos(3.13638677202 + 309.2783226558 * t); result += 7e-10 * qCos(2.50592323465 + 31415.379249957 * t); result += 5.2e-10 * qCos(5.10673376738 + 17796.9591667858 * t); result += 6.7e-10 * qCos(6.27917920454 + 22345.2603761082 * t); result += 5e-10 * qCos(0.42577644151 + 25685.872802808 * t); result += 4.8e-10 * qCos(0.70204553333 + 1162.4747044078 * t); result += 6.6e-10 * qCos(3.64350022359 + 15265.8865193004 * t); result += 5e-10 * qCos(5.7438291744 + 19.66976089979 * t); result += 5e-10 * qCos(4.69825387775 + 28237.2334593894 * t); result += 4.7e-10 * qCos(5.74015846442 + 12139.5535091068 * t); result += 5.4e-10 * qCos(1.97301333704 + 23581.2581773176 * t); result += 4.9e-10 * qCos(4.98223579027 + 10021.8372800994 * t); result += 4.6e-10 * qCos(5.41431705539 + 33019.0211122046 * t); result += 5.1e-10 * qCos(1.23882053879 + 12539.853380183 * t); result += 4.6e-10 * qCos(2.41369976086 + 98068.5367163054 * t); result += 4.4e-10 * qCos(0.80750593746 + 167283.761587666 * t); result += 4.5e-10 * qCos(4.39613584445 + 433.7117378768 * t); result += 4.4e-10 * qCos(2.57358208785 + 12964.300703391 * t); result += 4.6e-10 * qCos(0.26142733448 + 11.0457002639 * t); result += 4.5e-10 * qCos(2.46230645202 + 51868.2486621788 * t); result += 4.8e-10 * qCos(0.89551707131 + 56600.2792895222 * t); result += 5.7e-10 * qCos(1.8641670701 + 25287.7237993998 * t); result += 4.2e-10 * qCos(5.26377513431 + 26084.0218062162 * t); result += 4.9e-10 * qCos(3.17757670611 + 6303.8512454838 * t); result += 5.2e-10 * qCos(3.65266055509 + 7872.1487452752 * t); result += 4e-10 * qCos(1.81891629936 + 34596.3646546524 * t); result += 4.3e-10 * qCos(1.94164978061 + 1903.4368125012 * t); result += 4.1e-10 * qCos(0.74461854136 + 23937.856389741 * t); result += 4.8e-10 * qCos(6.26034008181 + 28286.9904848612 * t); result += 4.5e-10 * qCos(5.4557501753 + 60530.4889857418 * t); result += 4e-10 * qCos(2.92105728682 + 21548.9623692918 * t); result += 4e-10 * qCos(0.04502010161 + 38526.574350872 * t); result += 5.3e-10 * qCos(3.64791042082 + 11925.2740926006 * t); result += 4.1e-10 * qCos(5.04048954693 + 27832.0382192832 * t); result += 4.2e-10 * qCos(5.19292937193 + 19004.6479494084 * t); result += 4e-10 * qCos(2.57120233428 + 24356.7807886416 * t); result += 3.8e-10 * qCos(3.49190341464 + 226858.23855437 * t); result += 3.9e-10 * qCos(4.61184303844 + 95.9792272178 * t); result += 4.3e-10 * qCos(2.20648228147 + 13521.7514415914 * t); result += 4e-10 * qCos(5.83461945819 + 16193.6591775004 * t); result += 4.5e-10 * qCos(3.73714372195 + 7875.6718636242 * t); result += 4.3e-10 * qCos(1.14078465002 + 49.7570254718 * t); result += 3.7e-10 * qCos(1.29390383811 + 310.8407988684 * t); result += 3.8e-10 * qCos(0.9597092595 + 664.75604513 * t); result += 3.7e-10 * qCos(4.27532649462 + 6709.6740408674 * t); result += 3.8e-10 * qCos(2.20108541046 + 28628.3362260996 * t); result += 3.9e-10 * qCos(0.85957361635 + 16522.6597160022 * t); result += 4e-10 * qCos(4.35214003837 + 48739.859897083 * t); result += 3.6e-10 * qCos(1.68167662194 + 10344.2950653858 * t); result += 4e-10 * qCos(5.13217319067 + 15664.0355227086 * t); result += 3.6e-10 * qCos(3.72187132496 + 30774.5016425748 * t); result += 3.6e-10 * qCos(3.32158458257 + 16207.886271502 * t); result += 4.5e-10 * qCos(3.94202418608 + 10988.808157535 * t); result += 3.9e-10 * qCos(1.51948786199 + 12029.3471878874 * t); result += 2.6e-10 * qCos(3.8768588318 + 6262.7205305926 * t); result += 2.4e-10 * qCos(4.91804163466 + 19651.048481098 * t); result += 2.3e-10 * qCos(0.29300197709 + 13362.4497067992 * t); result += 2.1e-10 * qCos(3.18605672363 + 6277.552925684 * t); result += 2.1e-10 * qCos(6.07546891132 + 18139.2945014159 * t); result += 2.2e-10 * qCos(2.31199937177 + 6303.4311693902 * t); result += 2.1e-10 * qCos(3.58418394393 + 18209.3302636602 * t); result += 2.6e-10 * qCos(2.068012969 + 12573.2652469836 * t); result += 2.1e-10 * qCos(1.56857722317 + 13341.6743113068 * t); result += 2.4e-10 * qCos(5.72605158675 + 29864.334027309 * t); result += 2.4e-10 * qCos(1.40237993205 + 14712.317116458 * t); result += 2.5e-10 * qCos(5.71466092822 + 25934.1243310894 * t); return result; } double GetEarthL2(double t) { double result = 0.0; result += 0.0005291887; result += 8.719837e-05 * qCos(1.07209665242 + 6283.0758499914 * t); result += 3.09125e-06 * qCos(0.86728818832 + 12566.1516999828 * t); result += 2.7339e-07 * qCos(0.05297871691 + 3.523118349 * t); result += 1.6334e-07 * qCos(5.18826691036 + 26.2983197998 * t); result += 1.5752e-07 * qCos(3.6845788943 + 155.4203994342 * t); result += 9.541e-08 * qCos(0.75742297675 + 18849.2275499742 * t); result += 8.937e-08 * qCos(2.05705419118 + 77713.7714681205 * t); result += 6.952e-08 * qCos(0.8267330541 + 775.522611324 * t); result += 5.064e-08 * qCos(4.66284525271 + 1577.3435424478 * t); result += 4.061e-08 * qCos(1.03057162962 + 7.1135470008 * t); result += 3.463e-08 * qCos(5.14074632811 + 796.2980068164 * t); result += 3.169e-08 * qCos(6.05291851171 + 5507.5532386674 * t); result += 3.02e-08 * qCos(1.19246506441 + 242.728603974 * t); result += 2.886e-08 * qCos(6.11652627155 + 529.6909650946 * t); result += 3.81e-08 * qCos(3.4405080349 + 5573.1428014331 * t); result += 2.714e-08 * qCos(0.30637881025 + 398.1490034082 * t); result += 2.371e-08 * qCos(4.38118838167 + 5223.6939198022 * t); result += 2.538e-08 * qCos(2.27992810679 + 553.5694028424 * t); result += 2.079e-08 * qCos(3.75435330484 + 0.9803210682 * t); result += 1.675e-08 * qCos(0.90216407959 + 951.7184062506 * t); result += 1.534e-08 * qCos(5.75900462759 + 1349.8674096588 * t); result += 1.224e-08 * qCos(2.97328088405 + 2146.1654164752 * t); result += 1.449e-08 * qCos(4.3641591397 + 1748.016413067 * t); result += 1.341e-08 * qCos(3.72061130861 + 1194.4470102246 * t); result += 1.254e-08 * qCos(2.94846826628 + 6438.4962494256 * t); result += 9.99e-09 * qCos(5.98640014468 + 6286.5989683404 * t); result += 9.17e-09 * qCos(4.79788687522 + 5088.6288397668 * t); result += 8.28e-09 * qCos(3.31321076572 + 213.299095438 * t); result += 1.103e-08 * qCos(1.27104454479 + 161000.685737674 * t); result += 7.62e-09 * qCos(3.41582762988 + 5486.777843175 * t); result += 1.044e-08 * qCos(0.60409577691 + 3154.6870848956 * t); result += 8.87e-09 * qCos(5.23465144638 + 7084.8967811152 * t); result += 6.45e-09 * qCos(1.60096192515 + 2544.3144198834 * t); result += 6.81e-09 * qCos(3.43155669169 + 4694.0029547076 * t); result += 6.05e-09 * qCos(2.47806340546 + 10977.078804699 * t); result += 7.06e-09 * qCos(6.19393222575 + 4690.4798363586 * t); result += 6.43e-09 * qCos(1.98042503148 + 801.8209311238 * t); result += 5.02e-09 * qCos(1.44394375363 + 6836.6452528338 * t); result += 4.9e-09 * qCos(2.34129524194 + 1592.5960136328 * t); result += 4.58e-09 * qCos(1.30876448575 + 4292.3308329504 * t); result += 4.31e-09 * qCos(0.03526421494 + 7234.794256242 * t); result += 3.79e-09 * qCos(3.17030522615 + 6309.3741697912 * t); result += 3.48e-09 * qCos(0.99049550009 + 6040.3472460174 * t); result += 3.86e-09 * qCos(1.57019797263 + 71430.6956181291 * t); result += 3.47e-09 * qCos(0.67013291338 + 1059.3819301892 * t); result += 4.58e-09 * qCos(3.81499443681 + 149854.400134808 * t); result += 3.02e-09 * qCos(1.91760044838 + 10447.3878396044 * t); result += 3.07e-09 * qCos(3.55343347416 + 8031.0922630584 * t); result += 3.95e-09 * qCos(4.93701776616 + 7632.9432596502 * t); result += 3.14e-09 * qCos(3.18093696547 + 2352.8661537718 * t); result += 2.82e-09 * qCos(4.41936437052 + 9437.762934887 * t); result += 2.76e-09 * qCos(2.71314254553 + 3894.1818295422 * t); result += 2.98e-09 * qCos(2.5203747421 + 6127.6554505572 * t); result += 2.3e-09 * qCos(1.37790215549 + 4705.7323075436 * t); result += 2.52e-09 * qCos(0.55330133471 + 6279.5527316424 * t); result += 2.55e-09 * qCos(5.26570187369 + 6812.766815086 * t); result += 2.75e-09 * qCos(0.67264264272 + 25132.3033999656 * t); result += 1.78e-09 * qCos(0.92820785174 + 1990.745017041 * t); result += 2.21e-09 * qCos(0.63897368842 + 6256.7775301916 * t); result += 1.55e-09 * qCos(0.77319790838 + 14143.4952424306 * t); result += 1.5e-09 * qCos(2.40470465561 + 426.598190876 * t); result += 1.96e-09 * qCos(6.06877865012 + 640.8776073822 * t); result += 1.37e-09 * qCos(2.21679460145 + 8429.2412664666 * t); result += 1.27e-09 * qCos(3.26094223174 + 17789.845619785 * t); result += 1.28e-09 * qCos(5.47237279946 + 12036.4607348882 * t); result += 1.22e-09 * qCos(2.16291082757 + 10213.285546211 * t); result += 1.18e-09 * qCos(0.45789822268 + 7058.5984613154 * t); result += 1.41e-09 * qCos(2.34932647403 + 11506.7697697936 * t); result += 1e-09 * qCos(0.85621569847 + 6290.1893969922 * t); result += 9.2e-10 * qCos(5.10587476002 + 7079.3738568078 * t); result += 1.26e-09 * qCos(2.65428307012 + 88860.0570709867 * t); result += 1.06e-09 * qCos(5.85646710022 + 7860.4193924392 * t); result += 8.4e-10 * qCos(3.57457554262 + 16730.4636895958 * t); result += 8.9e-10 * qCos(4.21433259618 + 83996.8473181119 * t); result += 9.7e-10 * qCos(5.57938280855 + 13367.9726311066 * t); result += 1.02e-09 * qCos(2.05853060226 + 87.30820453981 * t); result += 8e-10 * qCos(4.73792651816 + 11926.2544136688 * t); result += 8e-10 * qCos(5.41418965044 + 10973.55568635 * t); result += 1.06e-09 * qCos(4.10978997399 + 3496.032826134 * t); result += 1.02e-09 * qCos(3.62650006043 + 244287.600007228 * t); result += 7.5e-10 * qCos(4.89483161769 + 5643.1785636774 * t); result += 8.7e-10 * qCos(0.42863750683 + 11015.1064773348 * t); result += 6.9e-10 * qCos(1.8890876072 + 10177.2576795336 * t); result += 8.9e-10 * qCos(1.35567273119 + 6681.2248533996 * t); result += 6.6e-10 * qCos(0.99455837265 + 6525.8044539654 * t); result += 6.7e-10 * qCos(5.5124099707 + 3097.88382272579 * t); result += 7.6e-10 * qCos(2.72016814799 + 4164.311989613 * t); result += 6.3e-10 * qCos(1.4434990254 + 9917.6968745098 * t); result += 7.8e-10 * qCos(3.51469733747 + 11856.2186514245 * t); result += 8.5e-10 * qCos(0.50956043858 + 10575.4066829418 * t); result += 6.7e-10 * qCos(3.62043033405 + 16496.3613962024 * t); result += 5.5e-10 * qCos(5.24637517308 + 3340.6124266998 * t); result += 4.8e-10 * qCos(5.43966777314 + 20426.571092422 * t); result += 6.4e-10 * qCos(5.79535817813 + 2388.8940204492 * t); result += 4.6e-10 * qCos(5.43499966519 + 6275.9623029906 * t); result += 5e-10 * qCos(3.86263598617 + 5729.506447149 * t); result += 4.4e-10 * qCos(1.52269529228 + 12168.0026965746 * t); result += 5.7e-10 * qCos(4.96352373486 + 14945.3161735544 * t); result += 4.5e-10 * qCos(1.0086123016 + 8635.9420037632 * t); result += 4.3e-10 * qCos(3.30685683359 + 9779.1086761254 * t); result += 4.2e-10 * qCos(0.6348125893 + 2699.7348193176 * t); result += 4.1e-10 * qCos(5.67996766641 + 11712.9553182308 * t); result += 5.6e-10 * qCos(4.34024451468 + 90955.5516944961 * t); result += 4.1e-10 * qCos(5.81722212845 + 709.9330485583 * t); result += 5.3e-10 * qCos(6.17052087143 + 233141.314404362 * t); result += 3.7e-10 * qCos(3.12495025087 + 16200.7727245012 * t); result += 3.5e-10 * qCos(5.76973458495 + 12569.6748183318 * t); result += 3.7e-10 * qCos(0.31656444326 + 24356.7807886416 * t); result += 3.5e-10 * qCos(0.96229051027 + 17298.1823273262 * t); result += 3.3e-10 * qCos(5.23130355867 + 5331.3574437408 * t); result += 3.5e-10 * qCos(0.62517020593 + 25158.6017197654 * t); result += 3.5e-10 * qCos(0.80004512129 + 13916.0191096416 * t); result += 3.7e-10 * qCos(2.89336088688 + 12721.572099417 * t); result += 3e-10 * qCos(4.50198402401 + 23543.2305046818 * t); result += 3e-10 * qCos(5.31355708693 + 18319.5365848796 * t); result += 2.9e-10 * qCos(3.47275229977 + 13119.7211028252 * t); result += 2.9e-10 * qCos(3.11002782516 + 4136.9104335162 * t); result += 3.2e-10 * qCos(5.52273255667 + 5753.3848848968 * t); result += 3.5e-10 * qCos(3.7969999668 + 143571.324284816 * t); result += 2.6e-10 * qCos(1.50634201907 + 154717.609887683 * t); result += 3e-10 * qCos(3.53519084118 + 6284.0561710596 * t); result += 2.3e-10 * qCos(4.41808025967 + 5884.9268465832 * t); result += 2.5e-10 * qCos(1.38477355808 + 65147.6197681377 * t); result += 2.3e-10 * qCos(3.49782549797 + 7477.522860216 * t); result += 1.9e-10 * qCos(3.14329413716 + 6496.3749454294 * t); result += 1.9e-10 * qCos(2.20135125199 + 18073.7049386502 * t); result += 1.9e-10 * qCos(4.95020255309 + 3930.2096962196 * t); result += 1.9e-10 * qCos(0.57998702747 + 31415.379249957 * t); result += 2.1e-10 * qCos(1.75474323399 + 12139.5535091068 * t); result += 1.9e-10 * qCos(3.92233070499 + 19651.048481098 * t); result += 1.4e-10 * qCos(0.98131213224 + 12559.038152982 * t); result += 1.9e-10 * qCos(4.93309333729 + 2942.4634232916 * t); result += 1.6e-10 * qCos(5.55997534558 + 8827.3902698748 * t); result += 1.3e-10 * qCos(1.68808165516 + 4535.0594369244 * t); result += 1.3e-10 * qCos(0.33982116161 + 4933.2084403326 * t); result += 1.2e-10 * qCos(1.85426309994 + 5856.4776591154 * t); result += 1e-10 * qCos(4.82763996845 + 13095.8426650774 * t); result += 1.1e-10 * qCos(5.38005490571 + 11790.6290886588 * t); result += 1e-10 * qCos(1.40815507226 + 10988.808157535 * t); result += 1.1e-10 * qCos(3.05005267431 + 17260.1546546904 * t); result += 1e-10 * qCos(4.93364992366 + 12352.8526045448 * t); return result; } double GetEarthL3(double t) { double result = 0.0; result += 2.89226e-06 * qCos(5.84384198723 + 6283.0758499914 * t); result += 3.4955e-07; result += 1.6819e-07 * qCos(5.48766912348 + 12566.1516999828 * t); result += 2.962e-08 * qCos(5.19577265202 + 155.4203994342 * t); result += 1.288e-08 * qCos(4.72200252235 + 3.523118349 * t); result += 6.35e-09 * qCos(5.96925937141 + 242.728603974 * t); result += 7.14e-09 * qCos(5.30045809128 + 18849.2275499742 * t); result += 4.02e-09 * qCos(3.78682982419 + 553.5694028424 * t); result += 7.2e-10 * qCos(4.2976812618 + 6286.5989683404 * t); result += 6.7e-10 * qCos(0.90721687647 + 6127.6554505572 * t); result += 3.6e-10 * qCos(5.24029648014 + 6438.4962494256 * t); result += 2.4e-10 * qCos(5.16003960716 + 25132.3033999656 * t); result += 2.3e-10 * qCos(3.01921570335 + 6309.3741697912 * t); result += 1.7e-10 * qCos(5.82863573502 + 6525.8044539654 * t); result += 1.7e-10 * qCos(3.6777286393 + 71430.6956181291 * t); result += 9e-11 * qCos(4.58467294499 + 1577.3435424478 * t); result += 8e-11 * qCos(1.40626662824 + 11856.2186514245 * t); result += 8e-11 * qCos(5.07561257196 + 6256.7775301916 * t); result += 7e-11 * qCos(2.82473374405 + 83996.8473181119 * t); result += 5e-11 * qCos(2.71488713339 + 10977.078804699 * t); result += 5e-11 * qCos(3.76879847273 + 12036.4607348882 * t); result += 5e-11 * qCos(4.28412873331 + 6275.9623029906 * t); return result; } double GetEarthL4(double t) { double result = 0.0; result -= -1.14084e-06; result += 7.717e-08 * qCos(4.13446589358 + 6283.0758499914 * t); result += 7.65e-09 * qCos(3.83803776214 + 12566.1516999828 * t); result += 4.2e-09 * qCos(0.41925861858 + 155.4203994342 * t); result += 4e-10 * qCos(3.5984758584 + 18849.2275499742 * t); result += 4.1e-10 * qCos(3.14398414077 + 3.523118349 * t); result += 3.5e-10 * qCos(5.00298940826 + 5573.1428014331 * t); result += 1.3e-10 * qCos(0.48794833701 + 77713.7714681205 * t); result += 1e-10 * qCos(5.6480176635 + 6127.6554505572 * t); result += 8e-11 * qCos(2.84160570605 + 161000.685737674 * t); result += 2e-11 * qCos(0.54912904658 + 6438.4962494256 * t); return result; } double GetEarthL5(double t) { double result = 0.0; result -= -8.78e-09; result += 1.72e-09 * qCos(2.7657906951 + 6283.0758499914 * t); result += 5e-10 * qCos(2.01353298182 + 155.4203994342 * t); result += 2.8e-10 * qCos(2.21496423926 + 12566.1516999828 * t); result += 5e-11 * qCos(1.75600058765 + 18849.2275499742 * t); return result; } double GetEarthB0(double t) { double result = 0.0; result += 2.7962e-06 * qCos(3.19870156017 + 84334.6615813083 * t); result += 1.01643e-06 * qCos(5.42248619256 + 5507.5532386674 * t); result += 8.0445e-07 * qCos(3.88013204458 + 5223.6939198022 * t); result += 4.3806e-07 * qCos(3.70444689758 + 2352.8661537718 * t); result += 3.1933e-07 * qCos(4.00026369781 + 1577.3435424478 * t); result += 2.2724e-07 * qCos(3.9847383156 + 1047.7473117547 * t); result += 1.6392e-07 * qCos(3.56456119782 + 5856.4776591154 * t); result += 1.8141e-07 * qCos(4.98367470263 + 6283.0758499914 * t); result += 1.4443e-07 * qCos(3.70275614914 + 9437.762934887 * t); result += 1.4304e-07 * qCos(3.41117857525 + 10213.285546211 * t); result += 1.1246e-07 * qCos(4.8282069053 + 14143.4952424306 * t); result += 1.09e-07 * qCos(2.08574562327 + 6812.766815086 * t); result += 9.714e-08 * qCos(3.47303947752 + 4694.0029547076 * t); result += 1.0367e-07 * qCos(4.05663927946 + 71092.8813549327 * t); result += 8.775e-08 * qCos(4.44016515669 + 5753.3848848968 * t); result += 8.366e-08 * qCos(4.9925151218 + 7084.8967811152 * t); result += 6.921e-08 * qCos(4.32559054073 + 6275.9623029906 * t); result += 9.145e-08 * qCos(1.14182646613 + 6620.8901131878 * t); result += 7.194e-08 * qCos(3.60193205752 + 529.6909650946 * t); result += 7.698e-08 * qCos(5.55425745881 + 167621.575850862 * t); result += 5.285e-08 * qCos(2.48446991566 + 4705.7323075436 * t); result += 5.208e-08 * qCos(6.24992674537 + 18073.7049386502 * t); result += 4.529e-08 * qCos(2.33827747356 + 6309.3741697912 * t); result += 5.579e-08 * qCos(4.41023653738 + 7860.4193924392 * t); result += 4.743e-08 * qCos(0.70995680136 + 5884.9268465832 * t); result += 4.301e-08 * qCos(1.10255777773 + 6681.2248533996 * t); result += 3.849e-08 * qCos(1.82229412531 + 5486.777843175 * t); result += 4.093e-08 * qCos(5.11700141207 + 13367.9726311066 * t); result += 3.681e-08 * qCos(0.43793170356 + 3154.6870848956 * t); result += 3.42e-08 * qCos(5.42034800952 + 6069.7767545534 * t); result += 3.617e-08 * qCos(6.04641937526 + 3930.2096962196 * t); result += 3.67e-08 * qCos(4.58210192227 + 12194.0329146209 * t); result += 2.918e-08 * qCos(1.95463881126 + 10977.078804699 * t); result += 2.797e-08 * qCos(5.61259275048 + 11790.6290886588 * t); result += 2.502e-08 * qCos(0.60499729367 + 6496.3749454294 * t); result += 2.319e-08 * qCos(5.01648216014 + 1059.3819301892 * t); result += 2.684e-08 * qCos(1.39470396488 + 22003.9146348698 * t); result += 2.428e-08 * qCos(3.24183056052 + 78051.5857313169 * t); result += 2.12e-08 * qCos(4.30691000285 + 5643.1785636774 * t); result += 2.257e-08 * qCos(3.15557225618 + 90617.7374312997 * t); result += 1.813e-08 * qCos(3.75574218285 + 3340.6124266998 * t); result += 2.226e-08 * qCos(2.79699346659 + 12036.4607348882 * t); result += 1.888e-08 * qCos(0.86991545823 + 8635.9420037632 * t); result += 1.517e-08 * qCos(1.95852055701 + 398.1490034082 * t); result += 1.581e-08 * qCos(3.19976230948 + 5088.6288397668 * t); result += 1.421e-08 * qCos(6.25530883827 + 2544.3144198834 * t); result += 1.595e-08 * qCos(0.25619915135 + 17298.1823273262 * t); result += 1.391e-08 * qCos(4.69964175561 + 7058.5984613154 * t); result += 1.478e-08 * qCos(2.81808207569 + 25934.1243310894 * t); result += 1.481e-08 * qCos(3.65823554806 + 11506.7697697936 * t); result += 1.693e-08 * qCos(4.95689385293 + 156475.290247996 * t); result += 1.183e-08 * qCos(1.29343061246 + 775.522611324 * t); result += 1.114e-08 * qCos(2.37889311846 + 3738.761430108 * t); result += 9.94e-09 * qCos(4.30088900425 + 9225.539273283 * t); result += 9.24e-09 * qCos(3.06451026812 + 4164.311989613 * t); result += 8.67e-09 * qCos(0.55606931068 + 8429.2412664666 * t); result += 9.88e-09 * qCos(5.97286104208 + 7079.3738568078 * t); result += 8.24e-09 * qCos(1.50984806173 + 10447.3878396044 * t); result += 9.15e-09 * qCos(0.12635654592 + 11015.1064773348 * t); result += 7.42e-09 * qCos(1.99159139281 + 26087.9031415742 * t); result -= -1.039e-08; result += 8.5e-09 * qCos(4.24120016095 + 29864.334027309 * t); result += 7.55e-09 * qCos(2.8963187332 + 4732.0306273434 * t); result += 7.14e-09 * qCos(1.37548118603 + 2146.1654164752 * t); result += 7.08e-09 * qCos(1.91406542362 + 8031.0922630584 * t); result += 7.46e-09 * qCos(0.57893808616 + 796.2980068164 * t); result += 8.02e-09 * qCos(5.1233913723 + 2942.4634232916 * t); result += 7.51e-09 * qCos(1.67479850166 + 21228.3920235458 * t); result += 6.02e-09 * qCos(4.09976538826 + 64809.8055049413 * t); result += 5.94e-09 * qCos(3.49580704962 + 16496.3613962024 * t); result += 5.92e-09 * qCos(4.59481504319 + 4690.4798363586 * t); result += 5.3e-09 * qCos(5.739792952 + 8827.3902698748 * t); result += 5.03e-09 * qCos(5.66433137112 + 33794.5437235286 * t); result += 4.83e-09 * qCos(1.57106522411 + 801.8209311238 * t); result += 4.38e-09 * qCos(0.06707733767 + 3128.3887650958 * t); result += 4.23e-09 * qCos(2.86944595927 + 12566.1516999828 * t); result += 5.04e-09 * qCos(3.2620766916 + 7632.9432596502 * t); result += 5.52e-09 * qCos(1.02926440457 + 239762.204517549 * t); result += 4.27e-09 * qCos(3.6743437821 + 213.299095438 * t); result += 4.04e-09 * qCos(1.46193297142 + 15720.8387848784 * t); result += 5.03e-09 * qCos(4.85802444134 + 6290.1893969922 * t); result += 4.17e-09 * qCos(0.81920713533 + 5216.5803728014 * t); result += 3.65e-09 * qCos(0.01002966162 + 12168.0026965746 * t); result += 3.63e-09 * qCos(1.28376436579 + 6206.8097787158 * t); result += 3.53e-09 * qCos(4.7005913311 + 7234.794256242 * t); result += 4.15e-09 * qCos(0.96862624175 + 4136.9104335162 * t); result += 3.87e-09 * qCos(3.09145061418 + 25158.6017197654 * t); result += 3.73e-09 * qCos(2.65119262792 + 7342.4577801806 * t); result += 3.61e-09 * qCos(2.97762937739 + 9623.6882766912 * t); result += 4.18e-09 * qCos(3.75759994446 + 5230.807466803 * t); result += 3.96e-09 * qCos(1.22507712354 + 6438.4962494256 * t); result += 3.22e-09 * qCos(1.21162178805 + 8662.240323563 * t); result += 2.84e-09 * qCos(5.64170320068 + 1589.0728952838 * t); result += 3.79e-09 * qCos(1.72248432748 + 14945.3161735544 * t); result += 3.2e-09 * qCos(3.94161159962 + 7330.8231617461 * t); result += 3.13e-09 * qCos(5.47602376446 + 1194.4470102246 * t); result += 2.92e-09 * qCos(1.38971327603 + 11769.8536931664 * t); result += 3.05e-09 * qCos(0.80429352049 + 37724.7534197482 * t); result += 2.57e-09 * qCos(5.81382809757 + 426.598190876 * t); result += 2.65e-09 * qCos(6.10358507671 + 6836.6452528338 * t); result += 2.5e-09 * qCos(4.56452895547 + 7477.522860216 * t); result += 2.66e-09 * qCos(2.62926282354 + 7238.6755916 * t); result += 2.63e-09 * qCos(6.22089501237 + 6133.5126528568 * t); result += 3.06e-09 * qCos(2.79682380531 + 1748.016413067 * t); result += 2.36e-09 * qCos(2.46093023714 + 11371.7046897582 * t); result += 3.16e-09 * qCos(1.62662805006 + 250908.490120415 * t); result += 2.16e-09 * qCos(3.68721275185 + 5849.3641121146 * t); result += 2.3e-09 * qCos(0.36165162947 + 5863.5912061162 * t); result += 2.33e-09 * qCos(5.03509933858 + 20426.571092422 * t); result += 2e-09 * qCos(5.86073159059 + 4535.0594369244 * t); result += 2.77e-09 * qCos(4.65400292395 + 82239.1669577989 * t); result += 2.09e-09 * qCos(3.72323200804 + 10973.55568635 * t); result += 1.99e-09 * qCos(5.05186622555 + 5429.8794682394 * t); result += 2.56e-09 * qCos(2.4092327977 + 19651.048481098 * t); result += 2.1e-09 * qCos(4.50691909144 + 29088.811415985 * t); result += 1.81e-09 * qCos(6.00294783127 + 4292.3308329504 * t); result += 2.49e-09 * qCos(0.12900984422 + 154379.795624486 * t); result += 2.09e-09 * qCos(3.87759458598 + 17789.845619785 * t); result += 2.25e-09 * qCos(3.18339652605 + 18875.525869774 * t); result += 1.91e-09 * qCos(4.53897489299 + 18477.1087646123 * t); result += 1.72e-09 * qCos(2.09694183014 + 13095.8426650774 * t); result += 1.82e-09 * qCos(3.161079435 + 16730.4636895958 * t); result += 1.88e-09 * qCos(2.22746128596 + 41654.9631159678 * t); result += 1.64e-09 * qCos(5.18686275017 + 5481.2549188676 * t); result += 1.6e-09 * qCos(2.49298855159 + 12592.4500197826 * t); result += 1.55e-09 * qCos(1.5959543823 + 10021.8372800994 * t); result += 1.35e-09 * qCos(0.21349051064 + 10988.808157535 * t); result += 1.78e-09 * qCos(3.8037517797 + 23581.2581773176 * t); result += 1.23e-09 * qCos(1.66800739151 + 15110.4661198662 * t); result += 1.22e-09 * qCos(2.72678272244 + 18849.2275499742 * t); result += 1.26e-09 * qCos(1.1767551291 + 14919.0178537546 * t); result += 1.42e-09 * qCos(3.95053441332 + 337.8142631964 * t); result += 1.16e-09 * qCos(6.06340906229 + 6709.6740408674 * t); result += 1.37e-09 * qCos(3.52143246757 + 12139.5535091068 * t); result += 1.36e-09 * qCos(2.92179113542 + 32217.2001810808 * t); result += 1.1e-09 * qCos(3.51203379263 + 18052.9295431578 * t); result += 1.47e-09 * qCos(4.63371971408 + 22805.7355659936 * t); result += 1.08e-09 * qCos(5.45280814878 + 7.1135470008 * t); result += 1.48e-09 * qCos(0.65447253687 + 95480.9471841745 * t); result += 1.19e-09 * qCos(5.92110458985 + 33019.0211122046 * t); result += 1.1e-09 * qCos(5.34824206306 + 639.897286314 * t); result += 1.06e-09 * qCos(3.71081682629 + 14314.1681130498 * t); result += 1.39e-09 * qCos(6.17607198418 + 24356.7807886416 * t); result += 1.18e-09 * qCos(5.5973871267 + 161338.50000087 * t); result += 1.17e-09 * qCos(3.6506527164 + 45585.1728121874 * t); result += 1.27e-09 * qCos(4.74596574209 + 49515.382508407 * t); result += 1.2e-09 * qCos(1.04211499785 + 6915.8595893046 * t); result += 1.2e-09 * qCos(5.60638811846 + 5650.2921106782 * t); result += 1.15e-09 * qCos(3.10668213289 + 14712.317116458 * t); result += 9.9e-10 * qCos(0.69018940049 + 12779.4507954208 * t); result += 9.7e-10 * qCos(1.07908724794 + 9917.6968745098 * t); result += 9.3e-10 * qCos(2.62295197319 + 17260.1546546904 * t); result += 9.9e-10 * qCos(4.45774681732 + 4933.2084403326 * t); result += 1.23e-09 * qCos(1.37488922089 + 28286.9904848612 * t); result += 1.21e-09 * qCos(5.19767249813 + 27511.4678735372 * t); result += 1.05e-09 * qCos(0.87192267806 + 77375.9572049241 * t); result += 8.7e-10 * qCos(3.9363781295 + 17654.7805397496 * t); result += 1.22e-09 * qCos(2.2395606868 + 83997.0911355954 * t); result += 8.7e-10 * qCos(4.18201600952 + 22779.4372461938 * t); result += 1.04e-09 * qCos(4.59580877295 + 1349.8674096588 * t); result += 1.02e-09 * qCos(2.83545248411 + 12352.8526045448 * t); result += 1.02e-09 * qCos(3.97386522171 + 10818.1352869158 * t); result += 1.01e-09 * qCos(4.32892825857 + 36147.4098773004 * t); result += 9.4e-10 * qCos(5.00001709261 + 150192.214398004 * t); result += 7.7e-10 * qCos(3.97199369296 + 1592.5960136328 * t); result += 1e-09 * qCos(6.07733097102 + 26735.9452622132 * t); result += 8.6e-10 * qCos(5.2602963825 + 28313.288804661 * t); result += 9.3e-10 * qCos(4.31900620254 + 44809.6502008634 * t); result += 7.6e-10 * qCos(6.22743405935 + 13521.7514415914 * t); result += 7.2e-10 * qCos(1.55820597747 + 6256.7775301916 * t); result += 8.2e-10 * qCos(4.95202664555 + 10575.4066829418 * t); result += 8.2e-10 * qCos(1.69647647075 + 1990.745017041 * t); result += 7.5e-10 * qCos(2.29836095644 + 3634.6210245184 * t); result += 7.5e-10 * qCos(2.66367876557 + 16200.7727245012 * t); result += 8.7e-10 * qCos(0.26630214764 + 31441.6775697568 * t); result += 7.7e-10 * qCos(2.25530954137 + 5235.3285382367 * t); result += 7.6e-10 * qCos(1.09869730846 + 12903.9659631792 * t); result += 5.8e-10 * qCos(4.28246138307 + 12559.038152982 * t); result += 6.4e-10 * qCos(5.51112830114 + 173904.651700853 * t); result += 5.6e-10 * qCos(2.60133794851 + 73188.3759784421 * t); result += 5.5e-10 * qCos(5.81483150022 + 143233.51002162 * t); result += 5.4e-10 * qCos(3.38482031504 + 323049.118787103 * t); result += 3.9e-10 * qCos(3.28500401343 + 71768.5098813255 * t); result += 3.9e-10 * qCos(3.1123991069 + 96900.8132812911 * t); return result; } double GetEarthB1(double t) { double result = 0.0; result += 9.03e-08 * qCos(3.8972906189 + 5507.5532386674 * t); result += 6.177e-08 * qCos(1.73038850355 + 5223.6939198022 * t); result += 3.8e-08 * qCos(5.24404145734 + 2352.8661537718 * t); result += 2.834e-08 * qCos(2.4734503745 + 1577.3435424478 * t); result += 1.817e-08 * qCos(0.41874743765 + 6283.0758499914 * t); result += 1.499e-08 * qCos(1.83320979291 + 5856.4776591154 * t); result += 1.466e-08 * qCos(5.69401926017 + 5753.3848848968 * t); result += 1.301e-08 * qCos(2.18890066314 + 9437.762934887 * t); result += 1.233e-08 * qCos(4.95222451476 + 10213.285546211 * t); result += 1.021e-08 * qCos(0.12866660208 + 7860.4193924392 * t); result += 9.82e-09 * qCos(0.09005453285 + 14143.4952424306 * t); result += 8.65e-09 * qCos(1.73949953555 + 3930.2096962196 * t); result += 5.81e-09 * qCos(2.26949174067 + 5884.9268465832 * t); result += 5.24e-09 * qCos(5.65662503159 + 529.6909650946 * t); result += 4.73e-09 * qCos(6.22750969242 + 6309.3741697912 * t); result += 4.51e-09 * qCos(1.53288619213 + 18073.7049386502 * t); result += 3.64e-09 * qCos(3.61614477374 + 13367.9726311066 * t); result += 3.72e-09 * qCos(3.2247072132 + 6275.9623029906 * t); result += 2.68e-09 * qCos(2.34341267879 + 11790.6290886588 * t); result += 3.22e-09 * qCos(0.94084045832 + 6069.7767545534 * t); result += 2.32e-09 * qCos(0.26781182579 + 7058.5984613154 * t); result += 2.16e-09 * qCos(6.05952221329 + 10977.078804699 * t); result += 2.32e-09 * qCos(2.93325646109 + 22003.9146348698 * t); result += 2.04e-09 * qCos(3.86264841382 + 6496.3749454294 * t); result += 2.02e-09 * qCos(2.81892511133 + 15720.8387848784 * t); result += 1.85e-09 * qCos(4.93512381859 + 12036.4607348882 * t); result += 2.2e-09 * qCos(3.99305643742 + 6812.766815086 * t); result += 1.66e-09 * qCos(1.74970002999 + 11506.7697697936 * t); result += 2.12e-09 * qCos(1.57166285369 + 4694.0029547076 * t); result += 1.57e-09 * qCos(1.08259734788 + 5643.1785636774 * t); result += 1.54e-09 * qCos(5.99434678412 + 5486.777843175 * t); result += 1.44e-09 * qCos(5.23285656085 + 78051.5857313169 * t); result += 1.44e-09 * qCos(1.16454655948 + 90617.7374312997 * t); result += 1.37e-09 * qCos(2.67760436027 + 6290.1893969922 * t); result += 1.8e-09 * qCos(2.06509026215 + 7084.8967811152 * t); result += 1.21e-09 * qCos(5.90212574947 + 9225.539273283 * t); result += 1.5e-09 * qCos(2.00175038718 + 5230.807466803 * t); result += 1.49e-09 * qCos(5.06157254516 + 17298.1823273262 * t); result += 1.18e-09 * qCos(5.39979058038 + 3340.6124266998 * t); result += 1.61e-09 * qCos(3.32421999691 + 6283.3196674749 * t); result += 1.21e-09 * qCos(4.36722193162 + 19651.048481098 * t); result += 1.16e-09 * qCos(5.83462858507 + 4705.7323075436 * t); result += 1.28e-09 * qCos(4.35489873365 + 25934.1243310894 * t); result += 1.43e-09; result += 1.09e-09 * qCos(2.52157834166 + 6438.4962494256 * t); result += 9.9e-10 * qCos(2.70727488041 + 5216.5803728014 * t); result += 1.03e-09 * qCos(0.93782340879 + 8827.3902698748 * t); result += 8.2e-10 * qCos(4.2921468039 + 8635.9420037632 * t); result += 7.9e-10 * qCos(2.24085737326 + 1059.3819301892 * t); result += 9.7e-10 * qCos(5.50959692365 + 29864.334027309 * t); result += 7.2e-10 * qCos(0.21891639822 + 21228.3920235458 * t); result += 7.1e-10 * qCos(2.86755026812 + 6681.2248533996 * t); result += 7.4e-10 * qCos(2.20184828895 + 37724.7534197482 * t); result += 6.3e-10 * qCos(4.45586625948 + 7079.3738568078 * t); result += 6.1e-10 * qCos(0.63918772258 + 33794.5437235286 * t); result += 4.7e-10 * qCos(2.09070235724 + 3128.3887650958 * t); result += 4.7e-10 * qCos(3.325438433 + 26087.9031415742 * t); result += 4.9e-10 * qCos(1.60680905005 + 6702.5604938666 * t); result += 5.7e-10 * qCos(0.11215813438 + 29088.811415985 * t); result += 5.6e-10 * qCos(5.47982934911 + 775.522611324 * t); result += 5e-10 * qCos(1.89396788463 + 12139.5535091068 * t); result += 4.7e-10 * qCos(2.9721490724 + 20426.571092422 * t); result += 4.1e-10 * qCos(5.5532939489 + 11015.1064773348 * t); result += 4.1e-10 * qCos(5.91861144924 + 23581.2581773176 * t); result += 4.5e-10 * qCos(4.95273290181 + 5863.5912061162 * t); result += 5e-10 * qCos(3.62740835096 + 41654.9631159678 * t); result += 3.7e-10 * qCos(6.09033460601 + 64809.8055049413 * t); result += 3.7e-10 * qCos(5.86153655431 + 12566.1516999828 * t); result += 4.6e-10 * qCos(1.65798680284 + 25158.6017197654 * t); result += 3.8e-10 * qCos(2.00673650251 + 426.598190876 * t); result += 3.6e-10 * qCos(6.24373396652 + 6283.14316029419 * t); result += 3.6e-10 * qCos(0.40465162918 + 6283.0085396886 * t); result += 3.2e-10 * qCos(6.03707103538 + 2942.4634232916 * t); result += 4.1e-10 * qCos(4.86809570283 + 1592.5960136328 * t); result += 2.8e-10 * qCos(4.38359423735 + 7632.9432596502 * t); result += 2.8e-10 * qCos(6.03334294232 + 17789.845619785 * t); result += 2.6e-10 * qCos(3.88971333608 + 5331.3574437408 * t); result += 2.6e-10 * qCos(5.94932724051 + 16496.3613962024 * t); result += 3.1e-10 * qCos(1.44666331503 + 16730.4636895958 * t); result += 2.6e-10 * qCos(6.26376705837 + 23543.2305046818 * t); result += 3.3e-10 * qCos(0.93797239147 + 213.299095438 * t); result += 2.6e-10 * qCos(3.71858432944 + 13095.8426650774 * t); result += 2.7e-10 * qCos(0.60565274405 + 10988.808157535 * t); result += 2.3e-10 * qCos(4.4438898555 + 18849.2275499742 * t); result += 2.8e-10 * qCos(1.53862289477 + 6279.4854213396 * t); result += 2.8e-10 * qCos(1.96831814872 + 6286.6662786432 * t); result += 2.8e-10 * qCos(5.78094918529 + 15110.4661198662 * t); result += 2.6e-10 * qCos(2.48165809843 + 5729.506447149 * t); result += 2e-10 * qCos(3.85655029499 + 9623.6882766912 * t); result += 2.1e-10 * qCos(5.83006047147 + 7234.794256242 * t); result += 2.1e-10 * qCos(0.69628570421 + 398.1490034082 * t); result += 2.2e-10 * qCos(5.02222806555 + 6127.6554505572 * t); result += 2e-10 * qCos(3.4761126529 + 6148.010769956 * t); result += 2e-10 * qCos(0.90769829044 + 5481.2549188676 * t); result += 2e-10 * qCos(0.03081589303 + 6418.1409300268 * t); result += 2e-10 * qCos(3.74220084927 + 1589.0728952838 * t); result += 2.1e-10 * qCos(4.00149269576 + 3154.6870848956 * t); result += 1.8e-10 * qCos(1.58348238359 + 2118.7638603784 * t); result += 1.9e-10 * qCos(0.85407021371 + 14712.317116458 * t); return result; } double GetEarthB2(double t) { double result = 0.0; result += 1.662e-08 * qCos(1.62703209173 + 84334.6615813083 * t); result += 4.92e-09 * qCos(2.41382223971 + 1047.7473117547 * t); result += 3.44e-09 * qCos(2.24353004539 + 5507.5532386674 * t); result += 2.58e-09 * qCos(6.00906896311 + 5223.6939198022 * t); result += 1.31e-09 * qCos(0.9544734524 + 6283.0758499914 * t); result += 8.6e-10 * qCos(1.67530247303 + 7860.4193924392 * t); result += 9e-10 * qCos(0.97606804452 + 1577.3435424478 * t); result += 9e-10 * qCos(0.37899871725 + 2352.8661537718 * t); result += 8.9e-10 * qCos(6.25807507963 + 10213.285546211 * t); result += 7.5e-10 * qCos(0.84213523741 + 167621.575850862 * t); result += 5.2e-10 * qCos(1.70501566089 + 14143.4952424306 * t); result += 5.7e-10 * qCos(6.15295833679 + 12194.0329146209 * t); result += 5.1e-10 * qCos(1.2761601674 + 5753.3848848968 * t); result += 5.1e-10 * qCos(5.37229738682 + 6812.766815086 * t); result += 3.4e-10 * qCos(1.73672994279 + 7058.5984613154 * t); result += 3.8e-10 * qCos(2.77761031485 + 10988.808157535 * t); result += 4.6e-10 * qCos(3.38617099014 + 156475.290247996 * t); result += 2.1e-10 * qCos(1.95248349228 + 8827.3902698748 * t); result += 1.8e-10 * qCos(3.33419222028 + 8429.2412664666 * t); result += 1.9e-10 * qCos(4.32945160287 + 17789.845619785 * t); result += 1.7e-10 * qCos(0.66191210656 + 6283.0085396886 * t); result += 1.8e-10 * qCos(3.74885333072 + 11769.8536931664 * t); result += 1.7e-10 * qCos(4.23058370776 + 10977.078804699 * t); result += 1.7e-10 * qCos(1.78116162721 + 5486.777843175 * t); result += 2.1e-10 * qCos(1.36972913918 + 12036.4607348882 * t); result += 1.7e-10 * qCos(2.79601092529 + 796.2980068164 * t); result += 1.5e-10 * qCos(0.4308784885 + 11790.6290886588 * t); result += 1.7e-10 * qCos(1.35132152761 + 78051.5857313169 * t); result += 1.5e-10 * qCos(1.17032155085 + 213.299095438 * t); result += 1.8e-10 * qCos(2.85221514199 + 5088.6288397668 * t); result += 1.7e-10 * qCos(0.21780913672 + 6283.14316029419 * t); result += 1.3e-10 * qCos(1.21201504386 + 25132.3033999656 * t); result += 1.2e-10 * qCos(1.12953712197 + 90617.7374312997 * t); result += 1.2e-10 * qCos(5.13714452592 + 7079.3738568078 * t); result += 1.3e-10 * qCos(3.79842135217 + 4933.2084403326 * t); result += 1.2e-10 * qCos(4.89407978213 + 3738.761430108 * t); result += 1.5e-10 * qCos(6.05682328852 + 398.1490034082 * t); result += 1.4e-10 * qCos(4.81029291856 + 4694.0029547076 * t); result += 1.1e-10 * qCos(0.61684523405 + 3128.3887650958 * t); result += 1.1e-10 * qCos(5.328765385 + 6040.3472460174 * t); result += 1.4e-10 * qCos(5.27227350286 + 4535.0594369244 * t); result += 1.1e-10 * qCos(2.39292099451 + 5331.3574437408 * t); result += 1e-10 * qCos(4.4529653271 + 6525.8044539654 * t); result += 1.4e-10 * qCos(4.66400985037 + 8031.0922630584 * t); result += 1e-10 * qCos(3.22472385926 + 9437.762934887 * t); result += 1.1e-10 * qCos(3.80913404437 + 801.8209311238 * t); result += 1e-10 * qCos(5.15032130575 + 11371.7046897582 * t); result += 1.3e-10 * qCos(0.98720797401 + 5729.506447149 * t); result += 9e-11 * qCos(5.94191743597 + 7632.9432596502 * t); return result; } double GetEarthB3(double t) { double result = 0.0; result += 1.1e-10 * qCos(0.23877262399 + 7860.4193924392 * t); result += 9e-11 * qCos(1.16069982609 + 5507.5532386674 * t); result += 8e-11 * qCos(1.65357552925 + 5884.9268465832 * t); result += 8e-11 * qCos(2.86720038197 + 7058.5984613154 * t); result += 7e-11 * qCos(3.04818741666 + 5486.777843175 * t); result += 7e-11 * qCos(2.59437103785 + 529.6909650946 * t); result += 8e-11 * qCos(4.02863090524 + 6256.7775301916 * t); result += 8e-11 * qCos(2.42003508927 + 5753.3848848968 * t); result += 6e-11 * qCos(0.84181087594 + 6275.9623029906 * t); result += 6e-11 * qCos(5.40160929468 + 1577.3435424478 * t); result += 7e-11 * qCos(2.73399865247 + 6309.3741697912 * t); return result; } double GetEarthB4(double t) { double result = 0.0; result += 4e-11 * qCos(0.79662198849 + 6438.4962494256 * t); result += 5e-11 * qCos(0.84308705203 + 1047.7473117547 * t); result += 5e-11 * qCos(0.05711572303 + 84334.6615813083 * t); result += 3e-11 * qCos(3.46779895686 + 6279.5527316424 * t); result += 3e-11 * qCos(2.89822201212 + 6127.6554505572 * t); return result; } double GetEarthR0(double t) { double result = 0.0; result += 1.00013988799; result += 0.01670699626 * qCos(3.09846350771 + 6283.0758499914 * t); result += 0.00013956023 * qCos(3.0552460962 + 12566.1516999828 * t); result += 3.08372e-05 * qCos(5.19846674381 + 77713.7714681205 * t); result += 1.628461e-05 * qCos(1.17387749012 + 5753.3848848968 * t); result += 1.575568e-05 * qCos(2.84685245825 + 7860.4193924392 * t); result += 9.24799e-06 * qCos(5.45292234084 + 11506.7697697936 * t); result += 5.42444e-06 * qCos(4.56409149777 + 3930.2096962196 * t); result += 4.7211e-06 * qCos(3.66100022149 + 5884.9268465832 * t); result += 3.2878e-06 * qCos(5.89983646482 + 5223.6939198022 * t); result += 3.45983e-06 * qCos(0.96368617687 + 5507.5532386674 * t); result += 3.06784e-06 * qCos(0.29867139512 + 5573.1428014331 * t); result += 1.74844e-06 * qCos(3.01193636534 + 18849.2275499742 * t); result += 2.43189e-06 * qCos(4.27349536153 + 11790.6290886588 * t); result += 2.11829e-06 * qCos(5.84714540314 + 1577.3435424478 * t); result += 1.85752e-06 * qCos(5.02194447178 + 10977.078804699 * t); result += 1.09835e-06 * qCos(5.05510636285 + 5486.777843175 * t); result += 9.8316e-07 * qCos(0.88681311277 + 6069.7767545534 * t); result += 8.6499e-07 * qCos(5.68959778254 + 15720.8387848784 * t); result += 8.5825e-07 * qCos(1.27083733351 + 161000.685737674 * t); result += 6.2916e-07 * qCos(0.92177108832 + 529.6909650946 * t); result += 5.7056e-07 * qCos(2.01374292014 + 83996.8473181119 * t); result += 6.4903e-07 * qCos(0.27250613787 + 17260.1546546904 * t); result += 4.9384e-07 * qCos(3.24501240359 + 2544.3144198834 * t); result += 5.5736e-07 * qCos(5.24159798933 + 71430.6956181291 * t); result += 4.2515e-07 * qCos(6.01110242003 + 6275.9623029906 * t); result += 4.6963e-07 * qCos(2.57805070386 + 775.522611324 * t); result += 3.8968e-07 * qCos(5.36071738169 + 4694.0029547076 * t); result += 4.4661e-07 * qCos(5.53715807302 + 9437.762934887 * t); result += 3.566e-07 * qCos(1.67468058995 + 12036.4607348882 * t); result += 3.1921e-07 * qCos(0.18368229781 + 5088.6288397668 * t); result += 3.1846e-07 * qCos(1.77775642085 + 398.1490034082 * t); result += 3.3193e-07 * qCos(0.24370300098 + 7084.8967811152 * t); result += 3.8245e-07 * qCos(2.39255343974 + 8827.3902698748 * t); result += 2.8464e-07 * qCos(1.21344868176 + 6286.5989683404 * t); result += 3.749e-07 * qCos(0.82952922332 + 19651.048481098 * t); result += 3.6957e-07 * qCos(4.90107591914 + 12139.5535091068 * t); result += 3.4537e-07 * qCos(1.84270693282 + 2942.4634232916 * t); result += 2.6275e-07 * qCos(4.58896850401 + 10447.3878396044 * t); result += 2.4596e-07 * qCos(3.78660875483 + 8429.2412664666 * t); result += 2.3587e-07 * qCos(0.26866117066 + 796.2980068164 * t); result += 2.7793e-07 * qCos(1.89934330904 + 6279.5527316424 * t); result += 2.3927e-07 * qCos(4.99598548138 + 5856.4776591154 * t); result += 2.0349e-07 * qCos(4.65267995431 + 2146.1654164752 * t); result += 2.3287e-07 * qCos(2.80783650928 + 14143.4952424306 * t); result += 2.2103e-07 * qCos(1.95004702988 + 3154.6870848956 * t); result += 1.9506e-07 * qCos(5.38227371393 + 2352.8661537718 * t); result += 1.7958e-07 * qCos(0.19871379385 + 6812.766815086 * t); result += 1.7174e-07 * qCos(4.43315560735 + 10213.285546211 * t); result += 1.619e-07 * qCos(5.23160507859 + 17789.845619785 * t); result += 1.7314e-07 * qCos(6.15200787916 + 16730.4636895958 * t); result += 1.3814e-07 * qCos(5.18962074032 + 8031.0922630584 * t); result += 1.8833e-07 * qCos(0.67306674027 + 149854.400134808 * t); result += 1.8331e-07 * qCos(2.25348733734 + 23581.2581773176 * t); result += 1.3641e-07 * qCos(3.68516118804 + 4705.7323075436 * t); result += 1.3139e-07 * qCos(0.65289581324 + 13367.9726311066 * t); result += 1.0414e-07 * qCos(4.33285688538 + 11769.8536931664 * t); result += 9.978e-08 * qCos(4.20126336355 + 6309.3741697912 * t); result += 1.0169e-07 * qCos(1.59390681369 + 4690.4798363586 * t); result += 7.564e-08 * qCos(2.6256059739 + 6256.7775301916 * t); result += 9.661e-08 * qCos(3.6758679122 + 27511.4678735372 * t); result += 6.743e-08 * qCos(0.56270332741 + 3340.6124266998 * t); result += 8.743e-08 * qCos(6.06359123461 + 1748.016413067 * t); result += 7.786e-08 * qCos(3.67371235637 + 12168.0026965746 * t); result += 6.633e-08 * qCos(5.66149277792 + 11371.7046897582 * t); result += 7.712e-08 * qCos(0.31242577789 + 7632.9432596502 * t); result += 6.592e-08 * qCos(3.13576266188 + 801.8209311238 * t); result += 7.46e-08 * qCos(5.64757188143 + 11926.2544136688 * t); result += 6.933e-08 * qCos(2.923845864 + 6681.2248533996 * t); result += 6.802e-08 * qCos(1.4232980642 + 23013.5395395872 * t); result += 6.115e-08 * qCos(5.13393615454 + 1194.4470102246 * t); result += 6.477e-08 * qCos(2.64986648492 + 19804.8272915828 * t); result += 5.233e-08 * qCos(4.62434053374 + 6438.4962494256 * t); result += 6.147e-08 * qCos(3.02863936662 + 233141.314404362 * t); result += 4.608e-08 * qCos(1.72194702724 + 7234.794256242 * t); result += 4.221e-08 * qCos(1.55697533729 + 7238.6755916 * t); result += 5.314e-08 * qCos(2.40716580847 + 11499.6562227928 * t); result += 5.128e-08 * qCos(5.3239896569 + 11513.8833167944 * t); result += 4.77e-08 * qCos(0.25554312006 + 11856.2186514245 * t); result += 5.519e-08 * qCos(2.09089154502 + 17298.1823273262 * t); result += 5.625e-08 * qCos(4.34052903053 + 90955.5516944961 * t); result += 4.578e-08 * qCos(4.4656964157 + 5746.271337896 * t); result += 3.788e-08 * qCos(4.9072938351 + 4164.311989613 * t); result += 5.337e-08 * qCos(5.09957905104 + 31441.6775697568 * t); result += 3.967e-08 * qCos(1.20054555174 + 1349.8674096588 * t); result += 4.008e-08 * qCos(3.03007204392 + 1059.3819301892 * t); result += 3.476e-08 * qCos(0.7608027703 + 10973.55568635 * t); result += 4.232e-08 * qCos(1.05485713117 + 5760.4984318976 * t); result += 4.582e-08 * qCos(3.76570026763 + 6386.16862421 * t); result += 3.335e-08 * qCos(3.13829943354 + 6836.6452528338 * t); result += 3.418e-08 * qCos(3.00072390334 + 4292.3308329504 * t); result += 3.598e-08 * qCos(5.70718084323 + 5643.1785636774 * t); result += 3.237e-08 * qCos(4.16448773994 + 9917.6968745098 * t); result += 4.154e-08 * qCos(2.59941292162 + 7058.5984613154 * t); result += 3.362e-08 * qCos(4.54577697964 + 4732.0306273434 * t); result += 2.978e-08 * qCos(1.3056126882 + 6283.14316029419 * t); result += 2.765e-08 * qCos(0.51311975679 + 26.2983197998 * t); result += 2.802e-08 * qCos(5.66263240521 + 8635.9420037632 * t); result += 2.927e-08 * qCos(5.73787481548 + 16200.7727245012 * t); result += 3.164e-08 * qCos(1.69140262657 + 11015.1064773348 * t); result += 2.598e-08 * qCos(2.96244118586 + 25132.3033999656 * t); result += 3.519e-08 * qCos(3.62639325753 + 244287.600007228 * t); result += 2.676e-08 * qCos(4.2072570085 + 18073.7049386502 * t); result += 2.978e-08 * qCos(1.74971565805 + 6283.0085396886 * t); result += 2.287e-08 * qCos(1.06975704977 + 14314.1681130498 * t); result += 2.863e-08 * qCos(5.92838131397 + 14712.317116458 * t); result += 3.071e-08 * qCos(0.23793217002 + 35371.8872659764 * t); result += 2.656e-08 * qCos(0.8995930178 + 12352.8526045448 * t); result += 2.415e-08 * qCos(2.79975176257 + 709.9330485583 * t); result += 2.814e-08 * qCos(3.51488206882 + 21228.3920235458 * t); result += 1.977e-08 * qCos(2.6135829755 + 951.7184062506 * t); result += 2.548e-08 * qCos(2.47684686575 + 6208.2942514241 * t); result += 1.999e-08 * qCos(0.5609038816 + 7079.3738568078 * t); result += 2.305e-08 * qCos(1.05376461628 + 22483.8485744926 * t); result += 1.855e-08 * qCos(2.86090681163 + 5216.5803728014 * t); result += 2.157e-08 * qCos(1.31396741861 + 154717.609887683 * t); result += 1.97e-08 * qCos(4.36929875289 + 167283.761587666 * t); result += 1.635e-08 * qCos(5.85571606764 + 10984.1923516998 * t); result += 1.754e-08 * qCos(2.14452408833 + 6290.1893969922 * t); result += 2.154e-08 * qCos(6.03828341543 + 10873.9860304804 * t); result += 1.714e-08 * qCos(3.70157691113 + 1592.5960136328 * t); result += 1.541e-08 * qCos(6.21598380732 + 23543.2305046818 * t); result += 1.611e-08 * qCos(1.99824499377 + 10969.9652576982 * t); result += 1.712e-08 * qCos(1.34295663542 + 3128.3887650958 * t); result += 1.642e-08 * qCos(5.55026665339 + 6496.3749454294 * t); result += 1.502e-08 * qCos(5.43948825854 + 155.4203994342 * t); result += 1.827e-08 * qCos(5.91227480261 + 3738.761430108 * t); result += 1.726e-08 * qCos(2.16764983583 + 10575.4066829418 * t); result += 1.532e-08 * qCos(5.3568310707 + 13521.7514415914 * t); result += 1.829e-08 * qCos(1.66006148731 + 39302.096962196 * t); result += 1.605e-08 * qCos(1.90928637633 + 6133.5126528568 * t); result += 1.282e-08 * qCos(2.46014880418 + 13916.0191096416 * t); result += 1.211e-08 * qCos(4.4136063155 + 3894.1818295422 * t); result += 1.394e-08 * qCos(1.77801929354 + 9225.539273283 * t); result += 1.571e-08 * qCos(4.95512957592 + 25158.6017197654 * t); result += 1.205e-08 * qCos(1.19212540615 + 3.523118349 * t); result += 1.132e-08 * qCos(2.69830084955 + 6040.3472460174 * t); result += 1.504e-08 * qCos(5.77002730341 + 18209.3302636602 * t); result += 1.393e-08 * qCos(1.62621805428 + 5120.6011455836 * t); result += 1.077e-08 * qCos(2.93931554233 + 17256.6315363414 * t); result += 1.232e-08 * qCos(0.71655165307 + 143571.324284816 * t); result += 1.087e-08 * qCos(0.99769687939 + 955.5997416086 * t); result += 1.068e-08 * qCos(5.28472576231 + 65147.6197681377 * t); result += 9.8e-09 * qCos(5.10949204607 + 6172.869528772 * t); result += 1.169e-08 * qCos(3.11664290862 + 14945.3161735544 * t); result += 1.202e-08 * qCos(4.02992510402 + 553.5694028424 * t); result += 9.79e-09 * qCos(2.00000879212 + 15110.4661198662 * t); result += 9.62e-09 * qCos(4.023807714 + 6282.0955289232 * t); result += 9.99e-09 * qCos(3.6264300279 + 6262.300454499 * t); result += 1.03e-08 * qCos(5.84989900289 + 213.299095438 * t); result += 1.014e-08 * qCos(2.84221578218 + 8662.240323563 * t); result += 1.185e-08 * qCos(1.51330541132 + 17654.7805397496 * t); result += 9.67e-09 * qCos(2.67081017562 + 5650.2921106782 * t); result += 1.222e-08 * qCos(2.65423784904 + 88860.0570709867 * t); result += 9.81e-09 * qCos(2.36370360283 + 6206.8097787158 * t); result += 1.033e-08 * qCos(0.13874927606 + 11712.9553182308 * t); result += 1.103e-08 * qCos(3.08477302937 + 43232.3066584156 * t); result += 7.81e-09 * qCos(2.53372735932 + 16496.3613962024 * t); result += 1.019e-08 * qCos(3.04569392376 + 6037.244203762 * t); result += 7.95e-09 * qCos(5.80662989111 + 5230.807466803 * t); result += 8.13e-09 * qCos(3.57710279439 + 10177.2576795336 * t); result += 9.62e-09 * qCos(5.31470594766 + 6284.0561710596 * t); result += 7.21e-09 * qCos(5.96264301567 + 12559.038152982 * t); result += 9.66e-09 * qCos(2.74714939953 + 6244.9428143536 * t); result += 9.21e-09 * qCos(0.10155275926 + 29088.811415985 * t); result += 6.92e-09 * qCos(3.89764447548 + 1589.0728952838 * t); result += 7.19e-09 * qCos(5.91791450402 + 4136.9104335162 * t); result += 7.72e-09 * qCos(4.05505682353 + 6127.6554505572 * t); result += 7.12e-09 * qCos(5.49291532439 + 22003.9146348698 * t); result += 6.72e-09 * qCos(1.60700490811 + 11087.2851259184 * t); result += 6.9e-09 * qCos(4.50539825563 + 426.598190876 * t); result += 8.54e-09 * qCos(3.26104981596 + 20426.571092422 * t); result += 6.56e-09 * qCos(4.3241018294 + 16858.4825329332 * t); result += 8.4e-09 * qCos(2.59572585222 + 28766.924424484 * t); result += 6.92e-09 * qCos(0.61650089011 + 11403.676995575 * t); result += 7e-09 * qCos(3.40901167143 + 7.1135470008 * t); result += 7.26e-09 * qCos(0.04243053594 + 5481.2549188676 * t); result += 5.57e-09 * qCos(4.78317696534 + 20199.094959633 * t); result += 6.49e-09 * qCos(1.04027912958 + 6062.6632075526 * t); result += 6.33e-09 * qCos(5.70229959167 + 45892.730433157 * t); result += 5.92e-09 * qCos(6.11836729658 + 9623.6882766912 * t); result += 5.23e-09 * qCos(3.62840021266 + 5333.9002410216 * t); result += 6.04e-09 * qCos(5.57734696185 + 10344.2950653858 * t); result += 4.96e-09 * qCos(2.21023499449 + 1990.745017041 * t); result += 6.91e-09 * qCos(1.96071732602 + 12416.5885028482 * t); result += 6.4e-09 * qCos(1.59074172032 + 18319.5365848796 * t); result += 6.25e-09 * qCos(3.82362791378 + 13517.8701062334 * t); result += 6.63e-09 * qCos(5.08444996779 + 283.8593188652 * t); result += 4.75e-09 * qCos(1.17025894287 + 12569.6748183318 * t); result += 6.64e-09 * qCos(4.50029469969 + 47162.5163546352 * t); result += 5.69e-09 * qCos(0.16310365162 + 17267.2682016912 * t); result += 5.68e-09 * qCos(3.86100969474 + 6076.8903015542 * t); result += 5.39e-09 * qCos(4.83282276086 + 18422.6293590982 * t); result += 4.66e-09 * qCos(0.75872342878 + 7342.4577801806 * t); result += 5.41e-09 * qCos(3.07212190507 + 226858.23855437 * t); result += 4.58e-09 * qCos(0.26774483096 + 4590.910180489 * t); result += 6.1e-09 * qCos(1.53597051291 + 33019.0211122046 * t); result += 6.17e-09 * qCos(2.62356328726 + 11190.377900137 * t); result += 5.48e-09 * qCos(4.55798855791 + 18875.525869774 * t); result += 6.33e-09 * qCos(4.60110281228 + 66567.4858652543 * t); result += 5.96e-09 * qCos(5.78202396722 + 632.7837393132 * t); result += 5.33e-09 * qCos(5.01786882904 + 12132.439962106 * t); result += 6.03e-09 * qCos(5.38458554802 + 316428.228673915 * t); result += 4.69e-09 * qCos(0.59168241917 + 21954.157609398 * t); result += 5.48e-09 * qCos(3.50613163558 + 17253.0411076896 * t); result += 5.02e-09 * qCos(0.98804327589 + 11609.8625440122 * t); result += 5.68e-09 * qCos(1.98497313089 + 7668.6374249425 * t); result += 4.82e-09 * qCos(1.62141803864 + 12146.6670561076 * t); result += 3.91e-09 * qCos(3.68718382989 + 18052.9295431578 * t); result += 4.57e-09 * qCos(3.7720573734 + 156137.475984799 * t); result += 4.01e-09 * qCos(5.28260651958 + 15671.0817594066 * t); result += 4.69e-09 * qCos(1.80963184268 + 12562.6285816338 * t); result += 5.08e-09 * qCos(3.36399024699 + 20597.2439630412 * t); result += 4.5e-09 * qCos(5.6605429925 + 10454.5013866052 * t); result += 3.75e-09 * qCos(4.98534633105 + 9779.1086761254 * t); result += 5.23e-09 * qCos(0.97215560834 + 155427.542936241 * t); result += 4.03e-09 * qCos(5.13939866506 + 1551.045222648 * t); result += 3.72e-09 * qCos(3.69883738807 + 9388.0059094152 * t); result += 3.67e-09 * qCos(4.43875659716 + 4535.0594369244 * t); result += 4.06e-09 * qCos(4.208631566 + 12592.4500197826 * t); result += 3.6e-09 * qCos(2.53924644657 + 242.728603974 * t); result += 4.71e-09 * qCos(4.61907324819 + 5436.9930152402 * t); result += 4.41e-09 * qCos(5.83872966262 + 3496.032826134 * t); result += 3.85e-09 * qCos(4.94496680973 + 24356.7807886416 * t); result += 3.49e-09 * qCos(6.15018231784 + 19800.9459562248 * t); result += 3.55e-09 * qCos(0.21895678106 + 5429.8794682394 * t); result += 3.44e-09 * qCos(5.62993724928 + 2379.1644735716 * t); result += 3.8e-09 * qCos(2.72105213143 + 11933.3679606696 * t); result += 4.32e-09 * qCos(0.24221790536 + 17996.0311682222 * t); result += 3.78e-09 * qCos(5.22517556974 + 7477.522860216 * t); result += 3.37e-09 * qCos(5.10888041439 + 5849.3641121146 * t); result += 3.15e-09 * qCos(0.57827745123 + 10557.5941608238 * t); result += 3.18e-09 * qCos(4.49953141399 + 3634.6210245184 * t); result += 3.23e-09 * qCos(1.54274281393 + 10440.2742926036 * t); result += 3.09e-09 * qCos(5.76839284397 + 20.7753954924 * t); result += 3.01e-09 * qCos(2.34727604008 + 4686.8894077068 * t); result += 4.14e-09 * qCos(5.9323760231 + 51092.7260508548 * t); result += 3.61e-09 * qCos(2.1639860955 + 28237.2334593894 * t); result += 2.88e-09 * qCos(0.18376252189 + 13095.8426650774 * t); result += 2.77e-09 * qCos(5.12952205045 + 13119.7211028252 * t); result += 3.27e-09 * qCos(6.19222146204 + 6268.8487559898 * t); result += 2.73e-09 * qCos(0.30522428863 + 23141.5583829246 * t); result += 2.67e-09 * qCos(5.76152585786 + 5966.6839803348 * t); result += 3.08e-09 * qCos(5.99280509979 + 22805.7355659936 * t); result += 3.45e-09 * qCos(2.92489919444 + 36949.2308084242 * t); result += 2.53e-09 * qCos(5.20995219509 + 24072.9214697764 * t); result += 3.42e-09 * qCos(5.72702586209 + 16460.333529525 * t); result += 2.61e-09 * qCos(2.00304796059 + 6148.010769956 * t); result += 2.38e-09 * qCos(5.08264392839 + 6915.8595893046 * t); result += 2.49e-09 * qCos(2.94762789744 + 135.0650800354 * t); result += 3.06e-09 * qCos(3.89764686987 + 10988.808157535 * t); result += 3.05e-09 * qCos(0.05827812117 + 4701.1165017084 * t); result += 3.19e-09 * qCos(2.95712862064 + 163096.180361183 * t); result += 2.09e-09 * qCos(4.43768461442 + 6546.1597733642 * t); result += 2.7e-09 * qCos(2.06643178717 + 4804.209275927 * t); result += 2.17e-09 * qCos(0.73691592312 + 6303.8512454838 * t); result += 2.06e-09 * qCos(0.32075959415 + 25934.1243310894 * t); result += 2.18e-09 * qCos(0.18428135264 + 28286.9904848612 * t); result += 2.05e-09 * qCos(5.21312087405 + 20995.3929664494 * t); result += 1.99e-09 * qCos(0.44384292491 + 16737.5772365966 * t); result += 2.3e-09 * qCos(6.06567392849 + 6287.0080032545 * t); result += 2.19e-09 * qCos(1.291942163 + 5326.7866940208 * t); result += 2.01e-09 * qCos(1.74700937253 + 22743.4093795164 * t); result += 2.07e-09 * qCos(4.45440927276 + 6279.4854213396 * t); result += 2.69e-09 * qCos(6.0564044503 + 64471.9912417449 * t); result += 1.9e-09 * qCos(0.99256176518 + 29296.6153895786 * t); result += 2.38e-09 * qCos(5.42471431221 + 39609.6545831656 * t); result += 2.62e-09 * qCos(5.26961924198 + 522.5774180938 * t); result += 2.1e-09 * qCos(4.68618183158 + 6254.6266625236 * t); result += 1.97e-09 * qCos(2.8062455408 + 4933.2084403326 * t); result += 2.52e-09 * qCos(4.36220154608 + 40879.4405046438 * t); result += 2.61e-09 * qCos(1.07241516738 + 55022.9357470744 * t); result += 1.89e-09 * qCos(3.82966734476 + 419.4846438752 * t); result += 1.85e-09 * qCos(4.14324541379 + 5642.1982426092 * t); result += 2.47e-09 * qCos(3.44855612987 + 6702.5604938666 * t); result += 2.05e-09 * qCos(4.04424043223 + 536.8045120954 * t); result += 1.91e-09 * qCos(3.14082686083 + 16723.350142595 * t); result += 2.22e-09 * qCos(5.16263907319 + 23539.7073863328 * t); result += 1.8e-09 * qCos(4.56214752149 + 6489.2613984286 * t); result += 2.19e-09 * qCos(0.80382553358 + 16627.3709153772 * t); result += 2.27e-09 * qCos(0.60156339452 + 5905.7022420756 * t); result += 1.68e-09 * qCos(0.88753528161 + 16062.1845261168 * t); result += 1.58e-09 * qCos(0.92127725775 + 23937.856389741 * t); result += 1.57e-09 * qCos(4.69607868164 + 6805.6532680852 * t); result += 2.07e-09 * qCos(4.88410451334 + 6286.6662786432 * t); result += 1.6e-09 * qCos(4.95943826846 + 10021.8372800994 * t); result += 1.66e-09 * qCos(0.97126433565 + 3097.88382272579 * t); result += 2.09e-09 * qCos(5.75663411805 + 3646.3503773544 * t); result += 1.75e-09 * qCos(6.12762824412 + 239424.390254353 * t); result += 1.73e-09 * qCos(3.13887234973 + 6179.9830757728 * t); result += 1.57e-09 * qCos(3.62822058179 + 18451.078546566 * t); result += 1.57e-09 * qCos(4.67695912235 + 6709.6740408674 * t); result += 1.46e-09 * qCos(3.09506069735 + 4907.3020501456 * t); result += 1.65e-09 * qCos(2.2713912876 + 10660.6869350424 * t); result += 2.01e-09 * qCos(1.67701267433 + 2107.0345075424 * t); result += 1.44e-09 * qCos(3.96947747592 + 6019.9919266186 * t); result += 1.71e-09 * qCos(5.91302216729 + 6058.7310542895 * t); result += 1.44e-09 * qCos(2.1315565512 + 26084.0218062162 * t); result += 1.51e-09 * qCos(0.67417383554 + 2388.8940204492 * t); result += 1.89e-09 * qCos(5.07122281033 + 263.0839233728 * t); result += 1.46e-09 * qCos(5.10373877968 + 10770.8932562618 * t); result += 1.87e-09 * qCos(1.23915444627 + 19402.7969528166 * t); result += 1.74e-09 * qCos(0.08407293391 + 9380.9596727172 * t); result += 1.37e-09 * qCos(1.26247412309 + 12566.2190102856 * t); result += 1.37e-09 * qCos(3.52826010842 + 639.897286314 * t); result += 1.48e-09 * qCos(1.76124372592 + 5888.4499649322 * t); result += 1.64e-09 * qCos(2.39195095081 + 6357.8574485587 * t); result += 1.46e-09 * qCos(2.43675816553 + 5881.4037282342 * t); result += 1.61e-09 * qCos(1.15721259372 + 26735.9452622132 * t); result += 1.31e-09 * qCos(2.51859277344 + 6599.467719648 * t); result += 1.53e-09 * qCos(5.85203687779 + 6281.5913772831 * t); result += 1.51e-09 * qCos(3.72338532649 + 12669.2444742014 * t); result += 1.32e-09 * qCos(2.38417741883 + 6525.8044539654 * t); result += 1.29e-09 * qCos(0.75556744143 + 5017.508371365 * t); result += 1.27e-09 * qCos(0.00254936441 + 10027.9031957292 * t); result += 1.48e-09 * qCos(2.85102145528 + 6418.1409300268 * t); result += 1.43e-09 * qCos(5.74460279367 + 26087.9031415742 * t); result += 1.72e-09 * qCos(0.4128996224 + 174242.46596405 * t); result += 1.36e-09 * qCos(4.15497742275 + 6311.5250374592 * t); result += 1.7e-09 * qCos(5.98194913129 + 327574.514276781 * t); result += 1.24e-09 * qCos(1.65497607604 + 32217.2001810808 * t); result += 1.36e-09 * qCos(2.48430783417 + 13341.6743113068 * t); result += 1.65e-09 * qCos(2.496679246 + 58953.145443294 * t); result += 1.23e-09 * qCos(3.45660563754 + 6277.552925684 * t); result += 1.17e-09 * qCos(0.86065134175 + 6245.0481773556 * t); result += 1.49e-09 * qCos(5.61358280963 + 5729.506447149 * t); result += 1.53e-09 * qCos(0.2686002995 + 245.8316462294 * t); result += 1.28e-09 * qCos(0.71204006588 + 103.0927742186 * t); result += 1.59e-09 * qCos(2.43166592149 + 221995.028801495 * t); result += 1.3e-09 * qCos(2.80707316718 + 6016.4688082696 * t); result += 1.37e-09 * qCos(1.70657709294 + 12566.08438968 * t); result += 1.11e-09 * qCos(1.56305648432 + 17782.7320727842 * t); result += 1.13e-09 * qCos(3.58302904101 + 25685.872802808 * t); result += 1.09e-09 * qCos(3.26403795962 + 6819.8803620868 * t); result += 1.22e-09 * qCos(0.34120688217 + 1162.4747044078 * t); result += 1.19e-09 * qCos(5.84644718278 + 12721.572099417 * t); result += 1.44e-09 * qCos(2.28899679126 + 12489.8856287072 * t); result += 1.37e-09 * qCos(5.82029768354 + 44809.6502008634 * t); result += 1.07e-09 * qCos(2.4281854414 + 5547.1993364596 * t); result += 1.34e-09 * qCos(1.26539982939 + 5331.3574437408 * t); result += 1.03e-09 * qCos(5.96518130595 + 6321.1035226272 * t); result += 1.09e-09 * qCos(0.33808549034 + 11300.5842213564 * t); result += 1.29e-09 * qCos(5.89187277327 + 12029.3471878874 * t); result += 1.22e-09 * qCos(5.77325634636 + 11919.140866668 * t); result += 1.07e-09 * qCos(6.2499898935 + 77690.7595057385 * t); result += 1.07e-09 * qCos(1.00535580713 + 77736.7834305025 * t); result += 1.43e-09 * qCos(0.24122178432 + 4214.0690150848 * t); result += 1.43e-09 * qCos(0.88529649733 + 7576.560073574 * t); result += 1.07e-09 * qCos(2.92124030496 + 31415.379249957 * t); result += 9.9e-10 * qCos(5.70862227072 + 5540.0857894588 * t); result += 1.1e-09 * qCos(0.37528037383 + 5863.5912061162 * t); result += 1.04e-09 * qCos(4.44107178366 + 2118.7638603784 * t); result += 9.8e-10 * qCos(5.95877916706 + 4061.2192153944 * t); result += 1.13e-09 * qCos(1.24206857385 + 84672.4758445047 * t); result += 1.24e-09 * qCos(2.55619029867 + 12539.853380183 * t); result += 1.1e-09 * qCos(3.66952094329 + 238004.524157236 * t); result += 1.12e-09 * qCos(4.32512422943 + 97238.6275444875 * t); result += 9.7e-10 * qCos(3.70151541181 + 11720.0688652316 * t); result += 1.2e-09 * qCos(1.26895630252 + 12043.574281889 * t); result += 9.4e-10 * qCos(2.56461130309 + 19004.6479494084 * t); result += 1.17e-09 * qCos(3.65425622684 + 34520.3093093808 * t); result += 9.8e-10 * qCos(0.13589994287 + 11080.1715789176 * t); result += 9.7e-10 * qCos(5.38330115253 + 7834.1210726394 * t); result += 9.7e-10 * qCos(2.46722096722 + 71980.6335747312 * t); result += 9.5e-10 * qCos(5.36958330451 + 6288.5987742988 * t); result += 1.11e-09 * qCos(5.01961920313 + 11823.1616394502 * t); result += 9e-10 * qCos(2.72299804525 + 26880.3198130326 * t); result += 9.9e-10 * qCos(0.90164266377 + 18635.9284545362 * t); result += 1.26e-09 * qCos(4.78722177847 + 305281.943071049 * t); result += 9.3e-10 * qCos(0.21240380046 + 18139.2945014159 * t); result += 1.24e-09 * qCos(5.00979495566 + 172146.97134054 * t); result += 9.9e-10 * qCos(5.67090026475 + 16522.6597160022 * t); result += 9.2e-10 * qCos(2.28180963676 + 12491.3701014155 * t); result += 9e-10 * qCos(4.50544881196 + 40077.61957352 * t); result += 1e-09 * qCos(2.00639461612 + 12323.4230960088 * t); result += 9.5e-10 * qCos(5.68801979087 + 14919.0178537546 * t); result += 8.7e-10 * qCos(1.86043406047 + 27707.5424942948 * t); result += 1.05e-09 * qCos(3.02903468417 + 22345.2603761082 * t); result += 8.7e-10 * qCos(5.43970168638 + 6272.0301497275 * t); result += 8.9e-10 * qCos(1.63389387182 + 33326.5787331742 * t); result += 8.2e-10 * qCos(5.58298993353 + 10241.2022911672 * t); result += 9.4e-10 * qCos(5.47749711149 + 9924.8104215106 * t); result += 8.2e-10 * qCos(4.71988314145 + 15141.390794312 * t); result += 9.7e-10 * qCos(5.61458778738 + 2787.0430238574 * t); result += 9.6e-10 * qCos(3.89073946348 + 6379.0550772092 * t); result += 8.1e-10 * qCos(3.13038482444 + 36147.4098773004 * t); result += 1.1e-09 * qCos(4.89978492291 + 72140.6286666874 * t); result += 9.7e-10 * qCos(5.20764563059 + 6303.4311693902 * t); result += 8.2e-10 * qCos(5.26342716139 + 9814.6041002912 * t); result += 1.09e-09 * qCos(2.3555558977 + 83286.9142695536 * t); result += 9.7e-10 * qCos(2.58492958057 + 30666.1549584328 * t); result += 9.3e-10 * qCos(1.32651591333 + 23020.653086588 * t); result += 7.8e-10 * qCos(3.99588630754 + 11293.4706743556 * t); result += 9e-10 * qCos(0.57771932738 + 26482.1708096244 * t); result += 1.06e-09 * qCos(3.92012705073 + 62883.3551395136 * t); result += 9.8e-10 * qCos(2.94397773524 + 316.3918696566 * t); result += 7.6e-10 * qCos(3.96310417608 + 29026.4852295078 * t); result += 7.8e-10 * qCos(1.97068529306 + 90279.9231681033 * t); result += 7.6e-10 * qCos(0.23027966596 + 21424.4666443034 * t); result += 8e-10 * qCos(2.23099742212 + 266.6070417218 * t); result += 7.9e-10 * qCos(1.46227790922 + 8982.810669309 * t); result += 1.02e-09 * qCos(4.92129953565 + 5621.8429232104 * t); result += 1e-09 * qCos(0.39243148321 + 24279.1070182136 * t); result += 7.1e-10 * qCos(1.52014858474 + 33794.5437235286 * t); result += 7.6e-10 * qCos(0.22880641443 + 57375.8019008462 * t); result += 9.1e-10 * qCos(0.96515913904 + 48739.859897083 * t); result += 7.5e-10 * qCos(2.77638585157 + 12964.300703391 * t); result += 7.7e-10 * qCos(5.18846946344 + 11520.9968637952 * t); result += 6.8e-10 * qCos(0.50006599129 + 4274.5183108324 * t); result += 7.5e-10 * qCos(2.07323762803 + 15664.0355227086 * t); result += 7.4e-10 * qCos(1.01884134928 + 6393.2821712108 * t); result += 7.7e-10 * qCos(0.4666517878 + 16207.886271502 * t); result += 8.1e-10 * qCos(4.10452219483 + 161710.618786232 * t); result += 6.7e-10 * qCos(3.83840630887 + 6262.7205305926 * t); result += 7.1e-10 * qCos(3.91415523291 + 7875.6718636242 * t); result += 8.1e-10 * qCos(0.91938383237 + 74.7815985673 * t); result += 8.3e-10 * qCos(4.69916218791 + 23006.4259925864 * t); result += 6.3e-10 * qCos(2.32556465878 + 6279.1945146334 * t); result += 6.5e-10 * qCos(5.41938745446 + 28628.3362260996 * t); result += 6.5e-10 * qCos(3.02336771694 + 5959.570433334 * t); result += 6.4e-10 * qCos(3.3103319837 + 2636.725472637 * t); result += 6.4e-10 * qCos(0.18375587519 + 1066.49547719 * t); result += 8e-10 * qCos(5.81239171612 + 12341.8069042809 * t); result += 6.6e-10 * qCos(2.15105504851 + 38.0276726358 * t); result += 6.2e-10 * qCos(2.43313614978 + 10138.1095169486 * t); result += 6e-10 * qCos(3.1615390647 + 5490.300961524 * t); result += 6.9e-10 * qCos(0.30764736334 + 7018.9523635232 * t); result += 6.8e-10 * qCos(2.24442548639 + 24383.0791084414 * t); result += 7.8e-10 * qCos(1.39649386463 + 9411.4646150872 * t); result += 6.3e-10 * qCos(0.72976362625 + 6286.9571853494 * t); result += 7.3e-10 * qCos(4.95125917731 + 6453.7487206106 * t); result += 7.8e-10 * qCos(0.32736023459 + 6528.9074962208 * t); result += 5.9e-10 * qCos(4.95362151577 + 35707.7100829074 * t); result += 7e-10 * qCos(2.37962727525 + 15508.6151232744 * t); result += 7.3e-10 * qCos(1.35229143111 + 5327.4761083828 * t); result += 7.2e-10 * qCos(5.91833527334 + 10881.0995774812 * t); result += 5.9e-10 * qCos(5.36231868425 + 10239.5838660108 * t); result += 5.9e-10 * qCos(1.63156134967 + 61306.0115970658 * t); result += 5.4e-10 * qCos(4.29491690425 + 21947.1113727 * t); result += 5.7e-10 * qCos(5.89190132575 + 34513.2630726828 * t); result += 7.4e-10 * qCos(1.38235845304 + 9967.4538999816 * t); result += 5.3e-10 * qCos(3.86543309344 + 32370.9789915656 * t); result += 5.5e-10 * qCos(4.51794544854 + 34911.412076091 * t); result += 6.3e-10 * qCos(5.41479412056 + 11502.8376165305 * t); result += 6.3e-10 * qCos(2.34416220742 + 11510.7019230567 * t); result += 6.8e-10 * qCos(0.77493931112 + 29864.334027309 * t); result += 6e-10 * qCos(5.57024703495 + 5756.9080032458 * t); result += 7.2e-10 * qCos(2.80863088166 + 10866.8724834796 * t); result += 6.1e-10 * qCos(2.69736991384 + 82576.9812209953 * t); result += 6.3e-10 * qCos(5.32068807257 + 3116.6594122598 * t); result += 5.2e-10 * qCos(1.02278758099 + 6272.4391846416 * t); result += 6.9e-10 * qCos(5.00698550308 + 25287.7237993998 * t); result += 6.6e-10 * qCos(6.12047940728 + 12074.488407524 * t); result += 5.1e-10 * qCos(2.59519527563 + 11396.5634485742 * t); result += 5.6e-10 * qCos(2.57995973521 + 17892.9383940036 * t); result += 5.9e-10 * qCos(0.4416723762 + 250570.675857219 * t); result += 5.9e-10 * qCos(3.84070143543 + 5483.254724826 * t); result += 4.9e-10 * qCos(0.54704693048 + 22594.054895712 * t); result += 6.5e-10 * qCos(2.38423614501 + 52670.0695933026 * t); result += 6.9e-10 * qCos(5.34363738671 + 66813.5648357332 * t); result += 5.7e-10 * qCos(5.42770501007 + 310145.152823924 * t); result += 5.3e-10 * qCos(1.17760296075 + 149.5631971346 * t); result += 6.1e-10 * qCos(4.02090887211 + 34596.3646546524 * t); result += 4.9e-10 * qCos(4.18361320516 + 18606.4989460002 * t); result += 5.5e-10 * qCos(0.83886167974 + 20452.8694122218 * t); result += 5e-10 * qCos(1.46327331958 + 37455.7264959744 * t); result += 4.8e-10 * qCos(4.53854727167 + 29822.7832363242 * t); result += 5.8e-10 * qCos(3.34847975377 + 33990.6183442862 * t); result += 6.5e-10 * qCos(1.45522693982 + 76251.3277706202 * t); result += 5.6e-10 * qCos(2.35650663692 + 37724.7534197482 * t); result += 5.2e-10 * qCos(2.61551081496 + 5999.2165311262 * t); result += 5.3e-10 * qCos(0.17334326094 + 77717.2945864695 * t); result += 5.3e-10 * qCos(0.79879700631 + 77710.2483497715 * t); result += 4.7e-10 * qCos(0.43240779709 + 735.8765135318 * t); result += 5.3e-10 * qCos(4.58763261686 + 11616.976091013 * t); result += 4.8e-10 * qCos(6.20230111054 + 4171.4255366138 * t); result += 5.2e-10 * qCos(1.09723616404 + 640.8776073822 * t); result += 5.7e-10 * qCos(3.42008310383 + 50317.2034395308 * t); result += 5.3e-10 * qCos(1.01528448581 + 149144.46708625 * t); result += 4.7e-10 * qCos(3.00924906195 + 52175.8062831484 * t); result += 5.2e-10 * qCos(2.03254070404 + 6293.7125153412 * t); result += 4.8e-10 * qCos(0.12356889734 + 13362.4497067992 * t); result += 4.5e-10 * qCos(3.37963782356 + 10763.779709261 * t); result += 4.7e-10 * qCos(5.50981287869 + 12779.4507954208 * t); result += 6.2e-10 * qCos(5.45209070099 + 949.1756089698 * t); result += 6.1e-10 * qCos(2.93237974631 + 5791.4125575326 * t); result += 4.4e-10 * qCos(2.87440620802 + 8584.6616659008 * t); result += 4.6e-10 * qCos(4.0314179656 + 10667.8004820432 * t); result += 4.7e-10 * qCos(3.89902931422 + 3903.9113764198 * t); result += 4.6e-10 * qCos(2.75700467329 + 6993.0088985497 * t); result += 4.5e-10 * qCos(1.933862933 + 206.1855484372 * t); result += 4.7e-10 * qCos(2.57670800912 + 11492.542675792 * t); result += 4.4e-10 * qCos(3.62570223167 + 63658.8777508376 * t); result += 5.1e-10 * qCos(0.84536826273 + 12345.739057544 * t); result += 4.3e-10 * qCos(0.01524970172 + 37853.8754993826 * t); result += 4.1e-10 * qCos(3.27146326065 + 8858.3149443206 * t); result += 4.5e-10 * qCos(3.03765521215 + 65236.2212932854 * t); result += 4.7e-10 * qCos(1.44447548944 + 21393.5419698576 * t); result += 5.8e-10 * qCos(5.45843180927 + 1975.492545856 * t); result += 5e-10 * qCos(2.13285524146 + 12573.2652469836 * t); result += 4.1e-10 * qCos(1.32190847146 + 2547.8375382324 * t); result += 4.7e-10 * qCos(3.67579608544 + 28313.288804661 * t); result += 4.1e-10 * qCos(2.24013475126 + 8273.8208670324 * t); result += 4.7e-10 * qCos(6.21438985953 + 10991.3058987006 * t); result += 4.2e-10 * qCos(3.0163181735 + 853.196381752 * t); result += 5.6e-10 * qCos(1.09773690181 + 77376.2010224076 * t); result += 4e-10 * qCos(2.35698541041 + 2699.7348193176 * t); result += 4.3e-10 * qCos(5.28030898459 + 17796.9591667858 * t); result += 5.4e-10 * qCos(2.59175932091 + 22910.4467653686 * t); result += 5.4e-10 * qCos(0.88027764102 + 71960.3865832237 * t); result += 5.5e-10 * qCos(0.07988899477 + 83467.1563530173 * t); result += 3.9e-10 * qCos(1.12867321442 + 9910.583327509 * t); result += 4e-10 * qCos(1.35670430524 + 27177.8515292002 * t); result += 3.9e-10 * qCos(4.39624220245 + 5618.3198048614 * t); result += 4.2e-10 * qCos(4.78798367468 + 7856.89627409019 * t); result += 4.7e-10 * qCos(2.75482175292 + 18202.2167166594 * t); result += 3.9e-10 * qCos(1.97008298629 + 24491.4257925834 * t); result += 4.2e-10 * qCos(4.04346599946 + 7863.9425107882 * t); result += 3.8e-10 * qCos(0.49178679251 + 38650.173506199 * t); result += 3.6e-10 * qCos(4.86047906533 + 4157.1984426122 * t); result += 4.3e-10 * qCos(5.64354880978 + 1062.9050485382 * t); result += 3.6e-10 * qCos(3.98066313627 + 12565.1713789146 * t); result += 4.2e-10 * qCos(2.30753932657 + 6549.6828917132 * t); result += 4e-10 * qCos(5.3969491832 + 9498.2122306346 * t); result += 4e-10 * qCos(3.30603243754 + 23536.116957681 * t); result += 5e-10 * qCos(6.15760345261 + 78051.3419138334 * t); return result; } double GetEarthR1(double t) { double result = 0.0; result += 0.00103018608 * qCos(1.10748969588 + 6283.0758499914 * t); result += 1.721238e-05 * qCos(1.06442301418 + 12566.1516999828 * t); result -= -7.02215e-06; result += 3.2346e-07 * qCos(1.02169059149 + 18849.2275499742 * t); result += 3.0799e-07 * qCos(2.84353804832 + 5507.5532386674 * t); result += 2.4971e-07 * qCos(1.31906709482 + 5223.6939198022 * t); result += 1.8485e-07 * qCos(1.42429748614 + 1577.3435424478 * t); result += 1.0078e-07 * qCos(5.91378194648 + 10977.078804699 * t); result += 8.634e-08 * qCos(0.27146150602 + 5486.777843175 * t); result += 8.654e-08 * qCos(1.42046854427 + 6275.9623029906 * t); result += 5.069e-08 * qCos(1.68613426734 + 5088.6288397668 * t); result += 4.985e-08 * qCos(6.01401770704 + 6286.5989683404 * t); result += 4.669e-08 * qCos(5.98724494073 + 529.6909650946 * t); result += 4.395e-08 * qCos(0.51800238019 + 4694.0029547076 * t); result += 3.872e-08 * qCos(4.74969833437 + 2544.3144198834 * t); result += 3.75e-08 * qCos(5.07097685568 + 796.2980068164 * t); result += 4.1e-08 * qCos(1.08424786092 + 9437.762934887 * t); result += 3.518e-08 * qCos(0.02290216272 + 83996.8473181119 * t); result += 3.436e-08 * qCos(0.94937019624 + 71430.6956181291 * t); result += 3.221e-08 * qCos(6.15628775313 + 2146.1654164752 * t); result += 3.414e-08 * qCos(5.41218322538 + 775.522611324 * t); result += 2.863e-08 * qCos(5.48432847146 + 10447.3878396044 * t); result += 2.52e-08 * qCos(0.24276941146 + 398.1490034082 * t); result += 2.201e-08 * qCos(4.95216196651 + 6812.766815086 * t); result += 2.186e-08 * qCos(0.41991743105 + 8031.0922630584 * t); result += 2.838e-08 * qCos(3.42034351366 + 2352.8661537718 * t); result += 2.554e-08 * qCos(6.13241878525 + 6438.4962494256 * t); result += 1.932e-08 * qCos(5.31374608366 + 8429.2412664666 * t); result += 2.429e-08 * qCos(3.09164528262 + 4690.4798363586 * t); result += 1.73e-08 * qCos(1.5368620855 + 4705.7323075436 * t); result += 2.25e-08 * qCos(3.68863633842 + 7084.8967811152 * t); result += 2.093e-08 * qCos(1.28191783032 + 1748.016413067 * t); result += 1.441e-08 * qCos(0.81656250862 + 14143.4952424306 * t); result += 1.483e-08 * qCos(3.22225357771 + 7234.794256242 * t); result += 1.754e-08 * qCos(3.22883705112 + 6279.5527316424 * t); result += 1.583e-08 * qCos(4.09702349428 + 11499.6562227928 * t); result += 1.575e-08 * qCos(5.53890170575 + 3154.6870848956 * t); result += 1.847e-08 * qCos(1.82040335363 + 7632.9432596502 * t); result += 1.504e-08 * qCos(3.63293385726 + 11513.8833167944 * t); result += 1.337e-08 * qCos(4.64440864339 + 6836.6452528338 * t); result += 1.275e-08 * qCos(2.69341415363 + 1349.8674096588 * t); result += 1.352e-08 * qCos(6.15101580257 + 5746.271337896 * t); result += 1.125e-08 * qCos(3.35673439497 + 17789.845619785 * t); result += 1.47e-08 * qCos(3.65282991755 + 1194.4470102246 * t); result += 1.177e-08 * qCos(2.57676109092 + 13367.9726311066 * t); result += 1.101e-08 * qCos(4.49748696552 + 4292.3308329504 * t); result += 1.234e-08 * qCos(5.65036509521 + 5760.4984318976 * t); result += 9.84e-09 * qCos(0.65517395136 + 5856.4776591154 * t); result += 9.28e-09 * qCos(2.32420318751 + 10213.285546211 * t); result += 1.077e-08 * qCos(5.82812169132 + 12036.4607348882 * t); result += 9.16e-09 * qCos(0.76613009583 + 16730.4636895958 * t); result += 8.77e-09 * qCos(1.50137505051 + 11926.2544136688 * t); result += 1.023e-08 * qCos(5.62076589825 + 6256.7775301916 * t); result += 8.51e-09 * qCos(0.65709335533 + 155.4203994342 * t); result += 8.02e-09 * qCos(4.10519132088 + 951.7184062506 * t); result += 8.57e-09 * qCos(1.41661697538 + 5753.3848848968 * t); result += 9.94e-09 * qCos(1.14418521187 + 1059.3819301892 * t); result += 8.13e-09 * qCos(1.63948433322 + 6681.2248533996 * t); result += 6.62e-09 * qCos(4.5520045226 + 5216.5803728014 * t); result += 6.44e-09 * qCos(4.19478168733 + 6040.3472460174 * t); result += 6.26e-09 * qCos(1.50767713598 + 5643.1785636774 * t); result += 5.9e-09 * qCos(6.18277145205 + 4164.311989613 * t); result += 6.35e-09 * qCos(0.52413263542 + 6290.1893969922 * t); result += 6.5e-09 * qCos(0.9793569035 + 25132.3033999656 * t); result += 5.68e-09 * qCos(2.30125315873 + 10973.55568635 * t); result += 5.47e-09 * qCos(5.27256412213 + 3340.6124266998 * t); result += 5.47e-09 * qCos(2.20144422886 + 1592.5960136328 * t); result += 5.26e-09 * qCos(0.92464258226 + 11371.7046897582 * t); result += 4.9e-09 * qCos(5.90951388655 + 3894.1818295422 * t); result += 4.78e-09 * qCos(1.66857963179 + 12168.0026965746 * t); result += 5.16e-09 * qCos(3.59803483887 + 10969.9652576982 * t); result += 5.18e-09 * qCos(3.97914412373 + 17298.1823273262 * t); result += 5.34e-09 * qCos(5.03740926442 + 9917.6968745098 * t); result += 4.87e-09 * qCos(2.50545369269 + 6127.6554505572 * t); result += 4.16e-09 * qCos(4.04828175503 + 10984.1923516998 * t); result += 5.38e-09 * qCos(5.54081539805 + 553.5694028424 * t); result += 4.02e-09 * qCos(2.16544019233 + 7860.4193924392 * t); result += 5.53e-09 * qCos(2.32177369366 + 11506.7697697936 * t); result += 3.67e-09 * qCos(3.3915253225 + 6496.3749454294 * t); result += 3.6e-09 * qCos(5.34379853282 + 7079.3738568078 * t); result += 3.37e-09 * qCos(3.61563704045 + 11790.6290886588 * t); result += 4.56e-09 * qCos(0.30754294809 + 801.8209311238 * t); result += 4.17e-09 * qCos(3.70009308674 + 10575.4066829418 * t); result += 3.81e-09 * qCos(5.82033971802 + 7058.5984613154 * t); result += 3.21e-09 * qCos(0.31988767355 + 16200.7727245012 * t); result += 3.64e-09 * qCos(1.08414306177 + 6309.3741697912 * t); result += 2.94e-09 * qCos(4.54798604957 + 11856.2186514245 * t); result += 2.9e-09 * qCos(1.26473978562 + 8635.9420037632 * t); result += 3.99e-09 * qCos(4.16998866302 + 26.2983197998 * t); result += 2.62e-09 * qCos(5.08316906342 + 10177.2576795336 * t); result += 2.43e-09 * qCos(2.2574609119 + 11712.9553182308 * t); result += 2.37e-09 * qCos(1.05070575346 + 242.728603974 * t); result += 2.75e-09 * qCos(3.45319481756 + 5884.9268465832 * t); result += 2.55e-09 * qCos(5.38496831087 + 21228.3920235458 * t); result += 3.07e-09 * qCos(4.24313526604 + 3738.761430108 * t); result += 2.16e-09 * qCos(3.46037894728 + 213.299095438 * t); result += 1.96e-09 * qCos(0.69029243914 + 1990.745017041 * t); result += 1.98e-09 * qCos(5.16301829964 + 12352.8526045448 * t); result += 2.14e-09 * qCos(3.91876200279 + 13916.0191096416 * t); result += 2.12e-09 * qCos(4.00861198517 + 5230.807466803 * t); result += 1.84e-09 * qCos(5.59805976614 + 6283.14316029419 * t); result += 1.84e-09 * qCos(2.85275392124 + 7238.6755916 * t); result += 1.79e-09 * qCos(2.54259058334 + 14314.1681130498 * t); result += 2.25e-09 * qCos(1.64458698399 + 4732.0306273434 * t); result += 2.36e-09 * qCos(5.58826125715 + 6069.7767545534 * t); result += 1.87e-09 * qCos(2.72805985443 + 6062.6632075526 * t); result += 1.84e-09 * qCos(6.04216273598 + 6283.0085396886 * t); result += 2.3e-09 * qCos(3.62591335086 + 6284.0561710596 * t); result += 1.63e-09 * qCos(2.19117396803 + 18073.7049386502 * t); result += 1.72e-09 * qCos(0.9761295074 + 3930.2096962196 * t); result += 2.15e-09 * qCos(1.04672844028 + 3496.032826134 * t); result += 1.69e-09 * qCos(4.75084479006 + 17267.2682016912 * t); result += 1.52e-09 * qCos(0.19390712179 + 9779.1086761254 * t); result += 1.82e-09 * qCos(5.16288118255 + 17253.0411076896 * t); result += 1.49e-09 * qCos(0.8094418426 + 709.9330485583 * t); result += 1.63e-09 * qCos(2.1920957039 + 6076.8903015542 * t); result += 1.86e-09 * qCos(5.01159497089 + 11015.1064773348 * t); result += 1.34e-09 * qCos(0.97765485759 + 65147.6197681377 * t); result += 1.41e-09 * qCos(4.38421981312 + 4136.9104335162 * t); result += 1.58e-09 * qCos(4.60974280627 + 9623.6882766912 * t); result += 1.33e-09 * qCos(3.30508592837 + 154717.609887683 * t); result += 1.63e-09 * qCos(6.11782626245 + 3.523118349 * t); result += 1.74e-09 * qCos(1.58078542187 + 7.1135470008 * t); result += 1.41e-09 * qCos(0.49976927274 + 25158.6017197654 * t); result += 1.24e-09 * qCos(6.03440460031 + 9225.539273283 * t); result += 1.5e-09 * qCos(5.30166336812 + 13517.8701062334 * t); result += 1.27e-09 * qCos(1.92389511438 + 22483.8485744926 * t); result += 1.21e-09 * qCos(2.37813129011 + 167283.761587666 * t); result += 1.2e-09 * qCos(3.98423684853 + 4686.8894077068 * t); result += 1.17e-09 * qCos(5.81072642211 + 12569.6748183318 * t); result += 1.22e-09 * qCos(5.60973054224 + 5642.1982426092 * t); result += 1.57e-09 * qCos(3.40236426002 + 16496.3613962024 * t); result += 1.29e-09 * qCos(2.10705116371 + 1589.0728952838 * t); result += 1.16e-09 * qCos(0.55839966736 + 5849.3641121146 * t); result += 1.23e-09 * qCos(1.52961392771 + 12559.038152982 * t); result += 1.11e-09 * qCos(0.44848279675 + 6172.869528772 * t); result += 1.23e-09 * qCos(5.81645568991 + 6282.0955289232 * t); result += 1.5e-09 * qCos(4.26278409223 + 3128.3887650958 * t); result += 1.06e-09 * qCos(2.27437761356 + 5429.8794682394 * t); result += 1.04e-09 * qCos(4.42743707728 + 23543.2305046818 * t); result += 1.21e-09 * qCos(0.39459045915 + 12132.439962106 * t); result += 1.04e-09 * qCos(2.41842602527 + 426.598190876 * t); result += 1.1e-09 * qCos(5.80381480447 + 16858.4825329332 * t); result += 1e-09 * qCos(2.93805577485 + 4535.0594369244 * t); result += 9.7e-10 * qCos(3.97935904984 + 6133.5126528568 * t); result += 1.1e-09 * qCos(6.22339014386 + 12146.6670561076 * t); result += 9.8e-10 * qCos(0.87576563709 + 6525.8044539654 * t); result += 9.8e-10 * qCos(3.15248421301 + 10440.2742926036 * t); result += 9.5e-10 * qCos(2.461684111 + 3097.88382272579 * t); result += 8.8e-10 * qCos(0.23371480284 + 13119.7211028252 * t); result += 9.8e-10 * qCos(5.77016493489 + 7342.4577801806 * t); result += 9.2e-10 * qCos(6.03915555063 + 20426.571092422 * t); result += 9.6e-10 * qCos(5.56909292561 + 2388.8940204492 * t); result += 8.1e-10 * qCos(1.32131147691 + 5650.2921106782 * t); result += 8.6e-10 * qCos(3.94529200528 + 10454.5013866052 * t); result += 7.6e-10 * qCos(2.70729716925 + 143571.324284816 * t); result += 9.1e-10 * qCos(5.64100034152 + 8827.3902698748 * t); result += 7.6e-10 * qCos(1.80783856698 + 28286.9904848612 * t); result += 8.1e-10 * qCos(1.90858992196 + 29088.811415985 * t); result += 7.5e-10 * qCos(3.40955892978 + 5481.2549188676 * t); result += 6.9e-10 * qCos(4.49936170873 + 17256.6315363414 * t); result += 8.8e-10 * qCos(1.10098454357 + 11769.8536931664 * t); result += 6.6e-10 * qCos(2.78285801977 + 536.8045120954 * t); result += 6.8e-10 * qCos(3.88179770758 + 17260.1546546904 * t); result += 8.4e-10 * qCos(1.59303306354 + 9380.9596727172 * t); result += 8.8e-10 * qCos(3.88076636762 + 7477.522860216 * t); result += 6.1e-10 * qCos(6.17558202197 + 11087.2851259184 * t); result += 6e-10 * qCos(4.34824715818 + 6206.8097787158 * t); result += 8.2e-10 * qCos(4.59843208943 + 9388.0059094152 * t); result += 7.9e-10 * qCos(1.63131230601 + 4933.2084403326 * t); result += 7.8e-10 * qCos(4.20905757484 + 5729.506447149 * t); result += 5.7e-10 * qCos(5.48157926651 + 18319.5365848796 * t); result += 6e-10 * qCos(1.01261781084 + 12721.572099417 * t); result += 5.6e-10 * qCos(1.63031935692 + 15720.8387848784 * t); result += 5.5e-10 * qCos(0.24926735018 + 15110.4661198662 * t); result += 6.1e-10 * qCos(5.93059279661 + 12539.853380183 * t); result += 5.5e-10 * qCos(4.84298966314 + 13095.8426650774 * t); result += 6.7e-10 * qCos(6.11690589247 + 8662.240323563 * t); result += 5.4e-10 * qCos(5.73750638571 + 3634.6210245184 * t); result += 7.4e-10 * qCos(1.05466745829 + 16460.333529525 * t); result += 5.3e-10 * qCos(2.29084335688 + 16062.1845261168 * t); result += 6.4e-10 * qCos(2.13513767927 + 7875.6718636242 * t); result += 6.7e-10 * qCos(0.07096807518 + 14945.3161735544 * t); result += 5.1e-10 * qCos(2.31511194429 + 6262.7205305926 * t); result += 5.7e-10 * qCos(5.77055471237 + 12043.574281889 * t); result += 5.6e-10 * qCos(4.41980790431 + 4701.1165017084 * t); result += 5.9e-10 * qCos(5.87963500073 + 5331.3574437408 * t); result += 5.8e-10 * qCos(2.30546168628 + 955.5997416086 * t); result += 4.9e-10 * qCos(1.93839278478 + 5333.9002410216 * t); result += 4.8e-10 * qCos(2.69973662261 + 6709.6740408674 * t); result += 6.4e-10 * qCos(1.64379897981 + 6262.300454499 * t); result += 4.6e-10 * qCos(3.98449608961 + 98068.5367163054 * t); result += 5e-10 * qCos(3.68875893005 + 12323.4230960088 * t); result += 4.5e-10 * qCos(3.30068569697 + 22003.9146348698 * t); result += 4.7e-10 * qCos(1.26317154881 + 11919.140866668 * t); result += 4.5e-10 * qCos(0.89150445122 + 51868.2486621788 * t); result += 4.3e-10 * qCos(1.61526242998 + 6277.552925684 * t); result += 4.3e-10 * qCos(5.74295325645 + 11403.676995575 * t); result += 4.4e-10 * qCos(3.43070646822 + 10021.8372800994 * t); result += 5.6e-10 * qCos(0.02481833774 + 15671.0817594066 * t); result += 5.5e-10 * qCos(3.14274403422 + 33019.0211122046 * t); result += 4.5e-10 * qCos(3.00877289177 + 8982.810669309 * t); result += 4.6e-10 * qCos(0.73303568429 + 6303.4311693902 * t); result += 4.9e-10 * qCos(1.60455690285 + 6303.8512454838 * t); result += 4.5e-10 * qCos(0.40210030323 + 6805.6532680852 * t); result += 5.3e-10 * qCos(0.94869680175 + 10988.808157535 * t); result += 4.1e-10 * qCos(1.61122384329 + 6819.8803620868 * t); result += 5.5e-10 * qCos(0.89439119424 + 11933.3679606696 * t); result += 4.5e-10 * qCos(3.88495384656 + 60530.4889857418 * t); result += 4e-10 * qCos(4.75740908001 + 38526.574350872 * t); result += 4e-10 * qCos(1.49921251887 + 18451.078546566 * t); result += 4e-10 * qCos(3.77498297228 + 26087.9031415742 * t); result += 5.1e-10 * qCos(1.70258603562 + 1551.045222648 * t); result += 3.9e-10 * qCos(2.97100699926 + 2118.7638603784 * t); result += 5.3e-10 * qCos(5.19854123078 + 77713.7714681205 * t); result += 4.7e-10 * qCos(4.26356628717 + 21424.4666443034 * t); result += 3.7e-10 * qCos(0.62902722802 + 24356.7807886416 * t); result += 3.6e-10 * qCos(0.11087914947 + 10344.2950653858 * t); result += 3.6e-10 * qCos(0.77037556319 + 12029.3471878874 * t); result += 3.5e-10 * qCos(3.30933994515 + 24072.9214697764 * t); result += 3.5e-10 * qCos(5.93650887012 + 31570.7996493912 * t); result += 3.6e-10 * qCos(2.15108874765 + 30774.5016425748 * t); result += 3.6e-10 * qCos(1.75078825382 + 16207.886271502 * t); result += 3.3e-10 * qCos(5.06264177921 + 226858.23855437 * t); result += 3.4e-10 * qCos(6.168913788 + 24491.4257925834 * t); result += 3.5e-10 * qCos(3.19120695549 + 32217.2001810808 * t); result += 3.4e-10 * qCos(2.31528650443 + 55798.4583583984 * t); result += 3.2e-10 * qCos(4.21446357042 + 15664.0355227086 * t); result += 3.9e-10 * qCos(1.24979117796 + 6418.1409300268 * t); result += 3.7e-10 * qCos(4.1194365577 + 2787.0430238574 * t); result += 3.2e-10 * qCos(1.6288771089 + 639.897286314 * t); result += 3.8e-10 * qCos(5.89832942685 + 640.8776073822 * t); result += 3.2e-10 * qCos(1.72442327688 + 27433.889215875 * t); result += 3.1e-10 * qCos(2.78828943753 + 12139.5535091068 * t); result += 3.5e-10 * qCos(4.44608896525 + 18202.2167166594 * t); result += 3.4e-10 * qCos(3.96287980676 + 18216.443810661 * t); result += 3.3e-10 * qCos(4.73611335874 + 16723.350142595 * t); result += 3.4e-10 * qCos(1.43910280005 + 49515.382508407 * t); result += 3.1e-10 * qCos(0.23302920161 + 23581.2581773176 * t); result += 2.9e-10 * qCos(2.0263384022 + 11609.8625440122 * t); result += 3e-10 * qCos(2.5492323024 + 9924.8104215106 * t); result += 3.2e-10 * qCos(4.91793198558 + 11300.5842213564 * t); result += 2.8e-10 * qCos(0.26187189577 + 13521.7514415914 * t); result += 2.8e-10 * qCos(3.84568936822 + 2699.7348193176 * t); result += 2.9e-10 * qCos(1.83149729794 + 29822.7832363242 * t); result += 3.3e-10 * qCos(4.60320094415 + 19004.6479494084 * t); result += 2.7e-10 * qCos(4.46183450287 + 6702.5604938666 * t); result += 3e-10 * qCos(4.4649407224 + 36147.4098773004 * t); result += 2.7e-10 * qCos(0.03211931363 + 6279.7894925736 * t); result += 2.6e-10 * qCos(5.46497324333 + 6245.0481773556 * t); result += 3.5e-10 * qCos(4.52695674113 + 36949.2308084242 * t); result += 2.7e-10 * qCos(3.52528177609 + 10770.8932562618 * t); result += 2.6e-10 * qCos(1.48499438453 + 11080.1715789176 * t); result += 3.5e-10 * qCos(2.82154380962 + 19402.7969528166 * t); result += 2.5e-10 * qCos(2.46339998836 + 6279.4854213396 * t); result += 2.6e-10 * qCos(4.97688894643 + 16737.5772365966 * t); result += 2.6e-10 * qCos(2.36136541526 + 17996.0311682222 * t); result += 2.9e-10 * qCos(4.15148654061 + 45892.730433157 * t); result += 2.6e-10 * qCos(4.50714272714 + 17796.9591667858 * t); result += 2.7e-10 * qCos(4.72625223674 + 1066.49547719 * t); result += 2.5e-10 * qCos(2.89309528854 + 6286.6662786432 * t); result += 2.7e-10 * qCos(0.37462444357 + 12964.300703391 * t); result += 2.9e-10 * qCos(4.94860010533 + 5863.5912061162 * t); result += 3.1e-10 * qCos(3.93096113577 + 29864.334027309 * t); result += 2.4e-10 * qCos(6.14987193584 + 18606.4989460002 * t); result += 2.4e-10 * qCos(3.74225964547 + 29026.4852295078 * t); result += 2.5e-10 * qCos(5.70460621565 + 27707.5424942948 * t); result += 2.5e-10 * qCos(5.33928840652 + 15141.390794312 * t); result += 2.7e-10 * qCos(3.0232089714 + 6286.3622074092 * t); result += 2.3e-10 * qCos(0.28364955406 + 5327.4761083828 * t); result += 2.6e-10 * qCos(1.34240461687 + 18875.525869774 * t); result += 2.4e-10 * qCos(1.33998410121 + 19800.9459562248 * t); result += 2.5e-10 * qCos(6.00172494004 + 6489.2613984286 * t); result += 2.2e-10 * qCos(1.81777974484 + 6288.5987742988 * t); result += 2.2e-10 * qCos(3.5860360664 + 6915.8595893046 * t); result += 2.9e-10 * qCos(2.09564449439 + 15265.8865193004 * t); result += 2.2e-10 * qCos(1.02173599251 + 11925.2740926006 * t); result += 2.2e-10 * qCos(4.74660932338 + 28230.1872226914 * t); result += 2.1e-10 * qCos(2.30688751432 + 5999.2165311262 * t); result += 2.1e-10 * qCos(3.2265494443 + 25934.1243310894 * t); result += 2.1e-10 * qCos(3.04956726238 + 6566.9351688566 * t); result += 2.7e-10 * qCos(5.35653084499 + 33794.5437235286 * t); result += 2.8e-10 * qCos(3.91168324815 + 18208.349942592 * t); result += 2e-10 * qCos(1.52296293311 + 135.0650800354 * t); result += 2.2e-10 * qCos(4.66462839521 + 13362.4497067992 * t); result += 1.9e-10 * qCos(1.78121167862 + 156137.475984799 * t); result += 1.9e-10 * qCos(2.99969102221 + 19651.048481098 * t); result += 1.9e-10 * qCos(2.86664273362 + 18422.6293590982 * t); result += 2.5e-10 * qCos(0.94995632141 + 31415.379249957 * t); result += 1.9e-10 * qCos(4.71432851499 + 77690.7595057385 * t); result += 1.9e-10 * qCos(2.54227398241 + 77736.7834305025 * t); result += 2e-10 * qCos(5.91915117116 + 48739.859897083 * t); return result; } double GetEarthR2(double t) { double result = 0.0; result += 4.359385e-05 * qCos(5.78455133738 + 6283.0758499914 * t); result += 1.23633e-06 * qCos(5.57934722157 + 12566.1516999828 * t); result -= -1.2341e-07; result += 8.792e-08 * qCos(3.62777733395 + 77713.7714681205 * t); result += 5.689e-08 * qCos(1.86958905084 + 5573.1428014331 * t); result += 3.301e-08 * qCos(5.47027913302 + 18849.2275499742 * t); result += 1.471e-08 * qCos(4.48028885617 + 5507.5532386674 * t); result += 1.013e-08 * qCos(2.81456417694 + 5223.6939198022 * t); result += 8.54e-09 * qCos(3.10878241236 + 1577.3435424478 * t); result += 1.102e-08 * qCos(2.84173992403 + 161000.685737674 * t); result += 6.48e-09 * qCos(5.47349498544 + 775.522611324 * t); result += 6.09e-09 * qCos(1.37969434104 + 6438.4962494256 * t); result += 4.99e-09 * qCos(4.4164924225 + 6286.5989683404 * t); result += 4.17e-09 * qCos(0.90242451175 + 10977.078804699 * t); result += 4.02e-09 * qCos(3.2037658529 + 5088.6288397668 * t); result += 3.51e-09 * qCos(1.8107922777 + 5486.777843175 * t); result += 4.67e-09 * qCos(3.65753702738 + 7084.8967811152 * t); result += 4.58e-09 * qCos(5.38585314743 + 149854.400134808 * t); result += 3.04e-09 * qCos(3.51701098693 + 796.2980068164 * t); result += 2.66e-09 * qCos(6.17413982699 + 6836.6452528338 * t); result += 2.79e-09 * qCos(1.84120501086 + 4694.0029547076 * t); result += 2.6e-09 * qCos(1.41629543251 + 2146.1654164752 * t); result += 2.66e-09 * qCos(3.13832905677 + 71430.6956181291 * t); result += 3.21e-09 * qCos(5.35313367048 + 3154.6870848956 * t); result += 2.38e-09 * qCos(2.17720020018 + 155.4203994342 * t); result += 2.93e-09 * qCos(4.61501268144 + 4690.4798363586 * t); result += 2.29e-09 * qCos(4.7596958807 + 7234.794256242 * t); result += 2.11e-09 * qCos(0.21868065485 + 4705.7323075436 * t); result += 2.01e-09 * qCos(4.21905743357 + 1349.8674096588 * t); result += 1.95e-09 * qCos(4.57808285364 + 529.6909650946 * t); result += 2.53e-09 * qCos(2.81496293039 + 1748.016413067 * t); result += 1.82e-09 * qCos(5.70454011389 + 6040.3472460174 * t); result += 1.79e-09 * qCos(6.02897097053 + 4292.3308329504 * t); result += 1.86e-09 * qCos(1.58690991244 + 6309.3741697912 * t); result += 1.7e-09 * qCos(2.90220009715 + 9437.762934887 * t); result += 1.66e-09 * qCos(1.99984925026 + 8031.0922630584 * t); result += 1.58e-09 * qCos(0.04783713552 + 2544.3144198834 * t); result += 1.97e-09 * qCos(2.01083639502 + 1194.4470102246 * t); result += 1.65e-09 * qCos(5.78372596778 + 83996.8473181119 * t); result += 2.14e-09 * qCos(3.38285934319 + 7632.9432596502 * t); result += 1.4e-09 * qCos(0.36401486094 + 10447.3878396044 * t); result += 1.51e-09 * qCos(0.95153163031 + 6127.6554505572 * t); result += 1.36e-09 * qCos(1.48426306582 + 2352.8661537718 * t); result += 1.27e-09 * qCos(5.48475435134 + 951.7184062506 * t); result += 1.26e-09 * qCos(5.26866506592 + 6279.5527316424 * t); result += 1.25e-09 * qCos(3.75754889288 + 6812.766815086 * t); result += 1.01e-09 * qCos(4.95015746147 + 398.1490034082 * t); result += 1.02e-09 * qCos(0.68468295277 + 1592.5960136328 * t); result += 1e-09 * qCos(1.14568935785 + 3894.1818295422 * t); result += 1.29e-09 * qCos(0.76540016965 + 553.5694028424 * t); result += 1.09e-09 * qCos(5.41063597567 + 6256.7775301916 * t); result += 7.5e-10 * qCos(5.84804322893 + 242.728603974 * t); result += 9.5e-10 * qCos(1.94452244083 + 11856.2186514245 * t); result += 7.7e-10 * qCos(0.69373708195 + 8429.2412664666 * t); result += 1e-09 * qCos(5.19725292131 + 244287.600007228 * t); result += 8e-10 * qCos(6.18440483705 + 1059.3819301892 * t); result += 6.9e-10 * qCos(5.25699888595 + 14143.4952424306 * t); result += 8.5e-10 * qCos(5.39484725499 + 25132.3033999656 * t); result += 6.6e-10 * qCos(0.51779993906 + 801.8209311238 * t); result += 5.5e-10 * qCos(5.16878202461 + 7058.5984613154 * t); result += 5.1e-10 * qCos(3.88759155247 + 12036.4607348882 * t); result += 5e-10 * qCos(5.57636570536 + 6290.1893969922 * t); result += 6.1e-10 * qCos(2.24359003264 + 8635.9420037632 * t); result += 5e-10 * qCos(5.54441900966 + 1990.745017041 * t); result += 5.6e-10 * qCos(4.0030107804 + 13367.9726311066 * t); result += 5.2e-10 * qCos(4.13138898038 + 7860.4193924392 * t); result += 5.2e-10 * qCos(3.90943054011 + 26.2983197998 * t); result += 4.1e-10 * qCos(3.5712848278 + 7079.3738568078 * t); result += 5.6e-10 * qCos(2.76959005761 + 90955.5516944961 * t); result += 4.2e-10 * qCos(1.91461189199 + 7477.522860216 * t); result += 4.2e-10 * qCos(0.42728171713 + 10213.285546211 * t); result += 4.2e-10 * qCos(1.09413724455 + 709.9330485583 * t); result += 3.9e-10 * qCos(3.93298068961 + 10973.55568635 * t); result += 3.8e-10 * qCos(6.17935925345 + 9917.6968745098 * t); result += 4.9e-10 * qCos(0.83021145241 + 11506.7697697936 * t); result += 5.3e-10 * qCos(1.45828359397 + 233141.314404362 * t); result += 4.7e-10 * qCos(6.21568666789 + 6681.2248533996 * t); result += 3.7e-10 * qCos(0.3635930998 + 10177.2576795336 * t); result += 3.5e-10 * qCos(3.33024911524 + 5643.1785636774 * t); result += 3.4e-10 * qCos(5.63446915337 + 6525.8044539654 * t); result += 3.5e-10 * qCos(5.36033855038 + 25158.6017197654 * t); result += 3.4e-10 * qCos(5.36319798321 + 4933.2084403326 * t); result += 3.3e-10 * qCos(4.24722336872 + 12569.6748183318 * t); result += 4.3e-10 * qCos(5.26370903404 + 10575.4066829418 * t); result += 4.2e-10 * qCos(5.08837645072 + 11015.1064773348 * t); result += 4e-10 * qCos(1.98334703186 + 6284.0561710596 * t); result += 4.2e-10 * qCos(4.22496037505 + 88860.0570709867 * t); result += 2.9e-10 * qCos(3.1908862817 + 11926.2544136688 * t); result += 2.9e-10 * qCos(0.15217616684 + 12168.0026965746 * t); result += 3e-10 * qCos(1.61904744136 + 9779.1086761254 * t); result += 2.7e-10 * qCos(0.76388991416 + 1589.0728952838 * t); result += 3.6e-10 * qCos(2.74712003443 + 3738.761430108 * t); result += 3.3e-10 * qCos(3.08807829566 + 3930.2096962196 * t); result += 3.1e-10 * qCos(5.34906619513 + 143571.324284816 * t); result += 2.5e-10 * qCos(0.10240267494 + 22483.8485744926 * t); result += 3e-10 * qCos(3.47110495524 + 14945.3161735544 * t); result += 2.4e-10 * qCos(1.10425016019 + 4535.0594369244 * t); result += 2.4e-10 * qCos(1.5803725978 + 6496.3749454294 * t); result += 2.3e-10 * qCos(3.87710321433 + 6275.9623029906 * t); result += 2.5e-10 * qCos(3.9452977897 + 3128.3887650958 * t); result += 2.3e-10 * qCos(3.44685609601 + 4136.9104335162 * t); result += 2.3e-10 * qCos(3.83156029849 + 5753.3848848968 * t); result += 2.2e-10 * qCos(1.86956128067 + 16730.4636895958 * t); result += 2.5e-10 * qCos(2.42188933855 + 5729.506447149 * t); result += 2e-10 * qCos(1.78208352927 + 17789.845619785 * t); result += 2.1e-10 * qCos(4.303630874 + 16858.4825329332 * t); result += 2.1e-10 * qCos(0.49258939822 + 29088.811415985 * t); result += 2.5e-10 * qCos(1.33030250444 + 6282.0955289232 * t); result += 2.7e-10 * qCos(2.54785812264 + 3496.032826134 * t); result += 2.2e-10 * qCos(1.1123252195 + 12721.572099417 * t); result += 2.1e-10 * qCos(5.97759081637 + 7.1135470008 * t); result += 1.9e-10 * qCos(0.80292033311 + 16062.1845261168 * t); result += 2.3e-10 * qCos(4.12454848769 + 2388.8940204492 * t); result += 2.2e-10 * qCos(4.92663152168 + 18875.525869774 * t); result += 2.3e-10 * qCos(5.68902059771 + 16460.333529525 * t); result += 2.3e-10 * qCos(4.97346265647 + 17260.1546546904 * t); result += 2.3e-10 * qCos(3.03021283729 + 66567.4858652543 * t); result += 1.6e-10 * qCos(3.89740925257 + 5331.3574437408 * t); result += 1.7e-10 * qCos(3.08268671348 + 154717.609887683 * t); result += 1.6e-10 * qCos(3.95085099736 + 3097.88382272579 * t); result += 1.6e-10 * qCos(3.99041783945 + 6283.14316029419 * t); result += 2e-10 * qCos(6.10644140189 + 167283.761587666 * t); result += 1.5e-10 * qCos(4.09775914607 + 11712.9553182308 * t); result += 1.6e-10 * qCos(5.717699407 + 17298.1823273262 * t); result += 1.6e-10 * qCos(3.28894009404 + 5884.9268465832 * t); result += 1.5e-10 * qCos(5.64785377164 + 12559.038152982 * t); result += 1.6e-10 * qCos(4.4345208093 + 6283.0085396886 * t); result += 1.4e-10 * qCos(2.31721603062 + 5481.2549188676 * t); result += 1.4e-10 * qCos(4.43479032305 + 13517.8701062334 * t); result += 1.4e-10 * qCos(4.73209312936 + 7342.4577801806 * t); result += 1.2e-10 * qCos(0.64705975463 + 18073.7049386502 * t); result += 1.1e-10 * qCos(1.514433322 + 16200.7727245012 * t); result += 1.1e-10 * qCos(0.88708889185 + 21228.3920235458 * t); result += 1.4e-10 * qCos(4.50116508534 + 640.8776073822 * t); result += 1.1e-10 * qCos(4.64339996198 + 11790.6290886588 * t); result += 1.1e-10 * qCos(1.31064298246 + 4164.311989613 * t); result += 9e-11 * qCos(3.02238989305 + 23543.2305046818 * t); result += 9e-11 * qCos(2.04999402381 + 22003.9146348698 * t); result += 9e-11 * qCos(4.91488110218 + 213.299095438 * t); return result; } double GetEarthR3(double t) { double result = 0.0; result += 1.44595e-06 * qCos(4.27319435148 + 6283.0758499914 * t); result += 6.729e-08 * qCos(3.91697608662 + 12566.1516999828 * t); result += 7.74e-09; result += 2.47e-09 * qCos(3.73019298781 + 18849.2275499742 * t); result += 3.6e-10 * qCos(2.8008140905 + 6286.5989683404 * t); result += 3.3e-10 * qCos(5.62216602775 + 6127.6554505572 * t); result += 1.9e-10 * qCos(3.71292621802 + 6438.4962494256 * t); result += 1.6e-10 * qCos(4.26011484232 + 6525.8044539654 * t); result += 1.6e-10 * qCos(3.50416887054 + 6256.7775301916 * t); result += 1.4e-10 * qCos(3.62127621114 + 25132.3033999656 * t); result += 1.1e-10 * qCos(4.39200958819 + 4705.7323075436 * t); result += 1.1e-10 * qCos(5.22327127059 + 6040.3472460174 * t); result += 1e-10 * qCos(4.28045254647 + 83996.8473181119 * t); result += 9e-11 * qCos(1.56864096494 + 5507.5532386674 * t); result += 1.1e-10 * qCos(1.37795688024 + 6309.3741697912 * t); result += 1e-10 * qCos(5.19937959068 + 71430.6956181291 * t); result += 9e-11 * qCos(0.4727519993 + 6279.5527316424 * t); result += 9e-11 * qCos(0.74642756529 + 5729.506447149 * t); result += 7e-11 * qCos(2.9737489156 + 775.522611324 * t); result += 7e-11 * qCos(3.28615691021 + 7058.5984613154 * t); result += 7e-11 * qCos(2.19184402142 + 6812.766815086 * t); result += 5e-11 * qCos(3.15419034438 + 529.6909650946 * t); result += 6e-11 * qCos(4.54725567047 + 1059.3819301892 * t); result += 5e-11 * qCos(1.51104406936 + 7079.3738568078 * t); result += 7e-11 * qCos(2.98052059053 + 6681.2248533996 * t); result += 5e-11 * qCos(2.30961231391 + 12036.4607348882 * t); result += 5e-11 * qCos(3.71102966917 + 6290.1893969922 * t); return result; } double GetEarthR4(double t) { double result = 0.0; result += 3.858e-08 * qCos(2.56384387339 + 6283.0758499914 * t); result += 3.06e-09 * qCos(2.2676950123 + 12566.1516999828 * t); result += 5.3e-10 * qCos(3.44031471924 + 5573.1428014331 * t); result += 1.5e-10 * qCos(2.04794573436 + 18849.2275499742 * t); result += 1.3e-10 * qCos(2.05688873673 + 77713.7714681205 * t); result += 7e-11 * qCos(4.4121885448 + 161000.685737674 * t); result += 5e-11 * qCos(5.26154653107 + 6438.4962494256 * t); result += 5e-11 * qCos(4.07695126049 + 6127.6554505572 * t); result += 6e-11 * qCos(3.81514213664 + 149854.400134808 * t); result += 3e-11 * qCos(1.28175749811 + 6286.5989683404 * t); return result; } double GetEarthR5(double t) { double result = 0.0; result += 8.6e-10 * qCos(1.21579741687 + 6283.0758499914 * t); result += 1.2e-10 * qCos(0.65617264033 + 12566.1516999828 * t); result += 1e-11 * qCos(0.38068797142 + 18849.2275499742 * t); return result; } dde-calendar-5.9.1/calendar-service/src/lunarandfestival/celestialbodies.h000066400000000000000000000154621423264401600267070ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 CELESTIALBODIES_H #define CELESTIALBODIES_H #include #include //弧度 typedef struct _MoonEclipticParameter { double Lp; double D; double M; double Mp; double F; double E; } MoonEclipticParameter; // 月地心黄经系数 typedef struct _MoonEclipticLongitudeCoeff { double D; double M; double Mp; double F; double EiA; double ErA; } MoonEclipticLongitudeCoeff; //弧度 typedef struct _EarthNutationParameter { double D; double M; double Mp; double F; double Omega; } EarthNutationParameter; //天体章动系数类型变量 typedef struct _NuationCoefficient { double D; double M; double Mp; double F; double Omega; double Sine1; double Sine2; double Cosine1; double Cosine2; } NuationCoefficient; /* 月球黄经周期项(ΣI)及距离(Σr). 黄经单位:0.000001度,距离单位:0.001千米. -------------------------------------------------- 角度的组合系数 ΣI的各项振幅A Σr的各项振幅A D M M' F (正弦振幅) (余弦振幅) -------------------------------------------------- */ static QVector MoonLongitude { {0, 0, 1, 0, 6288744, -20905355}, {2, 0, -1, 0, 1274027, -3699111}, {2, 0, 0, 0, 658314, -2955968}, {0, 0, 2, 0, 213618, -569925}, {0, 1, 0, 0, -185116, 48888}, {0, 0, 0, 2, -114332, -3149}, {2, 0, -2, 0, 58793, 246158}, {2, -1, -1, 0, 57066, -152138}, {2, 0, 1, 0, 53322, -170733}, {2, -1, 0, 0, 45758, -204586}, {0, 1, -1, 0, -40923, -129620}, {1, 0, 0, 0, -34720, 108743}, {0, 1, 1, 0, -30383, 104755}, {2, 0, 0, -2, 15327, 10321}, {0, 0, 1, 2, -12528, 0}, {0, 0, 1, -2, 10980, 79661}, {4, 0, -1, 0, 10675, -34782}, {0, 0, 3, 0, 10034, -23210}, {4, 0, -2, 0, 8548, -21636}, {2, 1, -1, 0, -7888, 24208}, {2, 1, 0, 0, -6766, 30824}, {1, 0, -1, 0, -5163, -8379}, {1, 1, 0, 0, 4987, -16675}, {2, -1, 1, 0, 4036, -12831}, {2, 0, 2, 0, 3994, -10445}, CELESTIALBODIES_H {4, 0, 0, 0, 3861, -11650}, {2, 0, -3, 0, 3665, 14403}, {0, 1, -2, 0, -2689, -7003}, {2, 0, -1, 2, -2602, 0}, {2, -1, -2, 0, 2390, 10056}, {1, 0, 1, 0, -2348, 6322}, {2, -2, 0, 0, 2236, -9884}, {0, 1, 2, 0, -2120, 5751}, {0, 2, 0, 0, -2069, 0}, {2, -2, -1, 0, 2048, -4950}, {2, 0, 1, -2, -1773, 4130}, {2, 0, 0, 2, -1595, 0}, {4, -1, -1, 0, 1215, -3958}, {0, 0, 2, 2, -1110, 0}, {3, 0, -1, 0, -892, 3258}, {2, 1, 1, 0, -810, 2616}, {4, -1, -2, 0, 759, -1897}, {0, 2, -1, 0, -713, -2117}, {2, 2, -1, 0, -700, 2354}, {2, 1, -2, 0, 691, 0}, {2, -1, 0, -2, 596, 0}, {4, 0, 1, 0, 549, -1423}, {0, 0, 4, 0, 537, -1117}, {4, -1, 0, 0, 520, -1571}, {1, 0, -2, 0, -487, -1739}, {2, 1, 0, -2, -399, 0}, {0, 0, 2, -2, -381, -4421}, {1, 1, 1, 0, 351, 0}, {3, 0, -2, 0, -340, 0}, {4, 0, -3, 0, 330, 0}, {2, -1, 2, 0, 327, 0}, {0, 2, 1, 0, -323, 1165}, {1, 1, -1, 0, 299, 0}, {2, 0, 3, 0, 294, 0}, {2, 0, -1, -2, 0, 8752}, }; static QVector nuation { {0, 0, 0, 0, 1, -171996, -174.2, 92025, 8.9}, {-2, 0, 0, 2, 2, -13187, -1.6, 5736, -3.1}, {0, 0, 0, 2, 2, -2274, -0.2, 977, -0.5}, {0, 0, 0, 0, 2, 2062, 0.2, -895, 0.5}, {0, 1, 0, 0, 0, 1426, -3.4, 54, -0.1}, {0, 0, 1, 0, 0, 712, 0.1, -7, 0}, {-2, 1, 0, 2, 2, -517, 1.2, 224, -0.6}, {0, 0, 0, 2, 1, -386, -0.4, 200, 0}, {0, 0, 1, 2, 2, -301, 0, 129, -0.1}, {-2, -1, 0, 2, 2, 217, -0.5, -95, 0.3}, {-2, 0, 1, 0, 0, -158, 0, 0, 0}, {-2, 0, 0, 2, 1, 129, 0.1, -70, 0}, {0, 0, -1, 2, 2, 123, 0, -53, 0}, {2, 0, 0, 0, 0, 63, 0, 0, 0}, {0, 0, 1, 0, 1, 63, 0.1, -33, 0}, {2, 0, -1, 2, 2, -59, 0, 26, 0}, {0, 0, -1, 0, 1, -58, -0.1, 32, 0}, {0, 0, 1, 2, 1, -51, 0, 27, 0}, {-2, 0, 2, 0, 0, 48, 0, 0, 0}, {0, 0, -2, 2, 1, 46, 0, -24, 0}, {2, 0, 0, 2, 2, -38, 0, 16, 0}, {0, 0, 2, 2, 2, -31, 0, 13, 0}, {0, 0, 2, 0, 0, 29, 0, 0, 0}, {-2, 0, 1, 2, 2, 29, 0, -12, 0}, {0, 0, 0, 2, 0, 26, 0, 0, 0}, {-2, 0, 0, 2, 0, -22, 0, 0, 0}, {0, 0, -1, 2, 1, 21, 0, -10, 0}, {0, 2, 0, 0, 0, 17, -0.1, 0, 0}, {2, 0, -1, 0, 1, 16, 0, -8, 0}, {-2, 2, 0, 2, 2, -16, 0.1, 7, 0}, {0, 1, 0, 0, 1, -15, 0, 9, 0}, {-2, 0, 1, 0, 1, -13, 0, 7, 0}, {0, -1, 0, 0, 1, -12, 0, 6, 0}, {0, 0, 2, -2, 0, 11, 0, 0, 0}, {2, 0, -1, 2, 1, -10, 0, 5, 0}, {2, 0, 1, 2, 2, -8, 0, 3, 0}, {0, 1, 0, 2, 2, 7, 0, -3, 0}, {-2, 1, 1, 0, 0, -7, 0, 0, 0}, {0, -1, 0, 2, 2, -7, 0, 3, 0}, {2, 0, 0, 2, 1, -7, 0, 3, 0}, {2, 0, 1, 0, 0, 6, 0, 0, 0}, {-2, 0, 2, 2, 2, 6, 0, -3, 0}, {-2, 0, 1, 2, 1, 6, 0, -3, 0}, {2, 0, -2, 0, 1, -6, 0, 3, 0}, {2, 0, 0, 0, 1, -6, 0, 3, 0}, {0, -1, 1, 0, 0, 5, 0, 0, 0}, {-2, -1, 0, 2, 1, -5, 0, 3, 0}, {-2, 0, 0, 0, 1, -5, 0, 3, 0}, {0, 0, 2, 2, 1, -5, 0, 3, 0}, {-2, 0, 2, 0, 1, 4, 0, 0, 0}, {-2, 1, 0, 2, 1, 4, 0, 0, 0}, {0, 0, 1, -2, 0, 4, 0, 0, 0}, {-1, 0, 1, 0, 0, -4, 0, 0, 0}, {-2, 1, 0, 0, 0, -4, 0, 0, 0}, {1, 0, 0, 0, 0, -4, 0, 0, 0}, {0, 0, 1, 2, 0, 3, 0, 0, 0}, {0, 0, -2, 2, 2, -3, 0, 0, 0}, {-1, -1, 1, 0, 0, -3, 0, 0, 0}, {0, 1, 1, 0, 0, -3, 0, 0, 0}, {0, -1, 1, 2, 2, -3, 0, 0, 0}, {2, -1, -1, 2, 2, -3, 0, 0, 0}, {0, 0, 3, 2, 2, -3, 0, 0, 0}, {2, -1, 0, 2, 2, -3, 0, 0, 0}, }; // Gregorian历TT2000年1月1日中午12点的儒略日 const double J2000 = 2451545.0; double GetEarthL0(double t); double GetEarthL1(double t); double GetEarthL2(double t); double GetEarthL3(double t); double GetEarthL4(double t); double GetEarthL5(double t); double GetEarthB0(double t); double GetEarthB1(double t); double GetEarthB2(double t); double GetEarthB3(double t); double GetEarthB4(double t); double GetEarthR0(double t); double GetEarthR1(double t); double GetEarthR2(double t); double GetEarthR3(double t); double GetEarthR4(double t); double GetEarthR5(double t); #endif // ABOUTCELESTIALBODIES_H dde-calendar-5.9.1/calendar-service/src/lunarandfestival/lunarandfestival.h000066400000000000000000000141441423264401600271120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 LUNARANDFESTIVAL_H #define LUNARANDFESTIVAL_H #include #include #include // MonthInfo 保存农历信息 typedef struct _lunarInfo { int LunarMonthName = 0; // 农历月名 int LunarMonthDays = 0; // 本月天数 double ShuoJD; // 本月朔日时间 北京时间 儒略日 QDateTime ShuoTime; // 本月朔日时间 北京时间 bool IsLeap = false; // 是否为闰月 int LunarYear = 0; // 农历年 int LunarDay = 0; // 农历日 int MonthZhi = 0; // 农历日所在的月的地支 int SolarTerm = 0; // 0~23 二十四节气 ,-1 非节气 bool operator==(const _lunarInfo &info) { return this->LunarMonthName == info.LunarMonthName && this->LunarYear == info.LunarYear && this->LunarDay == info.LunarDay && this->IsLeap == info.IsLeap; }; } lunarInfo; typedef struct _day { int Year; int Month; int Day; } stDay; typedef struct _LunarDayInfo { _LunarDayInfo() { LunarLeapMonth = 0; } QString GanZhiYear {}; // 农历年的干支 QString GanZhiMonth {}; // 农历月的干支 QString GanZhiDay {}; // 农历日的干支 QString LunarMonthName {}; // 农历月名 QString LunarDayName {}; // 农历日名 int32_t LunarLeapMonth; // 未使用 QString Zodiac {}; // 农历年的生肖 QString Term {}; // 农历节气 QString SolarFestival {}; // 公历节日 QString LunarFestival {}; // 农历节日 int32_t Worktime = 0; // 未使用 } stLunarDayInfo; //农历 typedef struct _LunarMonthInfo { qint32 FirstDayWeek = 0; qint32 Days = 0; QList Datas {}; } LunarMonthInfo; //阳历 公历 typedef struct _SolarMonthInfo { qint32 FirstDayWeek = 0; qint32 Days = 0; QList Datas {}; } SolarMonthInfo; typedef struct DayFestival { QDateTime date; QStringList Festivals {}; } stDayFestival; // 十二月名 static QVector lunarMonthNames = {"正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"}; static QVector monthDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 农历日名 // 月份分为大月和小月,大月三十天,小月二十九天 static QVector lunarDayNames = { "初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十" }; //农历节日 static QMap lunarFestival { {101, "春节"}, {115, "元宵节"}, {505, "端午节"}, {707, "七夕节"}, {815, "中秋节"}, {909, "重阳节"}, {1208, "腊八节"}}; // 十二生肖 static QVector Animals = {"鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"}; // 天干 static QVector TianGan = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"}; // 地支 static QVector DiZhi = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"}; //二十四节气,中文 static QVector SolarTermNames = { "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", }; //二十四节气 enum solarTerms { ChunFen = 0, QingMing, GuYu, LiXia, XiaoMan, MangZhong, XiaZhi, XiaoShu, DaShu, LiQiu, ChuShu, BaiLu, QiuFen, HanLu, ShuangJiang, LiDong, XiaoXue, DaXue, DongZhi, XiaoHan, DaHan, LiChun, YuShui, JingZhe, }; typedef struct _Festival { QString name {}; int startYear = 0; } stSolarFestival; static QMap solarFestivals = { {101, "元旦"}, {214, "情人节"}, {305, "学雷锋纪念日"}, {308, "妇女节"}, {312, "植树节"}, {401, "愚人节"}, {415, "全民国家安全教育日"}, {501, "劳动节"}, {504, "青年节"}, {601, "儿童节"}, {701, "建党节,香港回归纪念日"}, {801, "建军节"}, {903, "抗日战争胜利纪念日"}, {910, "教师节"}, {1001, "国庆节"}, {1213, "南京大屠杀死难者国家公祭日"}, {1220, "澳门回归纪念"}, {1224, "平安夜"}, {1225, "圣诞节"}, {1226, "毛泽东诞辰纪念"} }; static QMap solarFestivalStarYear = { {"元旦", 1949}, {"情人节", 0}, {"学雷锋纪念日", 1963}, {"妇女节", 1975}, {"植树节", 1928}, {"愚人节", 0}, {"全民国家安全教育日", 2015}, {"劳动节", 0}, {"青年节", 1939}, {"儿童节", 1949}, {"建党节", 1941}, {"香港回归纪念日", 1997}, {"建军节", 1933}, {"抗日战争胜利纪念日", 2014}, {"教师节", 1985}, {"国庆节", 1949}, {"南京大屠杀死难者国家公祭日", 2014}, {"澳门回归纪念", 1999}, {"平安夜", 0}, {"圣诞节", 0}, {"毛泽东诞辰纪念", 1893} }; #endif // ABOUTLUNARANDFESTIVAL_H dde-calendar-5.9.1/calendar-service/src/lunarandfestival/lunarcalendar.cpp000066400000000000000000000131401423264401600267110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "lunarcalendar.h" #include #include #include QMap LunarCalendar::glYearCache; LunarCalendar *LunarCalendar::GetLunarCalendar(qint32 year) { auto it = glYearCache.find(year); LunarCalendar *plcal = nullptr; if (it != glYearCache.end()) { plcal = it.value(); } else { plcal = new LunarCalendar(year); glYearCache.insert(year, plcal); } return plcal; } /** * @brief LunarCalendar::LogOffEmptyData //清空数据 */ void LunarCalendar::LogOffEmptyData() { QMap::iterator it = glYearCache.begin(); for (; it != glYearCache.end(); ++it) { delete it.value(); it.value() = nullptr; } glYearCache.clear(); } //指定年份内公历日期转换为农历日 lunarInfo LunarCalendar::SolarDayToLunarDay(qint32 month, qint32 day) { lunarInfo dayinfo; QDateTime dt(QDate(Year, month, day), QTime(0, 0, 0, 0), Qt::TimeSpec::UTC); int yd = dt.date().dayOfYear(); // 求月地支 int monthZhi = 0; while (monthZhi < solarTermYearDays.size()) { if (yd >= solarTermYearDays[monthZhi]) { monthZhi++; } else { break; } } dayinfo.MonthZhi = monthZhi; // 求农历年、月、日 foreach (lunarInfo lm, Months) { int dd = static_cast(deltaDays(lm.ShuoTime, dt)) + 1; if (1 <= dd && dd <= lm.LunarMonthDays) { dayinfo.LunarYear = lm.LunarYear; dayinfo.LunarMonthName = lm.LunarMonthName; dayinfo.LunarMonthDays = lm.LunarMonthDays; dayinfo.ShuoJD = lm.ShuoJD; dayinfo.ShuoTime = lm.ShuoTime; dayinfo.IsLeap = lm.IsLeap; dayinfo.LunarDay = dd; break; } } // 求二十四节气 dayinfo.SolarTerm = getSolarTermInfo(month, day); return dayinfo; } LunarCalendar::LunarCalendar(qint32 year) { Year = year; Months.reserve(13); calcProcData(); fillMonths(); calcLeapMonth(); } void LunarCalendar::calcProcData() { SolarTermJDs = get25SolarTermJDs(Year - 1, DongZhi); for (int i = 0; i < 25; i++) { SolarTermTimes.append(GetDateTimeFromJulianDay(SolarTermJDs[i])); } for (int i = 1; i < 25; i += 2) { int yd = SolarTermTimes[i].date().dayOfYear(); solarTermYearDays.append(yd); } double beijin2utc = JDBeijingTime2UTC(SolarTermJDs[0]); double tmpNewMoonJD = getNewMoonJD(beijin2utc); if (tmpNewMoonJD > SolarTermJDs[0]) { tmpNewMoonJD -= 29.53; } NewMoonJDs = get15NewMoonJDs(tmpNewMoonJD); } void LunarCalendar::fillMonths() { //采用夏历建寅,冬至所在月份为农历11月(冬月) int yuejian = 11; for (int i = 0; i < 14; i++) { lunarInfo info; if (yuejian <= 12) { info.LunarMonthName = yuejian; info.LunarYear = Year - 1; } else { info.LunarMonthName = yuejian - 12; info.LunarYear = Year; } info.ShuoJD = NewMoonJDs[i]; info.ShuoTime = GetDateTimeFromJulianDay(info.ShuoJD); double nextShuoJD = NewMoonJDs[i + 1]; QDateTime nextShuoTime = GetDateTimeFromJulianDay(nextShuoJD); info.LunarMonthDays = static_cast(deltaDays(info.ShuoTime, nextShuoTime)); Months.append(info); yuejian++; } } void LunarCalendar::calcLeapMonth() { // 根据节气计算是否有闰月,如果有闰月,根据农历月命名规则,调整月名称 if (int(NewMoonJDs[13] + 0.5) <= int(SolarTermJDs[24] + 0.5)) { // 第13月的月末没有超过冬至,说明今年需要闰一个月 int i = 1; while (i < 14) { if (int(NewMoonJDs[i + 1] + 0.5) <= int(SolarTermJDs[2 * i] + 0.5)) { //NewMoonJDs[i + 1] 是第i个农历月的下一个月的月首 //本该属于第i个月的中气如果比下一个月的月首还晚,或者与下个月的月首是同一天(民间历法),则说明第 i 个月没有中气, 是闰月 break; } i++; } if (i < 14) { // 找到闰月 //qDebug()< * * Maintainer: kongyunzhen * * 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 LUNARCALENDAR_H #define LUNARCALENDAR_H #include "lunarandfestival.h" #include "method_interface.h" #include #include class LunarCalendar { public: static LunarCalendar *GetLunarCalendar(qint32 year); //程序退出时情况数据 static void LogOffEmptyData(); lunarInfo SolarDayToLunarDay(qint32 month, qint32 day); private: explicit LunarCalendar(qint32 year); void calcProcData(); void fillMonths(); void calcLeapMonth(); qint32 getSolarTermInfo(qint32 month, qint32 day) const; public: private: static QMap glYearCache; int Year; // 公历年份 QVector SolarTermJDs; // 相关的 25 节气 北京时间 儒略日 QVector SolarTermTimes; // 对应 SolarTermJDs 转换为 time.Time 的时间 QVector NewMoonJDs; // 相关的 15 个朔日 北京时间 儒略日 QVector Months; // 月 QVector solarTermYearDays; // 十二节的 yearDay 列表 }; #endif // LUNARCALENDAR_H dde-calendar-5.9.1/calendar-service/src/lunarandfestival/lunardateinfo.cpp000066400000000000000000000257071423264401600267450ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "lunardateinfo.h" #include "lunarcalendar.h" #include #define RECURENCELIMIT 3650 //递归次数限制 //农历一年最少有363天 const int LunarYearMiniDays = 353; LunarDateInfo::LunarDateInfo(const Job &job) : m_job(job) { m_options = ParseRRule(m_job.RRule); m_dateInterval = m_job.Start.daysTo(m_job.End); } QMap LunarDateInfo::getRRuleStartDate(const QDate &beginDate, const QDate &endDate, const QDate &solarDate) { QMap solar; //不在范围内直接返回,开始时间小于结束时间或者需要计算的起始时间晚于结束时间 if (endDate < beginDate || solarDate > endDate) { return solar; } m_queryStartDate = beginDate; m_queryEndDate = endDate; //如果日程开始时间在查询起始时间之前 if (solarDate > m_queryStartDate) { m_queryStartDate = solarDate; } //如果是农历日程 switch (m_options.rpeat) { case RepeatType::RepeatMonthly: //每月 solar = getAllNextMonthLunarDayBySolar(solarDate); break; case RepeatType::RepeatYearly: //每年 solar = getAllNextYearLunarDayBySolar(solarDate); break; default: //默认不重复 break; } return solar; } //通过公历时间获取范围内该时间的农历天的具体公历日期 QMap LunarDateInfo::getAllNextMonthLunarDayBySolar(const QDate &solarDate) { QMap solar; //如果需要通过公历信息获取下一个对应农历信息对应的天 LunarCalendar *lunc = LunarCalendar::GetLunarCalendar(solarDate.year()); lunarInfo info = lunc->SolarDayToLunarDay(solarDate.month(), solarDate.day()); //计算时间为日程开始时间 QDate nextSolar = solarDate; int count = 0; while (true) { info = getNextMonthLunarDay(nextSolar, info); //如果超过范围则退出 if (addSolarMap(solar, nextSolar, count, info.LunarMonthDays)) { break; } } return solar; } QMap LunarDateInfo::getAllNextYearLunarDayBySolar(const QDate &solarDate) { QMap solar; //TODO: 需要优化 //日程的农历日期 LunarCalendar *solarDateLunar = LunarCalendar::GetLunarCalendar(solarDate.year()); lunarInfo info = solarDateLunar->SolarDayToLunarDay(solarDate.month(), solarDate.day()); //计算时间为日程开始时间 QDate bDate = solarDate; int count = 0; while (bDate <= m_queryEndDate) { //开始时间农历日期 LunarCalendar *lunc = LunarCalendar::GetLunarCalendar(bDate.year()); lunarInfo startLunarInfo = lunc->SolarDayToLunarDay(bDate.month(), bDate.day()); //判断起始时间的农历月份是否大于日程的月份,如果大于则说明起始时间的农历年份没有对应的重复日程,直接计算下一个农历年份 if (startLunarInfo.LunarMonthName > info.LunarMonthName) { //更新起始时间 //农历一个月的天数范围为28-30,则农历月份最小时间查为(间隔月份*28)天 int miniInterval = (12 - startLunarInfo.LunarMonthName + info.LunarMonthName) * 28 - startLunarInfo.LunarDay; bDate = bDate.addDays(miniInterval); continue; } else if (startLunarInfo.LunarMonthName == info.LunarMonthName) { //如果为同一个月,判断是否都为闰月或都不是闰月 if (startLunarInfo.IsLeap == info.IsLeap) { //如果起始农历天日程农历天之前或为同一农历天 if (startLunarInfo.LunarDay <= info.LunarDay) { int intervalDay = info.LunarDay - startLunarInfo.LunarDay; //如果该农历月没有这一天,那就计算下一年 if (startLunarInfo.LunarDay + intervalDay > startLunarInfo.LunarMonthDays) { //农历一年最少有363天 bDate = bDate.addDays(LunarYearMiniDays); continue; } //如果有这一天则添加对应的日期 bDate = bDate.addDays(intervalDay); //如果超过范围则退出 if (addSolarMap(solar, bDate, count, LunarYearMiniDays)) { break; } continue; } else { //如果起始农历天在日程农历天之后,则更新到下一年 int offsetMiniDay = LunarYearMiniDays - (startLunarInfo.LunarDay - info.LunarDay); bDate = bDate.addDays(offsetMiniDay); continue; } } else { //如果起始时间为闰月 if (startLunarInfo.IsLeap) { //如果起始农历天在日程农历天之后,则更新到下一年 int offsetMiniDay = LunarYearMiniDays - (startLunarInfo.LunarDay - info.LunarDay); bDate = bDate.addDays(offsetMiniDay); continue; } //如果日程开始时间为闰月 if (info.IsLeap) { //更新起始时间的日期,更新为农历日期的下个月的初一 bDate = bDate.addDays(startLunarInfo.LunarMonthDays - startLunarInfo.LunarDay + 1); continue; } } } else { //如果起始时间的农历月份早于日期的月份 //农历一个月的天数范围为28-30 //相差的月份 int offsetMonth = info.LunarMonthName - startLunarInfo.LunarMonthName; int offsetMiniDay = 0; if (offsetMonth > 1) { //如果间隔大于一个月 offsetMiniDay = (info.LunarMonthName - startLunarInfo.LunarMonthName) * 28 - startLunarInfo.LunarDay + info.LunarDay; } else { //如果间隔等于一个月,因为前面已经判断了是否为同一个月,所以不存在间隔为0的情况 offsetMiniDay = startLunarInfo.LunarMonthDays - startLunarInfo.LunarDay + info.LunarDay; } bDate = bDate.addDays(offsetMiniDay); continue; } } return solar; } lunarInfo LunarDateInfo::getNextMonthLunarDay(QDate &nextDate, const lunarInfo &info) { LunarCalendar *lunc = LunarCalendar::GetLunarCalendar(nextDate.year()); lunarInfo nextinfo = lunc->SolarDayToLunarDay(nextDate.month(), nextDate.day()); //判断农历的天是否为重复的天,比如一月初一,加上一月份的天数应该为二月初一 //如果不一样,则说明这个月没有这一天,比如正月三十,加上正月的月份天数,到了二月份是没有三十的, if (nextinfo.LunarDay != info.LunarDay) { nextDate = nextDate.addDays(info.LunarDay - nextinfo.LunarDay); return getNextMonthLunarDay(nextDate, info); } return nextinfo; } /** * @brief ParseRRule 解析重复规则 * @param rule 规则字符串 * @return stRRuleOptions 包含重复规则相关字段的结构体 */ stRRuleOptions LunarDateInfo::ParseRRule(const QString &rule) { //无规则的不走这里判断所以此处默认rule不为空 //局部变量初始化 stRRuleOptions options {}; QStringList rruleslist = rule.split(";", QString::SkipEmptyParts); //rpeat重复规则 0 无 1 每天 2 每个工作日 3 每周 4每月 5每年 //type结束重复类型 0 永不 1 多少次结束 2 结束日期 if (rruleslist.contains("FREQ=DAILY") && rruleslist.contains("BYDAY=MO,TU,WE,TH,FR")) { options.rpeat = RepeatWorkDay; } else if (rruleslist.contains("FREQ=DAILY")) { options.rpeat = RepeatDaily; } else if (rruleslist.contains("FREQ=WEEKLY")) { options.rpeat = RepeatWeekly; } else if (rruleslist.contains("FREQ=MONTHLY")) { options.rpeat = RepeatMonthly; } else if (rruleslist.contains("FREQ=YEARLY")) { options.rpeat = RepeatYearly; } for (int i = 0; i < rruleslist.count(); i++) { if (rruleslist.at(i).contains("COUNT=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); options.type = RepeatOverCount; options.tcount = liststr.at(1).toInt() - 1; } if (rruleslist.at(i).contains("UNTIL=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); options.type = RepeatOverUntil; options.overdate = QDateTime::fromString(liststr.at(1).left(liststr.at(1).count() - 1), "yyyyMMddThhmmss"); options.overdate = options.overdate.addDays(1); } } return options; } bool LunarDateInfo::isWithinTimeFrame(const QDate &solarDate) { QDate endDate = solarDate.addDays(m_dateInterval); //如果日程结束时间在查询起始时间之前,或者日程开始时间在查询截止时间之后,说明不在获取范围内 return !(endDate < m_queryStartDate || solarDate > m_queryEndDate); } bool LunarDateInfo::addSolarMap(QMap &solarMap, QDate &nextDate, int &count, const int addDays) { //如果获取到的时间在查询范围内 if (isWithinTimeFrame(nextDate)) { solarMap[count] = nextDate; } count++; //当结束重复为按多少次结束判断时,检查重复次数是否达到,达到则退出 //当重复次数达到最大限制直接返回 //options.tcount表示重复的次数,而count表示总次数,所以这里不能有“=” if ((m_options.type == RepeatOverCount && m_options.tcount < count) || count > RECURENCELIMIT) { return true; } //更新查询开始时间 nextDate = nextDate.addDays(addDays); //判断next是否有效,时间大于RRule的until //判断next是否大于查询的截止时间,这里应该比较date,而不是datetime,如果是非全天的日程,这个设计具体时间的问题,会导致返回的job个数出现问题 if ((m_options.type == RepeatOverUntil && nextDate >= m_options.overdate.date()) || nextDate > m_queryEndDate) { return true; } return false; } dde-calendar-5.9.1/calendar-service/src/lunarandfestival/lunardateinfo.h000066400000000000000000000075131423264401600264050ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 LUNARDATEINFO_H #define LUNARDATEINFO_H #include "lunarandfestival.h" #include "method_interface.h" #include "src/commondatastruct.h" #include #include /** * @brief The LunarDateInfo class * 农历时间,用于计算农历重复日程 */ class LunarDateInfo { public: explicit LunarDateInfo(const Job &job); /** * @brief getRRuleStartDate 获取重复农历日程开始时间(公历)集 * @param beginDate 查询的起始时间 * @param endDate 查询的截止时间 * @param solarDate 日程开始时间 * @return 日程的重复日程id和对应的开始时间 */ QMap getRRuleStartDate(const QDate &beginDate, const QDate &endDate, const QDate &solarDate); private: /** * @brief getAllNextMonthLunarDayBySolar 获取重复类型为每月的农历日程开始时间集 * @param solarDate 农历日程的开始时间 * @return 重复农历日程开始时间集 */ QMap getAllNextMonthLunarDayBySolar(const QDate &solarDate); /** * @brief getAllNextYearLunarDayBySolar 获取重复类型为每年的农历日程开始时间集 * @param solarDate 农历日程的开始时间 * @return 重复农历日程开始时间集 */ QMap getAllNextYearLunarDayBySolar(const QDate &solarDate); /** * @brief getNextMonthLunarDay 获取下个月对应的农历信息 * @param nextDate 需要计算的公历时间 * @param info 重复的农历信息 * @return 计算公历时间对应的农历信息 */ lunarInfo getNextMonthLunarDay(QDate &nextDate, const lunarInfo &info); /** * @brief ParseRRule 解析重复规则 * @param rule 重复规则 * @return */ stRRuleOptions ParseRRule(const QString &rule); /** * @brief isWithinTimeFrame 是否在查询时间范围内 * @return */ bool isWithinTimeFrame(const QDate &solarDate); /** * @brief addSolarMap 将计算出来的时间添加到Map中,并更新时间和重复次数 * @param solarMap 符合要求的时间集合 * @param nextDate 重复农历日程对应的公历时间 * @param count 重复次数 * @param addDays 需要更新的天数 * @return 如果返回true表示计算出的次数或者时间超过范围,否则返回false */ bool addSolarMap(QMap &solarMap, QDate &nextDate, int &count, const int addDays); private: Job m_job; stRRuleOptions m_options; QDate m_queryStartDate; QDate m_queryEndDate; qint64 m_dateInterval; //日程开始结束间隔天数 }; #endif // LUNARDATEINFO_H dde-calendar-5.9.1/calendar-service/src/lunarandfestival/lunarmanager.cpp000066400000000000000000000167471423264401600265720ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 "lunarmanager.h" #include "lunarcalendar.h" #include "pinyin/pinyinsearch.h" #include stLunarDayInfo SolarToLunar(qint32 year, qint32 month, qint32 day) { stLunarDayInfo info; LunarCalendar *pcalendar = LunarCalendar::GetLunarCalendar(year); lunarInfo lday = pcalendar->SolarDayToLunarDay(month, day); info.GanZhiYear = GetGanZhiYear(lday.LunarYear); info.GanZhiMonth = GetGanZhiMonth(year, lday.MonthZhi); info.GanZhiDay = GetGanZhiDay(year, month, day); info.LunarMonthName = GetLunarMonthName(lday.LunarMonthName, lday.IsLeap); info.LunarDayName = GetLunarDayName(lday.LunarDay); info.Term = GetSolarTermName(lday.SolarTerm); info.SolarFestival = GetSolarDayFestival(year, month, day); info.LunarFestival = GetLunarDayFestival(lday.LunarMonthName, lday.LunarDay, lday.LunarMonthDays, lday.SolarTerm); info.Zodiac = GetYearZodiac(lday.LunarYear); return info; } /** * 获取指定公历月份的农历数据 * year,month 公历年,月 * fill 是否用上下月数据补齐首尾空缺,首例数据从周日开始 */ LunarMonthInfo GetLunarMonthCalendar(qint32 year, qint32 month, bool fill) { SolarMonthInfo solarMonth = GetSolarMonthCalendar(year, month, fill); return GetLunarMonthCalendar(solarMonth); } LunarMonthInfo GetLunarMonthCalendar(const SolarMonthInfo &solarMonth) { LunarMonthInfo lunarmonth; lunarmonth.FirstDayWeek = solarMonth.FirstDayWeek; lunarmonth.Days = solarMonth.Days; foreach (stDay d, solarMonth.Datas) { stLunarDayInfo info = SolarToLunar(d.Year, d.Month, d.Day); lunarmonth.Datas.append(info); } return lunarmonth; } /** * 公历某月日历 * year,month 公历年,月 * fill 是否用上下月数据补齐首尾空缺,首例数据从周日开始(7*6阵列) */ SolarMonthInfo GetSolarMonthCalendar(qint32 year, qint32 month, bool fill) { SolarMonthInfo solarMonth; int weekday = GetWeekday(year, month); int daycount = GetSolarMonthDays(year, month); // 本月的数据 QList daysData = GetMonthDays(year, month, 1, daycount); QList YearMonth; if (fill) { if (weekday > 0) { //获取前一个月所在年份及月份(如果当前月份为1月则为前一年的十二月) YearMonth = GetPreMonth(year, month); int premonthyear = YearMonth.at(0); int premonth = YearMonth.at(1); GetSolarMonthDays(premonthyear, premonth); // 前一个月的天数 int preMonthDays = GetSolarMonthDays(premonthyear, premonth); // 要补充上去的前一个月的数据 QList preMonthCompleteDaysData = GetMonthDays(premonthyear, premonth, preMonthDays - weekday + 1, preMonthDays); preMonthCompleteDaysData.append(daysData); daysData = preMonthCompleteDaysData; } YearMonth = GetNextMonth(year, month); int nextmonthyear = YearMonth.at(0); int nextmonth = YearMonth.at(1); int count = 6 * 7 - (weekday + daycount); // 要补充上去的下一个月的数据 QList nextMonthCompleteDaysData = GetMonthDays(nextmonthyear, nextmonth, 1, count); daysData.append(nextMonthCompleteDaysData); } solarMonth.FirstDayWeek = weekday; solarMonth.Days = daycount; solarMonth.Datas = daysData; return solarMonth; } QList GetMonthDays(qint32 year, qint32 month, qint32 start, qint32 days) { QList DayInfo; for (int day = start; day <= days; day++) { stDay stday = {year, month, day}; DayInfo.append(stday); } return DayInfo; } QList GetPreMonth(qint32 year, qint32 month) { QList datas; int preYear, preMonth; if (month == 1) { preYear = year - 1; preMonth = 12; } else { preYear = year; preMonth = month - 1; } datas.append(preYear); datas.append(preMonth); return datas; } QList GetNextMonth(qint32 year, qint32 month) { QList datas; int nextYear, nextMonth; if (month == 12) { nextYear = year + 1; nextMonth = 1; } else { nextYear = year; nextMonth = month + 1; } datas.append(nextYear); datas.append(nextMonth); return datas; } /** * @brief GetFestivalsInRange 获取指定范围内的节日信息集合 * @param start 起始时间 * @param end 结束时间 */ QList GetFestivalsInRange(const QDateTime &start, const QDateTime &end) { QList festivaldays; if (start <= end) { //days为需要查询的天数,而不是两个时间的差值 int days = static_cast(start.daysTo(end) + 1); for (int i = 0; i < days; ++i) { stDayFestival stdayfestival; QDateTime tem = start.addDays(i); stdayfestival.date = tem; int year = tem.date().year(); int month = tem.date().month(); int day = tem.date().day(); LunarCalendar *pcalendar = LunarCalendar::GetLunarCalendar(year); lunarInfo lday = pcalendar->SolarDayToLunarDay(month, day); QString festival = GetSolarDayFestival(year, month, day); QStringList strfestivallist = festival.split(","); strfestivallist << GetLunarDayFestival(lday.LunarMonthName, lday.LunarDay, lday.LunarMonthDays, lday.SolarTerm); stdayfestival.Festivals = strfestivallist; festivaldays.append(stdayfestival); } } else { qDebug() << __FUNCTION__ << "start day later than end day"; } return festivaldays; } /** * @brief FilterDayFestival 过滤节日信息 * @param festivaldays 节日信息 * @param querykey 拼音 * @return 节日信息 */ QList FilterDayFestival(QList &festivaldays, const QString &querykey) { QList m_festivaldays; pinyinsearch *search = pinyinsearch::getPinPinSearch(); for (int i = 0; i < festivaldays.size(); i++) { stDayFestival m_festivals{}; QStringList festivals = festivaldays.at(i).Festivals; QDateTime festivalsdate = festivaldays.at(i).date; for (int j = 0; j < festivals.size(); j++) { if (festivals.at(j).contains(querykey)) m_festivals.Festivals.append(festivals.at(j)); if (search->CanQueryByPinyin(querykey) && search->PinyinMatch(festivals.at(j), querykey)) m_festivals.Festivals.append(festivals.at(j)); } if (m_festivals.Festivals.isEmpty()) continue; m_festivals.date = festivalsdate; m_festivaldays.append(m_festivals); } return m_festivaldays; } void logOffEmptyData() { LunarCalendar::LogOffEmptyData(); }dde-calendar-5.9.1/calendar-service/src/lunarandfestival/lunarmanager.h000066400000000000000000000031571423264401600262260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: kongyunzhen * * Maintainer: kongyunzhen * * 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 LUNARMANAGER_H #define LUNARMANAGER_H #include "lunarandfestival.h" #include "method_interface.h" stLunarDayInfo SolarToLunar(qint32 year, qint32 month, qint32 day); SolarMonthInfo GetSolarMonthCalendar(qint32 year, qint32 month, bool fill); LunarMonthInfo GetLunarMonthCalendar(qint32 year, qint32 month, bool fill); LunarMonthInfo GetLunarMonthCalendar(const SolarMonthInfo &solarMonth); QList GetMonthDays(qint32 year, qint32 month, qint32 start, qint32 days); QList GetPreMonth(qint32 year, qint32 month); QList GetNextMonth(qint32 year, qint32 month); QList GetFestivalsInRange(const QDateTime &start, const QDateTime &end); QList FilterDayFestival(QList &festivaldays, const QString &querykey); //清空黄历数据 void logOffEmptyData(); #endif // LUNARMANAGER_H dde-calendar-5.9.1/calendar-service/src/lunarandfestival/method_interface.cpp000066400000000000000000000636001423264401600274040ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "method_interface.h" #include #include /** * @brief GetLunarMonthName 获取当天的农历月名称 * @param lunarmonthname 阴历月份 * @param isleap 是否为闰月 * @return 阴历月份 */ QString GetLunarMonthName(int lunarmonthname, bool isleap) { QString monthname = lunarMonthNames[lunarmonthname - 1]; if (isleap) { return "闰" + monthname + "月"; } return monthname + "月"; } /** * @brief GetLunarDayName 获取当天的农历日名 * @param lundayname 阴历哪一天 * @return 阴历日 */ QString GetLunarDayName(int lundayname) { return lunarDayNames[lundayname - 1]; } /** * @brief GetLunarDayFestival 获取当天的农历节日名,没有则返回空字符串 * @param monthname 公历月份 * @param lunarday 阴历日 * @param lunarmonthdays 阴历月份 * @param solarterm 第几个节气 * @return 农历节日名称 */ QString GetLunarDayFestival(int monthname, int lunarday, int lunarmonthdays, int solarterm) { int key = monthname * 100 + lunarday; if (lunarFestival.contains(key)) { return lunarFestival[key]; } // 农历腊月(十二月)的最后个一天 if (monthname == 12 && lunarday == lunarmonthdays) { return "除夕"; } if (solarterm == QingMing) { return "清明节"; } return ""; } /** * @brief GetSolarTermsName 获取二十四节气名,如果没有则返回空 * @param order 节气枚举值 * @return 节气名称 */ QString GetSolarTermName(int order) { if (0 <= order && order <= 23) { return SolarTermNames[order]; } return ""; } /** * @brief GetTianGanDiZhi 获取天干地支,将数字转换为天干地支 * @param num 需要转换的数字 * @return 天干地支 */ QString GetTianGanDiZhi(int num) { return TianGan[num % 10] + DiZhi[num % 12]; } /** * @brief GetGanZhiMonth 获取当天的月干支 * @param year 公历年 * @param monthzhi 月份的地支 * @return 天干地支 */ QString GetGanZhiMonth(int year, int monthzhi) { return GetTianGanDiZhi((year - 1900) * 12 + monthzhi + 12); } /** * @brief GetGanZhiYear 获取当天的年干支 * @param lunaryear 阴历年份 * @return 天干地支 */ QString GetGanZhiYear(int lunaryear) { return GetTianGanDiZhi(lunaryear - 1864); } /** * @brief GetGanZhiDay 获取当天的日干支 * @param year 公历年 * @param month 公历月 * @param day 公历日 * @return 天干地支 */ QString GetGanZhiDay(int year, int month, int day) { QDateTime unixDateTime = QDateTime(QDate(year, month, day), QTime(0, 0, 0, 0), Qt::TimeSpec::UTC); qint64 unixTime = unixDateTime.toMSecsSinceEpoch() / 1000; int dayCyclical = int(unixTime / 86400) + 29219 + 18; return GetTianGanDiZhi(dayCyclical); } /** * @brief GetYearZodiac 获取当天的生肖,即年份的生肖 * @param lunaryear 阴历年份 * @return 年份生肖 */ QString GetYearZodiac(int lunaryear) { return Animals[(lunaryear - 4) % 12]; } QVector get25SolarTermJDs(int year, int start) { // 从某一年的某个节气开始,连续计算25个节气,返回各节气的儒略日 // year 年份 // start 起始的节气 // 返回 25 个节气的 儒略日北京时间 int stOrder = start; QVector list; for (int i = 0; i < 25; i++) { double jd = GetSolarTermJD(year, stOrder); list.append(JDUTC2BeijingTime(jd)); if (stOrder == DongZhi) { year++; } stOrder = (stOrder + 1) % 24; } return list; } double GetEarthEclipticLongitudeForSun(double jd) { // 计算地球的日心黄经 double l = GetSunEclipticLongitudeForEarth(jd); // 计算地球的日心黄纬 double b = GetSunEclipticLatitudeForEarth(jd); // 修正章动 l += CalcEarthLongitudeNutation(GetJulianCentury(jd)); // 转换到fk5 l += Vsop2Fk5LongitudeCorrection(l, b, jd); // 转换成太阳的地心黄经 l = Mod2Pi(l + M_PI); // 计算光行差 // 计算日地距离 double r = GetSunRadiusForEarth(jd); // 太阳到地球的光行差参数 l -= SecondsToRadians(20.4898) / r; return l; } /** * 按儒略日计算地球的日心黄经 * * 参数: jd 儒略日 * 返回 地球的日心黄经,单位是弧度(rad) */ double GetSunEclipticLongitudeForEarth(double jd) { double t = GetJulianThousandYears(jd); double L0 = GetEarthL0(t); double L1 = GetEarthL1(t); double L2 = GetEarthL2(t); double L3 = GetEarthL3(t); double L4 = GetEarthL4(t); double L5 = GetEarthL5(t); double L = ((((L5 * t + L4) * t + L3) * t + L2) * t + L1) * t + L0; return Mod2Pi(L); } double GetJulianThousandYears(double jd) { //1000年的日数 const double DaysOf1000Years = 365250.0; return (jd - J2000) / DaysOf1000Years; } /** * 按儒略日计算地球的日心黄纬 * * 参数 jd 儒略日 * 返回 地球的日心黄纬,单位是弧度(rad) */ double GetSunEclipticLatitudeForEarth(double jd) { double t = GetJulianThousandYears(jd); double B0 = GetEarthB0(t); double B1 = GetEarthB1(t); double B2 = GetEarthB2(t); double B3 = GetEarthB3(t); double B4 = GetEarthB4(t); double B = ((((B4 * t) + B3) * t + B2) * t + B1) * t + B0; return B; } /** * 用于把vsop87理论算出来的经度转换成fk5目视系统的经度的修正值,参考 Jean Meeus 的 Astronomical * Algorithms 第二版(1998)第32章219页(32.3)式 * * 参数 l * vsop87经度(rad) * 参数 b * vsop87纬度(rad) * 参数 jd * 儒略日 * 返回 修正量(rad) */ double Vsop2Fk5LongitudeCorrection(double l, double b, double jd) { double t = GetJulianCentury(jd); double lp = l - ToRadians(1.397) * t - ToRadians(0.00031) * t * t; return SecondsToRadians(-0.09033 + 0.03916 * (qCos(lp) + qSin(lp)) * qTan(b)); } /** * 按照儒略日计算地球和太阳的距离 * * 参数 jd 儒略日 * 返回 地球和太阳的距离,单位是天文单位(au) */ double GetSunRadiusForEarth(double jd) { double t = GetJulianThousandYears(jd); double R0 = GetEarthR0(t); double R1 = GetEarthR1(t); double R2 = GetEarthR2(t); double R3 = GetEarthR3(t); double R4 = GetEarthR4(t); double R5 = GetEarthR5(t); double R = ((((R5 * t + R4) * t + R3) * t + R2) * t + R1) * t + R0; return R; } double NewtonIteration(double angle, double x0, bool IsGetSolarTermJD) { //此函数原是传入的匿名函数,这里用bool用作区分,后续可以优化 const double Epsilon = 1e-7; const double Delta = 5e-6; double x; auto func = [angle](double x) -> double { return ModPi(GetEarthEclipticLongitudeForSun(x) - angle); }; auto func1 = [](double x) -> double { double earth = GetEarthEclipticLongitudeForSun(x); double moon = GetMoonEclipticLongitudeEC(x); double res = ModPi(earth - moon); return res; // return ModPi(GetEarthEclipticLongitudeForSun(x) - GetMoonEclipticLongitudeEC(x)); }; while (1) { x = x0; double fx, fpx; if (IsGetSolarTermJD) { fx = func(x); // 导数 fpx = (func(x + Delta) - func(x - Delta)) / Delta / 2; } else { // fx = ModPi(GetEarthEclipticLongitudeForSun(x) - GetMoonEclipticLongitudeEC(x)); // // 导数 // fpx = (ModPi(GetEarthEclipticLongitudeForSun(x + Delta) - GetMoonEclipticLongitudeEC(x)) // - GetEarthEclipticLongitudeForSun(x - Delta) - GetMoonEclipticLongitudeEC(x)) / Delta / 2; fx = func1(x); // 导数 fpx = (func1(x + Delta) - func1(x - Delta)) / Delta / 2; } x0 = x - fx / fpx; if (qAbs(x0 - x) <= Epsilon) { break; } } return x; } double ModPi(double r) { while (r < -M_PI) { r += M_PI * 2; } while (r > M_PI) { r -= M_PI * 2; } return r; } double DmsToDegrees(int degrees, int mintues, double seconds) { return double(degrees) + double(mintues) / 60 + seconds / 3600; } double DmsToSeconds(int d, int m, double s) { return double(d) * 3600 + double(m) * 60 + s; } // DmsToRadians 把度分秒表示的角度换算成弧度(rad) double DmsToRadians(int d, int m, int s) { return ToRadians(DmsToDegrees(d, m, s)); } // GetSolarTermJD 使用牛顿迭代法计算24节气的时间 // f(x) = Vsop87dEarthUtil.getEarthEclipticLongitudeForSun(x) - angle = 0 // year 年 // order 节气序号 // 返回 节气的儒略日力学时间 TD double GetSolarTermJD(int year, int order) { const double RADIANS_PER_TERM = M_PI / 12.0; double angle = double(order) * RADIANS_PER_TERM; int month = ((order + 1) / 2 + 2) % 12 + 1; // 春分 order 0 // 3 月 20 号 int day = 6; if (order % 2 == 0) { day = 20; } double jd0 = ToJulianDateHMS(year, month, day, 12, 0, 0.0); double jd = NewtonIteration(angle, jd0, true); return jd; } // IsLeapYear 公历闰年判断 bool IsLeapYear(int year) { return ((year & 3) == 0 && year % 100 != 0) || year % 400 == 0; } // GetSolarMonthDays 获取公历月份的天数 int GetSolarMonthDays(int year, int month) { if (month == 2 && IsLeapYear(year)) { return 29; } else { return monthDays[month - 1]; } } // GetWeekday 计算Gregorian日历的星期几 // 算法摘自 http://en.wikipedia.org/wiki/Zeller%27s_congruence // 返回星期几的数字表示,1-6表示星期一到星期六,0表示星期日 int GetWeekday(int y, int m, int d) { if (m <= 2) { y -= 1; m += 12; } int c = int(y / 100); y = y % 100; int w = (d + 13 * (m + 1) / 5 + y + (y / 4) + (c / 4) - 2 * c - 1) % 7; if (w < 0) { w += 7; } return w; } // GetDeltaT 计算地球时和UTC的时差,算法摘自 // http://eclipse.gsfc.nasa.gov/SEhelp/deltatpoly2004.html NASA网站 // ∆T = TT - UT 此算法在-1999年到3000年有效 double GetDeltaT(int year, int month) { double y = double(year) + (double(month) - 0.5) / 12; if (year < -500) { double u = (double(year) - 1820) / 100; return -20 + 32 * u * u; } else if (year < 500) { double u = y / 100; double u2 = u * u; double u3 = u2 * u; double u4 = u3 * u; double u5 = u4 * u; double u6 = u5 * u; return 10583.6 - 1014.41 * u + 33.78311 * u2 - 5.952053 * u3 - 0.1798452 * u4 + 0.022174192 * u5 + 0.0090316521 * u6; } else if (year < 1600) { double u = (y - 1000) / 100; double u2 = u * u; double u3 = u2 * u; double u4 = u3 * u; double u5 = u4 * u; double u6 = u5 * u; return 1574.2 - 556.01 * u + 71.23472 * u2 + 0.319781 * u3 - 0.8503463 * u4 - 0.005050998 * u5 + 0.0083572073 * u6; } else if (year < 1700) { double t = y - 1600; double t2 = t * t; double t3 = t2 * t; return 120 - 0.9808 * t - 0.01532 * t2 + t3 / 7129; } else if (year < 1800) { double t = y - 1700; double t2 = t * t; double t3 = t2 * t; double t4 = t3 * t; return 8.83 + 0.1603 * t - 0.0059285 * t2 + 0.00013336 * t3 - t4 / 1174000; } else if (year < 1860) { double t = y - 1800; double t2 = t * t; double t3 = t2 * t; double t4 = t3 * t; double t5 = t4 * t; double t6 = t5 * t; double t7 = t6 * t; return 13.72 - 0.332447 * t + 0.0068612 * t2 + 0.0041116 * t3 - 0.00037436 * t4 + 0.0000121272 * t5 - 0.0000001699 * t6 + 0.000000000875 * t7; } else if (year < 1900) { double t = y - 1860; double t2 = t * t; double t3 = t2 * t; double t4 = t3 * t; double t5 = t4 * t; return 7.62 + 0.5737 * t - 0.251754 * t2 + 0.01680668 * t3 - 0.0004473624 * t4 + t5 / 233174; } else if (year < 1920) { double t = y - 1900; double t2 = t * t; double t3 = t2 * t; double t4 = t3 * t; return -2.79 + 1.494119 * t - 0.0598939 * t2 + 0.0061966 * t3 - 0.000197 * t4; } else if (year < 1941) { double t = y - 1920; double t2 = t * t; double t3 = t2 * t; return 21.20 + 0.84493 * t - 0.076100 * t2 + 0.0020936 * t3; } else if (year < 1961) { double t = y - 1950; double t2 = t * t; double t3 = t2 * t; return 29.07 + 0.407 * t - t2 / 233 + t3 / 2547; } else if (year < 1986) { double t = y - 1975; double t2 = t * t; double t3 = t2 * t; return 45.45 + 1.067 * t - t2 / 260 - t3 / 718; } else if (year < 2005) { double t = y - 2000; double t2 = t * t; double t3 = t2 * t; double t4 = t3 * t; double t5 = t4 * t; return 63.86 + 0.3345 * t - 0.060374 * t2 + 0.0017275 * t3 + 0.000651814 * t4 + 0.00002373599 * t5; } else if (year < 2050) { double t = y - 2000; double t2 = t * t; return 62.92 + 0.32217 * t + 0.005589 * t2; } else if (year < 2150) { double u = (y - 1820) / 100; double u2 = u * u; return -20 + 32 * u2 - 0.5628 * (2150 - y); } else { double u = (y - 1820) / 100; double u2 = u * u; return -20 + 32 * u2; } } // GetDateFromJulianDay 从儒略日中获取公历的日期 void GetDateFromJulianDay(double jd, int &yy, int &mm, int &dd) { /* * This algorithm is taken from * "Numerical Recipes in c, 2nd Ed." (1992), pp. 14-15 * and converted to integer math. * The electronic version of the book is freely available * at http://www.nr.com/ , under "Obsolete Versions - Older * book and code versions. */ const int JD_GREG_CAL = 2299161; const int JB_MAX_WITHOUT_OVERFLOW = 107374182; int64_t julian = int64_t(qFloor(jd + 0.5)); int64_t ta, jalpha, tb, tc, td, te; if (julian >= JD_GREG_CAL) { jalpha = (4 * (julian - 1867216) - 1) / 146097; ta = int64_t(julian) + 1 + jalpha - jalpha / 4; } else if (julian < 0) { ta = julian + 36525 * (1 - julian / 36525); } else { ta = julian; } tb = ta + 1524; if (tb <= JB_MAX_WITHOUT_OVERFLOW) { tc = (tb * 20 - 2442) / 7305; } else { tc = int64_t((uint64_t(tb) * 20 - 2442) / 7305); } td = 365 * tc + tc / 4; te = ((tb - td) * 10000) / 306001; dd = int(tb - td - (306001 * te) / 10000); mm = int(te - 1); if (mm > 12) { mm -= 12; } yy = int(tc - 4715); if (mm > 2) { yy--; } if (julian < 0) { yy -= int(100 * (1 - julian / 36525)); } } // GetTimeFromJulianDay 从儒略日中获取时间 时分秒 void GetTimeFromJulianDay(double jd, int &hour, int &minute, int &second) { double frac = jd - qFloor(jd); int s = int(qFloor(frac * 24.0 * 60.0 * 60.0)); hour = ((s / (60 * 60)) + 12) % 24; minute = (s / (60)) % 60; second = s % 60; } // GetDateTimeFromJulianDay 将儒略日转换为 time.Time // 其中包含了 TT 到 UTC 的转换 QDateTime GetDateTimeFromJulianDay(double jd) { int year, month, day; GetDateFromJulianDay(jd, year, month, day); // TT -> UTC jd -= GetDeltaT(year, month) / 86400; GetDateFromJulianDay(jd, year, month, day); int hour, minute, second; GetTimeFromJulianDay(jd, hour, minute, second); return QDateTime(QDate(year, month, day), QTime(hour, minute, second, 0), Qt::TimeSpec::UTC); } // JDUTC2BeijingTime 儒略日 UTC 时间转换到北京时间 double JDUTC2BeijingTime(double utcJD) { return utcJD + 8.0 / 24.0; } // JDBeijingTime2UTC 儒略日 北京时间到 UTC 时间 double JDBeijingTime2UTC(double bjtJD) { return bjtJD - 8.0 / 24.0; } double getNewMoonJD(double jd0) { return NewtonIteration(0, jd0, false); } QVector get15NewMoonJDs(double jd) { // 计算从某个时间之后的连续15个朔日 // 参数: jd 开始时间的 儒略日 // 返回 15个朔日时间 数组指针 儒略日北京时间 QVector list; for (int i = 0; i < 15; i++) { double newMoonJD = getNewMoonJD(jd); list.append(JDUTC2BeijingTime(newMoonJD)); // 转到下一个最接近朔日的时间 jd = newMoonJD + 29.53; } return list; } qint64 deltaDays(QDateTime t1, QDateTime t2) { // 计算两个时间相差的天数 // t2 > t1 结果为正数 return int(t1.date().daysTo(t2.date())); // return qint64((t2.toSecsSinceEpoch() - t1.toSecsSinceEpoch()) / 86400); } QString festivalForFatherAndMother(int year, int month, int day) { int disparityMotherDay, disparityFatherDay, fatherDay, motherDay; int leapYear = 0; for (int i = 1900; i <= year; i++) { if ((i % 400 == 0) || ((i % 100 != 0) && (i % 4 == 0))) { leapYear += 1; } } if (month == 5) { disparityMotherDay = (((year - 1899) * 365 + leapYear) - (31 + 30 + 31 + 31 + 30 + 31 + 30 + 31)) % 7; motherDay = 14 - disparityMotherDay; if (day == motherDay) { return "母亲节"; } else { return ""; } } if (month == 6) { disparityFatherDay = (((year - 1899) * 365 + leapYear) - (30 + 31 + 31 + 30 + 31 + 30 + 31)) % 7; fatherDay = 21 - disparityFatherDay; if (day == fatherDay) { return "父亲节"; } else { return ""; } } return ""; } /** * @brief GetMoonEclipticParameter 弧度计算 * @param T 儒略世纪数 * @return 弧度 */ void GetMoonEclipticParameter(MoonEclipticParameter &moonEclipticParameter, double T) { double T2 = T * T; double T3 = T2 * T; double T4 = T3 * T; /*月球平黄经*/ moonEclipticParameter.Lp = Mod2Pi(ToRadians(218.3164591 + 481267.88134236 * T - 0.0013268 * T2 + T3 / 538841.0 - T4 / 65194000.0)); /*月日距角*/ moonEclipticParameter.D = Mod2Pi(ToRadians(297.8502042 + 445267.1115168 * T - 0.0016300 * T2 + T3 / 545868.0 - T4 / 113065000.0)); /*太阳平近点角*/ moonEclipticParameter.M = Mod2Pi(ToRadians(357.5291092 + 35999.0502909 * T - 0.0001536 * T2 + T3 / 24490000.0)); /*月亮平近点角*/ moonEclipticParameter.Mp = Mod2Pi(ToRadians(134.9634114 + 477198.8676313 * T + 0.0089970 * T2 + T3 / 69699.0 - T4 / 14712000.0)); /*月球经度参数(到升交点的平角距离)*/ moonEclipticParameter.F = Mod2Pi(ToRadians(93.2720993 + 483202.0175273 * T - 0.0034029 * T2 - T3 / 3526000.0 + T4 / 863310000.0)); /* 反映地球轨道偏心率变化的辅助参量 */ moonEclipticParameter.E = 1 - 0.002516 * T - 0.0000074 * T2; } /** * @brief ToRadians 角度转换为弧度 * @param degrees 角度 * @return 弧度 */ double ToRadians(double degrees) { return degrees * M_PI / 180; } /** * @brief Mod2Pi 把角度限制在[0, 2π]之间 * @param r 角度 * @return 角度 */ double Mod2Pi(double r) { while (r < 0) { r += M_PI * 2; } while (r > 2 * M_PI) { r -= M_PI * 2; } return r; } /** * @brief CalcMoonECLongitudePeriodic 计算月球地心黄经周期项的和 * @param raDian 弧度 * @return 月球地心黄经周期项的和 */ double CalcMoonECLongitudePeriodic(MoonEclipticParameter &moonEclipticParameter) { double EI = 0.0; for (int i = 0; i < MoonLongitude.count(); i++) { double theta = MoonLongitude[i].D * moonEclipticParameter.D + MoonLongitude[i].M * moonEclipticParameter.M + MoonLongitude[i].Mp * moonEclipticParameter.Mp + MoonLongitude[i].F * moonEclipticParameter.F; EI += MoonLongitude[i].EiA * qSin(theta) * qPow(moonEclipticParameter.E, qAbs(MoonLongitude[i].M)); } return EI; } /** * @brief CalcMoonLongitudePerturbation 计算金星摄动,木星摄动以及地球扁率摄动对月球地心黄经的影响 * @param T 儒略世纪数 * @param raDian 弧度 * @return */ double CalcMoonLongitudePerturbation(double T, MoonEclipticParameter &moonEclipticParameter) { double A1 = Mod2Pi(ToRadians(119.75 + 131.849 * T)); double A2 = Mod2Pi(ToRadians(53.09 + 479264.290 * T)); return 3958.0 * qSin(A1) + 1962.0 * qSin(moonEclipticParameter.Lp - moonEclipticParameter.F) + 318.0 * qSin(A2); } /** * @brief GetMoonEclipticLongitudeEC 计算月球地心黄经 * @param julianDay 儒略日 * @return 弧度 */ double GetMoonEclipticLongitudeEC(double julianDay) { MoonEclipticParameter m_radian; double T = GetJulianCentury(julianDay); GetMoonEclipticParameter(m_radian, T); // Lp 计算是正确的 /*计算月球地心黄经周期项*/ double EI = CalcMoonECLongitudePeriodic(m_radian); /*修正金星,木星以及地球扁率摄动*/ EI += CalcMoonLongitudePerturbation(T, m_radian); double longitude = m_radian.Lp + ToRadians(EI / 1000000.0); /*计算天体章动干扰*/ longitude += CalcEarthLongitudeNutation(T); return longitude; } /** * @brief GetJulianCentury 计算儒略世纪数 * @param julianDay 儒略日 * @return 儒略世纪数 */ double GetJulianCentury(double julianDay) { // 100年的日数 const double DaysOfCentury = 36525.0; return (julianDay - J2000) / DaysOfCentury; } /** * @brief GetEarthNutationParameter 返回弧度 * @param earthNutationParameter 弧度 * @param T 儒略世纪数 * @return 弧度 */ void GetEarthNutationParameter(EarthNutationParameter &earthNutationParameter, double T) { double T2 = T * T; double T3 = T2 * T; /*平距角(如月对地心的角距离)*/ earthNutationParameter.D = ToRadians(297.85036 + 445267.111480 * T - 0.0019142 * T2 + T3 / 189474.0); /*太阳(地球)平近点角*/ earthNutationParameter.M = ToRadians(357.52772 + 35999.050340 * T - 0.0001603 * T2 - T3 / 300000.0); /*月亮平近点角*/ earthNutationParameter.Mp = ToRadians(134.96298 + 477198.867398 * T + 0.0086972 * T2 + T3 / 56250.0); /*月亮纬度参数*/ earthNutationParameter.F = ToRadians(93.27191 + 483202.017538 * T - 0.0036825 * T2 + T3 / 327270.0); /*黄道与月亮平轨道升交点黄经*/ earthNutationParameter.Omega = ToRadians(125.04452 - 1934.136261 * T + 0.0020708 * T2 + T3 / 450000.0); } double CalcEarthLongitudeNutation(double T) { EarthNutationParameter m_radian; GetEarthNutationParameter(m_radian, T); double result = 0.0; for (int i = 0; i < nuation.count(); i++) { double theta = nuation[i].D * m_radian.D + nuation[i].M * m_radian.M + nuation[i].Mp * m_radian.Mp + nuation[i].F * m_radian.F + nuation[i].Omega * m_radian.Omega; result += (nuation[i].Sine1 + nuation[i].Sine2 * T) * qSin(theta); } //乘以章动表的系数 0.0001 角秒 return result * coefficient(); } /** * @brief SecondsToDegrees 把角秒换算成角度 * @param seconds 角秒 * @return 角度 */ double SecondsToDegrees(double seconds) { return seconds / 3600; } double SecondsToRadians(double seconds) { return ToRadians(SecondsToDegrees(seconds)); } double CalcEarthObliquityNutation(double dt) { EarthNutationParameter m_radian; GetEarthNutationParameter(m_radian, dt); double result = 0.0; for (int i = 0; i < nuation.count(); i++) { double theta = nuation[i].D * m_radian.D + nuation[i].M * m_radian.M + nuation[i].Mp * m_radian.Mp + nuation[i].F * m_radian.F + nuation[i].Omega * m_radian.Omega; result += (nuation[i].Cosine1 + nuation[i].Cosine2 * dt) * qCos(theta); } //乘以章动表的系数 0.0001 角秒 return result * coefficient(); } double ToJulianDateHMS(int year, int month, int day, int hour, int minute, double second) { int jdn = ToJulianDate(year, month, day); return double(jdn) + (double(hour) - 12) / 24.0 + double(minute) / 1440.0 + second / 86400.0; } int ToJulianDate(int year, int month, int day) { int a = (14 - month) / 12; int y = year + 4800 - a; int m = month + 12 * a - 3; return day + (153 * m + 2) / 5 + 365 * y + y / 4 - y / 100 + y / 400 - 32045; } double coefficient() { return SecondsToRadians(0.0001); } double lightAberration() { return SecondsToRadians(20.4898); } //获取阳历节日 QString GetSolarDayFestival(int year, int month, int day) { QString festivals; if ((month == 5) || (month == 6)) { QString name = festivalForFatherAndMother(year, month, day); if (!name.isEmpty()) { festivals.append(name); } } int key = month * 100 + day; QString solarFestival = solarFestivals[key]; if (!solarFestival.isEmpty()) { QStringList temlist = solarFestival.split(","); for (int i = 0; i < temlist.size(); ++i) { //节日名称 QString temname = temlist.at(i); //带有节日映射的的迭代器 auto it = solarFestivalStarYear.find(temname); //保证不越界,并且节日的开始年份在year之前(包括year) if (it != solarFestivalStarYear.end() && *it <= year) { if (!festivals.isEmpty()) { festivals.append(','); } festivals.append(temname); festivals.append(','); } } } if (festivals.endsWith(',')) festivals = festivals.left(festivals.length() - 1); return festivals; } dde-calendar-5.9.1/calendar-service/src/lunarandfestival/method_interface.h000066400000000000000000000127221423264401600270500ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 METHOD_INTERFACE_H #define METHOD_INTERFACE_H #include "celestialbodies.h" #include "lunarandfestival.h" #include #include #include //获取当天的农历月名称 QString GetLunarMonthName(int lunarmonthname, bool isleap = false); //获取当天的农历日名 QString GetLunarDayName(int lundayname); //获取当天的农历节日名,没有则返回空字符串 QString GetLunarDayFestival(int monthname, int lunarday, int lunarmonthdays, int solarterm); //获取公历节日,没有则返回空字符串 QString GetSolarDayFestival(int year, int month, int day); //获取二十四节气名,如果没有则返回空 QString GetSolarTermName(int order); //获取天干地支,将数字转换为天干地支 QString GetTianGanDiZhi(int num); //获取当天的月干支 QString GetGanZhiMonth(int year, int monthzhi); //获取当天的年干支 QString GetGanZhiYear(int lunaryear); //获取当天的日干支 QString GetGanZhiDay(int year, int month, int day); //获取当天的生肖,即年份的生肖 QString GetYearZodiac(int lunaryear); QVector get25SolarTermJDs(int year, int start); //弧度计算 void GetMoonEclipticParameter(MoonEclipticParameter &moonEclipticParameter, double T); //角度转换为弧度 double ToRadians(double degrees); //把角度限制在[0, 2π]之间 double Mod2Pi(double r); //计算月球地心黄经周期项的和 double CalcMoonECLongitudePeriodic(MoonEclipticParameter &moonEclipticParameter); /*计算金星摄动,木星摄动以及地球扁率摄动对月球地心黄经的影响, T 是儒略世纪数,Lp和F单位是弧度*/ // A1 = 119.75 + 131.849 * T (4.13式) // A2 = 53.09 + 479264.290 * T (4.14式) // A3 = 313.45 + 481266.484 * T (4.15式) double CalcMoonLongitudePerturbation(double T, MoonEclipticParameter &moonEclipticParameter); //计算月球地心黄经 double GetMoonEclipticLongitudeEC(double julianDay); //计算儒略世纪数 double GetJulianCentury(double julianDay); //返回弧度 void GetEarthNutationParameter(EarthNutationParameter &earthNutationParameter, double T); //计算某时刻的黄经章动干扰量 double CalcEarthLongitudeNutation(double T); //把角秒换算成角度 double SecondsToDegrees(double seconds); //把角秒换算成弧度 double coefficient(); double SecondsToRadians(double seconds); /*计算某时刻的黄赤交角章动干扰量,dt是儒略千年数,返回值单位是度*/ // 计算某时刻的黄赤交角章动干扰量 // dt 是儒略世纪数 // 返回弧度 double CalcEarthObliquityNutation(double dt); // ToJulianDateHMS 计算Gregorian时间的儒略日数 // 算法摘自 http://en.wikipedia.org/wiki/Julian_day double ToJulianDateHMS(int year, int month, int day, int hour, int minute, double second); // ToJulianDate 计算Gregorian日期的儒略日数,以TT当天中午12点为准(结果是整数)。 // 算法摘自 http://en.wikipedia.org/wiki/Julian_day int ToJulianDate(int year, int month, int day); double GetEarthEclipticLongitudeForSun(double jd); double GetSunEclipticLongitudeForEarth(double jd); //计算儒略千年数 double GetJulianThousandYears(double jd); double GetSunEclipticLatitudeForEarth(double jd); double Vsop2Fk5LongitudeCorrection(double l, double b, double jd); double GetSunRadiusForEarth(double jd); /** * 计算修正后的太阳的地心视黄经 * * 参数 jd * 儒略日 * 返回 修正后的地心黄经(rad) */ // 常量 double lightAberration(); // NewtonIteration 牛顿迭代法求解方程的根 double NewtonIteration(double angle, double x0, bool IsGetSolarTermJD); // ModPi 把角度限制在[-π, π]之间 double ModPi(double r); // DmsToDegrees 把度分秒表示的角度换算成度 double DmsToDegrees(int degrees, int mintues, double seconds); // DmsToSeconds 把度分秒表示的角度换算成角秒(arcsecond) double DmsToSeconds(int d, int m, double s); double DmsToRadians(int d, int m, int s); double GetSolarTermJD(int year, int order); bool IsLeapYear(int year); int GetSolarMonthDays(int year, int month); int GetWeekday(int y, int m, int d = 1); double GetDeltaT(int year, int month); void GetDateFromJulianDay(double jd, int &yy, int &mm, int &dd); void GetTimeFromJulianDay(double jd, int &hour, int &minute, int &second); QDateTime GetDateTimeFromJulianDay(double jd); double JDUTC2BeijingTime(double utcJD); double JDBeijingTime2UTC(double bjtJD); double getNewMoonJD(double jd0); QVector get15NewMoonJDs(double jd); qint64 deltaDays(QDateTime t1, QDateTime t2); QString festivalForFatherAndMother(int year, int month, int day); #endif // LUNARANDFESTIVALALGORITHM_H dde-calendar-5.9.1/calendar-service/src/main.cpp000066400000000000000000000067011423264401600214650ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 #include #include #include "calendarservice.h" const static QString CalendarServiceTranslationsDir = "/usr/share/dde-calendar/translations"; bool loadTranslator(QCoreApplication *app, QList localeFallback = QList() << QLocale::system()) { bool bsuccess = false; for (auto &locale : localeFallback) { QString translateFilename = QString("%1_%2").arg(app->applicationName()).arg(locale.name()); QString translatePath = QString("%1/%2.qm").arg(CalendarServiceTranslationsDir).arg(translateFilename); if (QFile(translatePath).exists()) { QTranslator *translator = new QTranslator(app); translator->load(translatePath); app->installTranslator(translator); bsuccess = true; } QStringList parseLocalNameList = locale.name().split("_", QString::SkipEmptyParts); if (parseLocalNameList.length() > 0 && !bsuccess) { translateFilename = QString("%1_%2").arg(app->applicationName()).arg(parseLocalNameList.at(0)); QString parseTranslatePath = QString("%1/%2.qm").arg(CalendarServiceTranslationsDir).arg(translateFilename); if (QFile::exists(parseTranslatePath)) { QTranslator *translator = new QTranslator(app); translator->load(parseTranslatePath); app->installTranslator(translator); bsuccess = true; } } } return bsuccess; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); a.setOrganizationName("deepin"); a.setApplicationName("dde-calendar-service"); Dtk::Core::DLogManager::registerConsoleAppender(); Dtk::Core::DLogManager::registerFileAppender(); if (!loadTranslator(&a)) { qDebug() << "loadtranslator failed"; } qDebug() << "write log to" << Dtk::Core::DLogManager::getlogFilePath(); QDBusConnection sessionBus = QDBusConnection::sessionBus(); if (!sessionBus.registerService(CalendarServiceName)) { qCritical() << "registerService failed:" << sessionBus.lastError(); exit(0x0001); } CalendarService service; qDebug() << "sessionBus.registerService success" << Dtk::Core::DLogManager::getlogFilePath(); if (!sessionBus.registerObject(CalendarPath, &service, QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals | QDBusConnection::ExportAllProperties)) { qCritical() << "registerObject failed:" << sessionBus.lastError(); exit(0x0002); } return a.exec(); } dde-calendar-5.9.1/calendar-service/src/pinyin/000077500000000000000000000000001423264401600213375ustar00rootroot00000000000000dde-calendar-5.9.1/calendar-service/src/pinyin/pinyindict.cpp000066400000000000000000000137331423264401600242240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "pinyindict.h" /* 合法拼音列表 */ QVector validPinyinList = { "a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian", "biao", "bie", "bin", "bing", "bo", "bu", "ca", "cai", "can", "cang", "cao", "ce", "cen", "ceng", "cha", "chai", "chan", "chang", "chao", "che", "chen", "cheng", "chi", "chong", "chou", "chu", "chua", "chuai", "chuan", "chuang", "chui", "chun", "chuo", "ci", "cong", "cou", "cu", "cuan", "cui", "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "dei", "den", "deng", "di", "dia", "dian", "diao", "die", "ding", "diu", "dong", "dou", "du", "duan", "dui", "dun", "duo", "e", "en", "eng", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fiao", "fo", "fou", "fu", "ga", "gai", "gan", "gang", "gao", "ge", "gei", "gen", "geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", "guo", "ha", "hai", "han", "hang", "hao", "he", "hei", "hen", "heng", "hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", "hun", "huo", "ji", "jia", "jian", "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "jun", "juan", "jue", "#NAME?", "ka", "kai", "kan", "kang", "kao", "ke", "ken", "keng", "kong", "kou", "ku", "kua", "kuai", "kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei", "leng", "li", "lia", "lian", "liang", "liao", "lie", "lin", "ling", "liu", "lo", "long", "lou", "lu", "luan", "lun", "luo", "lv", "lve", "ma", "mai", "man", "mang", "mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu", "na", "nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ni", "nian", "niang", "niao", "nie", "nin", "ning", "niu", "nong", "nou", "nu", "nuan", "nun", "nuo", "nv", "nve", "o", "ou", "pa", "pai", "pan", "pang", "pao", "pei", "pen", "peng", "pi", "pian", "piao", "pie", "pin", "ping", "po", "pou", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", "qing", "qiong", "qiu", "qu", "quan", "que", "qun", "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", "ru", "rua", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang", "sao", "se", "sen", "seng", "sha", "shai", "shan", "shang", "shao", "she", "shei", "shen", "sheng", "shi", "shou", "shu", "shua", "shuai", "shuan", "shuang", "shui", "shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun", "suo", "ta", "tai", "tan", "tang", "tao", "te", "tei", "teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo", "wa", "wai", "wan", "wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao", "xie", "xin", "xing", "xiong", "xiu", "xu", "xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yo", "yong", "you", "yu", "yuan", "yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai", "zhan", "zhang", "zhao", "zhe", "zhei", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang", "zhui", "zhun", "zhuo", "zi", "zong", "zou", "zu", "zuan", "zui", "zun", "zuo", }; // 带音标字符。 QMap phoneticSymbol = { {"ā", "a1"}, {"á", "a2"}, {"ǎ", "a3"}, {"à", "a4"}, {"ē", "e1"}, {"é", "e2"}, {"ě", "e3"}, {"è", "e4"}, {"ō", "o1"}, {"ó", "o2"}, {"ǒ", "o3"}, {"ò", "o4"}, {"ī", "i1"}, {"í", "i2"}, {"ǐ", "i3"}, {"ì", "i4"}, {"ū", "u1"}, {"ú", "u2"}, {"ǔ", "u3"}, {"ù", "u4"}, {"ü", "v"}, {"ǘ", "v2"}, {"ǚ", "v3"}, {"ǜ", "v4"}, {"ń", "n2"}, {"ň", "n3"}, {"ǹ", "n4"}, {"ḿ", "m2"}, }; dde-calendar-5.9.1/calendar-service/src/pinyin/pinyindict.h000066400000000000000000000021471423264401600236660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 PINYINDICT_H #define PINYINDICT_H #include #include //获取拼音字典 const QVector > getPinYinDictVector(); // 带音标字符。 extern QMap phoneticSymbol; /* 合法拼音列表 */ extern QVector validPinyinList; #endif // PINYINDICT_H dde-calendar-5.9.1/calendar-service/src/pinyin/pinyinsearch.cpp000066400000000000000000000171471423264401600245510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "pinyinsearch.h" #include "pinyindict.h" #include #include #include #include pinyinsearch *pinyinsearch::m_pinyinsearch = nullptr; QMap pinyinsearch::pinyinDictVector {}; const QString kDictFile = ":/pinyin.dict"; /** * @brief pinyinsearch::pinyinsearch 构造函数,进行初始化 */ pinyinsearch::pinyinsearch() { for (int i = 0; i < validPinyinList.size(); i++) { QString key = validPinyinList[i]; validPinyinMap[key] = true; //拼音最大长度 if (key.size() > singlePinyinMaxLength) singlePinyinMaxLength = key.size(); } } pinyinsearch *pinyinsearch::getPinPinSearch() { if (m_pinyinsearch == nullptr) { //new pinyinsearch m_pinyinsearch = new pinyinsearch(); //获取拼音字典 initDict(); } return m_pinyinsearch; } /** * @brief pinyinsearch::canQueryByPinyin 拼音是否与正则表达式匹配 * @param str 拼音字符串 * @return bool值 */ bool pinyinsearch::CanQueryByPinyin(QString str) { QRegExp regexp("^[a-zA-Z]+$"); return regexp.exactMatch(str); } /** * @brief pinyinsearch::createPinyin 创建拼音字符串 * @param zh 汉字字符串 * @return 拼音字符串 */ QString pinyinsearch::CreatePinyin(const QString &zh) { //返回中文对应的拼音,汉字个数对应QList长度,每个汉字拥有的拼音个数对应QStringList长度 QList pyList = Pinyin(zh); QString pinyinStr; for (int i = 0; i < pyList.count(); i++) { //如果一个汉字有多个拼音,把“|”放在中间,以示区分 QString pyStr = pyList.at(i).join("|"); //将每个汉字的拼音放在[]中 if (!pyStr.isEmpty()) pinyinStr += "[" + pyStr + "]"; } return pinyinStr; } void pinyinsearch::initDict() { if (!pinyinDictVector.isEmpty()) { return; } QFile file(kDictFile); if (!file.open(QIODevice::ReadOnly)) { qWarning() << "open dictFile error :" << file.error(); return; } QByteArray content = file.readAll(); file.close(); QTextStream stream(&content, QIODevice::ReadOnly); while (!stream.atEnd()) { const QString line = stream.readLine(); const QStringList items = line.split(QChar(':')); if (items.size() == 2) { pinyinDictVector.insert(items[0].toInt(nullptr, 16), items[1]); } } } /** * @brief pinyinsearch::createPinyinQuery 构造拼音查询表达式 * @param pinyin 拼音 * @return 按照汉字划分好的拼音字符串 */ QString pinyinsearch::CreatePinyinQuery(QString pinyin) const { QString expr; //对传入的拼音进行划分,例如:“nihao”->"[%ni%][%hao%]" while (pinyin.size() > 0) { //拼音最大长度 int i = singlePinyinMaxLength; if (i > pinyin.size()) { i = pinyin.size(); } while (i > 1) { //从拼音最大长度,递减截取拼音,是否在字典中 QString key = pinyin.mid(0, i); //如果拼音在字典中,则此拼音代表一个汉字的拼音,break if (validPinyinMap[key]) break; i--; } //一个汉字的拼音 QString key = pinyin.mid(0, i); //对剩下的字符串再次进行解析 pinyin = pinyin.mid(i, pinyin.size()); //对每个汉字的拼音进行区分 expr += "[%" + key + "%]"; } return expr; } /** * @brief pinyinsearch::createPinyinRegexp 构造拼音查询正则表达式 * @param pinyin 拼音 * @return 拼音的正则表达式 */ QString pinyinsearch::CreatePinyinRegexp(QString pinyin) const { QString expr; while (pinyin.size() > 0) { int i = singlePinyinMaxLength; if (i > pinyin.size()) { i = pinyin.size(); } while (i > 1) { QString key = pinyin.mid(0, i); if (validPinyinMap[key]) { break; } i--; } QString key = pinyin.mid(0, i); pinyin = pinyin.mid(i, pinyin.size()); expr += "\\[[a-z\\|]*" + key + "[a-z\\|]*\\]"; } return expr; } /** * @brief pinyinsearch::pinyinMatch 判断汉字和拼音是否匹配 * @param zh 汉字 * @param py 汉字对应的拼音 * @return bool值 */ bool pinyinsearch::PinyinMatch(const QString &zh, const QString &py) const { //获取汉字的拼音 QString zhPinyin = CreatePinyin(zh); //获取拼音的正则表达式 QString expr = CreatePinyinRegexp(py); //QRegularExpression类使用正则表达式提供模式匹配。 QRegularExpression regexp(expr); //根据给定的主题字符串匹配正则表达式,返回的QRegularExpressionMatch对象包含匹配的结果。 QRegularExpressionMatch match = regexp.match(zhPinyin); //拼音是否与正则表达式匹配 return match.hasMatch(); } /** * @brief pinyinsearch::Pinyin 获取汉字的拼音 * @param str 汉字 * @return 汉字对应的拼音 */ QList pinyinsearch::Pinyin(QString str) { QList pys {}; QStringList py; for (int i = 0; i < str.count(); i++) { //每个汉字对应的拼音 py = SinglePinyin(str.at(i)); if (py.size() > 0) { //将去掉音调的拼音添加到Qlist中 pys.append(RemoveYin(py)); } } return pys; } /** * @brief pinyinsearch::SinglePinyin 通过字典找到汉字对应的拼音 * @param index 汉字 * @return 拼音 */ QStringList pinyinsearch::SinglePinyin(QString index) { //通过汉字的编码找到对应的拼音 QString value; //查找对应的拼音 const int unicode = index.data()->unicode(); if (pinyinDictVector.contains(unicode)) { value = pinyinDictVector[index.data()->unicode()]; } QStringList pys {}; pys = value.split(","); return pys; } /** * @brief pinyinsearch::removeYin 去掉拼音中的音调 * @param pinyin 带有音调的拼音 * @return 不带音调的拼音 */ QStringList pinyinsearch::RemoveYin(QStringList pinyin) { QString str; QStringList strList; //遍历每个拼音 for (int i = 0; i < pinyin.size(); i++) { //遍历拼音中的每个字母,对带有音调的进行处理 for (int j = 0; j < pinyin.at(i).size(); j++) { QString s = pinyin.at(i).at(j); //如果有音调转换为不带音调的字母,否则使用原字母 if (phoneticSymbol.contains(s)) { str.append(phoneticSymbol[s][0]); } else { str.append(s); } } //一个拼音可能有多种音调,所以需要去重 if (!strList.contains(str)) strList.append(str); str.clear(); } return strList; } dde-calendar-5.9.1/calendar-service/src/pinyin/pinyinsearch.h000066400000000000000000000041011423264401600242000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 PINYINSEARCH_H #define PINYINSEARCH_H #include #include class pinyinsearch { public: static pinyinsearch *getPinPinSearch(); /* 判断字符串是否只可以进行拼音查询 */ static bool CanQueryByPinyin(QString str); /* 创建拼音字符串 */ static QString CreatePinyin(const QString &zh); //初始化字典 static void initDict(); /* 构造拼音查询表达式 */ QString CreatePinyinQuery(QString pinyin) const; /* 构造拼音查询正则表达式 */ QString CreatePinyinRegexp(QString pinyin) const; /* 判断汉字和拼音是否匹配 */ bool PinyinMatch(const QString &zh, const QString &py) const; private: /* 初始化合法拼音表 */ pinyinsearch(); //获取汉字对应的拼音,不带音调 static QList Pinyin(QString str); //找到汉字对应的拼音 static QStringList SinglePinyin(QString index); //去掉拼音中的音调 static QStringList RemoveYin(QStringList pinyin); /* 单个合法拼音的最大长度 */ int singlePinyinMaxLength = 0; /* 合法单拼音表 */ QMap validPinyinMap {}; static pinyinsearch *m_pinyinsearch; //拼音字典 static QMap pinyinDictVector; }; #endif dde-calendar-5.9.1/debian/000077500000000000000000000000001423264401600152555ustar00rootroot00000000000000dde-calendar-5.9.1/debian/changelog000066400000000000000000000004531423264401600171310ustar00rootroot00000000000000dde-calendar (1.0.0-1) stable; urgency=low * Autobuild Tag 1.0.0 -- TagBuilder Fri, 12 Aug 2016 17:34:34 +0000 dde-calendar (1.0-1) unstable; urgency=medium * Initial release -- Deepin Packages Builder Fri, 18 Mar 2016 17:01:43 +0800 dde-calendar-5.9.1/debian/compat000066400000000000000000000000021423264401600164530ustar00rootroot000000000000009 dde-calendar-5.9.1/debian/control000066400000000000000000000014131423264401600166570ustar00rootroot00000000000000Source: dde-calendar Section: utils Priority: optional Maintainer: Deepin Packages Builder Build-Depends: debhelper (>=9), cmake, pkg-config, qtbase5-dev, libdtkgui-dev, libdtkwidget-dev, qttools5-dev-tools, deepin-gettext-tools, libdframeworkdbus-dev, libgtest-dev, qttools5-dev Standards-Version: 4.3.0 Homepage: http://www.deepin.org Vcs-Git: https://github.com/linuxdeepin/dde-calendar Package: dde-calendar Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, dde-api, libdframeworkdbus2 (>= 5.3.0.34) Description: Calendar is a smart daily planner to schedule all things in life. Calendar is a small management tool for personal life that combines time and events and integrates the function of memorizing and scheduling. dde-calendar-5.9.1/debian/copyright000066400000000000000000000017651423264401600172210ustar00rootroot00000000000000Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: dde-calendar Source: https://github.com/linuxdeepin/dde-calendar Files: * Copyright: 2011, 2021 Deepin Technology Co., Ltd. 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". dde-calendar-5.9.1/debian/dde-calendar.1000066400000000000000000000025071423264401600176460ustar00rootroot00000000000000.\" Hey, EMACS: -*- nroff -*- .\" (C) Copyright 2021 chenhaifeng , .\" .TH "dde-calendar" "1" "2021-3-11" "Deepin" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME dde-calendar \- a smart daily planner to schedule all things in life .SH SYNOPSIS dde-calendar [OPTIONS...] .SH DESCRIPTION Calendar is a smart daily planner to schedule all things in life. .PP Calendar is a small management tool for personal life that combines time and events and integrates the function of memorizing and scheduling. .SH OPTIONS .PP -h --help Prints the command line options. .PP -v --version Output version information and exit. .PP .SH SEE ALSO https://github.com/linuxdeepin/dde-calendar .SH AUTHOR .PP .B dde-calendar is written by Deepin Technology Co., Ltd. .PP This manual page was written by .MT chenhaifeng@\:uniontech.com Chen Haifeng .ME for the Debian Project (but may be used by others) dde-calendar-5.9.1/debian/dde-calendar.postinst000066400000000000000000000024301423264401600213640ustar00rootroot00000000000000#!/bin/bash #日历后端服务进程名称 calendarServiceName="dde-calendar-service" #获取日历后端进程id serviceIDsARR=($(pidof ${calendarServiceName})) #判断后端是否在运行。如果在运行则kill掉 if [ ${#serviceIDsARR[@]} -gt 0 ] then killall ${calendarServiceName} fi #获取已登陆的用户 userNameArr=($(who -q | head -n 1)) #定时器名称 sysTimer="com.dde.calendarserver.calendar.timer" #根据已登陆的用户开启后端定时任务 for userName in ${userNameArr[@]} ; do #获取服务状态 serviceStatus=$(runuser -l ${userName} -c "XDG_RUNTIME_DIR=\"/run/user/$(id -u ${userName})\" systemctl --user is-active ${sysTimer}") #活跃的关键字 activeStr="active" #如果为活跃的则表示服务已开启 if [ "$serviceStatus" = "$activeStr" ];then #如果服务已经启动则重新加载 runuser -l ${userName} -c "XDG_RUNTIME_DIR=\"/run/user/$(id -u ${userName})\" systemctl --user daemon-reload" else #如果服务没有启动则设置开启 runuser -l ${userName} -c "XDG_RUNTIME_DIR=\"/run/user/$(id -u ${userName})\" systemctl --user enable ${sysTimer}" runuser -l ${userName} -c "XDG_RUNTIME_DIR=\"/run/user/$(id -u ${userName})\" systemctl --user start ${sysTimer}" fi donedde-calendar-5.9.1/debian/manpages000066400000000000000000000000251423264401600167700ustar00rootroot00000000000000debian/dde-calendar.1dde-calendar-5.9.1/debian/rules000066400000000000000000000013321423264401600163310ustar00rootroot00000000000000#!/usr/bin/make -f export QT_SELECT=5 include /usr/share/dpkg/default.mk DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) DH_AUTO_ARGS = --parallel --buildsystem=cmake # Uncomment this to turn on verbose mode. export DH_VERBOSE=1 %: dh $@ --parallel override_dh_auto_configure: dh_auto_configure -- \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_SAFETYTEST_ARG="CMAKE_SAFETYTEST_ARG_OFF" \ -DAPP_VERSION=$(DEB_VERSION_UPSTREAM) -DVERSION=$(DEB_VERSION_UPSTREAM) LIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) #Ignore the dpkg-shlibdeps: warning (it uses none of the library's symbols) #Qt Mutidedia lib will ref to network libraray. override_dh_shlibdeps: dh_shlibdeps --dpkg-shlibdeps-params=--warnings=0 dde-calendar-5.9.1/debian/source/000077500000000000000000000000001423264401600165555ustar00rootroot00000000000000dde-calendar-5.9.1/debian/source/format000066400000000000000000000000151423264401600177640ustar00rootroot000000000000003.0 (native) dde-calendar-5.9.1/rpm/000077500000000000000000000000001423264401600146315ustar00rootroot00000000000000dde-calendar-5.9.1/rpm/dde-calendar.spec000066400000000000000000000031001423264401600200020ustar00rootroot00000000000000%define pkgrelease 1 %if 0%{?openeuler} %define specrelease %{pkgrelease} %else ## allow specrelease to have configurable %%{?dist} tag in other distribution %define specrelease %{pkgrelease}%{?dist} %endif Name: dde-calendar Version: 5.8.1.1 Release: %{specrelease} Summary: Calendar is a smart daily planner to schedule all things in life License: GPLv3 URL: https://github.com/linuxdeepin/dde-calendar Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz BuildRequires: cmake BuildRequires: qt5-devel BuildRequires: dtkgui-devel BuildRequires: dtkwidget-devel BuildRequires: deepin-gettext-tools BuildRequires: pkgconfig(dframeworkdbus) BuildRequires: gtest-devel %description %{summary}. %prep %autosetup %build export PATH=%{_qt5_bindir}:$PATH sed -i "s|^cmake_minimum_required.*|cmake_minimum_required(VERSION 3.0)|" $(find . -name "CMakeLists.txt") mkdir build && pushd build %cmake -DCMAKE_BUILD_TYPE=Release ../ -DAPP_VERSION=%{version} -DVERSION=%{version} %make_build popd %install %make_install -C build INSTALL_ROOT="%buildroot" %files %doc README.md %license LICENSE %{_bindir}/%{name} %{_datadir}/applications/%{name}.desktop %{_datadir}/%{name}/translations/*.qm %{_datadir}/deepin-manual/manual-assets/application/dde-calendar/calendar/* %{_datadir}/dbus-1/services/*.service /etc/xdg/autostart/dde-calendar-service.desktop %{_datadir}/dde-calendar/data/* /usr/lib/deepin-daemon/dde-calendar-service %changelog * Tue Apr 20 2021 zhangdingwen - 5.8.1.1-1 - init spec for eulerdde-calendar-5.9.1/schedule-plugin/000077500000000000000000000000001423264401600171235ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/CMakeLists.txt000066400000000000000000000051111423264401600216610ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) if (NOT DEFINED VERSION) set(VERSION 1.2.2) endif () #common resource names set(APP_RES_DIR "assets") set(APP_BIN_NAME "uosschedulex-plugin") set(APP_QRC "${APP_RES_DIR}/resources.qrc") project(${APP_BIN_NAME}) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "sw_64") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mieee") endif () add_definitions("-DSCHEDULEPLUGIN_LIBRARY") add_definitions("-DQT_DEPRECATED_WARNINGS") #compile flags if (CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Wextra") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra") # Enable Qt builtin debug mode add_definitions("-DQT_MESSAGELOGCONTEXT") else() # -Wl, -O2 Enable linker optimizations # -Wl, --gc-sections Remove unused code resulting from -fdsta-sections and # -ffunction-sections set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2 -Wl,-O1 -Wl,--gc-sections") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -Wl,-O1 -Wl,--gc-sections") endif() #安全编译参数 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong -D_FORTITY_SOURCE=1 -z noexecstack -pie -fPIC -z lazy") macro(SUBDIRLIST result curdir) file(GLOB children RELATIVE ${curdir} ${curdir}/*) set(dirlist "") foreach(child ${children}) if(IS_DIRECTORY ${curdir}/${child}) LIST(APPEND dirlist ${child}) endif() endforeach() set(${result} ${dirlist}) endmacro() include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) SUBDIRLIST(all_src ${CMAKE_CURRENT_SOURCE_DIR}/src) #Include all app own subdirectorys foreach(subdir ${all_src}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/${subdir}) endforeach() file(GLOB_RECURSE Schedule_Plugin_SRC ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) find_package(PkgConfig REQUIRED) find_package(DFrameworkdbus REQUIRED) find_package(DtkWidget REQUIRED) find_package(Qt5Svg REQUIRED) find_package(Qt5DBus REQUIRED) include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}) # Tell CMake to create the lib add_library(${PROJECT_NAME} SHARED ${Schedule_Plugin_SRC} ${APP_QRC} src/interface/service.h) target_include_directories(${PROJECT_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${OBJECT_BINARY_DIR}) target_link_libraries(${PROJECT_NAME} ${Qt5Svg_LIBRARIES} ${Qt5DBus_LIBRARIES} ${DtkWidget_LIBRARIES} ${DFrameworkdbus_LIBRARIES} ) # Install files install(TARGETS ${PROJECT_NAME} DESTINATION /usr/lib/deepin-aiassistant/serivce-plugins) dde-calendar-5.9.1/schedule-plugin/assets/000077500000000000000000000000001423264401600204255ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/assets/resources.qrc000066400000000000000000000053241423264401600231520ustar00rootroot00000000000000 resources/DynamicIcon/calendar_bg.svg resources/DynamicIcon/day1.svg resources/DynamicIcon/day2.svg resources/DynamicIcon/day3.svg resources/DynamicIcon/day4.svg resources/DynamicIcon/day5.svg resources/DynamicIcon/day6.svg resources/DynamicIcon/day7.svg resources/DynamicIcon/day8.svg resources/DynamicIcon/day9.svg resources/DynamicIcon/day10.svg resources/DynamicIcon/day11.svg resources/DynamicIcon/day12.svg resources/DynamicIcon/day13.svg resources/DynamicIcon/day14.svg resources/DynamicIcon/day15.svg resources/DynamicIcon/day16.svg resources/DynamicIcon/day17.svg resources/DynamicIcon/day18.svg resources/DynamicIcon/day19.svg resources/DynamicIcon/day20.svg resources/DynamicIcon/day21.svg resources/DynamicIcon/day22.svg resources/DynamicIcon/day23.svg resources/DynamicIcon/day24.svg resources/DynamicIcon/day25.svg resources/DynamicIcon/day26.svg resources/DynamicIcon/day27.svg resources/DynamicIcon/day28.svg resources/DynamicIcon/day29.svg resources/DynamicIcon/day30.svg resources/DynamicIcon/day31.svg resources/DynamicIcon/month1.svg resources/DynamicIcon/month2.svg resources/DynamicIcon/month3.svg resources/DynamicIcon/month4.svg resources/DynamicIcon/month5.svg resources/DynamicIcon/month6.svg resources/DynamicIcon/month7.svg resources/DynamicIcon/month8.svg resources/DynamicIcon/month9.svg resources/DynamicIcon/month10.svg resources/DynamicIcon/month11.svg resources/DynamicIcon/month12.svg resources/DynamicIcon/week1.svg resources/DynamicIcon/week2.svg resources/DynamicIcon/week3.svg resources/DynamicIcon/week4.svg resources/DynamicIcon/week5.svg resources/DynamicIcon/week6.svg resources/DynamicIcon/week7.svg dde-calendar-5.9.1/schedule-plugin/assets/resources/000077500000000000000000000000001423264401600224375ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/000077500000000000000000000000001423264401600246345ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/calendar_bg.svg000066400000000000000000000050401423264401600275750ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day1.svg000066400000000000000000000016271423264401600262210ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day10.svg000066400000000000000000000035761423264401600263060ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day11.svg000066400000000000000000000022031423264401600262710ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day12.svg000066400000000000000000000035601423264401600263010ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day13.svg000066400000000000000000000052501423264401600263000ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day14.svg000066400000000000000000000024701423264401600263020ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day15.svg000066400000000000000000000050551423264401600263050ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day16.svg000066400000000000000000000120511423264401600263000ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day17.svg000066400000000000000000000022561423264401600263070ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day18.svg000066400000000000000000000057751423264401600263210ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day19.svg000066400000000000000000000117071423264401600263120ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day2.svg000066400000000000000000000032621423264401600262170ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day20.svg000066400000000000000000000051461423264401600263020ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day21.svg000066400000000000000000000035631423264401600263040ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day22.svg000066400000000000000000000051421423264401600263000ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day23.svg000066400000000000000000000066141423264401600263060ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day24.svg000066400000000000000000000040651423264401600263050ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day25.svg000066400000000000000000000065111423264401600263040ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day26.svg000066400000000000000000000134361423264401600263110ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day27.svg000066400000000000000000000036651423264401600263150ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day28.svg000066400000000000000000000073441423264401600263140ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day29.svg000066400000000000000000000131771423264401600263160ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day3.svg000066400000000000000000000047641423264401600262300ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day30.svg000066400000000000000000000066571423264401600263130ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day31.svg000066400000000000000000000052721423264401600263040ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day4.svg000066400000000000000000000020001423264401600262060ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day5.svg000066400000000000000000000046251423264401600262260ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day6.svg000066400000000000000000000115761423264401600262320ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day7.svg000066400000000000000000000016521423264401600262250ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day8.svg000066400000000000000000000055111423264401600262240ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/day9.svg000066400000000000000000000114041423264401600262230ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month1.svg000066400000000000000000000022621423264401600265650ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month10.svg000066400000000000000000000022471423264401600266500ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month11.svg000066400000000000000000000023611423264401600266460ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month12.svg000066400000000000000000000027601423264401600266520ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month2.svg000066400000000000000000000023761423264401600265740ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month3.svg000066400000000000000000000035501423264401600265700ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month4.svg000066400000000000000000000032311423264401600265650ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month5.svg000066400000000000000000000032571423264401600265760ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month6.svg000066400000000000000000000026551423264401600266000ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month7.svg000066400000000000000000000021551423264401600265740ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month8.svg000066400000000000000000000033221423264401600265720ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/month9.svg000066400000000000000000000034731423264401600266020ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week1.svg000066400000000000000000000027011423264401600263710ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week2.svg000066400000000000000000000037371423264401600264040ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week3.svg000066400000000000000000000031751423264401600264010ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week4.svg000066400000000000000000000030411423264401600263720ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week5.svg000066400000000000000000000021101423264401600263670ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week6.svg000066400000000000000000000033171423264401600264020ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/assets/resources/DynamicIcon/week7.svg000066400000000000000000000030211423264401600263730ustar00rootroot00000000000000 dde-calendar-5.9.1/schedule-plugin/src/000077500000000000000000000000001423264401600177125ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/data/000077500000000000000000000000001423264401600206235ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/data/canceljsondata.cpp000066400000000000000000000017131423264401600243020ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "canceljsondata.h" #include #include "../globaldef.h" cancelJsonData::cancelJsonData() : JsonData() { } cancelJsonData::~cancelJsonData() { } dde-calendar-5.9.1/schedule-plugin/src/data/canceljsondata.h000066400000000000000000000017571423264401600237570ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CANCELJSONDATA_H #define CANCELJSONDATA_H #include "jsondata.h" class cancelJsonData : public JsonData { public: cancelJsonData(); ~cancelJsonData() override; }; #endif // CANCELJSONDATA_H dde-calendar-5.9.1/schedule-plugin/src/data/changejsondata.cpp000066400000000000000000000051251423264401600243030ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "changejsondata.h" #include "../globaldef.h" #include changejsondata::changejsondata() : JsonData() { } void changejsondata::jsonObjResolve(const QJsonObject &jsobj) { if (jsobj[JSON_NAME] == JSON_FROMDATETIME) { fromDatetimeJsonResolve(jsobj); return; } if (jsobj[JSON_NAME] == JSON_TODATETIME) { toDatetimeJsonResolve(jsobj); return; } if (jsobj[JSON_NAME] == JSON_TOPLACE) { toPlaceJsonResolve(jsobj); return; } } void changejsondata::setDefaultValue() { JsonData::setDefaultValue(); m_fromDateTime.clear(); m_toDateTime.clear(); m_toPlaceStr.clear(); } void changejsondata::fromDatetimeJsonResolve(const QJsonObject &jsobj) { setFromDateTime(suggestDatetimeResolve(jsobj)); } void changejsondata::toDatetimeJsonResolve(const QJsonObject &jsobj) { setToDateTime(suggestDatetimeResolve(jsobj)); } void changejsondata::toPlaceJsonResolve(const QJsonObject &jsobj) { setToPlaceStr(jsobj[JSON_VALUE].toString()); } QString changejsondata::toPlaceStr() const { return m_toPlaceStr; } void changejsondata::setToPlaceStr(const QString &toPlaceStr) { m_toPlaceStr = toPlaceStr; } bool changejsondata::isVaild() const { return this->m_toDateTime.suggestDatetime.size() ==0 && this->m_fromDateTime.suggestDatetime.size()==0 && this->toPlaceStr().isEmpty() && JsonData::isVaild(); } SemanticsDateTime changejsondata::toDateTime() const { return m_toDateTime; } void changejsondata::setToDateTime(const SemanticsDateTime &toDateTime) { m_toDateTime = toDateTime; } SemanticsDateTime changejsondata::fromDateTime() const { return m_fromDateTime; } void changejsondata::setFromDateTime(const SemanticsDateTime &fromDateTime) { m_fromDateTime = fromDateTime; } dde-calendar-5.9.1/schedule-plugin/src/data/changejsondata.h000066400000000000000000000046731423264401600237570ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CHANGEJSONDATA_H #define CHANGEJSONDATA_H #include "jsondata.h" class changejsondata : public JsonData { public: changejsondata(); /** * @brief fromDateTime 获取语义from时间数据 * @return 时间数据 */ SemanticsDateTime fromDateTime() const; /** * @brief setFromDateTime 设置语义from时间数据 * @param fromDateTime 时间数据 */ void setFromDateTime(const SemanticsDateTime &fromDateTime); /** * @brief toDateTime 获取语义toDateTime时间数据 * @return 时间数据 */ SemanticsDateTime toDateTime() const; /** * @brief setToDateTime 设置语义toDateTime时间数据 * @param toDateTime 时间数据 */ void setToDateTime(const SemanticsDateTime &toDateTime); QString toPlaceStr() const; void setToPlaceStr(const QString &toPlaceStr); /** * @brief isVaild 判断json是否为原始数据 * @return true为原始数据 */ bool isVaild() const override; private: void jsonObjResolve(const QJsonObject &jsobj) override; void setDefaultValue() override; void fromDatetimeJsonResolve(const QJsonObject &jsobj); void toDatetimeJsonResolve(const QJsonObject &jsobj); void toPlaceJsonResolve(const QJsonObject &jsobj); private: /** * @brief m_fromDateTime 需要修改的时间信息 */ SemanticsDateTime m_fromDateTime {}; /** * @brief m_toDateTime 修改到的时间信息 */ SemanticsDateTime m_toDateTime {}; /** * @brief m_toPlaceStr 修改的日常内容 */ QString m_toPlaceStr {}; }; #endif // CHANGEJSONDATA_H dde-calendar-5.9.1/schedule-plugin/src/data/clocaldata.cpp000066400000000000000000000044201423264401600234160ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "clocaldata.h" CLocalData::CLocalData() { } QVector CLocalData::scheduleInfoVector() const { return m_scheduleInfoVector; } void CLocalData::setScheduleInfoVector(const QVector &scheduleInfoVector) { m_scheduleInfoVector = scheduleInfoVector; } ScheduleDtailInfo CLocalData::SelectInfo() const { return m_SelectInfo; } void CLocalData::setSelectInfo(const ScheduleDtailInfo &SelectInfo) { m_SelectInfo = SelectInfo; } void CLocalData::setToTitleName(const QString &title) { m_ToTitleName = title; } QString CLocalData::getToTitleName() const { return m_ToTitleName; } void CLocalData::setToTime(const SemanticsDateTime &timeInfo) { m_ToTime = timeInfo; } SemanticsDateTime CLocalData::getToTime() const { return m_ToTime; } int CLocalData::getOffet() const { return m_offset; } void CLocalData::setOffset(int offset) { m_offset = offset; } CLocalData *CLocalData::getDataByPoint(const CLocalData *localData) { if (this == localData || localData == nullptr) return this; this->m_offset = localData->m_offset; this->m_SelectInfo = localData->m_SelectInfo; this->m_ToTime = localData->m_ToTime; this->m_scheduleInfoVector = localData->m_scheduleInfoVector; this->m_ToTitleName = localData->m_ToTitleName; return this; } void CLocalData::setNewInfo(const ScheduleDtailInfo &newInfo) { m_NewInfo = newInfo; } ScheduleDtailInfo CLocalData::getNewInfo() const { return m_NewInfo; } dde-calendar-5.9.1/schedule-plugin/src/data/clocaldata.h000066400000000000000000000037761423264401600231000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CLOCALDATA_H #define CLOCALDATA_H #include "schedulestructs.h" #include "timedatastruct.h" class CLocalData { public: CLocalData(); QVector scheduleInfoVector() const; void setScheduleInfoVector(const QVector &scheduleInfoVector); ScheduleDtailInfo SelectInfo() const; void setSelectInfo(const ScheduleDtailInfo &SelectInfo); void setToTitleName(const QString &title); QString getToTitleName() const; /** * @brief setToTime 设置修改的日程时间 * @param timeInfo 日程时间 */ void setToTime(const SemanticsDateTime &timeInfo); /** * @brief getToTime 获取修改的日程时间 * @return */ SemanticsDateTime getToTime() const; int getOffet() const; void setOffset(int offset); CLocalData *getDataByPoint(const CLocalData *localData); void setNewInfo(const ScheduleDtailInfo &newInfo); ScheduleDtailInfo getNewInfo() const; private: QVector m_scheduleInfoVector {}; ScheduleDtailInfo m_SelectInfo {}; ScheduleDtailInfo m_NewInfo {}; QString m_ToTitleName {""}; SemanticsDateTime m_ToTime {}; int m_offset {-1}; }; #endif // CLOCALDATA_H dde-calendar-5.9.1/schedule-plugin/src/data/createjsondata.cpp000066400000000000000000000017601423264401600243220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "createjsondata.h" #include #include #include #include #include "../globaldef.h" CreateJsonData::CreateJsonData() : JsonData() { } dde-calendar-5.9.1/schedule-plugin/src/data/createjsondata.h000066400000000000000000000017321423264401600237660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CREATEJSONDATA_H #define CREATEJSONDATA_H #include "jsondata.h" class CreateJsonData : public JsonData { public: CreateJsonData(); private: }; #endif // CREATEJSONDATA_H dde-calendar-5.9.1/schedule-plugin/src/data/jsondata.cpp000066400000000000000000000257221423264401600231420ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "jsondata.h" #include #include #include #include #include "../globaldef.h" JsonData::JsonData() { } JsonData::~JsonData() { } void JsonData::JosnResolve(const QJsonObject &jsObj) { setDefaultValue(); if (jsObj.contains("slots") && jsObj["slots"].isArray()) { auto slotsObjArr = jsObj["slots"].toArray(); for (int j = 0; j < slotsObjArr.size(); ++j) { auto slotsObj = slotsObjArr[j].toObject(); if (slotsObj.contains(JSON_NAME) && slotsObj[JSON_NAME].isString()) { if (slotsObj[JSON_NAME] == JSON_CONTENT) { contentJsonResolve(slotsObj); continue; } if (slotsObj[JSON_NAME] == JSON_REPEAT) { repeatJsonResolve(slotsObj); continue; } if (slotsObj[JSON_NAME] == JSON_DATETIME) { datetimeJsonResolve(slotsObj); continue; } if (slotsObj[JSON_NAME] == JSON_PROPERTY) { propertyJsonResolve(slotsObj); continue; } if (slotsObj[JSON_NAME] == JSON_POSRANK_OFFSET) { posRankOffsetResolve(slotsObj); continue; } //如果存在时间无效槽 则表示输入了无效的时间 if (slotsObj[JSON_NAME] == JSON_DateTimeInvalid) { m_DateTimeInvalid = true; continue; } jsonObjResolve(slotsObj); } } } } QString JsonData::SuggestMsg() const { return m_SuggestMsg; } void JsonData::setSuggestMsg(const QString &SuggestMsg) { m_SuggestMsg = SuggestMsg; } bool JsonData::ShouldEndSession() const { return m_ShouldEndSession; } void JsonData::setShouldEndSession(bool ShouldEndSession) { m_ShouldEndSession = ShouldEndSession; } void JsonData::setRepeatStatus(const JsonData::RepeatStatus &RepeatStatus) { m_RepeatStatus = RepeatStatus; } QString JsonData::TitleName() const { return m_TitleName; } void JsonData::setTitleName(const QString &TitleName) { m_TitleName = TitleName; } void JsonData::setDateTimeStatus(const JsonData::DateTimeStatus &DateTimeStatus) { m_DateTimeStatus = DateTimeStatus; } JsonData::RepeatStatus JsonData::getRepeatStatus() const { return m_RepeatStatus; } QVector JsonData::getRepeatNum() const { return m_RepeatNum; } void JsonData::setRepeatNum(const QVector &RepeatNum) { m_RepeatNum = RepeatNum; } SemanticsDateTime JsonData::getDateTime() const { return m_DateTime; } void JsonData::setDateTime(const SemanticsDateTime &DateTime) { m_DateTime = DateTime; } void JsonData::contentJsonResolve(const QJsonObject &jsobj) { setTitleName(jsobj[JSON_VALUE].toString()); } void JsonData::repeatJsonResolve(const QJsonObject &jsobj) { QString repeatValue = jsobj[JSON_VALUE].toString(); if (repeatValue.contains("EVERYEAR")) { setRepeatStatus(EVEY); return; } if (repeatValue.contains("EVERYDAY")) { setRepeatStatus(EVED); return; } if (repeatValue.contains("WORKDAY")) { setRepeatStatus(WORKD); return; } if (repeatValue.contains("RESTDAY")) { setRepeatStatus(RESTD); return; } if (repeatValue.contains("WEEKEND")) { setRepeatStatus(RESTD); return; } QRegExp rxlen("([W,M])([0-9]{0,2})"); int pos = 0; QVector repeatnum {}; repeatnum.clear(); while ((pos = rxlen.indexIn(repeatValue, pos)) != -1) { if (rxlen.cap(1).contains("M")) { setRepeatStatus(EVEM); } if (rxlen.cap(1).contains("W")) { setRepeatStatus(EVEW); } if (rxlen.cap(0).size() > 0 && rxlen.cap(2) != "") { repeatnum.append(rxlen.cap(2).toInt()); } pos += rxlen.matchedLength(); } setRepeatNum(repeatnum); } void JsonData::datetimeJsonResolve(const QJsonObject &jsobj) { setDateTime(suggestDatetimeResolve(jsobj)); } void JsonData::propertyJsonResolve(const QJsonObject &jsobj) { QString propertyValue = jsobj[JSON_VALUE].toString(); if (propertyValue == JSON_NEXT) { setPropertyStatus(NEXT); return; } if (propertyValue == JSON_LAST) { setPropertyStatus(LAST); return; } if (propertyValue == JSON_ALL) { setPropertyStatus(ALL); return; } if (propertyValue == JSON_THIS) { setPropertyStatus(PRO_THIS); return; } } void JsonData::posRankOffsetResolve(const QJsonObject &jsobj) { setOffset(jsobj[JSON_VALUE].toString().toInt()); } SemanticsDateTime JsonData::suggestDatetimeResolve(const QJsonObject &jsobj) { SemanticsDateTime semdatetime {}; semdatetime.clear(); QString DateTimeJson = jsobj[JSON_NORMVALUE].toString(); QJsonParseError jsonError; QJsonDocument doc = QJsonDocument::fromJson(DateTimeJson.toUtf8(), &jsonError); //建议时间 QString sugdateTimeStr{""}; //模糊时间 QString dateTimeStr{""}; if (!doc.isNull() && (jsonError.error == QJsonParseError::NoError)) { auto rootObject = doc.object(); sugdateTimeStr = (rootObject["suggestDatetime"].toString()); dateTimeStr = rootObject["datetime"].toString(); } //建议时间解析赋值 if (sugdateTimeStr != "") { if (sugdateTimeStr.contains("/")) { QStringList dateTimeList = sugdateTimeStr.split("/"); for (int i = 0; i < dateTimeList.size(); ++i) { //如果数据不为空,添加解析数据 if (!dateTimeList.at(i).isEmpty()) { semdatetime.suggestDatetime.append(resolveNormValue(dateTimeList.at(i))); } } } else { semdatetime.suggestDatetime.append(resolveNormValue(sugdateTimeStr)); } } //模糊时间解析赋值 if (!dateTimeStr.isEmpty()) { if (dateTimeStr.contains("/")) { QStringList dateTimeList = dateTimeStr.split("/"); for (int i = 0; i < dateTimeList.size(); ++i) { //如果数据不为空,添加解析数据 if (!dateTimeList.at(i).isEmpty()) { semdatetime.dateTime.append(resolveDateTimeValeu(dateTimeList.at(i))); } } } else { semdatetime.dateTime.append(resolveDateTimeValeu(dateTimeStr)); } } return semdatetime; } SuggestDatetimeInfo JsonData::resolveNormValue(const QString &str) { SuggestDatetimeInfo datetimeInfo; datetimeInfo.hasTime = str.contains(JSON_DATETIME_DELIMITER); datetimeInfo.datetime = QDateTime::fromString(str, Qt::ISODate); //设置处理后的日期字符 datetimeInfo.strDateTime = strTransform(str); return datetimeInfo; } DateTimeInfo JsonData::resolveDateTimeValeu(const QString &dateTimeStr) { DateTimeInfo dateTimeInfo{}; dateTimeInfo.strDateTime = dateTimeStr; //根据关键符合“T”分割字符 QStringList dateList = dateTimeStr.split(JSON_DATETIME_DELIMITER); //如果只有一个表示没有时间信息 if (dateList.size() == 1) { dateTimeInfo.m_Date = QDate::fromString(dateList.at(0), DATEFORMAT); dateTimeInfo.hasDate = true; dateTimeInfo.hasTime = false; } else if (dateList.size() > 1) { //如果第一个数据为空表示没有日期信息 if (dateList.at(0).isEmpty()) { dateTimeInfo.hasDate = false; } else { dateTimeInfo.m_Date = QDate::fromString(dateList.at(0), DATEFORMAT); dateTimeInfo.hasDate = true; } dateTimeInfo.m_Time = QTime::fromString(dateList.at(1), TIMEFORMAT); dateTimeInfo.hasTime = true; } return dateTimeInfo; } QString JsonData::strTransform(QString oldStr) { QString newStr; //对助手返回的字符进行分割 QStringList dateList = oldStr.split(JSON_DATETIME_DELIMITER); if (dateList.size() == 1) { //只有日期 //处理日期 QString strDate = strDateTransform(dateList.at(0)); //返回字符非空 if (!strDate.isEmpty()) return strDate; } else if (dateList.size() > 1) { //有日期和时间 QString strDate = ""; if (!dateList.at(0).isEmpty()) { //设置日期格式 if (!strDateTransform(dateList.at(0)).isEmpty()) strDate = strDateTransform(dateList.at(0)); } //返回日期+具体时间 return strDate + dateList.at(1); } //如果不包含以上情况,返回空 return ""; } QString JsonData::strDateTransform(QString oldStrDate) { //对日期进行分割 QStringList strDateList = oldStrDate.split(JSON_STR_DATE_DELIMITER); if (strDateList.size() == 1) { //只有年份 return strDateList.at(0) + YEAR; } else if (strDateList.size() == 2) { //年份+月份 return strDateList.at(0) + YEAR + strDateList.at(1) + MONTH; } else if (strDateList.size() == 3) { //年+月+日 return strDateList.at(0) + YEAR + strDateList.at(1) + MONTH + strDateList.at(2) + DAY; } //如果没有以上情况,返回空 return ""; } void JsonData::setDefaultValue() { setTitleName(""); setDateTimeStatus(NODATE); setRepeatStatus(NONE); setPropertyStatus(PRO_NONE); m_RepeatNum.clear(); m_DateTime.clear(); setOffset(-1); } void JsonData::jsonObjResolve(const QJsonObject &jsobj) { Q_UNUSED(jsobj); } bool JsonData::getDateTimeInvalid() const { return m_DateTimeInvalid; } JsonData::PropertyStatus JsonData::getPropertyStatus() const { return m_propertyStatus; } void JsonData::setPropertyStatus(const PropertyStatus &propertyStatus) { m_propertyStatus = propertyStatus; } int JsonData::offset() const { return m_offset; } void JsonData::setOffset(int offset) { m_offset = offset; } bool JsonData::isVaild() const { return TitleName() == "" && getDateTime().suggestDatetime.size() == 0 && m_offset == -1 && m_RepeatStatus == NONE && m_propertyStatus == PRO_NONE; } dde-calendar-5.9.1/schedule-plugin/src/data/jsondata.h000066400000000000000000000102701423264401600225770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 JSONDATA_H #define JSONDATA_H #include #include #include "timedatastruct.h" class QJsonObject; class JsonData { public: enum RepeatStatus { NONE, EVED, EVEW, EVEM, EVEY, WORKD, RESTD }; enum DateTimeStatus { NODATE, NOTIME, ALLHAS }; enum PropertyStatus { PRO_NONE, NEXT, LAST, ALL, PRO_THIS }; public: JsonData(); virtual ~JsonData(); void JosnResolve(const QJsonObject &jsObj); QString SuggestMsg() const; void setSuggestMsg(const QString &SuggestMsg); bool ShouldEndSession() const; void setShouldEndSession(bool ShouldEndSession); void setRepeatStatus(const RepeatStatus &RepeatStatus); QString TitleName() const; void setTitleName(const QString &TitleName); void setDateTimeStatus(const DateTimeStatus &DateTimeStatus); RepeatStatus getRepeatStatus() const; QVector getRepeatNum() const; void setRepeatNum(const QVector &RepeatNum); SemanticsDateTime getDateTime() const; void setDateTime(const SemanticsDateTime &DateTime); PropertyStatus getPropertyStatus() const; void setPropertyStatus(const PropertyStatus &propertyStatus); int offset() const; void setOffset(int offset); /** * @brief isVaild 判断json是否为原始数据 * @return true为原始数据 */ virtual bool isVaild() const; //获取时间有效性 bool getDateTimeInvalid() const; protected: void contentJsonResolve(const QJsonObject &jsobj); void repeatJsonResolve(const QJsonObject &jsobj); /** * @brief datetimeJsonResolve 时间关键字解析 * @param jsobj json对象 */ void datetimeJsonResolve(const QJsonObject &jsobj); void propertyJsonResolve(const QJsonObject &jsobj); /** * @brief posRankOffsetResolve 偏移关键字解析 * @param jsobj json对象 */ void posRankOffsetResolve(const QJsonObject &jsobj); SemanticsDateTime suggestDatetimeResolve(const QJsonObject &jsobj); /** * @brief resolveNormValue 解析建议时间数据 * @param str string格式的建议时间 * @return 建议时间 */ SuggestDatetimeInfo resolveNormValue(const QString &str); /** * @brief resolveDateTimeValeu 解析模糊时间数据 * @param dateTimeStr string格式的模糊时间 * @return 模糊时间 */ DateTimeInfo resolveDateTimeValeu(const QString &dateTimeStr); //修改助手返回日期和时间字符格式 QString strTransform(QString oldStr); //修改助手返回日期的字符格式 QString strDateTransform(QString oldStrDate); virtual void setDefaultValue(); virtual void jsonObjResolve(const QJsonObject &jsobj); private: QString m_SuggestMsg {""}; bool m_ShouldEndSession {false}; RepeatStatus m_RepeatStatus {NONE}; QVector m_RepeatNum {}; DateTimeStatus m_DateTimeStatus {NODATE}; PropertyStatus m_propertyStatus {PRO_NONE}; QString m_TitleName {""}; SemanticsDateTime m_DateTime {}; int m_offset {-1}; bool m_DateTimeInvalid {false}; }; #endif // JSONDATA_H dde-calendar-5.9.1/schedule-plugin/src/data/queryjsondata.cpp000066400000000000000000000017551423264401600242300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "queryjsondata.h" #include #include #include #include #include "../globaldef.h" QueryJsonData::QueryJsonData() : JsonData() { } dde-calendar-5.9.1/schedule-plugin/src/data/queryjsondata.h000066400000000000000000000017131423264401600236670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 QUERYJSONDATA_H #define QUERYJSONDATA_H #include "jsondata.h" class QueryJsonData : public JsonData { public: QueryJsonData(); }; #endif // QUERYJSONDATA_H dde-calendar-5.9.1/schedule-plugin/src/data/schedulecolourmanage.cpp000066400000000000000000000445421423264401600255310ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "schedulecolourmanage.h" ScheduleColourManage::ScheduleColourManage() : m_LifeScheduleColour(new CSchedulesColor()) , m_WorkScheduleColour(new CSchedulesColor()) , m_OtherScheduleColour(new CSchedulesColor()) , m_SolarScheduleColour(new CSchedulesColor()) { } ScheduleColourManage::~ScheduleColourManage() { delete m_LifeScheduleColour; m_LifeScheduleColour = nullptr; delete m_WorkScheduleColour; m_WorkScheduleColour = nullptr; delete m_OtherScheduleColour; m_OtherScheduleColour = nullptr; delete m_SolarScheduleColour; m_SolarScheduleColour = nullptr; } void ScheduleColourManage::setTheMe(int type) { setLifeScheduleTheme(type); setOtherScheduleTheme(type); setWorkScheduleTheme(type); setSolarScheduleTheme(type); } CSchedulesColor ScheduleColourManage::getColorByTypeId(const int &id) { //1工作 2 生活 3其他 CSchedulesColor color; switch (id) { case 1: color = WorkScheduleColour(); break; case 2: color = LifeScheduleColour(); break; case 3: color = OtherScheduleColour(); break; case 4: color = SolarScheduleColour(); break; default: color = OtherScheduleColour(); break; } return color; } CSchedulesColor ScheduleColourManage::LifeScheduleColour() const { return *m_LifeScheduleColour; } CSchedulesColor ScheduleColourManage::WorkScheduleColour() const { return *m_WorkScheduleColour; } CSchedulesColor ScheduleColourManage::OtherScheduleColour() const { return *m_OtherScheduleColour; } CSchedulesColor ScheduleColourManage::SolarScheduleColour() const { return *m_SolarScheduleColour; } void ScheduleColourManage::setLifeScheduleTheme(int type) { if (type == 0 || type == 1) { m_LifeScheduleColour->type = 2; m_LifeScheduleColour->dotColor = "#82D245"; m_LifeScheduleColour->dotColor.setAlphaF(1); m_LifeScheduleColour->gradientFromC = "#B7E6FB"; m_LifeScheduleColour->gradientFromC.setAlphaF(0.7); m_LifeScheduleColour->gradientToC = "#D4FFB3"; m_LifeScheduleColour->gradientToC.setAlphaF(0.7); m_LifeScheduleColour->Purecolor = "#6FFF00"; m_LifeScheduleColour->Purecolor.setAlphaF(0.2); m_LifeScheduleColour->shadowcolor = "#82D245"; m_LifeScheduleColour->textColor = "#000000"; m_LifeScheduleColour->timeColor = "#53A316"; m_LifeScheduleColour->hightlightgradientFromC = "#9AE5FF"; m_LifeScheduleColour->hightlightgradientToC = "#C7FF94"; QColor lifeP("#C7FF94"); //lifeP.setAlphaF(0.8); m_LifeScheduleColour->hightlightPurecolor = lifeP; m_LifeScheduleColour->hovergradientFromC = "#A8E9FF"; m_LifeScheduleColour->hovergradientToC = "#D5FFAF"; m_LifeScheduleColour->hovergradientFromC.setAlphaF(0.95); m_LifeScheduleColour->hovergradientToC.setAlphaF(0.95); QColor lifehP("#C4FF98"); lifehP.setAlphaF(0.8); m_LifeScheduleColour->hoverPurecolor = lifehP; m_LifeScheduleColour->splitColor = "#82D245"; m_LifeScheduleColour->pressgradientToC = m_LifeScheduleColour->gradientToC; m_LifeScheduleColour->pressgradientFromC = m_LifeScheduleColour->gradientFromC; m_LifeScheduleColour->pressPurecolor = m_LifeScheduleColour->Purecolor; m_LifeScheduleColour->pressgradientToC.setAlphaF(0.8); m_LifeScheduleColour->pressgradientFromC.setAlphaF(0.8); m_LifeScheduleColour->pressPurecolor.setAlphaF(0.2); } else { m_LifeScheduleColour->type = 2; m_LifeScheduleColour->dotColor = "#59F88D"; m_LifeScheduleColour->dotColor.setAlphaF(0.5); m_LifeScheduleColour->gradientFromC = "#2D6883"; m_LifeScheduleColour->gradientToC = "#5D7D44"; m_LifeScheduleColour->gradientToC.setAlphaF(0.5); m_LifeScheduleColour->gradientFromC.setAlphaF(0.5); m_LifeScheduleColour->Purecolor = "#59F88D"; m_LifeScheduleColour->Purecolor.setAlphaF(0.1); m_LifeScheduleColour->shadowcolor = "#25FA6B"; m_LifeScheduleColour->shadowcolor.setAlphaF(0.5); m_LifeScheduleColour->textColor = "#C0C6D4"; // m_LifeScheduleColour->textColor.setAlphaF(1); m_LifeScheduleColour->timeColor = "#38A35B"; m_LifeScheduleColour->hightlightgradientFromC = "#2D6883"; m_LifeScheduleColour->hightlightgradientFromC.setAlphaF(0.8); m_LifeScheduleColour->hightlightgradientToC = "#5D7D44"; m_LifeScheduleColour->hightlightgradientToC.setAlphaF(0.8); QColor lifeP("#337044"); lifeP.setAlphaF(0.8); m_LifeScheduleColour->hightlightPurecolor = lifeP; m_LifeScheduleColour->splitColor = "#25FA6B"; m_LifeScheduleColour->splitColor.setAlphaF(0.3); m_LifeScheduleColour->hovergradientFromC = "#2D6883"; m_LifeScheduleColour->hovergradientToC = "#5D7D44"; m_LifeScheduleColour->hovergradientFromC.setAlphaF(0.65); m_LifeScheduleColour->hovergradientToC.setAlphaF(0.65); QColor lifehP("#59F88D"); lifehP.setAlphaF(0.2); m_LifeScheduleColour->hoverPurecolor = lifehP; m_LifeScheduleColour->pressgradientToC = m_LifeScheduleColour->gradientToC; m_LifeScheduleColour->pressgradientFromC = m_LifeScheduleColour->gradientFromC; m_LifeScheduleColour->pressPurecolor = m_LifeScheduleColour->Purecolor; m_LifeScheduleColour->pressgradientToC.setAlphaF(0.4); m_LifeScheduleColour->pressgradientFromC.setAlphaF(0.4); m_LifeScheduleColour->pressPurecolor.setAlphaF(0.15); } } void ScheduleColourManage::setWorkScheduleTheme(int type) { if (type == 0 || type == 1) { m_WorkScheduleColour->type = 1; m_WorkScheduleColour->dotColor = "#FB2525"; m_WorkScheduleColour->dotColor.setAlphaF(0.5); m_WorkScheduleColour->gradientFromC = "#FBCEB7"; m_WorkScheduleColour->gradientFromC.setAlphaF(0.7); m_WorkScheduleColour->gradientToC = "#FA9D9A"; m_WorkScheduleColour->gradientToC.setAlphaF(0.7); m_WorkScheduleColour->Purecolor = "#F85566"; m_WorkScheduleColour->Purecolor.setAlphaF(0.2); m_WorkScheduleColour->shadowcolor = "#FB2525"; m_WorkScheduleColour->shadowcolor.setAlphaF(0.5); m_WorkScheduleColour->textColor = "#000000"; m_WorkScheduleColour->timeColor = "#B54A4B"; m_WorkScheduleColour->hightlightgradientFromC = "#FFD0B8"; m_WorkScheduleColour->hightlightgradientToC = "#FF908D"; QColor workP("#F9AEB8"); //workP.setAlphaF(0.8); m_WorkScheduleColour->hightlightPurecolor = workP; m_WorkScheduleColour->splitColor = "#FB2525"; m_WorkScheduleColour->splitColor.setAlphaF(0.5); m_WorkScheduleColour->hovergradientFromC = "#FFD0B8"; m_WorkScheduleColour->hovergradientFromC.setAlphaF(0.95); m_WorkScheduleColour->hovergradientToC = "#FF9D9A"; m_WorkScheduleColour->hovergradientToC.setAlphaF(0.95); QColor workhP("#FFB6BD"); workhP.setAlphaF(0.8); m_WorkScheduleColour->hoverPurecolor = workhP; m_WorkScheduleColour->pressgradientToC = m_WorkScheduleColour->gradientToC; m_WorkScheduleColour->pressgradientFromC = m_WorkScheduleColour->gradientFromC; m_WorkScheduleColour->pressPurecolor = m_WorkScheduleColour->Purecolor; m_WorkScheduleColour->pressgradientToC.setAlphaF(0.8); m_WorkScheduleColour->pressgradientFromC.setAlphaF(0.8); m_WorkScheduleColour->pressPurecolor.setAlphaF(0.2); } else { m_WorkScheduleColour->type = 1; m_WorkScheduleColour->dotColor = "#F85566"; m_WorkScheduleColour->dotColor.setAlphaF(0.5); m_WorkScheduleColour->gradientFromC = "#965A26"; m_WorkScheduleColour->gradientToC = "#8B2521"; m_WorkScheduleColour->gradientToC.setAlphaF(0.5); m_WorkScheduleColour->gradientFromC.setAlphaF(0.5); m_WorkScheduleColour->Purecolor = "#F85566"; m_WorkScheduleColour->Purecolor.setAlphaF(0.1); m_WorkScheduleColour->shadowcolor = "#FB2525"; m_WorkScheduleColour->shadowcolor.setAlphaF(0.5); m_WorkScheduleColour->textColor = "#C0C6D4"; // m_WorkScheduleColour->textColor.setAlphaF(1); m_WorkScheduleColour->timeColor = "#B54A4B"; m_WorkScheduleColour->hightlightgradientToC = "#992D2A"; m_WorkScheduleColour->hightlightgradientToC.setAlphaF(0.8); m_WorkScheduleColour->hightlightgradientFromC = "#8B521F"; m_WorkScheduleColour->hightlightgradientFromC.setAlphaF(0.8); QColor workP("#77373E"); workP.setAlphaF(0.8); m_WorkScheduleColour->hightlightPurecolor = workP; m_WorkScheduleColour->hovergradientFromC = "#965A26"; m_WorkScheduleColour->hovergradientToC = "#8B2521"; m_WorkScheduleColour->hovergradientFromC.setAlphaF(0.65); m_WorkScheduleColour->hovergradientToC.setAlphaF(0.65); QColor workhP("#F85566"); workhP.setAlphaF(0.2); m_WorkScheduleColour->hoverPurecolor = workhP; m_WorkScheduleColour->splitColor = "#F85566"; m_WorkScheduleColour->splitColor.setAlphaF(0.5); m_WorkScheduleColour->pressgradientToC = m_WorkScheduleColour->gradientToC; m_WorkScheduleColour->pressgradientFromC = m_WorkScheduleColour->gradientFromC; m_WorkScheduleColour->pressPurecolor = m_WorkScheduleColour->Purecolor; m_WorkScheduleColour->pressgradientToC.setAlphaF(0.4); m_WorkScheduleColour->pressgradientFromC.setAlphaF(0.4); m_WorkScheduleColour->pressPurecolor.setAlphaF(0.15); } } void ScheduleColourManage::setOtherScheduleTheme(int type) { if (type == 0 || type == 1) { m_OtherScheduleColour->type = 3; m_OtherScheduleColour->dotColor = "#BA60FA"; m_OtherScheduleColour->dotColor.setAlphaF(1); m_OtherScheduleColour->gradientFromC = "#FBE9B7"; m_OtherScheduleColour->gradientFromC.setAlphaF(0.7); m_OtherScheduleColour->gradientToC = "#DFB3FF"; m_OtherScheduleColour->gradientToC.setAlphaF(0.7); m_OtherScheduleColour->Purecolor = "#D191FF"; m_OtherScheduleColour->Purecolor.setAlphaF(0.2); m_OtherScheduleColour->shadowcolor = "#BA60FA"; m_OtherScheduleColour->textColor = "#000000"; m_OtherScheduleColour->timeColor = "#8548B1"; m_OtherScheduleColour->hightlightgradientFromC = "#FFE8AC"; m_OtherScheduleColour->hightlightgradientToC = "#FBA5FF"; QColor otherP("#EAC4FF"); //otherP.setAlphaF(0.8); m_OtherScheduleColour->hightlightPurecolor = otherP; m_OtherScheduleColour->hovergradientFromC = "#FFE8AC"; m_OtherScheduleColour->hovergradientToC = "#E2A5FF"; m_OtherScheduleColour->hovergradientFromC.setAlphaF(0.95); m_OtherScheduleColour->hovergradientToC.setAlphaF(0.95); QColor otherhP("#E6C5FF"); otherhP.setAlphaF(0.8); m_OtherScheduleColour->hoverPurecolor = otherhP; m_OtherScheduleColour->splitColor = "#BA60FA"; m_OtherScheduleColour->pressgradientToC = m_OtherScheduleColour->gradientToC; m_OtherScheduleColour->pressgradientFromC = m_OtherScheduleColour->gradientFromC; m_OtherScheduleColour->pressPurecolor = m_OtherScheduleColour->Purecolor; m_OtherScheduleColour->pressgradientToC.setAlphaF(0.8); m_OtherScheduleColour->pressgradientFromC.setAlphaF(0.8); m_OtherScheduleColour->pressPurecolor.setAlphaF(0.2); } else { m_OtherScheduleColour->type = 3; m_OtherScheduleColour->dotColor = "#C155F8"; m_OtherScheduleColour->dotColor.setAlphaF(0.7); m_OtherScheduleColour->gradientFromC = "#8C4E2C"; m_OtherScheduleColour->gradientToC = "#7D37AF"; m_OtherScheduleColour->gradientToC.setAlphaF(0.5); m_OtherScheduleColour->gradientFromC.setAlphaF(0.5); m_OtherScheduleColour->Purecolor = "#C155F8"; m_OtherScheduleColour->Purecolor.setAlphaF(0.1); m_OtherScheduleColour->shadowcolor = "#BE3DFF"; m_OtherScheduleColour->shadowcolor.setAlphaF(0.5); m_OtherScheduleColour->textColor = "#C0C6D4"; // m_OtherScheduleColour->textColor.setAlphaF(1); m_OtherScheduleColour->timeColor = "#9857C8"; m_OtherScheduleColour->hightlightgradientFromC = "#8C4E2C"; m_OtherScheduleColour->hightlightgradientFromC.setAlphaF(0.8); m_OtherScheduleColour->hightlightgradientToC = "#803BAE"; m_OtherScheduleColour->hightlightgradientToC.setAlphaF(0.8); QColor otherP("#613776"); otherP.setAlphaF(0.8); m_OtherScheduleColour->hightlightPurecolor = otherP; m_OtherScheduleColour->hovergradientFromC = "#8C4E2C"; m_OtherScheduleColour->hovergradientToC = "#7D37AF"; m_OtherScheduleColour->hovergradientFromC.setAlphaF(0.65); m_OtherScheduleColour->hovergradientToC.setAlphaF(0.65); QColor otherhP("#C155F8"); otherhP.setAlphaF(0.2); m_OtherScheduleColour->hoverPurecolor = otherhP; m_OtherScheduleColour->splitColor = "#BA32FF"; m_OtherScheduleColour->splitColor.setAlphaF(0.5); m_OtherScheduleColour->pressgradientToC = m_OtherScheduleColour->gradientToC; m_OtherScheduleColour->pressgradientFromC = m_OtherScheduleColour->gradientFromC; m_OtherScheduleColour->pressPurecolor = m_OtherScheduleColour->Purecolor; m_OtherScheduleColour->pressgradientToC.setAlphaF(0.4); m_OtherScheduleColour->pressgradientFromC.setAlphaF(0.4); m_OtherScheduleColour->pressPurecolor.setAlphaF(0.15); } } void ScheduleColourManage::setSolarScheduleTheme(int type) { if (type == 0 || type == 1) { m_SolarScheduleColour->type = 4; m_SolarScheduleColour->dotColor = "#FF7272"; m_SolarScheduleColour->dotColor.setAlphaF(1); m_SolarScheduleColour->gradientFromC = "#FF7272"; m_SolarScheduleColour->gradientFromC.setAlphaF(0.3); m_SolarScheduleColour->gradientToC = "#FF7272"; m_SolarScheduleColour->gradientToC.setAlphaF(0.3); m_SolarScheduleColour->Purecolor = "#FF7272"; m_SolarScheduleColour->Purecolor.setAlphaF(0.3); m_SolarScheduleColour->shadowcolor = "#BA60FA"; m_SolarScheduleColour->textColor = "#000000"; m_SolarScheduleColour->timeColor = "#8548B1"; m_SolarScheduleColour->hightlightgradientFromC = "#F9AAAA"; m_SolarScheduleColour->hightlightgradientFromC.setAlphaF(1); m_SolarScheduleColour->hightlightgradientToC = "#F9AAAA"; m_SolarScheduleColour->hightlightgradientToC.setAlphaF(1); m_SolarScheduleColour->hightlightPurecolor = "#F9AAAA"; m_SolarScheduleColour->hightlightPurecolor.setAlphaF(1); m_SolarScheduleColour->hovergradientFromC = "#FFB0B1"; m_SolarScheduleColour->hovergradientToC = "#FFB0B1"; m_SolarScheduleColour->hovergradientFromC.setAlphaF(0.95); m_SolarScheduleColour->hovergradientToC.setAlphaF(0.95); m_SolarScheduleColour->hoverPurecolor = "#FF7272"; m_SolarScheduleColour->splitColor = "#FF7272"; m_SolarScheduleColour->pressgradientFromC = "#FF7272"; m_SolarScheduleColour->pressgradientFromC.setAlphaF(0.3); m_SolarScheduleColour->pressgradientToC = "#FF7272"; m_SolarScheduleColour->pressgradientToC.setAlphaF(0.3); m_SolarScheduleColour->pressPurecolor = m_SolarScheduleColour->Purecolor; m_SolarScheduleColour->pressgradientToC.setAlphaF(0.4); m_SolarScheduleColour->pressgradientFromC.setAlphaF(0.4); m_SolarScheduleColour->pressPurecolor.setAlphaF(0.1); } else { m_SolarScheduleColour->type = 4; m_SolarScheduleColour->dotColor = "#FF7272"; m_SolarScheduleColour->dotColor.setAlphaF(0.8); m_SolarScheduleColour->gradientFromC = "#FF7272"; m_SolarScheduleColour->gradientFromC.setAlphaF(0.3); m_SolarScheduleColour->gradientToC = "#FF7272"; m_SolarScheduleColour->gradientToC.setAlphaF(0.3); m_SolarScheduleColour->Purecolor = "#FF7272"; m_SolarScheduleColour->Purecolor.setAlphaF(0.3); m_SolarScheduleColour->shadowcolor = "#BA60FA"; m_SolarScheduleColour->textColor = "#C0C6D4"; m_SolarScheduleColour->timeColor = "#8548B1"; m_SolarScheduleColour->hightlightgradientFromC = "#A24545"; m_SolarScheduleColour->hightlightgradientFromC.setAlphaF(0.8); m_SolarScheduleColour->hightlightgradientToC = "#A24545"; m_SolarScheduleColour->hightlightgradientToC.setAlphaF(0.8); m_SolarScheduleColour->hightlightPurecolor = "#A24545"; m_SolarScheduleColour->hightlightPurecolor.setAlphaF(0.8); m_SolarScheduleColour->hovergradientFromC = "#E56464"; m_SolarScheduleColour->hovergradientToC = "#E56464"; m_SolarScheduleColour->hovergradientFromC.setAlphaF(0.35); m_SolarScheduleColour->hovergradientToC.setAlphaF(0.35); m_SolarScheduleColour->hoverPurecolor = "#E56464"; m_SolarScheduleColour->splitColor = "#FF7272"; m_SolarScheduleColour->pressgradientFromC = "#FF7272"; m_SolarScheduleColour->pressgradientFromC.setAlphaF(0.3); m_SolarScheduleColour->pressgradientToC = m_SolarScheduleColour->pressgradientFromC; // m_SolarScheduleColour->pressgradientToC = "#000000"; // m_SolarScheduleColour->pressgradientToC.setAlphaF(0.05); m_SolarScheduleColour->pressPurecolor = m_SolarScheduleColour->Purecolor; m_SolarScheduleColour->pressgradientToC.setAlphaF(0.4); m_SolarScheduleColour->pressgradientFromC.setAlphaF(0.4); m_SolarScheduleColour->pressPurecolor.setAlphaF(0.1); } } dde-calendar-5.9.1/schedule-plugin/src/data/schedulecolourmanage.h000066400000000000000000000043141423264401600251670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULECOLOURMANAGE_H #define SCHEDULECOLOURMANAGE_H #include #include struct CSchedulesColor { int type; QColor gradientFromC; QColor gradientToC; QColor dotColor; QColor Purecolor; QColor shadowcolor; QColor textColor; QColor timeColor; QColor hightlightgradientFromC; QColor hightlightgradientToC; QColor hightlightPurecolor; QColor hovergradientFromC; QColor hovergradientToC; QColor hoverPurecolor; QColor splitColor; QColor pressgradientFromC; QColor pressgradientToC; QColor pressPurecolor; }; class ScheduleColourManage { public: ScheduleColourManage(); ~ScheduleColourManage(); public: void setTheMe(int type = 0); CSchedulesColor getColorByTypeId(const int &id); private: CSchedulesColor LifeScheduleColour() const; CSchedulesColor WorkScheduleColour() const; CSchedulesColor OtherScheduleColour() const; CSchedulesColor SolarScheduleColour() const; private: void setLifeScheduleTheme(int type = 0); void setWorkScheduleTheme(int type = 0); void setOtherScheduleTheme(int type = 0); void setSolarScheduleTheme(int type = 0); private: CSchedulesColor *m_LifeScheduleColour {nullptr}; CSchedulesColor *m_WorkScheduleColour {nullptr}; CSchedulesColor *m_OtherScheduleColour {nullptr}; CSchedulesColor *m_SolarScheduleColour {nullptr}; }; #endif // SCHEDULECOLOURMANAGE_H dde-calendar-5.9.1/schedule-plugin/src/data/schedulestructs.h000066400000000000000000000107721423264401600242270ustar00rootroot00000000000000/* * Copyright (C) 2017 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 SCHEDULESTURCTS_H #define SCHEDULESTURCTS_H #include #include #include #include typedef struct _tagScheduleRemindInfo { int id = 0; QDateTime remindDateTime; int times = 1; } ScheduleRemindInfo; typedef struct _tagScheduleRemindData { int n = 0; //全天代表天数 非全天代表分钟 QTime time; //全天该变量才有效 } ScheduleRemindData; typedef struct _tagScheduleEndRepeatData { int type = 0; //0 永不 1 多少次结束 2 结束日期 QDateTime date; //为2时才有效 int tcount = 0; //1时有效 } ScheduleEndRepeatData; typedef struct _tagScheduleType { QString typeName; //work life other QColor color; //颜色 int ID = -1; } ScheduleType; typedef struct _tagScheduleDtailInfo { int id = 0; QDateTime beginDateTime; QDateTime endDateTime; QVector ignore; QString titleName; QString description; bool allday = true; //1全天 ScheduleType type; //1工作 2 生活 3其他 int RecurID = 0; //0 代表原始 大于0 代表克隆 bool remind = true; //0无 1 提醒 ScheduleRemindData remindData; int rpeat = 0; //0 无 1 每天 2 每个工作日 3 每周 4每月 5每年 ScheduleEndRepeatData enddata; explicit _tagScheduleDtailInfo() { type.ID = -1; } bool operator==(const _tagScheduleDtailInfo &info) const { if (info.type.ID == 4) { return this->id == info.id && this->RecurID == info.RecurID && titleName == info.titleName && beginDateTime == info.beginDateTime; } else { return this->id == info.id && this->RecurID == info.RecurID && titleName == info.titleName; } } bool operator<(const _tagScheduleDtailInfo &info) const { if (beginDateTime.date() != endDateTime.date() && info.beginDateTime.date() == info.endDateTime.date()) { return true; } else if (beginDateTime.date() == endDateTime.date() && info.beginDateTime.date() != info.endDateTime.date()) { return false; } else if (beginDateTime.date() != endDateTime.date() && info.beginDateTime.date() != info.endDateTime.date()) { if (beginDateTime.date() == info.beginDateTime.date()) { return beginDateTime.daysTo(endDateTime) > info.beginDateTime.daysTo(info.endDateTime); } return beginDateTime.date() < info.beginDateTime.date(); } else { if (type.ID == 4) return true; if (info.type.ID == 4) return false; if (beginDateTime == info.beginDateTime) { if (titleName == info.titleName) { return id < info.id; } return titleName < info.titleName; } else { return beginDateTime < info.beginDateTime; } } } } ScheduleDtailInfo; typedef struct _tagScheduleDateRangeInfo { QDate date; QVector vData; } ScheduleDateRangeInfo; typedef struct _tagMScheduleDateRangeInfo { QDate bdate; QDate edate; bool state = true; int num = 0; ScheduleDtailInfo tData; bool operator<(const _tagMScheduleDateRangeInfo &info) const { if (bdate == info.bdate) { if (bdate.daysTo(edate) == info.bdate.daysTo(info.edate)) { return tData < info.tData; } else { return bdate.daysTo(edate) > info.bdate.daysTo(info.edate); } } else { return bdate < info.bdate; } } bool operator==(const _tagMScheduleDateRangeInfo &info) const { return bdate == info.bdate && edate == info.edate && tData == info.tData && state == info.state && num == info.num; } } MScheduleDateRangeInfo; #endif dde-calendar-5.9.1/schedule-plugin/src/data/timedatastruct.h000066400000000000000000000037331423264401600240370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 TIMEDATASTRUCT_H #define TIMEDATASTRUCT_H #include #include /** * @brief The ToDateTimeInfo struct 修改时间信息 * m_Date 日期信息 * m_Time 时间信息 * hasDate 是否存在日期信息 * hasTime 是否存在时间信息 */ struct DateTimeInfo { QDate m_Date{}; QTime m_Time{}; bool hasDate{false}; bool hasTime{false}; QString strDateTime; //保存原始数据 }; /** * @brief The SuggestDatetimeInfo struct 建议时间信息 * datetime 时间信息 * hasTime 是否存在具体时间点 */ struct SuggestDatetimeInfo { QDateTime datetime {}; bool hasTime {false}; QString strDateTime; //保存原始数据 }; /** * @brief The ScheduleDateTime struct 语言时间信息 * m_DateTime 时间信息,获取时间点的时候需要用到 * m_sugTime 建议使用的时间信息 */ struct SemanticsDateTime { QVector dateTime{}; QVector suggestDatetime{}; /** * @brief clear 清空数据 */ void clear() { this->dateTime.clear(); this->suggestDatetime.clear(); } }; #endif // TIMEDATASTRUCT_H dde-calendar-5.9.1/schedule-plugin/src/dbus/000077500000000000000000000000001423264401600206475ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/dbus/schedulesdbus.cpp000066400000000000000000000547051423264401600242230ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 . */ /* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -c DCalendarDBus -p dcalendardbus com.deepin.dataserver.Calendar.xml * * qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies). * * This is an auto-generated file. * This file may have been hand-edited. Look for HAND-EDIT comments * before re-generating it. */ #include "schedulesdbus.h" #include #include #include /* * Implementation of interface class DCalendarDBus */ CSchedulesDBus::CSchedulesDBus(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { QDBusConnection::sessionBus().connect(this->service(), this->path(), "org.freedesktop.DBus.Properties", "PropertiesChanged", "sa{sv}as", this, SLOT(__propertyChanged__(QDBusMessage))); } CSchedulesDBus::~CSchedulesDBus() { QDBusConnection::sessionBus().disconnect(service(), path(), "org.freedesktop.DBus.Properties", "PropertiesChanged", "sa{sv}as", this, SLOT(propertyChanged(QDBusMessage))); } QString CSchedulesDBus::createScheduleDtailInfojson(const ScheduleDtailInfo &info) { QJsonObject json; json.insert("ID", info.id); json.insert("AllDay", info.allday); json.insert("Remind", createScheduleRemind(info)); json.insert("RRule", createScheduleRRule(info)); json.insert("Title", info.titleName); json.insert("Description", info.description); json.insert("Type", info.type.ID); json.insert("Start", toconvertData(info.beginDateTime)); json.insert("End", toconvertData(info.endDateTime)); //json.insert("Start", "2006-01-02T15:04:05+07:00"); //json.insert("End", "2006-01-02T17:04:05+07:00"); json.insert("RecurID", info.RecurID); QJsonArray jsonarry; for (int i = 0; i < info.ignore.count(); i++) { jsonarry.append(toconvertData(info.ignore.at(i))); } json.insert("Ignore", jsonarry); // 构建 JSON 文档 QJsonDocument document; document.setObject(json); QByteArray byteArray = document.toJson(QJsonDocument::Compact); QString strJson(byteArray); return strJson; } QString CSchedulesDBus::createScheduleTypejson(const ScheduleType &info) { QJsonObject json; json.insert("ID", info.ID); json.insert("Name", info.typeName); QString colorName = QString("#%1%2%3").arg(info.color.red(), 2, 16, QChar('0')).arg(info.color.green(), 2, 16, QChar('0')).arg(info.color.blue(), 2, 16, QChar('0')); json.insert("Color", info.color.name()); // 构建 JSON 文档 QJsonDocument document; document.setObject(json); QByteArray byteArray = document.toJson(QJsonDocument::Compact); QString strJson(byteArray); return strJson; } ScheduleType CSchedulesDBus::parsingScheduleTypejson(QJsonObject &object) { ScheduleType type; QJsonObject &rootObj = object; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (rootObj.contains("ID")) { type.ID = rootObj.value("ID").toInt(); } if (rootObj.contains("Name")) { type.typeName = rootObj.value("Name").toString(); } if (rootObj.contains("Color")) { QString str = rootObj.value("Color").toString(); type.color = QColor(rootObj.value("Color").toString()); } return type; } ScheduleDtailInfo CSchedulesDBus::parsingScheduleDtailInfojsonID(QJsonObject &obj) { ScheduleDtailInfo info; QJsonObject &rootObj = obj; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (rootObj.contains("ID")) { info.id = rootObj.value("ID").toInt(); } if (rootObj.contains("AllDay")) { info.allday = rootObj.value("AllDay").toBool(); } if (rootObj.contains("Remind")) { parsingScheduleRemind(rootObj.value("Remind").toString(), info); } if (rootObj.contains("Title")) { info.titleName = rootObj.value("Title").toString(); } if (rootObj.contains("Description")) { info.description = rootObj.value("Description").toString(); } if (rootObj.contains("Type")) { GetType(rootObj.value("Type").toInt(), info.type); } if (rootObj.contains("Start")) { info.beginDateTime = fromconvertData(rootObj.value("Start").toString()); } if (rootObj.contains("End")) { info.endDateTime = fromconvertData(rootObj.value("End").toString()); } if (rootObj.contains("RecurID")) { info.RecurID = rootObj.value("RecurID").toInt(); } if (rootObj.contains("RRule")) { parsingScheduleRRule(rootObj.value("RRule").toString(), info); } if (rootObj.contains("Ignore")) { QJsonArray subArray = rootObj.value("Ignore").toArray(); for (int i = 0; i < subArray.size(); i++) { QString subObj = subArray.at(i).toString(); info.ignore.append(fromconvertData(subObj)); } } return info; } QString CSchedulesDBus::createScheduleRRule(const ScheduleDtailInfo &info) { if (info.rpeat == 0) return QString(); // QString str = "'"; QString str; switch (info.rpeat) { case 1: { str += "FREQ=DAILY"; } break; case 2: { str += "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR"; } break; case 3: { str += "FREQ=WEEKLY"; } break; case 4: { str += "FREQ=MONTHLY"; } break; case 5: { str += "FREQ=YEARLY"; } break; } switch (info.enddata.type) { case 1: { str += QString(";COUNT=%1").arg(info.enddata.tcount + 1); } break; case 2: { QDateTime datetime = info.enddata.date; //datetime.setDate(datetime); str += ";UNTIL=" + datetime.toString("yyyyMMddThhmmss") + "Z"; // str += ";UNTIL=" + toconvertData(datetime); } break; } //str += "'"; return str; } void CSchedulesDBus::parsingScheduleRRule(QString str, ScheduleDtailInfo &info) { if (str.isEmpty()) { info.rpeat = 0; return; } QString rrulestrs = str; QStringList rruleslist = rrulestrs.split(";", QString::SkipEmptyParts); if (rruleslist.count() > 0) { if (rruleslist.contains("FREQ=DAILY") && rruleslist.contains("BYDAY=MO,TU,WE,TH,FR")) info.rpeat = 2; else if (rruleslist.contains("FREQ=DAILY")) { info.rpeat = 1; } else if (rruleslist.contains("FREQ=WEEKLY")) { info.rpeat = 3; } else if (rruleslist.contains("FREQ=MONTHLY")) { info.rpeat = 4; } else if (rruleslist.contains("FREQ=YEARLY")) { info.rpeat = 5; } info.enddata.type = 0; for (int i = 0; i < rruleslist.count(); i++) { if (rruleslist.at(i).contains("COUNT=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); info.enddata.type = 1; info.enddata.tcount = liststr.at(1).toInt() - 1; } if (rruleslist.at(i).contains("UNTIL=")) { QStringList liststr = rruleslist.at(i).split("=", QString::SkipEmptyParts); info.enddata.type = 2; info.enddata.date = QDateTime::fromString(liststr.at(1).left(liststr.at(1).count() - 1), "yyyyMMddThhmmss"); //info.enddata.date = fromconvertData(liststr.at(1)); info.enddata.date = info.enddata.date; } } } } QString CSchedulesDBus::createScheduleRemind(const ScheduleDtailInfo &info) { if (!info.remind) return QString(); QString str; if (info.allday) { str = QString::number(info.remindData.n) + ";" + info.remindData.time.toString("hh:mm"); } else { str = QString::number(info.remindData.n); } return str; } void CSchedulesDBus::parsingScheduleRemind(QString str, ScheduleDtailInfo &info) { if (str.isEmpty()) { info.remind = false; return; } info.remind = true; if (info.allday) { QStringList liststr = str.split(";", QString::SkipEmptyParts); info.remindData.n = liststr.at(0).toInt(); info.remindData.time = QTime::fromString(liststr.at(1), "hh:mm"); } else { info.remindData.n = str.toInt(); } } QString CSchedulesDBus::toconvertData(QDateTime date) { QDateTime datetimeutc = QDateTime::fromTime_t(0); QString str = date.toString("yyyy-MM-ddThh:mm:ss") + "+" + datetimeutc.toString("hh:mm"); //QString str = date.toString("yyyy-MM-ddThh:mm:ss") + "Z07:00"; return str; } QDateTime CSchedulesDBus::fromconvertData(QString str) { QStringList liststr = str.split("+", QString::SkipEmptyParts); return QDateTime::fromString(liststr.at(0), "yyyy-MM-ddThh:mm:ss"); } QString CSchedulesDBus::toconvertIGData(QDateTime date) { QDateTime datetimeutc = QDateTime::fromTime_t(0); QString str = date.toString("yyyy-MM-ddThh:mm:ss") + "Z" + datetimeutc.toString("hh:mm"); //QString str = date.toString("yyyy-MM-ddThh:mm:ss") + "Z07:00"; return str; } QDateTime CSchedulesDBus::fromconvertiIGData(QString str) { QStringList liststr = str.split("Z", QString::SkipEmptyParts); return QDateTime::fromString(liststr.at(0), "yyyy-MM-ddThh:mm:ss"); } qint64 CSchedulesDBus::CreateJob(const ScheduleDtailInfo &info) { QList argumentList; argumentList << QVariant::fromValue(createScheduleDtailInfojson(info)); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("CreateJob"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { qDebug() << reply; return -1; } QDBusReply id = reply; return id.value(); } bool CSchedulesDBus::GetJobs(int startYear, int startMonth, int startDay, int endYear, int endMonth, int endDay, QVector &out) { QList argumentList; argumentList << QVariant::fromValue(startYear) << QVariant::fromValue(startMonth) << QVariant::fromValue(startDay); argumentList << QVariant::fromValue(endYear) << QVariant::fromValue(endMonth) << QVariant::fromValue(endDay); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetJobs"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonArray rootarry = jsonDoc.array(); for (int i = 0; i < rootarry.size(); i++) { QJsonObject subObj = rootarry.at(i).toObject(); ScheduleDateRangeInfo info; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (subObj.contains("Date")) { info.date = QDate::fromString(subObj.value("Date").toString(), "yyyy-MM-dd"); } if (subObj.contains("Jobs")) { QJsonArray subarry = subObj.value("Jobs").toArray(); for (int j = 0; j < subarry.size(); j++) { QJsonObject ssubObj = subarry.at(j).toObject(); info.vData.append(parsingScheduleDtailInfojsonID(ssubObj)); } } out.append(info); } return true; } bool CSchedulesDBus::GetJob(qint64 jobId, ScheduleDtailInfo &out) { QList argumentList; argumentList << QVariant::fromValue(jobId); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetJob"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonObject ssubObj = jsonDoc.object(); out = parsingScheduleDtailInfojsonID(ssubObj); return true; } bool CSchedulesDBus::UpdateJob(const ScheduleDtailInfo &info) { QList argumentList; argumentList << QVariant::fromValue(createScheduleDtailInfojson(info)); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("UpdateJob"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { //dbus UpdateJob 错误提醒 qDebug() << "UpdateJob Err"; qDebug() << argumentList; return false; } //QDBusReply jobs = reply; //if (!jobs.isValid()) return false; return true; } bool CSchedulesDBus::DeleteJob(qint64 jobId) { QList argumentList; argumentList << QVariant::fromValue(jobId); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("DeleteJob"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } return true; } bool CSchedulesDBus::QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QVector &out) { QJsonObject qjson; qjson.insert("Key", key); qjson.insert("Start", toconvertData(starttime)); qjson.insert("End", toconvertData(endtime)); // 构建 JSON 文档 QJsonDocument qdocument; qdocument.setObject(qjson); QByteArray qbyteArray = qdocument.toJson(QJsonDocument::Compact); QString strJson(qbyteArray); QList argumentList; argumentList << QVariant::fromValue(strJson); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("QueryJobs"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonArray rootarry = jsonDoc.array(); for (int i = 0; i < rootarry.size(); i++) { QJsonObject subObj = rootarry.at(i).toObject(); ScheduleDateRangeInfo info; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (subObj.contains("Date")) { info.date = QDate::fromString(subObj.value("Date").toString(), "yyyy-MM-dd"); } if (subObj.contains("Jobs")) { QJsonArray subarry = subObj.value("Jobs").toArray(); for (int j = 0; j < subarry.size(); j++) { QJsonObject ssubObj = subarry.at(j).toObject(); info.vData.append(parsingScheduleDtailInfojsonID(ssubObj)); } } out.append(info); } return true; } bool CSchedulesDBus::QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QString &out) { QJsonObject qjson; qjson.insert("Key", key); qjson.insert("Start", toconvertData(starttime)); qjson.insert("End", toconvertData(endtime)); // 构建 JSON 文档 QJsonDocument qdocument; qdocument.setObject(qjson); QByteArray qbyteArray = qdocument.toJson(QJsonDocument::Compact); QString strJson(qbyteArray); QList argumentList; argumentList << QVariant::fromValue(strJson); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("QueryJobs"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; out = jobs.value().toLocal8Bit(); return true; } bool CSchedulesDBus::QueryJobsWithLimit(QDateTime starttime, QDateTime endtime, qint32 maxNum, QVector &out) { QJsonObject qjson; qjson.insert("Start", toconvertData(starttime)); qjson.insert("End", toconvertData(endtime)); qjson.insert("key", ""); // 构建 JSON 文档 QJsonDocument qdocument; qdocument.setObject(qjson); QByteArray qbyteArray = qdocument.toJson(QJsonDocument::Compact); QString strJson(qbyteArray); QList argumentList; argumentList << QVariant::fromValue(strJson); argumentList << maxNum; QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("QueryJobsWithLimit"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonArray rootarry = jsonDoc.array(); for (int i = 0; i < rootarry.size(); i++) { QJsonObject subObj = rootarry.at(i).toObject(); ScheduleDateRangeInfo info; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (subObj.contains("Date")) { info.date = QDate::fromString(subObj.value("Date").toString(), "yyyy-MM-dd"); } if (subObj.contains("Jobs")) { QJsonArray subarry = subObj.value("Jobs").toArray(); for (int j = 0; j < subarry.size(); j++) { QJsonObject ssubObj = subarry.at(j).toObject(); info.vData.append(parsingScheduleDtailInfojsonID(ssubObj)); } } out.append(info); } return true; } bool CSchedulesDBus::QueryJobsWithRule(QDateTime starttime, QDateTime endtime, const QString &rule, QVector &out) { QJsonObject qjson; qjson.insert("Start", toconvertData(starttime)); qjson.insert("End", toconvertData(endtime)); qjson.insert("key", ""); // 构建 JSON 文档 QJsonDocument qdocument; qdocument.setObject(qjson); QByteArray qbyteArray = qdocument.toJson(QJsonDocument::Compact); QString strJson(qbyteArray); QList argumentList; argumentList << QVariant::fromValue(strJson); argumentList << rule; QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("QueryJobsWithRule"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonArray rootarry = jsonDoc.array(); for (int i = 0; i < rootarry.size(); i++) { QJsonObject subObj = rootarry.at(i).toObject(); ScheduleDateRangeInfo info; //因为是预先定义好的JSON数据格式,所以这里可以这样读取 if (subObj.contains("Date")) { info.date = QDate::fromString(subObj.value("Date").toString(), "yyyy-MM-dd"); } if (subObj.contains("Jobs")) { QJsonArray subarry = subObj.value("Jobs").toArray(); for (int j = 0; j < subarry.size(); j++) { QJsonObject ssubObj = subarry.at(j).toObject(); info.vData.append(parsingScheduleDtailInfojsonID(ssubObj)); } } out.append(info); } return true; } bool CSchedulesDBus::GetTypes(QVector &out) { QList argumentList; //argumentList << QVariant::fromValue(jobId); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetTypes"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonArray rootarry = jsonDoc.array(); for (int i = 0; i < rootarry.size(); i++) { QJsonObject subObj = rootarry.at(i).toObject(); out.append(parsingScheduleTypejson(subObj)); } return true; } bool CSchedulesDBus::GetType(qint64 jobId, ScheduleType &out) { QList argumentList; argumentList << QVariant::fromValue(jobId); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetType"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } QDBusReply jobs = reply; if (!jobs.isValid()) return false; QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(jobs.value().toLocal8Bit(), &json_error)); if (json_error.error != QJsonParseError::NoError) { return false; } QJsonObject subObj = jsonDoc.object(); out = parsingScheduleTypejson(subObj); return true; } qint64 CSchedulesDBus::CreateType(const ScheduleType &info) { QList argumentList; argumentList << QVariant::fromValue(createScheduleTypejson(info)); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("CreateType"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return -1; } QDBusReply id = reply; return id.value(); } bool CSchedulesDBus::DeleteType(qint64 jobId) { QList argumentList; argumentList << QVariant::fromValue(jobId); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("DeleteType"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } return true; } bool CSchedulesDBus::UpdateType(const ScheduleType &info) { QList argumentList; argumentList << QVariant::fromValue(createScheduleTypejson(info)); QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("UpdateType"), argumentList); if (reply.type() != QDBusMessage::ReplyMessage) { return false; } return true; } dde-calendar-5.9.1/schedule-plugin/src/dbus/schedulesdbus.h000066400000000000000000000107671423264401600236700ustar00rootroot00000000000000/* * Copyright (C) 2015 ~ 2018 Deepin Technology Co., Ltd. * * Author: kirigaya * * 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 . */ /* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -c DCalendarDBus -p dcalendardbus com.deepin.dataserver.Calendar.xml * * qdbusxml2cpp is Copyright (C) 2015 Digia Plc and/or its subsidiary(-ies). * * This is an auto-generated file. * Do not edit! All changes made to it will be lost. */ #ifndef SCHEDULESDBUS_H #define SCHEDULESDBUS_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../data/schedulestructs.h" /* * Proxy class for interface com.deepin.dataserver.Calendar */ class CSchedulesDBus : public QDBusAbstractInterface { Q_OBJECT Q_SLOT void __propertyChanged__(const QDBusMessage &msg) { QList arguments = msg.arguments(); if (3 != arguments.count()) return; QString interfaceName = msg.arguments().at(0).toString(); if (interfaceName != "com.deepin.dataserver.Calendar") return; QVariantMap changedProps = qdbus_cast(arguments.at(1).value()); foreach (const QString &prop, changedProps.keys()) { const QMetaObject *self = metaObject(); for (int i = self->propertyOffset(); i < self->propertyCount(); ++i) { QMetaProperty p = self->property(i); if (p.name() == prop) { Q_EMIT p.notifySignal().invoke(this); } } } } public: static inline const char *staticInterfaceName() { return "com.deepin.dataserver.Calendar"; } public: CSchedulesDBus(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr); ~CSchedulesDBus(); QString toconvertIGData(QDateTime date); QDateTime fromconvertiIGData(QString str); static QString createScheduleDtailInfojson(const ScheduleDtailInfo &info); ScheduleDtailInfo parsingScheduleDtailInfojsonID(QJsonObject &obj); private: QString createScheduleTypejson(const ScheduleType &info); ScheduleType parsingScheduleTypejson(QJsonObject &object); static QString createScheduleRRule(const ScheduleDtailInfo &info); void parsingScheduleRRule(QString str, ScheduleDtailInfo &info); static QString createScheduleRemind(const ScheduleDtailInfo &info); void parsingScheduleRemind(QString str, ScheduleDtailInfo &info); static QString toconvertData(QDateTime date); QDateTime fromconvertData(QString str); public Q_SLOTS: // METHODS qint64 CreateJob(const ScheduleDtailInfo &info); bool GetJobs(int startYear, int startMonth, int startDay, int endYear, int endMonth, int endDay, QVector &out); bool GetJob(qint64 jobId, ScheduleDtailInfo &out); bool UpdateJob(const ScheduleDtailInfo &info); bool DeleteJob(qint64 jobId); bool QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QVector &out); bool QueryJobs(QString key, QDateTime starttime, QDateTime endtime, QString &out); bool QueryJobsWithLimit(QDateTime starttime, QDateTime endtime, qint32 maxNum, QVector &out); bool QueryJobsWithRule(QDateTime starttime, QDateTime endtime, const QString &rule, QVector &out); bool GetTypes(QVector &out); bool GetType(qint64 jobId, ScheduleType &out); qint64 CreateType(const ScheduleType &info); bool DeleteType(qint64 jobId); bool UpdateType(const ScheduleType &info); Q_SIGNALS: // SIGNALS // begin property changed signals }; #endif dde-calendar-5.9.1/schedule-plugin/src/globaldef.h000066400000000000000000000164351423264401600220130ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 GLOBALDEF_H #define GLOBALDEF_H #define PLUGIN_TITLE_NAME "日历" #define LOG_FILENAME "/home/uniontech/.cache/deepin/dde-calendar/scheduleplugin.log" #define SERVICE_NAME "scheduleX" #define DBUS_SERVICE "com.deepin.dataserver.Calendar" #define DBUS_PATCH "/com/deepin/dataserver/Calendar" #define DBUS_CALENDAR_SERVICE "com.deepin.Calendar" #define DBUS_CALENDAR_PATCH "/com/deepin/Calendar" #define DBUS_CALENDAR_INTFACE "com.deepin.Calendar" #define NEW_SCHEDULE "新建日程" #define DATETIME_FRAME "yyyyMMdd hh:mm:ss" //日期格式 #define DATEFORMAT "yyyy-MM-dd" //时间格式 #define TIMEFORMAT "hh:mm:ss" #define PROCESS_OPEN_CALENDAR "dbus-send --print-reply --dest=com.deepin.Calendar /com/deepin/Calendar com.deepin.Calendar.RaiseWindow" //日程重复类型 //每天 #define DBUS_RRUL_EVED "FREQ=DAILY" //每周 #define DBUS_RRUL_EVEW "FREQ=WEEKLY" //每月 #define DBUS_RRUL_EVEM "FREQ=MONTHLY" //每年 #define DBUS_RRUL_EVEY "FREQ=YEARLY" //每个工作日 #define DBUS_RRUL_WORK "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR" //日程json关键字 #define JSON_CREATE "CREATE" #define JSON_VIEW "VIEW" #define JSON_CANCEL "CANCEL" #define JSON_CHANGE "CHANGE" #define JSON_NO_INTENT "NO_INTENT" #define JSON_YES_INTENT "YES_INTENT" //日程json槽位关键字 #define JSON_NAME "name" #define JSON_CONTENT "content" #define JSON_REPEAT "repeat" #define JSON_DATETIME "datetime" #define JSON_VALUE "value" #define JSON_NORMVALUE "normValue" #define JSON_PROPERTY "property" #define JSON_NEXT "next" #define JSON_LAST "last" #define JSON_FROMDATETIME "fromTime" #define JSON_TODATETIME "toTime" #define JSON_TOPLACE "toPlace" #define JSON_ALL "all" #define JSON_THIS "this" #define JSON_POSRANK_OFFSET "posRank.offset" #define JSON_DateTimeInvalid "datetimeInvalid" #define JSON_DATE_DELIMITER "/" #define JSON_STR_DATE_DELIMITER "-" #define JSON_DATETIME_DELIMITER "T" #define YEAR "年" #define MONTH "月" #define DAY "日" //每天多少秒 #define ONE_DAY_SECS 60 * 60 * 24 //widget show #define CONFIRM_BUTTON_STRING "确定" #define CANCEL_BUTTON_STRING "取消" #define DELETE_BUTTON_STRING "删除日程" #define DELETEALL_BUTTON_STRING "删除全部" #define ONLY_DELETE_THIS_BUTTON_STRING "仅删除此日程" #define CHANGE_ALL_BUTTON_STRING "修改全部" #define CHANGE_ONLYL_BUTTON_STRING "仅修改此日程" #define CREATE_ERR_TTS "新建功能不支持此说法" #define DATETIME_ERR_TTS "您成功难住我啦,不存在这个时间呢!" #define CANCEL_ERR_TTS "查询功能不支持此说法" //没有对应日程的回复语 #define QUERY_ERR_TTS "您还没有日程提醒,无法寻找对应的日程!" //修改日程初始状态错误回复语 #define CHANGE_INI_ERR_TSS "当前场景不支持这个操作哦。请问您要将什么日程修改到什么时间或修改到什么内容?" //修改日程询问回复语 #define CHANGE_TO_TTS "请问您要将此日程修改到什么时间或修改到什么内容?" //错误操作回复语 #define G_ERR_TTS "当前场景不支持这个操作哦。" //取消删除日程回复语 #define CANCEL_DELETION_TTS "已为您取消删除日程。" //确认删除日程回复语 #define CONFIRM_DELETION_TTS "已为您删除日程。" //取消修改日程回复语 #define CANCEL_CHANGE_TTS "已为您取消修改日程。" //确认修改日程回复语 #define CONFIRM_CHANGE_TTS "已为您修改日程。" //没有日程提醒回复语 #define NO_SCHEDULE_TTS "您还没有日程提醒。" //删除重复日程询问回复语 #define REPEST_SCHEDULE_CANCEL_TTS "该日程是循环的日程,请问是删除当前日程还是所有日程?" //删除普通日程询问回复语 #define CONFIRM_SCHEDULE_CANCEL_TTS "我要帮您取消这个日程吗?操作后将在日历中同步删除。" //删除选择日程回复语 #define CANCEL_SELECT_TTS "这是您的所有日程,您要删除哪一个日程?" //选择修改回复语 #define SELECT_CHANGE_TTS "这是您的所有日程,您要修改哪一个日程?" //修改重复日程询问回复语 #define REPEST_SCHEDULE_CHANGE_TTS "该日程是循环的日程,请问是修改当前日程还是所有日程?" //修改普通日程询问回复语 #define CONFIRM_SCHEDULE_CHANGE_TTS "我要帮您修改这个日程吗?操作后将在日历中同步修改。" //修改到的时间不在规定时间范围内 #define CHANGE_TIME_OUT_TTS "修改日程的时间范围为未来半年哦。" #define ALL_DAY "全天" //修改或取消时间不在未来半年的回复语 #define OVERTIME_TTS "只能取消或修改未来半年的日程!" //新建日程开始时间不在规定时间范围内 #define CREATE_TIME_OUT_TTS "只能创建未来半年的日程" //新建每周末提醒的日程的回复语 #define EVERY_WEEKEND_TTS "好的,每周六到周日的%1我都会提醒您。" //日程时间无效 #define ISVALID_DATE_TIME "您成功难住我啦,不存在%1这个日期呢" //跨天日程,开始日期小于当前时间的回复语 #define BEGINDATETIME_LATER_THAN_CURRENTDATETIME_ACROSS_THE_DAY_TTS "好的,%1我会提醒您。" //查询日期过期 #define VIEW_DATE_IS_OVERDUE_TTS "抱歉,不能查询过期的提醒" //查询日程时间不再规定范围内 #define VIEW_DATETIME_OUT_TTS "只能查询未来半年的日程" //没有查询到日程 #define NO_SCHEDULE_VIEWED_TTS "没有找到对应的日程" //查找到n个日程 #define VIEW_SCHEDULE_TTS "找到%1个日程" //半年天数 #define MAXIMUM_DAYS_IN_THE_FUTURE 183 //不带窗口的回复宏定义 #define REPLY_ONLY_TTS(reply, msgtts, dsptts, isEnd) \ reply.setReplyType(Reply::RT_STRING_TTS | Reply::RT_STRING_DISPLAY); \ reply.ttsMessage(msgtts); \ reply.displayMessage(dsptts); \ reply.code(0); \ reply.setShouldEndSession(isEnd); \ //带窗口的回复宏定义 #define REPLY_WIDGET_TTS(reply, widget, msgtts, dsptts, isEnd) \ reply.setReplyType(Reply::RT_INNER_WIDGET | Reply::RT_STRING_TTS | Reply::RT_STRING_DISPLAY); \ reply.setReplyWidget(widget); \ reply.ttsMessage(msgtts); \ reply.displayMessage(dsptts); \ reply.code(0); \ reply.setShouldEndSession(isEnd); \ //未来半年开始时间和结束时间 #define TIME_FRAME_IN_THE_NEXT_SIX_MONTHT \ QDateTime beginTime = QDateTime::currentDateTime(); \ QDateTime endTime = QDateTime::currentDateTime().addMonths(6); //modifyScheduleItem #define MODIFY_ITEM_HEIGHT 48 //item圆角 #define ITEM_RADIUS 8 //最多显示10个item #define ITEM_SHOW_NUM 10 #define OPENCALENDAR_WIDGET_TITLE "在“日历”中查看所有%1个结果..." #define OPENCALENDAR_WDIGET_HEIGHT 17 #endif // GLOBALDEF_H dde-calendar-5.9.1/schedule-plugin/src/interface/000077500000000000000000000000001423264401600216525ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/interface/reply.h000066400000000000000000000131171423264401600231610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 REPLY_H #define REPLY_H #include #include #include #include enum IRet { ERR_SUCCESS = (0), /* 一切正常 */ ERR_FAIL = (-1), /* 常规错误 */ ERR_PARAM = (-2), /* 函数入参异常 */ ERR_CONFIG = (-3), /* 配置错误 */ ERR_NOT_FOUND = (-4), /* 未找到对应项 */ ERR_UNSUPPORT_SERVICE = (-20), /* 不支持的服务 */ ERR_UNSUPPORT_INTENT = (-21), /* 不支持的操作 */ ERR_UNSUPPORT_SLOTS = (-22), /* 不支持的槽位 */ ERR_UNSUPPORT_ABILITY = (-23), /* 不支持的能力 */ ERR_UNSUPPORT_EXPRESS = (-24), /* 不支持的说法 */ ERR_CLOUD_SERVICE = (-100), /* 云端服务内容异常 */ ERR_CLOUD_INTENT = (-101), /* 云端意图内容异常 */ ERR_CLOUD_SLOTS = (-102) /* 云端参数内容异常 */ }; class Reply { public: enum ReplyType { RT_NONE = 0, RT_STRING_DISPLAY = 1, RT_STRING_TTS = 2, RT_POP_WIDGET = 4, RT_INNER_WIDGET = 8 }; public: Reply() : messageCode(ERR_FAIL) , messageDisplay() , messageTTS() , m_widget(nullptr) , m_replyType(RT_NONE) , m_shouldEndSession(true) { } Reply(int msgCode, const QString &message, int type = RT_STRING_TTS | RT_STRING_DISPLAY) : messageCode(msgCode) , messageDisplay(message) , messageTTS(message) , m_widget(nullptr) , m_replyType(type) , m_shouldEndSession(true) { } Reply(int msgCode, const QString &msgDisplay, const QString &msgSynthesis, int type, QWidget *parent) : messageCode(msgCode) , messageDisplay(msgDisplay) , messageTTS(msgSynthesis) , m_widget(parent) , m_replyType(type) , m_shouldEndSession(true) { } Reply(const Reply &reply) : messageCode(reply.messageCode) , messageDisplay(reply.messageDisplay) , messageTTS(reply.messageTTS) , m_widget(reply.m_widget) , m_replyType(reply.m_replyType) , m_shouldEndSession(reply.m_shouldEndSession) { } Reply &operator=(const Reply &reply) { this->messageCode = reply.messageCode; this->messageDisplay = reply.messageDisplay; this->messageTTS = reply.messageTTS; this->m_widget = reply.m_widget; this->m_replyType = reply.m_replyType; m_shouldEndSession = reply.m_shouldEndSession; return *this; } int code() { if (messageCode.isValid()) { return messageCode.toInt(); } else { return ERR_SUCCESS; } } void code(int msgCode) { this->messageCode = msgCode; } const QString displayMessage() { if (messageDisplay.isValid()) { return messageDisplay.toString(); } else { return ""; } } void displayMessage(const QString &msgDisplay) { this->messageDisplay = msgDisplay; } const QString ttsMessage() { if (messageTTS.isValid()) { return messageTTS.toString(); } else { return ""; } } void ttsMessage(const QString &msgSynthesis) { this->messageTTS = msgSynthesis; } void update(int msgCode) { this->messageCode = msgCode; } void update(int msgCode, const QString &message, int replyType = RT_STRING_TTS | RT_STRING_DISPLAY) { this->messageCode = msgCode; this->messageDisplay = message; this->messageTTS = message; this->m_replyType = replyType; } void update(int msgCode, const QString &msgDisplay, const QString &msgSynthesis, int replyType = RT_STRING_TTS | RT_STRING_DISPLAY) { this->messageCode = msgCode; this->messageDisplay = msgDisplay; this->messageTTS = msgSynthesis; this->m_replyType = replyType; } operator int() { return messageCode.toInt(); } bool isCodeValid() { return messageCode.isValid(); } bool isDisplayMessageValid() { return messageDisplay.isValid(); } bool isSynthesisMessageValid() { return messageTTS.isValid(); } QWidget *getReplyWidget() { return m_widget; } void setReplyWidget(QWidget *w) { m_widget = w; } int getReplyType() { return m_replyType; } void setReplyType(int type) { m_replyType = type; } int getShouldEndSession() { return m_shouldEndSession; } void setShouldEndSession(bool bShouldEndSession) { m_shouldEndSession = bShouldEndSession; } private: QVariant messageCode; QVariant messageDisplay; QVariant messageTTS; QWidget *m_widget; int m_replyType; bool m_shouldEndSession; }; #endif // REPLY_H dde-calendar-5.9.1/schedule-plugin/src/interface/service.h000066400000000000000000000031071423264401600234640ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 SERVICE_H #define SERVICE_H #include #include "reply.h" /* 服务优先级: * SeriesIgnore表示该service可忽略 * ServicePriorityPatch表示服务修复代码,直接覆盖旧的服务 */ enum ServicePriority { ServicePriorityIgnore = -10, ServicePriorityLow = 0, SerivcePriorityNormal = 10, SerivcePriorityHigh = 50, SerivcePriorityPatch = 127 }; class IService : public QObject // IReplyHandler { Q_OBJECT public: virtual ~IService() {} virtual QString serviceName() = 0; virtual int servicePriority() = 0; virtual bool canHandle(const QString &s) = 0; virtual IRet service(const QString &semantic) = 0; virtual Reply &getServiceReply() = 0; signals: void signalSendShowMessage(Reply reply); }; #endif // SERVICE_H dde-calendar-5.9.1/schedule-plugin/src/interface/systemsemanticplugin.h000066400000000000000000000044021423264401600263120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 SYSTEM_SEMANTIC_PLUGIN_H #define SYSTEM_SEMANTIC_PLUGIN_H #include #include "service.h" #if defined(SYSTEM_SEMANTIC_LIBRARY) #define SYSTEMSEMANTICSHARED_EXPORT Q_DECL_EXPORT #else #define SYSTEMSEMANTICSHARED_EXPORT Q_DECL_IMPORT #endif #define AIAPluginProtocolVersion 1 class SYSTEMSEMANTICSHARED_EXPORT IServicePlugin { typedef std::function replyCallback; public: virtual ~IServicePlugin() {} virtual int init() = 0; /* 加载配置,初始化整个插件或服务 */ virtual void uninit() = 0; /* 插件逆向初始化 */ virtual QStringList getSupportService() = 0; virtual IService *createService(const QString &service) = 0; /* 获取一个服务,为多线程考量新建服务 */ virtual void releaseService(IService *service) = 0; /* 释放一个服务 */ virtual bool needRunInDifferentThread() { return true; /*当前线程是否需要在单独的线程中运行*/ } virtual bool isAutoDetectSession() { return true; /*是否自动检测多轮对话*/ } virtual int getPluginProtocolVersion() { return AIAPluginProtocolVersion; } virtual void setMessageHandle(replyCallback callback) { m_messageHandle = callback; } protected: replyCallback m_messageHandle; }; #define PluginInterface_iid "com.deepin.iflytek.aiassistant.3" Q_DECLARE_INTERFACE(IServicePlugin, PluginInterface_iid) #endif // SYSTEM_SEMANTIC_PLUGIN_H dde-calendar-5.9.1/schedule-plugin/src/scheduleplugin.cpp000066400000000000000000000044611423264401600234360ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "scheduleplugin.h" #include "scheduleservice.h" #include "globaldef.h" #include "task/schedulemanagetask.h" Scheduleplugin::Scheduleplugin(QObject *parent) { Q_UNUSED(parent); } Scheduleplugin::~Scheduleplugin() { ScheduleManageTask::releaseInstance(); } int Scheduleplugin::init() { return 0; } void Scheduleplugin::uninit() { } QStringList Scheduleplugin::getSupportService() { return QStringList {SERVICE_NAME}; } IService *Scheduleplugin::createService(const QString &service) { if (!getSupportService().contains(service)) { return nullptr; } QMutexLocker lock(&m_ServiceLock); auto pService = new scheduleservice(); connect(pService->getScheduleManageTask(), &ScheduleManageTask::signaleSendMessage, this, &Scheduleplugin::slotSendMessage, Qt::UniqueConnection); m_ServiceSet.insert(pService); return pService; } void Scheduleplugin::releaseService(IService *service) { QMutexLocker lock(&m_ServiceLock); for (auto iter = m_ServiceSet.begin(); iter != m_ServiceSet.end(); iter++) { if (service && service == *iter) { m_ServiceSet.erase(iter); break; } } if (service) { delete service; } } bool Scheduleplugin::needRunInDifferentThread() { return false; } bool Scheduleplugin::isAutoDetectSession() { //设置为不自动检测是否多论 return false; } void Scheduleplugin::slotSendMessage(Reply reply) { if (this->m_messageHandle) this->m_messageHandle(this, reply); } dde-calendar-5.9.1/schedule-plugin/src/scheduleplugin.h000066400000000000000000000034211423264401600230760ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULEPLUGIN_H #define SCHEDULEPLUGIN_H #include "interface/systemsemanticplugin.h" #include "interface/reply.h" #include class Scheduleplugin : public QObject , public IServicePlugin { Q_OBJECT Q_INTERFACES(IServicePlugin) Q_PLUGIN_METADATA(IID PluginInterface_iid) public: explicit Scheduleplugin(QObject *parent = nullptr); ~Scheduleplugin() override; int init() override; void uninit() override; QStringList getSupportService() override; IService *createService(const QString &service) override; void releaseService(IService *service) override; bool needRunInDifferentThread() override; /** * @brief isAutoDetectSession 是否自动检测多轮对话 * @return true 检测 false不检测由插件设置 */ bool isAutoDetectSession() override; public slots: void slotSendMessage(Reply reply); private: QSet m_ServiceSet; QMutex m_ServiceLock; }; #endif // SCHEDULEPLUGIN_H dde-calendar-5.9.1/schedule-plugin/src/scheduleservice.cpp000066400000000000000000000033771423264401600236050ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "scheduleservice.h" #include "globaldef.h" #include "task/schedulemanagetask.h" #include "task/semanticanalysistask.h" scheduleservice::scheduleservice() { } scheduleservice::~scheduleservice() { } QString scheduleservice::serviceName() { return SERVICE_NAME; } int scheduleservice::servicePriority() { return 0; } bool scheduleservice::canHandle(const QString &s) { Q_UNUSED(s); return true; } IRet scheduleservice::service(const QString &semantic) { //解析云端返回的数据,进行业务处理 QString str = semantic; semanticAnalysisTask task; if (!task.resolveTaskJson(str)) { return ERR_FAIL; } ScheduleManageTask::getInstance()->process(task); return ERR_SUCCESS; } Reply &scheduleservice::getServiceReply() { m_reply = ScheduleManageTask::getInstance()->getReply(); return m_reply; } ScheduleManageTask *scheduleservice::getScheduleManageTask() const { return ScheduleManageTask::getInstance(); } dde-calendar-5.9.1/schedule-plugin/src/scheduleservice.h000066400000000000000000000025141423264401600232420ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULESERVICE_H #define SCHEDULESERVICE_H #include "interface/service.h" class ScheduleManageTask; class scheduleservice : public IService { Q_OBJECT public: scheduleservice(); ~scheduleservice() override; QString serviceName() override; int servicePriority() override; bool canHandle(const QString &s) override; IRet service(const QString &semantic) override; Reply &getServiceReply() override; ScheduleManageTask *getScheduleManageTask() const; private: Reply m_reply; }; #endif // SCHEDULESERVICE_H dde-calendar-5.9.1/schedule-plugin/src/state/000077500000000000000000000000001423264401600210325ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/state/confirwfeedbackstate.cpp000066400000000000000000000035421423264401600257170ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "confirwfeedbackstate.h" #include "../globaldef.h" #include "../task/schedulebasetask.h" #include "../data/clocaldata.h" #include "../data/changejsondata.h" confirwFeedbackState::confirwFeedbackState(CSchedulesDBus *dbus, scheduleBaseTask *task) : scheduleState(dbus, task) { } Reply confirwFeedbackState::getReplyByIntent(bool isOK) { return m_Task->confirmInfo(isOK); } scheduleState::Filter_Flag confirwFeedbackState::eventFilter(const JsonData *jsonData) { if (jsonData->getPropertyStatus() == JsonData::NEXT) { return Fileter_Init; } if (jsonData->getPropertyStatus() == JsonData::LAST || jsonData->offset() > 0) { return Fileter_Err; } Filter_Flag result = changeDateErrJudge(jsonData,Fileter_Init); return result; } Reply confirwFeedbackState::ErrEvent() { Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } Reply confirwFeedbackState::normalEvent(const JsonData *jsonData) { Q_UNUSED(jsonData); return m_Task->confirwScheduleHandle(m_localData->SelectInfo()); } dde-calendar-5.9.1/schedule-plugin/src/state/confirwfeedbackstate.h000066400000000000000000000023711423264401600253630ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CONFIRWFEEDBACKSTATE_H #define CONFIRWFEEDBACKSTATE_H #include "schedulestate.h" class confirwFeedbackState : public scheduleState { public: confirwFeedbackState(CSchedulesDBus *dbus, scheduleBaseTask *task); Reply getReplyByIntent(bool isOK) override; protected: Filter_Flag eventFilter(const JsonData *jsonData) override; Reply ErrEvent() override; Reply normalEvent(const JsonData *jsonData) override; }; #endif // CONFIRWFEEDBACKSTATE_H dde-calendar-5.9.1/schedule-plugin/src/state/getchangedatastate.cpp000066400000000000000000000067671423264401600253760ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "getchangedatastate.h" #include "../globaldef.h" #include "../data/changejsondata.h" #include "../task/changescheduletask.h" getChangeDataState::getChangeDataState(CSchedulesDBus *dbus, scheduleBaseTask *task) :scheduleState(dbus,task) { } Reply getChangeDataState::getReplyByIntent(bool isOK) { Q_UNUSED(isOK); return ErrEvent(); } scheduleState::Filter_Flag getChangeDataState::eventFilter(const JsonData *jsonData) { //如果语义包含全部关键字则为修改初始状态 if (jsonData->getPropertyStatus() == JsonData::ALL //如果语义包含下一个关键字则为修改初始状态 || jsonData->getPropertyStatus() == JsonData::NEXT || jsonData->isVaild() //如果语义包含时间则为修改初始状态 || jsonData->getDateTime().suggestDatetime.size()>0 // 如果语义包含内容则为修改初始状态 || !jsonData->TitleName().isEmpty() //如果语义包含重复类型则为修改初始状态 || jsonData->getRepeatStatus() != JsonData::NONE) { return Filter_Flag::Fileter_Init; } if (jsonData->getPropertyStatus() == JsonData::LAST) return Fileter_Err; if (jsonData->offset() > 0) { return Fileter_Err; } //类型转换 JsonData *queryData = const_cast(jsonData); changejsondata *mchangeJsonData = dynamic_cast(queryData); //如果存在form信息则表示一个新的修改 if(mchangeJsonData->fromDateTime().suggestDatetime.size() > 0){ return Fileter_Init; } //如果存在修改的信息则为正常状态 if (mchangeJsonData->toDateTime().suggestDatetime.size() > 0 || !mchangeJsonData->toPlaceStr().isEmpty()) { return Fileter_Normal; }else { return Fileter_Err; } } Reply getChangeDataState::ErrEvent() { Reply reply; //返回错误输入的回复语 REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } Reply getChangeDataState::normalEvent(const JsonData *jsonData) { //类型转换 JsonData *queryData = const_cast(jsonData); changejsondata *mchangeJsonData = dynamic_cast(queryData); //如果有修改时间的信息则赋值 if(mchangeJsonData->toDateTime().suggestDatetime.size()>0){ m_localData->setToTime(mchangeJsonData->toDateTime()); } //如果有修改内容的信息则获取 if(!mchangeJsonData->toPlaceStr().isEmpty()){ m_localData->setToTitleName(mchangeJsonData->toPlaceStr()); } return m_Task->getReplyBySelectSchedule(m_localData->SelectInfo()); } dde-calendar-5.9.1/schedule-plugin/src/state/getchangedatastate.h000066400000000000000000000035361423264401600250320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 GETCHANGEDATASTATE_H #define GETCHANGEDATASTATE_H #include "schedulestate.h" /** * @brief The getChangeDataState class 获取修改信息状态 */ class getChangeDataState : public scheduleState { public: getChangeDataState(CSchedulesDBus *dbus, scheduleBaseTask *task); /** * @brief getReplyByIntent 根据意图判断回复 * @param isOK 确认 或 取消 * @return 回复 */ Reply getReplyByIntent(bool isOK) override; protected: /** * @brief eventFilter 根据json过滤事件 * @param jsonData json对象 * @return 返回过滤结果 初始化,错误 或正常 */ Filter_Flag eventFilter(const JsonData *jsonData) override; /** * @brief ErrEvent 错误事件处理 * @return 给助手的回复 */ Reply ErrEvent() override; /** * @brief normalEvent 正常事件处理 * @param jsonData 需要处理的json数据 * @return 给助手的回复 */ Reply normalEvent(const JsonData *jsonData) override; }; #endif // GETCHANGEDATASTATE_H dde-calendar-5.9.1/schedule-plugin/src/state/queryschedulestate.cpp000066400000000000000000000054221423264401600254640ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "queryschedulestate.h" #include "../task/queryscheduleproxy.h" #include "../task/schedulebasetask.h" #include "../data/schedulestructs.h" #include "../data/changejsondata.h" #include "../globaldef.h" #include "../data/clocaldata.h" queryScheduleState::queryScheduleState(CSchedulesDBus *dbus, scheduleBaseTask *task) : scheduleState(dbus, task) { } Reply queryScheduleState::getReplyByIntent(bool isOK) { Q_UNUSED(isOK); return ErrEvent(); } Reply queryScheduleState::ErrEvent() { Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, false) return reply; } Reply queryScheduleState::normalEvent(const JsonData *jsonData) { QVector m_scheduleInfo {}; JsonData *queryData = const_cast(jsonData); queryScheduleProxy m_querySchedule(queryData, m_dbus); m_scheduleInfo = m_querySchedule.querySchedule(); if (m_querySchedule.getTimeIsExpired()) { return m_Task->overdueScheduleProcess(); } else { changejsondata *mchangeJsonData = dynamic_cast(queryData); if (mchangeJsonData != nullptr) { if (m_localData == nullptr) m_localData = new CLocalData(); if (mchangeJsonData->toDateTime().suggestDatetime.size() > 0) { m_localData->setToTime(mchangeJsonData->toDateTime()); } if (!mchangeJsonData->toPlaceStr().isEmpty()) m_localData->setToTitleName(mchangeJsonData->toPlaceStr()); } return m_Task->getFeedbackByQuerySchedule(m_scheduleInfo); } } scheduleState::Filter_Flag queryScheduleState::eventFilter(const JsonData *jsonData) { if (jsonData->getPropertyStatus() == JsonData::LAST || jsonData->getPropertyStatus() == JsonData::PRO_THIS) return Fileter_Err; if (jsonData->offset() > -1 && jsonData->getPropertyStatus() == JsonData::PRO_NONE) return Fileter_Err; Filter_Flag result = changeDateErrJudge(jsonData, Fileter_Normal); return result; } dde-calendar-5.9.1/schedule-plugin/src/state/queryschedulestate.h000066400000000000000000000023731423264401600251330ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 QUERYSCHEDULESTATE_H #define QUERYSCHEDULESTATE_H #include "schedulestate.h" class queryScheduleState : public scheduleState { public: queryScheduleState(CSchedulesDBus *dbus, scheduleBaseTask *task); Reply getReplyByIntent(bool isOK) override; protected: Filter_Flag eventFilter(const JsonData *jsonData) override; Reply ErrEvent() override; Reply normalEvent(const JsonData *jsonData) override; protected: }; #endif // QUERYSCHEDULESTATE_H dde-calendar-5.9.1/schedule-plugin/src/state/repeatfeedbackstate.cpp000066400000000000000000000051601423264401600255260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "repeatfeedbackstate.h" #include "../globaldef.h" #include "../task/schedulebasetask.h" #include "../data/clocaldata.h" #include "../data/changejsondata.h" repeatfeedbackstate::repeatfeedbackstate(CSchedulesDBus *dbus, scheduleBaseTask *task) : scheduleState(dbus, task) { } Reply repeatfeedbackstate::getReplyByIntent(bool isOK) { if (isOK) { Q_UNUSED(isOK) Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } else { return m_Task->InitState(nullptr); } } scheduleState::Filter_Flag repeatfeedbackstate::eventFilter(const JsonData *jsonData) { if (jsonData->getPropertyStatus() == JsonData::NEXT //如果语义包含时间则为修改初始状态 || jsonData->getDateTime().suggestDatetime.size()>0 // 如果语义包含内容则为修改初始状态 || !jsonData->TitleName().isEmpty() //如果语义包含重复类型则为修改初始状态 || jsonData->getRepeatStatus() != JsonData::NONE) { return Fileter_Init; } if (jsonData->getPropertyStatus() == JsonData::ALL || jsonData->getPropertyStatus() == JsonData::PRO_THIS) { return Fileter_Normal; } if (jsonData->getPropertyStatus() == JsonData::LAST || jsonData->offset() > 0) { return Fileter_Err; } Filter_Flag result = changeDateErrJudge(jsonData,Fileter_Init); return result; } Reply repeatfeedbackstate::ErrEvent() { Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } Reply repeatfeedbackstate::normalEvent(const JsonData *jsonData) { bool isOnlyOne = true; if (jsonData->getPropertyStatus() == JsonData::ALL) { isOnlyOne = false; } return m_Task->repeatScheduleHandle(m_localData->SelectInfo(), isOnlyOne); } dde-calendar-5.9.1/schedule-plugin/src/state/repeatfeedbackstate.h000066400000000000000000000023631423264401600251750ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 REPEATFEEDBACKSTATE_H #define REPEATFEEDBACKSTATE_H #include "schedulestate.h" class repeatfeedbackstate : public scheduleState { public: repeatfeedbackstate(CSchedulesDBus *dbus, scheduleBaseTask *task); Reply getReplyByIntent(bool isOK) override; protected: Filter_Flag eventFilter(const JsonData *jsonData) override; Reply ErrEvent() override; Reply normalEvent(const JsonData *jsonData) override; }; #endif // REPEATFEEDBACKSTATE_H dde-calendar-5.9.1/schedule-plugin/src/state/schedulestate.cpp000066400000000000000000000065051423264401600244010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "schedulestate.h" #include "../task/schedulebasetask.h" #include "../data/changejsondata.h" #include "../globaldef.h" #include "../state/queryschedulestate.h" scheduleState::scheduleState(CSchedulesDBus *dbus, scheduleBaseTask *task) : m_dbus(dbus) , m_Task(task) { } scheduleState::~scheduleState() { if (m_localData != nullptr) delete m_localData; } Reply scheduleState::process(const JsonData *jsonData) { Reply reply; //如果时间无效 if (jsonData->getDateTimeInvalid()) { scheduleState *nextState = new queryScheduleState(m_dbus, m_Task); setNextState(nextState); REPLY_ONLY_TTS(reply, DATETIME_ERR_TTS, DATETIME_ERR_TTS, true); return reply; } switch (eventFilter(jsonData)) { case Fileter_Err: { reply = ErrEvent(); } break; case Fileter_Normal: { reply = normalEvent(jsonData); } break; case Fileter_Init: { reply = initEvent(jsonData); } break; } return reply; } void scheduleState::setNextState(scheduleState *nextState) { m_nextState = nextState; } scheduleState *scheduleState::getNextState() const { return m_nextState; } void scheduleState::setLocalData(CLocalData *localData) { if (m_localData == localData) { return; } if (m_localData != nullptr) { delete m_localData; m_localData = nullptr; } if (localData == nullptr) return; m_localData = localData; } CLocalData *scheduleState::getLocalData() const { return m_localData; } Reply scheduleState::initEvent(const JsonData *jsonData) { return m_Task->InitState(jsonData); } scheduleState::Filter_Flag scheduleState::changeDateErrJudge(const JsonData *jsonData, const scheduleState::Filter_Flag &defaultflag) { Filter_Flag resultFlag {defaultflag}; //如果只有修改信息没有被修改信息返回错误 JsonData *queryData = const_cast(jsonData); changejsondata *mchangeJsonData = dynamic_cast(queryData); if (mchangeJsonData != nullptr) { //是否含有修改信息 bool hasChangeToData = !mchangeJsonData->toPlaceStr().isEmpty() || mchangeJsonData->toDateTime().suggestDatetime.size() > 0; //是否不包含需要修改的信息 bool noChangeDate = mchangeJsonData->fromDateTime().suggestDatetime.size() == 0 && mchangeJsonData->TitleName().isEmpty(); if (hasChangeToData && noChangeDate) { resultFlag = Filter_Flag::Fileter_Err; } } return resultFlag; } dde-calendar-5.9.1/schedule-plugin/src/state/schedulestate.h000066400000000000000000000044331423264401600240440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULESTATE_H #define SCHEDULESTATE_H #include "../data/jsondata.h" #include "../interface/reply.h" #include "../data/clocaldata.h" class JsonData; class CSchedulesDBus; class scheduleBaseTask; class scheduleState { public: enum Filter_Flag { Fileter_Err, Fileter_Normal, Fileter_Init }; public: scheduleState(CSchedulesDBus *dbus, scheduleBaseTask *task); virtual ~scheduleState(); Reply process(const JsonData *jsonData); void setNextState(scheduleState *nextState); scheduleState *getNextState() const; void setLocalData(CLocalData *localData); CLocalData *getLocalData() const; virtual Reply getReplyByIntent(bool isOK) = 0; protected: virtual Filter_Flag eventFilter(const JsonData *jsonData) = 0; virtual Reply ErrEvent() = 0; virtual Reply normalEvent(const JsonData *jsonData) = 0; Reply initEvent(const JsonData *jsonData); /** * @brief changeDateErrJudge 修改数据错误判断,在非获取修改数据状态下,输入“修改到xxx”返回错误信息 * @param jsonData json数据 * @param defaultflag 默认返回标志 * @return 过滤标志 */ Filter_Flag changeDateErrJudge(const JsonData *jsonData,const Filter_Flag &defaultflag); protected: CSchedulesDBus *m_dbus {nullptr}; scheduleBaseTask *m_Task {nullptr}; scheduleState *m_nextState {nullptr}; CLocalData *m_localData {nullptr}; }; #endif // SCHEDULESTATE_H dde-calendar-5.9.1/schedule-plugin/src/state/selectandquerystate.cpp000066400000000000000000000105051423264401600256300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "selectandquerystate.h" #include "../globaldef.h" #include "../task/schedulebasetask.h" #include "../data/changejsondata.h" SelectAndQueryState::SelectAndQueryState(CSchedulesDBus *dbus, scheduleBaseTask *task) : scheduleState(dbus, task) { } Reply SelectAndQueryState::getReplyByIntent(bool isOK) { Q_UNUSED(isOK) Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } scheduleState::Filter_Flag SelectAndQueryState::eventFilter(const JsonData *jsonData) { //如果语义包含全部关键字则为修改初始状态 if (jsonData->getPropertyStatus() == JsonData::ALL //如果语义包含下一个关键字则为修改初始状态 || jsonData->getPropertyStatus() == JsonData::NEXT || jsonData->isVaild() //如果语义包含时间则为修改初始状态 || jsonData->getDateTime().suggestDatetime.size()>0 // 如果语义包含内容则为修改初始状态 || !jsonData->TitleName().isEmpty() //如果语义包含重复类型则为修改初始状态 || jsonData->getRepeatStatus() != JsonData::NONE) { return Filter_Flag::Fileter_Init; } if (jsonData->getPropertyStatus() == JsonData::LAST) return Fileter_Normal; JsonData *queryData = const_cast(jsonData); changejsondata *mchangeJsonData = dynamic_cast(queryData); if (mchangeJsonData->fromDateTime().suggestDatetime.size() > 0) { return Filter_Flag::Fileter_Init; } //根据列表编号判断 if (m_localData->getOffet() < 0 && jsonData->offset() < 0) { return Fileter_Err; } bool showOpenWidget = m_localData->scheduleInfoVector().size() > ITEM_SHOW_NUM; const int showcount = showOpenWidget ? ITEM_SHOW_NUM : m_localData->scheduleInfoVector().size(); if (jsonData->offset() > showcount) { return Fileter_Err; } return Fileter_Normal; } Reply SelectAndQueryState::ErrEvent() { Reply reply; REPLY_ONLY_TTS(reply, QUERY_ERR_TTS, QUERY_ERR_TTS, true) return reply; } Reply SelectAndQueryState::normalEvent(const JsonData *jsonData) { bool showOpenWidget = m_localData->scheduleInfoVector().size() > ITEM_SHOW_NUM; const int showcount = showOpenWidget ? ITEM_SHOW_NUM : m_localData->scheduleInfoVector().size(); int offset = 0; //获取第N个日程 if (jsonData->getPropertyStatus() == JsonData::LAST) { offset = showcount; }else { offset = jsonData->offset(); } if(offset > 0){ m_localData->setOffset(offset); m_localData->setSelectInfo(m_localData->scheduleInfoVector().at(offset - 1)); ScheduleDtailInfo info = m_localData->SelectInfo(); //如果语义为“第xx个修改到xxx”,添加对修改信息的获取 //类型转换 JsonData *queryData = const_cast(jsonData); changejsondata *mchangeJsonData = dynamic_cast(queryData); //如果有修改时间的信息则赋值 if(mchangeJsonData->toDateTime().suggestDatetime.size()>0){ m_localData->setToTime(mchangeJsonData->toDateTime()); } //如果有修改内容的信息则获取 if(!mchangeJsonData->toPlaceStr().isEmpty()){ m_localData->setToTitleName(mchangeJsonData->toPlaceStr()); } return m_Task->getReplyBySelectSchedule(m_localData->SelectInfo()); }else { qDebug()<<"offset <=0"; Reply reply; REPLY_ONLY_TTS(reply,G_ERR_TTS,G_ERR_TTS,false); return reply; } } dde-calendar-5.9.1/schedule-plugin/src/state/selectandquerystate.h000066400000000000000000000023641423264401600253010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SELECTANDQUERYSTATE_H #define SELECTANDQUERYSTATE_H #include "schedulestate.h" class SelectAndQueryState : public scheduleState { public: SelectAndQueryState(CSchedulesDBus *dbus, scheduleBaseTask *task); Reply getReplyByIntent(bool isOK) override; protected: Filter_Flag eventFilter(const JsonData *jsonData) override; Reply ErrEvent() override; Reply normalEvent(const JsonData *jsonData) override; }; #endif // SELECTANDQUERYSTATE_H dde-calendar-5.9.1/schedule-plugin/src/state/selectinquirystate.cpp000066400000000000000000000053561423264401600255100ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "selectinquirystate.h" #include "../globaldef.h" #include "../widget/repeatschedulewidget.h" #include "../task/schedulebasetask.h" selectInquiryState::selectInquiryState(CSchedulesDBus *dbus, scheduleBaseTask *task) : scheduleState(dbus, task) { } Reply selectInquiryState::getReplyByIntent(bool isOK) { Q_UNUSED(isOK) Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } scheduleState::Filter_Flag selectInquiryState::eventFilter(const JsonData *jsonData) { if (jsonData->getPropertyStatus() == JsonData::ALL || jsonData->getPropertyStatus() == JsonData::NEXT || jsonData->isVaild() || jsonData->getRepeatStatus() != JsonData::NONE) { return Filter_Flag::Fileter_Init; } if (jsonData->getPropertyStatus() == JsonData::LAST) return Fileter_Normal; if (jsonData->getDateTime().suggestDatetime.size() > 0 || !jsonData->TitleName().isEmpty()) { return Fileter_Init; } bool showOpenWidget = m_localData->scheduleInfoVector().size() > ITEM_SHOW_NUM; const int showcount = showOpenWidget ? ITEM_SHOW_NUM : m_localData->scheduleInfoVector().size(); if (jsonData->offset() > showcount) { return Fileter_Err; } return Fileter_Normal; } Reply selectInquiryState::ErrEvent() { Reply reply; REPLY_ONLY_TTS(reply, QUERY_ERR_TTS, QUERY_ERR_TTS, true) return reply; } Reply selectInquiryState::normalEvent(const JsonData *jsonData) { bool showOpenWidget = m_localData->scheduleInfoVector().size() > ITEM_SHOW_NUM; const int showcount = showOpenWidget ? ITEM_SHOW_NUM : m_localData->scheduleInfoVector().size(); int offset = 0; if (jsonData->getPropertyStatus() == JsonData::LAST) { offset = showcount; } else { offset = jsonData->offset(); } Reply m_reply; ScheduleDtailInfo info = m_localData->scheduleInfoVector().at(offset - 1); return m_Task->getReplyBySelectSchedule(info); } dde-calendar-5.9.1/schedule-plugin/src/state/selectinquirystate.h000066400000000000000000000024361423264401600251510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SELECTINQUIRYSTATE_H #define SELECTINQUIRYSTATE_H #include "schedulestate.h" #include "../data/schedulestructs.h" class selectInquiryState : public scheduleState { public: selectInquiryState(CSchedulesDBus *dbus, scheduleBaseTask *task); Reply getReplyByIntent(bool isOK) override; protected: Filter_Flag eventFilter(const JsonData *jsonData) override; Reply ErrEvent() override; Reply normalEvent(const JsonData *jsonData) override; private: }; #endif // SELECTINQUIRYSTATE_H dde-calendar-5.9.1/schedule-plugin/src/task/000077500000000000000000000000001423264401600206545ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/task/cancelscheduletask.cpp000066400000000000000000000213711423264401600252110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "cancelscheduletask.h" #include "../data/canceljsondata.h" #include "../globaldef.h" #include "../widget/schedulelistwidget.h" #include "../widget/repeatschedulewidget.h" #include "queryscheduleproxy.h" #include "../state/queryschedulestate.h" #include "../state/selectinquirystate.h" #include "../state/repeatfeedbackstate.h" #include "../data/clocaldata.h" #include "../state/confirwfeedbackstate.h" cancelScheduleTask::cancelScheduleTask(CSchedulesDBus *dbus) : scheduleBaseTask(dbus, new queryScheduleState(dbus, this)) { } void cancelScheduleTask::slotSelectScheduleIndex(int index) { scheduleState *currentState = getCurrentState(); CLocalData *localData = currentState->getLocalData(); if (!(localData->scheduleInfoVector().size() < index)) { Reply reply = getReplyBySelectSchedule(localData->scheduleInfoVector().at(index - 1)); updateState(); emit signaleSendMessage(reply); } } void cancelScheduleTask::slotButtonCheckNum(int index, const QString &text, const int buttonCount) { Q_UNUSED(text); Reply reply; scheduleState *currentState = getCurrentState(); if (buttonCount == 2) { if (index == 1) { reply = confirwScheduleHandle(currentState->getLocalData()->SelectInfo()); } } if (buttonCount == 3) { if (index == 1) { reply = repeatScheduleHandle(currentState->getLocalData()->SelectInfo(), false); } if (index == 2) { reply = repeatScheduleHandle(currentState->getLocalData()->SelectInfo(), true); } } if (index == 0) { reply = InitState(nullptr, true); } else { InitState(nullptr, true); } emit signaleSendMessage(reply); } scheduleState *cancelScheduleTask::getCurrentState() { scheduleState *currentState = m_State; while (currentState->getNextState() != nullptr) { currentState = currentState->getNextState(); } return currentState; } Reply cancelScheduleTask::getFeedbackByQuerySchedule(const QVector &infoVector) { Reply m_reply; scheduleState *nextState = nullptr; scheduleState *currentState = getCurrentState(); if (infoVector.size() == 0) { QString m_TTSMessage; QString m_DisplyMessage; m_TTSMessage = NO_SCHEDULE_TTS; m_DisplyMessage = NO_SCHEDULE_TTS; REPLY_ONLY_TTS(m_reply, m_TTSMessage, m_DisplyMessage, true); currentState->setNextState(nextState); } else if (infoVector.size() == 1) { m_reply = getReplyBySelectSchedule(infoVector.at(0)); } else { nextState = new selectInquiryState(m_dbus, this); CLocalData *m_Data = new CLocalData(); m_Data->setScheduleInfoVector(infoVector); nextState->setLocalData(m_Data); m_reply = getListScheduleReply(infoVector); currentState->setNextState(nextState); } return m_reply; } Reply cancelScheduleTask::getReplyBySelectSchedule(const ScheduleDtailInfo &info) { Reply m_reply; CLocalData *m_Data = new CLocalData(); scheduleState *nextState = nullptr; scheduleState *currentState = getCurrentState(); m_Data->setSelectInfo(info); if (info.rpeat == 0) { nextState = new confirwFeedbackState(m_dbus, this); m_reply = getConfirwScheduleReply(info); } else { nextState = new repeatfeedbackstate(m_dbus, this); m_reply = getRepeatReply(info); } nextState->setLocalData(m_Data); currentState->setNextState(nextState); return m_reply; } Reply cancelScheduleTask::InitState(const JsonData *jsonData, bool isUpdateState) { Reply m_reply; scheduleState *nextState = new queryScheduleState(m_dbus, this); scheduleState *currentState = getCurrentState(); currentState->setNextState(nextState); if (jsonData != nullptr) { m_reply = nextState->process(jsonData); } else { REPLY_ONLY_TTS(m_reply, CANCEL_DELETION_TTS, CANCEL_DELETION_TTS, true); } if (isUpdateState) { updateState(); } return m_reply; } Reply cancelScheduleTask::repeatScheduleHandle(const ScheduleDtailInfo &info, bool isOnlyOne) { deleteRepeatSchedule(info, isOnlyOne); Reply reply; REPLY_ONLY_TTS(reply, CONFIRM_DELETION_TTS, CONFIRM_DELETION_TTS, true); scheduleState *nextState = new queryScheduleState(m_dbus, this); scheduleState *currentState = getCurrentState(); currentState->setNextState(nextState); return reply; } Reply cancelScheduleTask::confirwScheduleHandle(const ScheduleDtailInfo &info) { deleteOrdinarySchedule(info); Reply reply; REPLY_ONLY_TTS(reply, CONFIRM_DELETION_TTS, CONFIRM_DELETION_TTS, true); scheduleState *nextState = new queryScheduleState(m_dbus, this); scheduleState *currentState = getCurrentState(); currentState->setNextState(nextState); return reply; } Reply cancelScheduleTask::confirmInfo(bool isOK) { if (isOK) { scheduleState *currentState = getCurrentState(); return confirwScheduleHandle(currentState->getLocalData()->SelectInfo()); } else { return InitState(nullptr); } } QWidget *cancelScheduleTask::createRepeatWidget(const ScheduleDtailInfo &info) { repeatScheduleWidget *repeatWidget = new repeatScheduleWidget(repeatScheduleWidget::Operation_Cancel, repeatScheduleWidget::Widget_Repeat); repeatWidget->setSchedule(info); connect(repeatWidget, &repeatScheduleWidget::signalButtonCheckNum, this, &cancelScheduleTask::slotButtonCheckNum); return repeatWidget; } QWidget *cancelScheduleTask::createConfirmWidget(const ScheduleDtailInfo &info) { repeatScheduleWidget *cwidget = new repeatScheduleWidget(repeatScheduleWidget::Operation_Cancel, repeatScheduleWidget::Widget_Confirm); cwidget->setSchedule(info); connect(cwidget, &repeatScheduleWidget::signalButtonCheckNum, this, &cancelScheduleTask::slotButtonCheckNum); return cwidget; } Reply cancelScheduleTask::getListScheduleReply(const QVector &infoVector) { scheduleListWidget *m_viewWidget = new scheduleListWidget(); m_viewWidget->setScheduleInfoVector(infoVector); connect(m_viewWidget, &scheduleListWidget::signalSelectScheduleIndex, this, &cancelScheduleTask::slotSelectScheduleIndex); QString m_TTSMessage; QString m_DisplyMessage; m_TTSMessage = CANCEL_SELECT_TTS; m_DisplyMessage = CANCEL_SELECT_TTS; Reply reply; REPLY_WIDGET_TTS(reply, m_viewWidget, m_TTSMessage, m_DisplyMessage, false); return reply; } Reply cancelScheduleTask::getConfirwScheduleReply(const ScheduleDtailInfo &info) { QString m_TTSMessage; QString m_DisplyMessage; m_TTSMessage = CONFIRM_SCHEDULE_CANCEL_TTS; m_DisplyMessage = CONFIRM_SCHEDULE_CANCEL_TTS; QWidget *m_confirwWidget = createConfirmWidget(info); Reply reply; REPLY_WIDGET_TTS(reply, m_confirwWidget, m_TTSMessage, m_DisplyMessage, false); return reply; } Reply cancelScheduleTask::getRepeatReply(const ScheduleDtailInfo &info) { QString m_TTSMessage; QString m_DisplyMessage; m_TTSMessage = REPEST_SCHEDULE_CANCEL_TTS; m_DisplyMessage = REPEST_SCHEDULE_CANCEL_TTS; QWidget *m_repeatReply = createRepeatWidget(info); Reply reply; REPLY_WIDGET_TTS(reply, m_repeatReply, m_TTSMessage, m_DisplyMessage, false); return reply; } void cancelScheduleTask::deleteRepeatSchedule(const ScheduleDtailInfo &info, bool isOnlyOne) { if (isOnlyOne) { ScheduleDtailInfo newschedule; m_dbus->GetJob(info.id, newschedule); newschedule.ignore.append(info.beginDateTime); m_dbus->UpdateJob(newschedule); } else { if (info.RecurID == 0) { m_dbus->DeleteJob(info.id); } else { ScheduleDtailInfo newschedule; m_dbus->GetJob(info.id, newschedule); newschedule.enddata.type = 2; newschedule.enddata.date = info.beginDateTime.addDays(-1); m_dbus->UpdateJob(newschedule); } } } void cancelScheduleTask::deleteOrdinarySchedule(const ScheduleDtailInfo &info) { m_dbus->DeleteJob(info.id); } dde-calendar-5.9.1/schedule-plugin/src/task/cancelscheduletask.h000066400000000000000000000042501423264401600246530ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CANCELSCHEDULETASK_H #define CANCELSCHEDULETASK_H #include "schedulebasetask.h" class scheduleState; class cancelScheduleTask : public scheduleBaseTask { Q_OBJECT public: explicit cancelScheduleTask(CSchedulesDBus *dbus); Reply getFeedbackByQuerySchedule(const QVector &infoVector) override; Reply getReplyBySelectSchedule(const ScheduleDtailInfo &info) override; Reply InitState(const JsonData *jsonData, bool isUpdateState = false) override; Reply repeatScheduleHandle(const ScheduleDtailInfo &info, bool isOnlyOne) override; Reply confirwScheduleHandle(const ScheduleDtailInfo &info) override; Reply confirmInfo(bool isOK) override; public slots: void slotSelectScheduleIndex(int index); void slotButtonCheckNum(int index, const QString &text, const int buttonCount); private: scheduleState *getCurrentState(); QWidget *createRepeatWidget(const ScheduleDtailInfo &info); QWidget *createConfirmWidget(const ScheduleDtailInfo &info); Reply getListScheduleReply(const QVector &infoVector); Reply getConfirwScheduleReply(const ScheduleDtailInfo &info); Reply getRepeatReply(const ScheduleDtailInfo &info); void deleteRepeatSchedule(const ScheduleDtailInfo &info, bool isOnlyOne = true); void deleteOrdinarySchedule(const ScheduleDtailInfo &info); private: }; #endif // CANCELSCHEDULETASK_H dde-calendar-5.9.1/schedule-plugin/src/task/changescheduletask.cpp000066400000000000000000000410061423264401600252060ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "changescheduletask.h" #include "../data/changejsondata.h" #include "../globaldef.h" #include "../widget/schedulelistwidget.h" #include "../widget/repeatschedulewidget.h" #include "queryscheduleproxy.h" #include "../state/selectandquerystate.h" #include "../state/confirwfeedbackstate.h" #include "../state/queryschedulestate.h" #include "../state/repeatfeedbackstate.h" #include "../state/getchangedatastate.h" changeScheduleTask::changeScheduleTask(CSchedulesDBus *dbus) : scheduleBaseTask(dbus, new queryScheduleState(dbus, this)) { } Reply changeScheduleTask::getFeedbackByQuerySchedule(const QVector &infoVector) { Reply m_reply; scheduleState *nextState = nullptr; scheduleState *currentState = getCurrentState(); if (infoVector.size() == 0) { QString m_TTSMessage; QString m_DisplyMessage; m_TTSMessage = NO_SCHEDULE_TTS; m_DisplyMessage = NO_SCHEDULE_TTS; REPLY_ONLY_TTS(m_reply, m_TTSMessage, m_DisplyMessage, true); currentState->setNextState(nextState); } else if (infoVector.size() == 1) { currentState->getLocalData()->setSelectInfo(infoVector.at(0)); m_reply = getReplyBySelectSchedule(infoVector.at(0)); } else { nextState = new SelectAndQueryState(m_dbus, this); CLocalData *m_Data = new CLocalData(); m_Data->getDataByPoint(currentState->getLocalData()); m_Data->setScheduleInfoVector(infoVector); nextState->setLocalData(m_Data); m_reply = getListScheduleReply(infoVector); currentState->setNextState(nextState); } return m_reply; } void changeScheduleTask::slotSelectScheduleIndex(int index) { scheduleState *currentState = getCurrentState(); CLocalData *localData = currentState->getLocalData(); if (!(localData->scheduleInfoVector().size() < index)) { localData->setSelectInfo(localData->scheduleInfoVector().at(index - 1)); Reply reply = getReplyBySelectSchedule(localData->scheduleInfoVector().at(index - 1)); updateState(); emit signaleSendMessage(reply); } } void changeScheduleTask::slotButtonCheckNum(int index, const QString &text, const int buttonCount) { Q_UNUSED(text); Reply reply; scheduleState *currentState = getCurrentState(); if (buttonCount == 2) { if (index == 1) { reply = confirwScheduleHandle(currentState->getLocalData()->SelectInfo()); } } if (buttonCount == 3) { if (index == 1) { reply = repeatScheduleHandle(currentState->getLocalData()->SelectInfo(), false); } if (index == 2) { reply = repeatScheduleHandle(currentState->getLocalData()->SelectInfo(), true); } } if (index == 0) { reply = InitState(nullptr, true); } else { InitState(nullptr, true); } emit signaleSendMessage(reply); } scheduleState *changeScheduleTask::getCurrentState() { scheduleState *currentState = m_State; while (currentState->getNextState() != nullptr) { currentState = currentState->getNextState(); } return currentState; } Reply changeScheduleTask::getReplyBySelectSchedule(const ScheduleDtailInfo &info) { Reply m_reply; scheduleState *nextState = nullptr; CLocalData *m_Data = new CLocalData(); scheduleState *currentState = getCurrentState(); m_Data->getDataByPoint(currentState->getLocalData()); m_Data->setSelectInfo(info); if (m_Data->getOffet() < 0) { m_Data->setOffset(1); } if (m_Data->getToTime().suggestDatetime.size() == 0 && m_Data->getToTitleName() == "") { QWidget *infoWidget = createInquiryWidget(info); REPLY_WIDGET_TTS(m_reply, infoWidget, CHANGE_TO_TTS, CHANGE_TO_TTS, false); //添加获取修改信息状态 nextState = new getChangeDataState(m_dbus, this); nextState->setLocalData(m_Data); } else { //获取下一个状态 nextState = getNextStateBySelectScheduleInfo(info, m_Data, m_reply); } currentState->setNextState(nextState); return m_reply; } Reply changeScheduleTask::InitState(const JsonData *jsonData, bool isUpdateState) { Reply m_reply; scheduleState *nextState = new queryScheduleState(m_dbus, this); scheduleState *currentState = getCurrentState(); currentState->setNextState(nextState); if (jsonData != nullptr) { if (currentState->getLocalData() != nullptr) { currentState->setLocalData(nullptr); } m_reply = nextState->process(jsonData); } else { REPLY_ONLY_TTS(m_reply, CANCEL_CHANGE_TTS, CANCEL_CHANGE_TTS, true); } if (isUpdateState) { updateState(); } return m_reply; } Reply changeScheduleTask::repeatScheduleHandle(const ScheduleDtailInfo &info, bool isOnlyOne) { changeRepeatSchedule(info, isOnlyOne); Reply reply; REPLY_ONLY_TTS(reply, CONFIRM_CHANGE_TTS, CONFIRM_CHANGE_TTS, true); scheduleState *nextState = new queryScheduleState(m_dbus, this); scheduleState *currentState = getCurrentState(); currentState->setNextState(nextState); return reply; } Reply changeScheduleTask::confirwScheduleHandle(const ScheduleDtailInfo &info) { Q_UNUSED(info); scheduleState *currentState = getCurrentState(); changeOrdinarySchedule(currentState->getLocalData()->getNewInfo()); Reply reply; REPLY_ONLY_TTS(reply, CONFIRM_CHANGE_TTS, CONFIRM_CHANGE_TTS, true); scheduleState *nextState = new queryScheduleState(m_dbus, this); currentState->setNextState(nextState); return reply; } Reply changeScheduleTask::confirmInfo(bool isOK) { scheduleState *currentState = getCurrentState(); if (isOK) { Q_UNUSED(isOK) changeOrdinarySchedule(currentState->getLocalData()->getNewInfo()); Reply reply; REPLY_ONLY_TTS(reply, CONFIRM_CHANGE_TTS, CONFIRM_CHANGE_TTS, true) return reply; } else { return InitState(nullptr); } } QWidget *changeScheduleTask::createRepeatWidget(const ScheduleDtailInfo &info) { repeatScheduleWidget *repeatWidget = new repeatScheduleWidget(repeatScheduleWidget::Operation_Change, repeatScheduleWidget::Widget_Repeat); repeatWidget->setSchedule(info); connect(repeatWidget, &repeatScheduleWidget::signalButtonCheckNum, this, &changeScheduleTask::slotButtonCheckNum); return repeatWidget; } QWidget *changeScheduleTask::createConfirmWidget(const ScheduleDtailInfo &info) { repeatScheduleWidget *cwidget = new repeatScheduleWidget(repeatScheduleWidget::Operation_Change, repeatScheduleWidget::Widget_Confirm); cwidget->setSchedule(info); connect(cwidget, &repeatScheduleWidget::signalButtonCheckNum, this, &changeScheduleTask::slotButtonCheckNum); return cwidget; } QWidget *changeScheduleTask::createInquiryWidget(const ScheduleDtailInfo &info) { repeatScheduleWidget *infoWidget = new repeatScheduleWidget(repeatScheduleWidget::Operation_Change, repeatScheduleWidget::Widget_Confirm, false); infoWidget->setSchedule(info); return infoWidget; } Reply changeScheduleTask::getListScheduleReply(const QVector &infoVector) { scheduleListWidget *m_viewWidget = new scheduleListWidget(); connect(m_viewWidget, &scheduleListWidget::signalSelectScheduleIndex, this, &changeScheduleTask::slotSelectScheduleIndex); m_viewWidget->setScheduleInfoVector(infoVector); QString m_TTSMessage; QString m_DisplyMessage; m_TTSMessage = SELECT_CHANGE_TTS; m_DisplyMessage = SELECT_CHANGE_TTS; Reply reply; REPLY_WIDGET_TTS(reply, m_viewWidget, m_TTSMessage, m_DisplyMessage, false); return reply; } scheduleState *changeScheduleTask::getNextStateBySelectScheduleInfo(const ScheduleDtailInfo &info, CLocalData *localData, Reply &reply) { QString m_TTSMessage; QString m_DisplyMessage; //获取当前状态 scheduleState *currentState = getCurrentState(); //下一个状态 scheduleState *nextState{nullptr}; //如果修改的新日程时间在范围内则正常提醒 if (getNewInfo()) { //需要显示的窗口 QWidget *_showWidget; if (info.rpeat == 0) { m_TTSMessage = CONFIRM_SCHEDULE_CHANGE_TTS; m_DisplyMessage = CONFIRM_SCHEDULE_CHANGE_TTS; _showWidget = createConfirmWidget(currentState->getLocalData()->getNewInfo()); //设置下一个状态为普通日程确认状态 nextState = new confirwFeedbackState(m_dbus, this); } else { m_TTSMessage = REPEST_SCHEDULE_CHANGE_TTS; m_DisplyMessage = REPEST_SCHEDULE_CHANGE_TTS; _showWidget = createRepeatWidget(currentState->getLocalData()->getNewInfo()); //设置下一个状态为重复日程确认状态 nextState = new repeatfeedbackstate(m_dbus, this); } //设置修改的日程信息 localData->setNewInfo(currentState->getLocalData()->getNewInfo()); //设置存储数据 nextState->setLocalData(localData); REPLY_WIDGET_TTS(reply, _showWidget, m_TTSMessage, m_DisplyMessage, false); } else { //如果修改的日程不在正常范围内则回复错误,并设置下一个状态为询问查询状态 m_TTSMessage = CHANGE_TIME_OUT_TTS; m_DisplyMessage = CHANGE_TIME_OUT_TTS; REPLY_ONLY_TTS(reply, m_TTSMessage, m_DisplyMessage, true); nextState = new queryScheduleState(m_dbus, this); }; return nextState; } bool changeScheduleTask::getNewInfo() { scheduleState *currentState = getCurrentState(); ScheduleDtailInfo m_NewInfo = currentState->getLocalData()->SelectInfo(); if (!currentState->getLocalData()->getToTitleName().isEmpty()) m_NewInfo.titleName = currentState->getLocalData()->getToTitleName(); QVector m_ToTime = currentState->getLocalData()->getToTime().dateTime; //获取建议时间 QVector m_suggestDatetime = currentState->getLocalData()->getToTime().suggestDatetime; if (m_ToTime.size() > 0) { if (m_ToTime.size() == 1) { //如果存在日期信息 if (m_ToTime.at(0).hasDate) { //设置修改的开始日期 m_NewInfo.beginDateTime.setDate(m_ToTime.at(0).m_Date); //设置修改的结束日期 m_NewInfo.endDateTime.setDate(m_ToTime.at(0).m_Date); } //如果修改的DateTime带时间则设置该时间,否则保持原来的时间点 if (m_ToTime.at(0).hasTime) { //如果修改的日期为当天则取suggestTime时间 if (m_NewInfo.beginDateTime.date() == QDate::currentDate()) { m_NewInfo.beginDateTime = m_suggestDatetime.at(0).datetime; } else { m_NewInfo.beginDateTime.setTime(m_ToTime.at(0).m_Time); } m_NewInfo.endDateTime = m_NewInfo.beginDateTime.addSecs(3600); //如果存在时间点则将全天的日程修改为非全天并修改提醒规则 if (m_NewInfo.allday) { m_NewInfo.allday = false; m_NewInfo.remind = true; m_NewInfo.remindData.n = 0; } } } if (m_ToTime.size() == 2) { //如果存在日期信息 if (m_ToTime.at(0).hasDate) { //设置修改的开始日期 m_NewInfo.beginDateTime.setDate(m_ToTime.at(0).m_Date); } //如果修改的DateTime带时间则设置该时间,否则保持原来的时间点 if (m_ToTime.at(0).hasTime) { m_NewInfo.beginDateTime.setTime(m_ToTime.at(0).m_Time); } //如果存在日期信息 if (m_ToTime.at(1).hasDate) { //设置修改的结束日期 m_NewInfo.endDateTime.setDate(m_ToTime.at(1).m_Date); } //如果修改的DateTime带时间则设置该时间,否则保持原来的时间点 if (m_ToTime.at(1).hasTime) m_NewInfo.endDateTime.setTime(m_ToTime.at(1).m_Time); //如果开始时间大于结束时间则设置结束时间为开始时间往后一小时 if (m_NewInfo.endDateTime < m_NewInfo.beginDateTime) { m_NewInfo.endDateTime = m_NewInfo.beginDateTime.addSecs(3600); } //TODO 对于多个时间点还未支持,全天非全天的修改待做 } } currentState->getLocalData()->setNewInfo(m_NewInfo); return changeDateTimeIsInNormalRange(m_NewInfo); } void changeScheduleTask::changeRepeatSchedule(const ScheduleDtailInfo &info, bool isOnlyOne) { if (isOnlyOne) { changeOnlyInfo(info); } else { changeAllInfo(info); } } void changeScheduleTask::changeOnlyInfo(const ScheduleDtailInfo &info) { scheduleState *currentState = getCurrentState(); ScheduleDtailInfo newschedule = currentState->getLocalData()->getNewInfo(); newschedule.rpeat = 0; newschedule.RecurID = 0; newschedule.id = 0; newschedule.ignore.clear(); m_dbus->CreateJob(newschedule); ScheduleDtailInfo updatescheduleData; m_dbus->GetJob(info.id, updatescheduleData); updatescheduleData.ignore.append(info.beginDateTime); m_dbus->UpdateJob(updatescheduleData); } void changeScheduleTask::changeAllInfo(const ScheduleDtailInfo &info) { scheduleState *currentState = getCurrentState(); ScheduleDtailInfo newinfo = currentState->getLocalData()->getNewInfo(); if (info.RecurID == 0) { ScheduleDtailInfo scheduleDtailInfo = newinfo; if (scheduleDtailInfo.enddata.type == 1 && scheduleDtailInfo.enddata.tcount < 1) { scheduleDtailInfo.enddata.type = 0; } else if (scheduleDtailInfo.enddata.type == 2 && scheduleDtailInfo.beginDateTime.daysTo(scheduleDtailInfo.enddata.date) < 0) { scheduleDtailInfo.enddata.type = 0; scheduleDtailInfo.rpeat = 0; } m_dbus->UpdateJob(scheduleDtailInfo); } else { ScheduleDtailInfo newschedule = newinfo; newschedule.RecurID = 0; newschedule.id = 0; if (newschedule.enddata.type == 1) { newschedule.enddata.tcount = qAbs(newinfo.enddata.tcount - newinfo.RecurID); if (newschedule.enddata.tcount < 1) { newschedule.enddata.type = 0; newschedule.rpeat = 0; } } m_dbus->CreateJob(newschedule); ScheduleDtailInfo updatescheduleData; m_dbus->GetJob(info.id, updatescheduleData); if (updatescheduleData.enddata.type == 1) { updatescheduleData.enddata.tcount = newinfo.RecurID - 1; if (updatescheduleData.enddata.tcount < 1) { updatescheduleData.enddata.type = 0; updatescheduleData.rpeat = 0; } } else { //如果为结束与日期或永不,则都修改为结束语日期并修改结束日期 updatescheduleData.enddata.type = 2; updatescheduleData.enddata.date = info.beginDateTime.addDays(-1); } m_dbus->UpdateJob(updatescheduleData); } } void changeScheduleTask::changeOrdinarySchedule(const ScheduleDtailInfo &info) { m_dbus->UpdateJob(info); } bool changeScheduleTask::changeDateTimeIsInNormalRange(const ScheduleDtailInfo &info) { bool result {true}; //当前时间 QDateTime currentDateTime {QDateTime::currentDateTime()}; //最大时间 QDateTime maxDateTime = currentDateTime.addMonths(6); //如果开始时间为过期时间则为false if (info.beginDateTime < currentDateTime) { result = false; }; //如果开始时间或结束时间大于最大时间则为false if (info.beginDateTime > maxDateTime || info.endDateTime > maxDateTime) { result = false; } return result; } dde-calendar-5.9.1/schedule-plugin/src/task/changescheduletask.h000066400000000000000000000063331423264401600246570ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CHANGESCHEDULETASK_H #define CHANGESCHEDULETASK_H #include "schedulebasetask.h" class CLocalData; class changeScheduleTask : public scheduleBaseTask { Q_OBJECT public: explicit changeScheduleTask(CSchedulesDBus *dbus); Reply getFeedbackByQuerySchedule(const QVector &infoVector) override; Reply getReplyBySelectSchedule(const ScheduleDtailInfo &info) override; Reply InitState(const JsonData *jsonData, bool isUpdateState = false) override; Reply repeatScheduleHandle(const ScheduleDtailInfo &info, bool isOnlyOne) override; Reply confirwScheduleHandle(const ScheduleDtailInfo &info) override; Reply confirmInfo(bool isOK) override; public slots: void slotSelectScheduleIndex(int index); void slotButtonCheckNum(int index, const QString &text, const int buttonCount); private: scheduleState *getCurrentState(); QWidget *createRepeatWidget(const ScheduleDtailInfo &info); QWidget *createConfirmWidget(const ScheduleDtailInfo &info); QWidget *createInquiryWidget(const ScheduleDtailInfo &info); Reply getListScheduleReply(const QVector &infoVector); /** * @brief getNextStateBySelectScheduleInfo 根据选择的日程获取下一个修改状态 * @param info 选择的日程信息 * @param localData 当前状态的存储数据 * @param reply 修改的回复 * @return 下一个状态 */ scheduleState *getNextStateBySelectScheduleInfo(const ScheduleDtailInfo &info, CLocalData *localData, Reply &reply); /** * @brief getNewInfo 根据修改信息获取新的日程信息 * @return 在时间范围内返回true */ bool getNewInfo(); void changeRepeatSchedule(const ScheduleDtailInfo &info, bool isOnlyOne); void changeOnlyInfo(const ScheduleDtailInfo &info); void changeAllInfo(const ScheduleDtailInfo &info); void changeOrdinarySchedule(const ScheduleDtailInfo &info); /** * @brief changeDateTimeIsInRange 判断修改的日期在正确的时间范围内 * @param info 修改过的日程 * @return 在正常范围内则返回true */ bool changeDateTimeIsInNormalRange(const ScheduleDtailInfo &info); private: QVector m_scheduleInfo; }; #endif // CHANGESCHEDULETASK_H dde-calendar-5.9.1/schedule-plugin/src/task/createscheduletask.cpp000066400000000000000000001111411423264401600252220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "createscheduletask.h" #include "../globaldef.h" createScheduleTask::createScheduleTask(CSchedulesDBus *dbus) : scheduleBaseTask(dbus) { } Reply createScheduleTask::SchedulePress(semanticAnalysisTask &semanticTask) { //创建 CreateJsonData *createJsonData = dynamic_cast(semanticTask.getJsonData()); //如果转换失败则返回错误消息 if (createJsonData == nullptr) return errorMessage(); Reply m_reply; if (createJsonData->getPropertyStatus() != JsonData::PRO_NONE || createJsonData->offset() > -1) { REPLY_ONLY_TTS(m_reply, CREATE_ERR_TTS, CREATE_ERR_TTS, true); return m_reply; } //如果时间无效 if (createJsonData->getDateTimeInvalid()) { REPLY_ONLY_TTS(m_reply, DATETIME_ERR_TTS, DATETIME_ERR_TTS, true); return m_reply; } m_widget = new createSchedulewidget(); //设置日程时间 setDateTime(createJsonData); if (m_begintime > m_endtime) { //日程的开始时间大于结束时间, qCritical("error: schedule begindatetime is after the enddatetime!"); } if (shouldEndSession(createJsonData)) { if (!isValidDateTime) { qInfo() << "schedule begintime or endtime is not valided!"; //无效时间,直接返回回复语 REPLY_ONLY_TTS(m_reply, replyNotValidDT, replyNotValidDT, true); //设置时间有效标志为true isValidDateTime = true; return m_reply; } else if (!beginDateTimeIsinHalfYear()) { if (beginDateTimeBeforeCurrent()) { qInfo() << "schedule begintime is before currenttime!"; //"我现在有点慌,因为我还不会制定过去的提醒" REPLY_ONLY_TTS(m_reply, createJsonData->SuggestMsg(), createJsonData->SuggestMsg(), true); } else if (beginDateTimeOutHalfYear()) { qInfo() << "schedule begintime is after halfyear!"; //"只能创建未来半年的日程" REPLY_ONLY_TTS(m_reply, CREATE_TIME_OUT_TTS, CREATE_TIME_OUT_TTS, true); } return m_reply; } else { //设置日程titlename setScheduleTitleName(createJsonData); //创建日程和插件 QVector scheduleinfo = createScheduleWithRepeatStatus(createJsonData); creareScheduleUI(scheduleinfo); //带有插件的回复语 REPLY_WIDGET_TTS(m_reply, m_widget, getReply(createJsonData), getReply(createJsonData), true); } } else { //如果需要进行多轮,需要先将此标志设置为true isValidDateTime = true; //开始date为今天,没有给time(默认为00:00,小于当前time),需要进行多轮,设置默认回复语 //只有回复语 REPLY_ONLY_TTS(m_reply, createJsonData->SuggestMsg(), createJsonData->SuggestMsg(), false); } return m_reply; } void createScheduleTask::setDateTime(CreateJsonData *createJsonData) { //助手返回时间的个数 int DateTimeSize = createJsonData->getDateTime().suggestDatetime.size(); switch (DateTimeSize) { case 1: { //只有一个时间,为日程开始时间,结束时间为开始时间一个小时后 m_begintime = createJsonData->getDateTime().suggestDatetime.at(0).datetime; m_endtime = m_begintime.addSecs(60 * 60); if (!validDateTime(m_begintime)) { //日程时间是否有效 QString strDateTime = createJsonData->getDateTime().suggestDatetime.at(0).strDateTime; isValidDateTime = false; replyNotValidDT = QString(ISVALID_DATE_TIME).arg(strDateTime); break; } if (!createJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_begintime.setTime(QTime::currentTime()); m_endtime = m_begintime.addSecs(60 * 60); } } break; case 2: { //日程是否带有具体时间 bool firstScheduleHasTime = createJsonData->getDateTime().suggestDatetime.at(0).hasTime; bool secondScheduleHasTime = createJsonData->getDateTime().suggestDatetime.at(1).hasTime; //有两个时间 m_begintime = createJsonData->getDateTime().suggestDatetime.at(0).datetime; m_endtime = createJsonData->getDateTime().suggestDatetime.at(1).datetime; //日程开始时间是否有效 if (!validDateTime(m_begintime)) { QString strDateTime = createJsonData->getDateTime().suggestDatetime.at(0).strDateTime; isValidDateTime = false; replyNotValidDT = QString(ISVALID_DATE_TIME).arg(strDateTime); break; } //日程结束时间是否有效 if (!validDateTime(m_endtime)) { QString endDateTime = createJsonData->getDateTime().suggestDatetime.at(1).strDateTime; isValidDateTime = false; replyNotValidDT = QString(ISVALID_DATE_TIME).arg(endDateTime); break; } //开始时间为当天的,如果开始日期小于当天不做处理, if (m_begintime.date() == QDateTime::currentDateTime().date()) { if (m_begintime.time() > QTime::currentTime()) { //跨天日程,如果日程开始时间大于当前时间,则开始时间为当天 m_begintime.setDate(m_begintime.date().addDays(m_begintime.date().daysTo(QDate::currentDate()))); } else { //跨天日程,如果日程开始时间小于等于当前时间,则开始时间加一天 m_begintime.setDate(m_begintime.date().addDays(m_begintime.date().daysTo(QDate::currentDate()) + 1)); } } //开始时间没有具体时间点,设置为当前时间点 if (firstScheduleHasTime && !secondScheduleHasTime) { m_endtime.setTime(m_begintime.time()); } else if (!firstScheduleHasTime && secondScheduleHasTime) { m_begintime.setTime(m_endtime.time()); } } break; default: { //其他情况视为错误输入 isValidDateTime = false; replyNotValidDT = "您输入的时间不正确,请重新输入"; } break; } qInfo() << "scheduleBeginTime: " << m_begintime << "scheduleEndTime: " << m_endtime; } void createScheduleTask::setScheduleTitleName(CreateJsonData *createJsonData) { if (createJsonData->TitleName().isEmpty()) //如果没有titlename,默认为:新建日程 m_widget->setTitleName(NEW_SCHEDULE); else //设置日程titlename m_widget->setTitleName(createJsonData->TitleName()); } QVector createScheduleTask::createScheduleWithRepeatStatus(CreateJsonData *createJsonData) { //创建的日程信息 QVector schedule; //重复日程的时间 QVector getDayNum = createJsonData->getRepeatNum(); //根据不同类型分别创建日程 switch (createJsonData->getRepeatStatus()) { case CreateJsonData::NONE: { //非重复日程,不能创建过期日程 if (m_begintime >= QDateTime::currentDateTime() && m_begintime < QDateTime::currentDateTime().addMonths(6)) { schedule = getNotRepeatDaySchedule(); } } break; case CreateJsonData::EVED: //每天重复日程 schedule = getEveryDaySchedule(); break; case CreateJsonData::EVEW: { //每周重复日程 schedule = getEveryWeekSchedule(getDayNum); } break; case CreateJsonData::EVEM: { //每月重复日程 schedule = getEveryMonthSchedule(getDayNum); } break; case CreateJsonData::EVEY: { //每年重复日程,不能创建过期或者超过半年的日程 if (m_begintime > QDateTime::currentDateTime() && m_begintime < QDateTime::currentDateTime().addMonths(6)) schedule = getEveryYearSchedule(); } break; case CreateJsonData::WORKD: //工作日 schedule = getEveryWorkDaySchedule(); break; case CreateJsonData::RESTD: { //休息日 schedule = getEveryRestDaySchedule(); } break; } return schedule; } void createScheduleTask::creareScheduleUI(QVector schedule) { if (!schedule.isEmpty()) { //设置日程时间 setDateTimeAndGetSchedule(getFirstSchedule(schedule).beginDateTime, getFirstSchedule(schedule).endDateTime); //设置dbus m_widget->setScheduleDbus(m_dbus); m_widget->scheduleEmpty(true); //更新界面 m_widget->updateUI(); } else { qCritical("Creat ScheduleInfo is Empty!"); } } QString createScheduleTask::getReply(CreateJsonData *createJsonData) { QString str_reply; //为特殊情况拼接回复语 if (createJsonData->getRepeatStatus() == CreateJsonData::RESTD && createJsonData->getDateTime().suggestDatetime.size() > 0 && createJsonData->getDateTime().suggestDatetime.at(0).hasTime) { //如果为休息日,并且有开始时间,拼接回复语 str_reply = QString(EVERY_WEEKEND_TTS).arg(m_begintime.toString("hh:mm")); } else if (createJsonData->getRepeatStatus() == CreateJsonData::NONE && createJsonData->getDateTime().suggestDatetime.size() > 0 && createJsonData->getDateTime().suggestDatetime.at(0).hasTime && createJsonData->getDateTime().suggestDatetime.at(0).datetime < QDateTime::currentDateTime() && createJsonData->getDateTime().suggestDatetime.size() == 2 && createJsonData->ShouldEndSession()) { //对于跨天日程,开始datetime小于当前datetime,则开始date增加一天,为其拼接回复语 str_reply = QString(BEGINDATETIME_LATER_THAN_CURRENTDATETIME_ACROSS_THE_DAY_TTS).arg(m_begintime.toString("hh:mm")); } else { //没有特殊情况使用默认回复语 str_reply = createJsonData->SuggestMsg(); } return str_reply; } bool createScheduleTask::beginDateTimeIsinHalfYear() { //判断日程开始时间是否在半年内 if (m_begintime < QDateTime::currentDateTime() || m_begintime > QDateTime::currentDateTime().addMonths(6)) return false; else return true; } bool createScheduleTask::beginDateTimeOutHalfYear() { //日程开始时间不在半年范围内 if (m_begintime > QDateTime::currentDateTime().addMonths(6)) return true; else return false; } bool createScheduleTask::beginDateTimeBeforeCurrent() { //日程开始时间早于当前时间 if (m_begintime < QDateTime::currentDateTime()) return true; else return false; } QVector createScheduleTask::getNotRepeatDaySchedule() { QVector schedule; //设置重复类型 m_widget->setRpeat(0); //创建日程 ScheduleDtailInfo scheduleinfo = setDateTimeAndGetSchedule(m_begintime, m_endtime); m_dbus->CreateJob(scheduleinfo); //将所有日程添加到日程容器中 schedule.append(scheduleinfo); return schedule; } QVector createScheduleTask::getEveryDaySchedule() { QVector schedule; //设置重复类型 m_widget->setRpeat(1); ScheduleDtailInfo scheduleinfo = setDateTimeAndGetSchedule(m_begintime, m_endtime); //创建日程 m_dbus->CreateJob(scheduleinfo); //将所有日程添加到日程容器中 schedule.append(scheduleinfo); //设置完成后,将everyDayState设置为false everyDayState = false; return schedule; } QVector createScheduleTask::getEveryWeekSchedule(QVector dateRange) { QVector beginDateTime {}; QVector schedule; //设置重复类型 m_widget->setRpeat(3); //获取解析时间 beginDateTime = analysisEveryWeekDate(dateRange); //每天重复 if (everyDayState) return getEveryDaySchedule(); for (int i = 0; i < beginDateTime.count(); i++) { //设置日程结束时间 m_endtime.setDate(beginDateTime.at(i).date()); //创建日程 m_dbus->CreateJob(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); //将所有日程添加到日程容器中 schedule.append(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); } return schedule; } QVector createScheduleTask::getEveryMonthSchedule(QVector dateRange) { QVector beginDateTime {}; QVector schedule; //设置重复类型 m_widget->setRpeat(4); //获取解析日期 beginDateTime = analysisEveryMonthDate(dateRange); //每天重复 if (everyDayState) return getEveryDaySchedule(); for (int i = 0; i < beginDateTime.count(); i++) { //设置日程结束时间 m_endtime.setDate(beginDateTime.at(i).date()); //创建日程 m_dbus->CreateJob(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); //将所有日程添加到日程容器中 schedule.append(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); } return schedule; } QVector createScheduleTask::getEveryYearSchedule() { QVector schedule; //设置重复类型 m_widget->setRpeat(5); //创建日程 m_dbus->CreateJob(setDateTimeAndGetSchedule(m_begintime, m_endtime)); //将多有日程添加到日程容器中 schedule.append(setDateTimeAndGetSchedule(m_begintime, m_endtime)); return schedule; } QVector createScheduleTask::getEveryWorkDaySchedule() { QVector beginDateTime {}; QVector schedule; //获取解析日期 beginDateTime = analysisWorkDayDate(); //设置重复类型 m_widget->setRpeat(2); for (int i = 0; i < beginDateTime.count(); i++) { //设置日程结束时间 m_endtime.setDate(beginDateTime.at(i).date()); //创建日程 m_dbus->CreateJob(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); //将所有日程添加到日程容器中 schedule.append(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); } return schedule; } QVector createScheduleTask::getEveryRestDaySchedule() { QVector beginDateTime {}; QVector schedule; //设置重复类型 m_widget->setRpeat(3); //获取解析的时间 beginDateTime = analysisRestDayDate(); for (int i = 0; i < beginDateTime.count(); i++) { //设置日程结束时间 m_endtime.setDate(beginDateTime.at(i).date()); //创建日程 m_dbus->CreateJob(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); //将所有日程添加到日程容器中 schedule.append(setDateTimeAndGetSchedule(beginDateTime.at(i), m_endtime)); } return schedule; } ScheduleDtailInfo createScheduleTask::getFirstSchedule(QVector scheduleInfo) { //第一个日程的时间 QDate earlyDate = scheduleInfo.at(0).beginDateTime.date(); //第一个日程的索引 int index = 0; for (int i = 1; i < scheduleInfo.count(); i++) { if (earlyDate > scheduleInfo.at(i).beginDateTime.date()) { earlyDate = scheduleInfo.at(i).beginDateTime.date(); index = i; } } return scheduleInfo.at(index); } int createScheduleTask::getCreatesDays(int firstDay, int secondday, bool containsToday) { if (containsToday) //如果包含今天+1 return secondday - firstDay + 1; else //不包含今天 return secondday - firstDay; } QVector createScheduleTask::getNoneWeekNumDate() { QVector beginDateTime {}; if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当天时间 m_begintime.setDate(QDate::currentDate()); } else { //日程开始时间小于等于当天时间 m_begintime.setDate(QDate::currentDate().addDays(1)); } beginDateTime.append(m_begintime); return beginDateTime; } QVector createScheduleTask::getOneWeekNumDate(int firstWeekNum) { QVector beginDateTime {}; int currentDayofWeek = QDate::currentDate().dayOfWeek(); if (firstWeekNum >= currentDayofWeek) { //开始周数大于等于今天所在周数 if (firstWeekNum == currentDayofWeek && m_begintime.time() <= QTime::currentTime()) { //开始周数等于今天所在周数,并且日程开始时间小于等于当前时间 m_begintime.setDate(QDate::currentDate().addDays(firstWeekNum + 7 - currentDayofWeek)); } else { //日程开始时间大于当前时间 m_begintime.setDate(QDate::currentDate().addDays(firstWeekNum - currentDayofWeek)); } } else { //开始周数小于今天所在周数 m_begintime.setDate(QDate::currentDate().addDays(firstWeekNum + 7 - currentDayofWeek)); } beginDateTime.append(m_begintime); return beginDateTime; } QVector createScheduleTask::getTwoWeekNumDate(int firstWeekNum, int secondWeekNum) { QVector beginDateTime {}; if (firstWeekNum == secondWeekNum || secondWeekNum - firstWeekNum == 6) { //开始周数等于结束周数,或者结束周数是7开始周数是1,为每天 everyDayState = true; return beginDateTime; } else if (firstWeekNum < secondWeekNum) { //开始周数小于结束周数 beginDateTime = firstWeekNumLessThanSecond(firstWeekNum, secondWeekNum); } else { //开始周数大于结束周数 if (firstWeekNum - secondWeekNum == 1) { //开始周数比结束周数大1,为每天 everyDayState = true; return beginDateTime; } else { //除去每天的其他情况 beginDateTime = firstWeekNumGreaterThanSecondButEveryDay(firstWeekNum, secondWeekNum); } } return beginDateTime; } QVector createScheduleTask::firstWeekNumLessThanSecond(int firstWeekNum, int secondWeekNum) { //对于工作日和休息日的情况,助手已自动区分,此处不再讨论 //对获取到的时间范围分情况讨论 QVector beginDateTime {}; int currentDayofWeek = QDate::currentDate().dayOfWeek(); //当前日期所在周数小于开始的周数 if (currentDayofWeek < firstWeekNum) { beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(firstWeekNum - currentDayofWeek), firstWeekNum, secondWeekNum)); } else if (currentDayofWeek >= firstWeekNum && currentDayofWeek <= secondWeekNum) { if (m_begintime.time() > QTime::currentTime()) { //开始时间大于当前时间 beginDateTime.append(getWeekBackPartDateTime(QDate::currentDate(), secondWeekNum, true)); beginDateTime.append(getWeekFrontPartDateTime(QDate::currentDate(), firstWeekNum, false)); } else { //开始时间小于等于当前时间 beginDateTime.append(getWeekBackPartDateTime(QDate::currentDate().addDays(1), secondWeekNum, false)); beginDateTime.append(getWeekFrontPartDateTime(QDate::currentDate(), firstWeekNum, true)); } } else if (currentDayofWeek > secondWeekNum) { beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(firstWeekNum + 7 - currentDayofWeek), firstWeekNum, secondWeekNum)); } return beginDateTime; } QVector createScheduleTask::firstWeekNumGreaterThanSecondButEveryDay(int firstWeekNum, int secondWeekNum) { QVector beginDateTime {}; int currentDayofWeek = QDate::currentDate().dayOfWeek(); if (currentDayofWeek >= firstWeekNum) { //今天所在周数大于等于开始周数 if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 beginDateTime.append(getWeekBackPartDateTime(QDate::currentDate(), 7, true)); beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(1 + 7 - currentDayofWeek), 1, secondWeekNum)); beginDateTime.append(getWeekFrontPartDateTime(QDate::currentDate(), firstWeekNum, false)); } else { //日程开始时间小于等于当前时间 beginDateTime.append(getWeekBackPartDateTime(QDate::currentDate().addDays(1), 7, false)); beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(1 + 7 - currentDayofWeek), 1, secondWeekNum)); beginDateTime.append(getWeekFrontPartDateTime(QDate::currentDate(), firstWeekNum, true)); } } else if (currentDayofWeek < firstWeekNum && currentDayofWeek > secondWeekNum) { //今天所在周数小于开始周数,大于结束周数 beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(firstWeekNum - currentDayofWeek), firstWeekNum, 7)); beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(1 + 7 - currentDayofWeek), 1, secondWeekNum)); } else if (currentDayofWeek <= secondWeekNum) { //今天所在周数小于等于结束周数 if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 beginDateTime.append(getWeekBackPartDateTime(QDate::currentDate(), secondWeekNum, true)); beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(firstWeekNum - currentDayofWeek), firstWeekNum, 7)); beginDateTime.append(getWeekFrontPartDateTime(QDate::currentDate(), 1, false)); } else { //日程开始时间小于等于当前时间 beginDateTime.append(getWeekBackPartDateTime(QDate::currentDate().addDays(1), secondWeekNum, false)); beginDateTime.append(getWeekAllDateTime(QDate::currentDate().addDays(firstWeekNum - currentDayofWeek), firstWeekNum, 7)); beginDateTime.append(getWeekFrontPartDateTime(QDate::currentDate(), 1, true)); } } return beginDateTime; } QVector createScheduleTask::getWeekAllDateTime(QDate BeginDate, int firstWeekNum, int secondWeekNum) { QVector beginDateTime; for (int i = 0; i < secondWeekNum - firstWeekNum + 1; i ++) { m_begintime.setDate(BeginDate.addDays(i)); beginDateTime.append(m_begintime); } return beginDateTime; } QVector createScheduleTask::getWeekFrontPartDateTime(QDate BeginDate, int firstWeekNum, bool containsToday) { QVector beginDateTime {}; int currentDayofWeek = QDate::currentDate().dayOfWeek(); int addDays = getCreatesDays(firstWeekNum, currentDayofWeek, containsToday); for (int i = 0; i < addDays; i++) { m_begintime.setDate(BeginDate.addDays(firstWeekNum + 7 - currentDayofWeek + i)); beginDateTime.append(m_begintime); } return beginDateTime; } QVector createScheduleTask::getWeekBackPartDateTime(QDate BeginDate, int secondWeekNum, bool containsToday) { QVector beginDateTime {}; int currentDayofWeek = QDate::currentDate().dayOfWeek(); int addDays = getCreatesDays(currentDayofWeek, secondWeekNum, containsToday); for (int i = 0; i < addDays; i++) { m_begintime.setDate(BeginDate.addDays(i)); beginDateTime.append(m_begintime); } return beginDateTime; } ScheduleDtailInfo createScheduleTask::setDateTimeAndGetSchedule(QDateTime beginDateTime, QDateTime endDateTime) { m_widget->setDateTime(beginDateTime, endDateTime); m_widget->setschedule(); return m_widget->getScheduleDtailInfo(); } QVector createScheduleTask::analysisWorkDayDate() { QVector beginDateTime {}; if (m_begintime.date().dayOfWeek() == 6) m_begintime.setDate(m_begintime.date().addDays(2)); if (m_begintime.date().dayOfWeek() == 7) m_begintime.setDate(m_begintime.date().addDays(1)); beginDateTime.append(m_begintime); return beginDateTime; } QDate createScheduleTask::getValidDate(QDate viewDate, int viewDateDay) { //设置一个无效时间 QDate validDate(QDate(0, 0, 0)); //初始化年 int month = viewDate.month(); //判断未来半年的时间是否合法 for (int i = month; i <= month + 6; i++) { //设置月 validDate = viewDate.addMonths(i - month); //设置时间 validDate.setDate(validDate.year(), validDate.month(), viewDateDay); //判断日期是否合法 if (validDate.isValid()) return validDate; } //返回判断时间 return validDate; } /** * @brief createScheduleTask::shouldEndSession 是否需要进行多轮 * @return */ bool createScheduleTask::shouldEndSession(CreateJsonData *createjsondate) { return createjsondate->ShouldEndSession(); } /** * @brief createScheduleTask::validDateTime 是否是有效时间 * @param datetime 查询的时间 * @return */ bool createScheduleTask::validDateTime(QDateTime datetime) { return datetime.isValid(); } QVector createScheduleTask::analysisEveryWeekDate(QVector dateRange) { QVector beginDateTime {}; switch (dateRange.size()) { case 0: { //每周重复日程,没有具体周数 beginDateTime = getNoneWeekNumDate(); } break; case 1: { //每周重复日程,只有一个周数 beginDateTime = getOneWeekNumDate(dateRange[0]); } break; case 2: { //每周重复日程,有两个周数 beginDateTime = getTwoWeekNumDate(dateRange[0], dateRange[1]); } break; } return beginDateTime; } QVector createScheduleTask::analysisEveryMonthDate(QVector dateRange) { QVector beginDateTime {}; switch (dateRange.size()) { case 0: { //每月重复日程,没有具体日期 beginDateTime = getNoneMonthNumDate(); } break; case 1: { //每月重复日程,只有一个日期 beginDateTime = getOneMonthNumDate(dateRange[0]); } break; case 2: { //每月重复日程,有两个日期 beginDateTime = getTwoMonthNumDate(dateRange[0], dateRange[1]); } break; } return beginDateTime; } QVector createScheduleTask::getNoneMonthNumDate() { QVector beginDateTime {}; if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 m_begintime.setDate(QDate::currentDate()); } else { //日程开始时间小于等于当前时间 m_begintime.setDate(QDate::currentDate().addDays(1)); } beginDateTime.append(m_begintime); return beginDateTime; } QVector createScheduleTask::getOneMonthNumDate(int firstMonthNum) { QVector beginDateTime {}; //今天 int currentDayofMonth = QDate::currentDate().day(); if (currentDayofMonth < firstMonthNum) { //今天小于开始日期 //获取合法日期 QDate validDate = getValidDate(QDate::currentDate(), firstMonthNum); //日期合法,设置日期 if (validDate.isValid()) m_begintime.setDate(validDate); } else if (currentDayofMonth > firstMonthNum) { //获取合法日期 QDate validDate = getValidDate(QDate::currentDate().addMonths(1), firstMonthNum); //日期合法,设置日期 if (validDate.isValid()) m_begintime.setDate(validDate); } else { //当前日期等于开始日期 if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 m_begintime.setDate(QDate::currentDate()); } else { //日程开始时间小于等于当前时间 m_begintime.setDate(QDate::currentDate().addMonths(1)); } } beginDateTime.append(m_begintime); return beginDateTime; } QVector createScheduleTask::getTwoMonthNumDate(int firstMonthNum, int secondMonthNum) { QVector beginDateTime {}; if (firstMonthNum == secondMonthNum) { //开始日期等于结束日期,为每天 everyDayState = true; return beginDateTime; } else if (firstMonthNum < secondMonthNum) { //开始日期小于结束日期 beginDateTime.append(firstMonthNumLessThanSecond(firstMonthNum, secondMonthNum)); } else { //开始日期大于结束日期 if (firstMonthNum - secondMonthNum == 1) { //开始日期和结束日期差一天,为每天 everyDayState = true; return beginDateTime; } else { //开始日期大于结束日期的其他情况 beginDateTime.append(firstMonthNumGreaterThanSecondButEveryDay(firstMonthNum, secondMonthNum)); } } return beginDateTime; } QVector createScheduleTask::firstMonthNumLessThanSecond(int firstMonthNum, int secondWMonthNum) { QVector beginDateTime {}; int currentDayofMonth = QDate::currentDate().day(); if (currentDayofMonth < firstMonthNum) { //今天的日期小于开始日期 beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(firstMonthNum - currentDayofMonth), firstMonthNum, secondWMonthNum)); } else if (currentDayofMonth >= firstMonthNum && currentDayofMonth <= secondWMonthNum) { //今天的日期大于等于开始日期,小于等于结束日期 if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 beginDateTime.append(getMonthBackPartDateTime(QDate::currentDate(), secondWMonthNum, true)); beginDateTime.append(getMonthFrontPartDateTime(QDate::currentDate(), firstMonthNum, false)); } else { //日程开始时间小于等于当前时间 beginDateTime.append(getMonthBackPartDateTime(QDate::currentDate().addDays(1), secondWMonthNum, false)); beginDateTime.append(getMonthFrontPartDateTime(QDate::currentDate(), firstMonthNum, true)); } } else if (currentDayofMonth > secondWMonthNum) { //今天的日程大于结束日期 beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(firstMonthNum - currentDayofMonth).addMonths(1), firstMonthNum, secondWMonthNum)); } return beginDateTime; } QVector createScheduleTask::getMonthAllDateTime(QDate BeginDate, int firstMonthNum, int secondMonthNum) { QVector beginDateTime; //设置日期 for (int i = firstMonthNum; i <= secondMonthNum; i++) { //日期是否合法 QDate validDate = getValidDate(BeginDate, i); //合法日期,设置日期 if (validDate.isValid()) { m_begintime.setDate(validDate); beginDateTime.append(m_begintime); } } return beginDateTime; } QVector createScheduleTask::getMonthFrontPartDateTime(QDate BeginDate, int firstMonthNum, bool containsToday) { QVector beginDateTime {}; int currentDayofMonth = QDate::currentDate().day(); //包含今天 if (containsToday) currentDayofMonth += 1; //设置日期 for (int i = firstMonthNum; i < currentDayofMonth; i++) { //获取合法日期 QDate validDate = getValidDate(BeginDate.addDays(firstMonthNum - currentDayofMonth).addMonths(1), i); //合法日期 if (validDate.isValid()) { m_begintime.setDate(validDate); beginDateTime.append(m_begintime); } } return beginDateTime; } QVector createScheduleTask::getMonthBackPartDateTime(QDate BeginDate, int secondMonthNum, bool containsToday) { QVector beginDateTime {}; int currentDayofMonth = QDate::currentDate().day(); //不包含今天 if (!containsToday) currentDayofMonth += 1; //设置日期 for (int i = currentDayofMonth; i < secondMonthNum + 1; i++) { //获取合法日期 QDate validDate = getValidDate(BeginDate, i); //日期合法 if (validDate.isValid()) { m_begintime.setDate(validDate); beginDateTime.append(m_begintime); } } return beginDateTime; } QVector createScheduleTask::firstMonthNumGreaterThanSecondButEveryDay(int firstMonthNum, int secondMonthNum) { QVector beginDateTime {}; int currentDayofMonth = QDate::currentDate().day(); if (currentDayofMonth >= firstMonthNum) { //今天的日期大于等于开始的日期 if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 beginDateTime.append(getMonthBackPartDateTime(QDate::currentDate(), QDate::currentDate().daysInMonth(), true)); beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(1 - currentDayofMonth), 1, secondMonthNum)); beginDateTime.append(getMonthFrontPartDateTime(QDate::currentDate(), firstMonthNum, false)); } else { //日程开始时间小于等于当前时间 beginDateTime.append(getMonthBackPartDateTime(QDate::currentDate().addDays(1), QDate::currentDate().daysInMonth(), false)); beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(1 - currentDayofMonth), 1, secondMonthNum)); beginDateTime.append(getMonthFrontPartDateTime(QDate::currentDate(), firstMonthNum, true)); } } else if (currentDayofMonth < firstMonthNum && currentDayofMonth > secondMonthNum) { //今天的日期小于开始日期,大于结束日期 beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(firstMonthNum - currentDayofMonth), firstMonthNum, QDate::currentDate().daysInMonth())); beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(1 - currentDayofMonth).addMonths(1), 1, secondMonthNum)); } else if (currentDayofMonth <= secondMonthNum) { //今天的日期小于等于结束日期 if (m_begintime.time() > QTime::currentTime()) { //日程开始时间大于当前时间 beginDateTime.append(getMonthBackPartDateTime(QDate::currentDate(), secondMonthNum, true)); beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(firstMonthNum - currentDayofMonth), firstMonthNum, QDate::currentDate().daysInMonth())); beginDateTime.append(getMonthFrontPartDateTime(QDate::currentDate(), 1, false)); } else { //日程开始时间小于等于当前时间 beginDateTime.append(getMonthBackPartDateTime(QDate::currentDate().addDays(1), secondMonthNum, false)); beginDateTime.append(getMonthAllDateTime(QDate::currentDate().addDays(firstMonthNum - currentDayofMonth), firstMonthNum, QDate::currentDate().daysInMonth())); beginDateTime.append(getMonthFrontPartDateTime(QDate::currentDate(), 1, true)); } } return beginDateTime; } QVector createScheduleTask::analysisRestDayDate() { QVector beginDateTime {}; //周六的日程开始时间 QDateTime beginDateTimeSat = m_begintime; //周日的日程开始时间 QDateTime beginDateTimeSun = m_begintime; int currentDayofWeek = QDate::currentDate().dayOfWeek(); //设置周六的时间 beginDateTimeSat.setDate(QDate::currentDate().addDays(6 - currentDayofWeek)); //设置周日的时间 beginDateTimeSun.setDate(QDate::currentDate().addDays(7 - currentDayofWeek)); //如果周六的时间小于当前时间,设置日程开始时间为下一周的周六 if (beginDateTimeSat < QDateTime::currentDateTime()) beginDateTimeSat.setDate(beginDateTimeSat.date().addDays(7)); //如果周日的时间小于当前时间,设置日程开始时间为下一周的周日 if (beginDateTimeSun < QDateTime::currentDateTime()) beginDateTimeSun.setDate(beginDateTimeSun.date().addDays(7)); //将周末的日程开始时间放到时间容器里面 beginDateTime.append(beginDateTimeSat); beginDateTime.append(beginDateTimeSun); return beginDateTime; } dde-calendar-5.9.1/schedule-plugin/src/task/createscheduletask.h000066400000000000000000000257311423264401600247000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 CREATESCHEDULETASK_H #define CREATESCHEDULETASK_H #include "schedulebasetask.h" #include "../data/createjsondata.h" #include "../widget/createschedulewidget.h" /** * @brief The createScheduleTask class * 创建日程模块 */ class createScheduleTask : public scheduleBaseTask { Q_OBJECT public: explicit createScheduleTask(CSchedulesDBus *dbus); Reply SchedulePress(semanticAnalysisTask &semanticTask) override; private: /** * @brief setDateTime 设置查询的开始结束时间 * @param queryJsonData jsondata句柄 */ void setDateTime(CreateJsonData *createJsonData); /** * @brief setScheduleTitleName 设置日程的titlename * @param createJsonData jsondata句柄 */ void setScheduleTitleName(CreateJsonData *createJsonData); /** * @brief createScheduleWithRepeatStatus 新建日程 * @param createJsonData jsondata句柄 * @return 日程信息 */ QVector createScheduleWithRepeatStatus(CreateJsonData *createJsonData); /** * @brief creareScheduleUI 新建日程插件 * @param schedule 日程信息 */ void creareScheduleUI(QVector schedule); /** * @brief getReply 获取回复语 * @param createJsonData jsondata句柄 * @return 回复语 */ QString getReply(CreateJsonData *createJsonData); /** * @brief beginDateTimeIsinHalfYear 判断时间是否合法 * @return 时间是否合法 */ bool beginDateTimeIsinHalfYear(); /** * @brief beginDateTimeOutHalfYear 日程开始时间超过半年范围 * @return true or false */ bool beginDateTimeOutHalfYear(); /** * @brief buginDateTimeBeforeCurrent 日程开始时间早于当前时间 * @return true or false */ bool beginDateTimeBeforeCurrent(); /** * @brief setNotRepeatDay 获取非重复的日程 * @return 日程信息 */ QVector getNotRepeatDaySchedule(); /** * @brief getEveryDaySchedule 获取每天重复的日程 * @return 日程信息 */ QVector getEveryDaySchedule(); /** * @brief getEveryWeekSchedule 获取每周重复的日程 * @param dateRange 开始和结束的周数 * @return 日程信息 */ QVector getEveryWeekSchedule(QVector dateRange); /** * @brief getEveryMonthSchedule 获取每月重复的日程 * @param dateRange 开始和结束的日期数 * @return 日程信息 */ QVector getEveryMonthSchedule(QVector dateRange); /** * @brief getEveryDYearSchedule 获取每年重复的日程 * @return 日程信息 */ QVector getEveryYearSchedule(); /** * @brief getEveryWorkDaySchedule 获取工作日的日程 * @return 日程信息 */ QVector getEveryWorkDaySchedule(); /** * @brief getEveryRestDaySchedule 获取休息日的日程 * @return 日程信息 */ QVector getEveryRestDaySchedule(); /** * @brief getFirstSchedule 获取第一个日程 * @param scheduleInfo 所有日程信息的容器 * @return 第一个日程的日程信息 */ ScheduleDtailInfo getFirstSchedule(QVector scheduleInfo); /** * @brief getCreatesDays 获取新建日程的天数 * @param firstDay 开始日期 * @param secondday 结束日期 * @param containsToday 是否包含今天 * @return 总天数 */ int getCreatesDays(int firstDay, int secondday, bool containsToday); /** * @brief getNoneWeekNumDate 获取没有周数的重复日程的日期 * @return 日期容器 */ QVector getNoneWeekNumDate(); /** * @brief getOneWeekNumDate 获取有一个周数的重复日程的日期 * @param firstWeekNum 这个周数是周几 * @return 日期容器 */ QVector getOneWeekNumDate(int firstWeekNum); /** * @brief getTwoWeekNumDate 获取有两个周数的重复日程的日期 * @param firstWeekNum 第一个周数是周几 * @param secondWeekNum 第二个周数是周几 * @return 日期容器 */ QVector getTwoWeekNumDate(int firstWeekNum, int secondWeekNum); /** * @brief firstWeekNumLessThanSecond 获取第一个周数小于第二个周数的日程的日期 * @param firstWeekNum 第一个周数 * @param secondWeekNum 第二个周数 * @return 日期容器 */ QVector firstWeekNumLessThanSecond(int firstWeekNum, int secondWeekNum); /** * @brief firstWeekNumGreaterThanSecondButEveryDay 获取第一个周数大于第二个周数但不包含全天日程的日程 * @param firstWeekNum 第一个周数 * @param secondWeekNum 第二个周数 * @return 日期容器 */ QVector firstWeekNumGreaterThanSecondButEveryDay(int firstWeekNum, int secondWeekNum); /** * @brief getWeekAllDateTime 获取所有的周重复日程的时间 * @param BeginDate 日程开始的时间 * @param firstDayofWeek 获取到的第一个周数 * @param secondDayofWeek 获取到的第二个周数 * @return DateTime容器 */ QVector getWeekAllDateTime(QDate BeginDate, int firstWeekNum, int secondWeekNum); /** * @brief getWeekFrontPartDateTime 获取当前时间之前的日程时间 * @param BeginDate 日程开始的时间 * @param firstDate 获取到的第一个周数 * @param containsToday 是否包含今天 * @return DateTime容器 */ QVector getWeekFrontPartDateTime(QDate BeginDate, int firstWeekNum, bool containsToday); /** * @brief getWeekBackPartDateTime 获取当前时间之后的日程时间 * @param BeginDate 日程开始时间 * @param secondDayofWeek 获取到的第二个周数 * @param containsToday 是否包含今天 * @return DateTime容器 */ QVector getWeekBackPartDateTime(QDate BeginDate, int secondWeekNum, bool containsToday); /** * @brief analysisEveryWeekDate 解析每周重复日程的日期 * @param dateRange 周数范围 * @return 日期容器 */ QVector analysisEveryWeekDate(QVector dateRange); /** * @brief analysisEveryMonthDate 解析每月重复日程的日期 * @param dateRange 日期范围 * @return 日期容器 */ QVector analysisEveryMonthDate(QVector dateRange); /** * @brief getNoneMonthNumDate 获取没有日期的每月重复日程的日期 * @return 日期容器 */ QVector getNoneMonthNumDate(); /** * @brief getOneMonthNumDate 获取有一个日期的每月重复日程的日期 * @param firstMonthNum 第一个日期是几号 * @return 日期容器 */ QVector getOneMonthNumDate(int firstMonthNum); /** * @brief getTwoMonthNumDate 获取有两个日期的每月重复日程的日程 * @param firstMonthNum 第一个日期是几号 * @param secondMonthNum 第二个日期是几号 * @return 日期容器 */ QVector getTwoMonthNumDate(int firstMonthNum, int secondMonthNum); /** * @brief getMonthAllDateTime 获取每月重复日程的日期 * @param BeginDate 开始时间 * @param firstMonthNum 第一个日期 * @param secondMonthNum 第二个日期 * @return 日期容器 */ QVector getMonthAllDateTime(QDate BeginDate, int firstMonthNum, int secondMonthNum); /** * @brief getMonthFrontPartDateTime 获取当前时间之前的日程日期 * @param BeginDate 开始时间 * @param firstMonthNum 第一个日期 * @param containsToday 是否包含今天 * @return 日期容器 */ QVector getMonthFrontPartDateTime(QDate BeginDate, int firstMonthNum, bool containsToday); /** * @brief getMonthBackPartDateTime 获取当前时间之后的日程日期 * @param BeginDate 开始时间 * @param secondMonthNum 第二个日期 * @param containsToday 是否包含今天 * @return 日期容器 */ QVector getMonthBackPartDateTime(QDate BeginDate, int secondMonthNum, bool containsToday); /** * @brief firstMonthNumLessThanSecond 第一个日期小于第二个日期的日程的日期 * @param firstMonthNum 第一个日期 * @param secondWMonthNum 第二个日期 * @return 日期容器 */ QVector firstMonthNumLessThanSecond(int firstMonthNum, int secondWMonthNum); /** * @brief firstMonthNumGreaterThanSecondButEveryDay 第一个日期大于第二个日期但不包含每天的日程的日期 * @param firstMonthNum 第一个日期 * @param secondMonthNum 第二个日期 * @return 日期容器 */ QVector firstMonthNumGreaterThanSecondButEveryDay(int firstMonthNum, int secondMonthNum); /** * @brief analysisRestDayDate 解析休息日的日程的日期 * @return 日期容器 */ QVector analysisRestDayDate(); /** * @brief setDateTimeAndGetSchedule 设置日程开始结束时间,并获取日程信息 * @param beginDateTime 日程开始时间 * @param endDateTime 日程结束时间 * @return 日程信息 */ ScheduleDtailInfo setDateTimeAndGetSchedule(QDateTime beginDateTime, QDateTime endDateTime); /** * @brief analysisWorkDayDate 解析工作日的日程的日期 * @return 日期容器 */ QVector analysisWorkDayDate(); /** * @brief getValidDate 判断是否是合法日期 * @param viewDate 判断的日期 * @param viewDateDay 判断哪一天 * @return 日期 */ QDate getValidDate(QDate viewDate, int viewDateDay); bool shouldEndSession(CreateJsonData *createjsondate); bool validDateTime(QDateTime datetime); private: QDateTime m_begintime; QDateTime m_endtime; bool everyDayState = false; //助手时间是否有效 bool isValidDateTime = true; //无效日期回复语 QString replyNotValidDT; createSchedulewidget *m_widget = nullptr; }; #endif // CREATESCHEDULETASK_H dde-calendar-5.9.1/schedule-plugin/src/task/queryscheduleproxy.cpp000066400000000000000000000477411423264401600253610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "queryscheduleproxy.h" #include "../globaldef.h" #include "../data/changejsondata.h" bool scheduleSort(const ScheduleDtailInfo &s1, const ScheduleDtailInfo &s2) { if (s1.beginDateTime < s2.beginDateTime) { return true; } else if (s1.beginDateTime == s2.beginDateTime) { return s1.endDateTime < s2.endDateTime; } else { return false; } } queryScheduleProxy::queryScheduleProxy(JsonData *jsonData, CSchedulesDBus *dbus) : m_queryJsonData(jsonData) , m_dbus(dbus) { } QVector queryScheduleProxy::querySchedule() { QVector scheduleInfo {}; scheduleInfo.clear(); switch (m_queryJsonData->getRepeatStatus()) { case JsonData::RepeatStatus::NONE: scheduleInfo = queryNonRepeatingSchedule(); break; case JsonData::RepeatStatus::EVED: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT scheduleInfo = queryEveryDaySchedule(beginTime, endTime); if (!m_queryJsonData->TitleName().isEmpty()) { scheduleInfo = scheduleFileterByTitleName(scheduleInfo, m_queryJsonData->TitleName()); } } break; case JsonData::RepeatStatus::EVEW: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT int beginW = 0; int endW = 0; if (m_queryJsonData->getRepeatNum().size() == 0) { } else if (m_queryJsonData->getRepeatNum().size() == 1) { beginW = m_queryJsonData->getRepeatNum().at(0); endW = m_queryJsonData->getRepeatNum().at(0); } else { beginW = m_queryJsonData->getRepeatNum().at(0); endW = m_queryJsonData->getRepeatNum().at(1); } scheduleInfo = queryWeeklySchedule(beginTime, endTime, beginW, endW); SemanticsDateTime queryDatetime = getQueryDateTime(m_queryJsonData); TimeLimit fileterTime = getTimeFileterByTimeInfo(queryDatetime); if (!fileterTime.isInvalid) { scheduleInfo = scheduleFileterByTime(scheduleInfo, fileterTime.beginTime, fileterTime.endTime); } if (!m_queryJsonData->TitleName().isEmpty()) { scheduleInfo = scheduleFileterByTitleName(scheduleInfo, m_queryJsonData->TitleName()); } } break; case JsonData::RepeatStatus::EVEM: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT int beginM = 0; int endM = 0; if (m_queryJsonData->getRepeatNum().size() == 0) { } else if (m_queryJsonData->getRepeatNum().size() == 1) { beginM = m_queryJsonData->getRepeatNum().at(0); endM = m_queryJsonData->getRepeatNum().at(0); } else { beginM = m_queryJsonData->getRepeatNum().at(0); endM = m_queryJsonData->getRepeatNum().at(1); } scheduleInfo = queryMonthlySchedule(beginTime, endTime, beginM, endM); if (!m_queryJsonData->TitleName().isEmpty()) { scheduleInfo = scheduleFileterByTitleName(scheduleInfo, m_queryJsonData->TitleName()); } } break; case JsonData::RepeatStatus::EVEY: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT scheduleInfo = queryEveryYearSchedule(beginTime, endTime); SemanticsDateTime queryDatetime = getQueryDateTime(m_queryJsonData); //查询每年的日程中包含日期 if (queryDatetime.suggestDatetime.size() == 1) { //查询的日期 QDate beginD = queryDatetime.suggestDatetime.at(0).datetime.date(); QDate endD = beginD; //过滤包含查询日期的日程 scheduleInfo = scheduleFileterByDate(scheduleInfo, beginD, endD); } //获取查询的具体时间 TimeLimit fileterTime = getTimeFileterByTimeInfo(queryDatetime); if (!fileterTime.isInvalid) { //过滤包含查询时间的日程 scheduleInfo = scheduleFileterByTime(scheduleInfo, fileterTime.beginTime, fileterTime.endTime); } if (!m_queryJsonData->TitleName().isEmpty()) { scheduleInfo = scheduleFileterByTitleName(scheduleInfo, m_queryJsonData->TitleName()); } } break; case JsonData::RepeatStatus::RESTD: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT scheduleInfo = queryWeeklySchedule(beginTime, endTime, 6, 7); if (!m_queryJsonData->TitleName().isEmpty()) { scheduleInfo = scheduleFileterByTitleName(scheduleInfo, m_queryJsonData->TitleName()); } } break; case JsonData::RepeatStatus::WORKD: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT scheduleInfo = queryWorkingDaySchedule(beginTime, endTime); if (!m_queryJsonData->TitleName().isEmpty()) { scheduleInfo = scheduleFileterByTitleName(scheduleInfo, m_queryJsonData->TitleName()); } } break; } return scheduleInfo; } QVector queryScheduleProxy::queryWeeklySchedule(QDateTime &beginTime, QDateTime &endTime, int beginW, int endW) { QSet weeklySet; if (beginW == endW) { weeklySet.insert(beginW); } else if (beginW < endW) { if (beginW == 1) { if (endW == 5) { //WORK return queryWorkingDaySchedule(beginTime, endTime); } else if (endW == 7) { //EVED return queryEveryDaySchedule(beginTime, endTime); } } for (int i = beginW; i <= endW; ++i) { weeklySet.insert(i); } } else { if (beginW - endW == 1) { //EVED return queryEveryDaySchedule(beginTime, endTime); } int w; for (int i = beginW; i <= endW + 7; ++i) { w = i % 7; w = w ? w : 7; weeklySet.insert(w); } } QVector out {}; m_dbus->QueryJobsWithRule(beginTime, endTime, DBUS_RRUL_EVEW, out); if (beginW == 0 || endW == 0) { weeklySet.clear(); } return WeeklyScheduleFileter(out, weeklySet); } QVector queryScheduleProxy::queryMonthlySchedule(QDateTime &beginTime, QDateTime &endTime, int beginM, int endM) { QVector out {}; m_dbus->QueryJobsWithRule(beginTime, endTime, DBUS_RRUL_EVEM, out); return MonthlyScheduleFileter(out, beginM, endM); } QVector queryScheduleProxy::queryEveryDaySchedule(QDateTime &beginTime, QDateTime &endTime) { QVector out {}; m_dbus->QueryJobsWithRule(beginTime, endTime, DBUS_RRUL_EVED, out); return sortAndFilterSchedule(out); } QVector queryScheduleProxy::queryEveryYearSchedule(QDateTime &beginTime, QDateTime &endTime) { QVector out {}; m_dbus->QueryJobsWithRule(beginTime, endTime, DBUS_RRUL_EVEY, out); return sortAndFilterSchedule(out); } QVector queryScheduleProxy::queryWorkingDaySchedule(QDateTime &beginTime, QDateTime &endTime) { QVector out {}; m_dbus->QueryJobsWithRule(beginTime, endTime, DBUS_RRUL_WORK, out); return sortAndFilterSchedule(out); } QVector queryScheduleProxy::queryNonRepeatingSchedule() { QVector mScheduleInfoVector {}; mScheduleInfoVector.clear(); SemanticsDateTime queryDatetime = getQueryDateTime(m_queryJsonData); //如果开始时间大于结束时间则退出 if (!timeFrameIsValid(queryDatetime)) { return mScheduleInfoVector; } switch (m_queryJsonData->getPropertyStatus()) { case JsonData::PropertyStatus::ALL: { DateTimeLimit timeLimit = getTimeLimitByTimeInfo(queryDatetime); if (!getTimeIsExpired()) { mScheduleInfoVector = queryAllSchedule(m_queryJsonData->TitleName(), timeLimit.beginTime, timeLimit.endTime); } } break; case JsonData::PropertyStatus::NEXT: { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT mScheduleInfoVector = queryNextNumSchedule(beginTime, endTime, 1); } break; case JsonData::PropertyStatus::LAST: { } break; default: { //NONE DateTimeLimit timeLimit = getTimeLimitByTimeInfo(queryDatetime); if (!getTimeIsExpired()) { mScheduleInfoVector = queryAllSchedule(m_queryJsonData->TitleName(), timeLimit.beginTime, timeLimit.endTime); } } break; } return mScheduleInfoVector; } QVector queryScheduleProxy::queryNextNumSchedule(QDateTime &beginTime, QDateTime &endTime, int NextNum) { QVector mScheduleInfoVector {}; QVector out {}; m_dbus->QueryJobsWithLimit(beginTime, endTime, NextNum, out); return sortAndFilterSchedule(out); } QVector queryScheduleProxy::queryAllSchedule(QString key, QDateTime &beginTime, QDateTime &endTime) { QVector out {}; m_dbus->QueryJobs(key, beginTime, endTime, out); return sortAndFilterSchedule(out); } QVector queryScheduleProxy::sortAndFilterSchedule(QVector &out) { QVector scheduleInfo {}; for (int i = 0; i < out.size(); ++i) { for (int j = 0; j < out[i].vData.size(); ++j) { if (!(scheduleInfo.contains(out[i].vData[j]) || out[i].vData[j].type.ID == 4)) { scheduleInfo.append(out[i].vData[j]); } } } std::sort(scheduleInfo.begin(), scheduleInfo.end(), scheduleSort); return scheduleInfo; } QVector queryScheduleProxy::WeeklyScheduleFileter(QVector &out, QSet &weeklySet) { QVector scheduleInfo {}; if (weeklySet.size() == 0) { return sortAndFilterSchedule(out); } else { for (int i = 0; i < out.size(); ++i) { for (int j = 0; j < out[i].vData.size(); ++j) { if (!(scheduleInfo.contains(out[i].vData[j])) && weeklyIsIntersections(out[i].vData[j].beginDateTime, out[i].vData[j].endDateTime, weeklySet)) { scheduleInfo.append(out[i].vData[j]); } } } } return scheduleInfo; } QVector queryScheduleProxy::MonthlyScheduleFileter(QVector &out, int beginM, int endM) { if (beginM == 0 || endM == 0) { return sortAndFilterSchedule(out); } QVector scheduleInfo {}; for (int i = 0; i < out.size(); ++i) { for (int j = 0; j < out[i].vData.size(); ++j) { if (!(scheduleInfo.contains(out[i].vData[j])) && monthlyIsIntersections(out[i].vData[j].beginDateTime, out[i].vData[j].endDateTime, beginM, endM)) { scheduleInfo.append(out[i].vData[j]); } } } return scheduleInfo; } bool queryScheduleProxy::monthlyIsIntersections(QDateTime &beginTime, QDateTime &endTime, int beginM, int endM) { bool b_monthly = false; int beginDay = beginTime.date().day(); int endDay = endTime.date().day(); if (beginM > endM) { b_monthly = beginDay > endM && endDay < beginM ? false : true; } else { b_monthly = (beginM <= beginDay && endM >= beginDay) || (beginM <= endDay && endM >= endDay) || (beginDay <= beginM && endDay >= endM); } return b_monthly; } bool queryScheduleProxy::checkedTimeIsIntersection(QTime &beginTime, QTime &endTime, QTime &fixbeginTime, QTime &fixendTime) { bool b_checked = false; if (beginTime.secsTo(endTime) < 0) { if (fixbeginTime.secsTo(fixendTime) < 0) { b_checked = true; } else { b_checked = endTime.secsTo(fixbeginTime) > 0 && fixendTime.secsTo(beginTime) > 0 ? false : true; } } else { if (fixbeginTime.secsTo(fixendTime) < 0) { b_checked = fixendTime.secsTo(beginTime) > 0 && endTime.secsTo(fixbeginTime) > 0 ? false : true; } else { b_checked = (beginTime.secsTo(fixbeginTime) >= 0 && fixbeginTime.secsTo(endTime) >= 0) || (beginTime.secsTo(fixendTime) >= 0 && fixendTime.secsTo(endTime) >= 0); } } return b_checked; } QVector queryScheduleProxy::scheduleFileterByTime(QVector &scheduleInfo, QTime &fileterBeginTime, QTime &fileterEndTime) { QVector mScheduleFileter {}; qint64 timeoffset_Secs = 0; bool isApppend = false; for (int i = 0; i < scheduleInfo.size(); ++i) { timeoffset_Secs = scheduleInfo.at(i).beginDateTime.secsTo(scheduleInfo.at(i).endDateTime); if (timeoffset_Secs < ONE_DAY_SECS) { QTime begTime = scheduleInfo.at(i).beginDateTime.time(); QTime endTime = scheduleInfo.at(i).endDateTime.time(); isApppend = checkedTimeIsIntersection(begTime, endTime, fileterBeginTime, fileterEndTime); } else { isApppend = true; } if (isApppend) { mScheduleFileter.append(scheduleInfo.at(i)); } } return mScheduleFileter; } /** * @brief queryScheduleProxy::scheduleFileterByDate 过滤包含查询日期的日程 * @param scheduleInfo 日程信息 * @param fileterBeginDate 查询的开始时间 * @param fileterEndDate 查询的结束时间 * @return 过滤后的日程信息 */ QVector queryScheduleProxy::scheduleFileterByDate(QVector &scheduleInfo, QDate &fileterBeginDate, QDate &fileterEndDate) { QVector mScheduleFileter {}; //遍历查询到的日程 for (int i = 0; i < scheduleInfo.size(); i++) { //查询到的日程的开始结束日期 QDate beginD = scheduleInfo.at(i).beginDateTime.date(); QDate endD = scheduleInfo.at(i).endDateTime.date(); //过滤添加包含查询日期的日程 if ((fileterBeginDate <= beginD && fileterEndDate >= beginD) || (fileterBeginDate >= beginD && fileterBeginDate <= endD)) { mScheduleFileter.append(scheduleInfo.at(i)); } } return mScheduleFileter; } QVector queryScheduleProxy::scheduleFileterByTitleName(QVector &scheduleInfo, const QString &strName) { QVector mScheduleFileter {}; for (int i = 0; i < scheduleInfo.size(); ++i) { if (scheduleInfo.at(i).titleName.contains(strName)) { mScheduleFileter.append(scheduleInfo.at(i)); } } return mScheduleFileter; } bool queryScheduleProxy::weeklyIsIntersections(QDateTime &beginTime, QDateTime &endTime, QSet &weeklySet) { QSet scheduleWeekSet; bool returnValue = false; scheduleWeekSet.clear(); qint64 dayoffset = beginTime.daysTo(endTime); if (dayoffset > 5) { returnValue = true; } else { int beginW = beginTime.date().dayOfWeek(); int w; for (int i = beginW; i <= beginW + dayoffset; ++i) { w = i % 7; w = w ? w : 7; scheduleWeekSet.insert(w); } returnValue = scheduleWeekSet.intersects(weeklySet); } return returnValue; } SemanticsDateTime queryScheduleProxy::getQueryDateTime(JsonData *jsonData) { changejsondata *changedata = dynamic_cast(jsonData); if (changedata != nullptr && changedata->fromDateTime().suggestDatetime.size() > 0) { return changedata->fromDateTime(); } return jsonData->getDateTime(); } queryScheduleProxy::DateTimeLimit queryScheduleProxy::getTimeLimitByTimeInfo(const SemanticsDateTime &timeInfoVect) { DateTimeLimit timeLimit; setTimeIsExpired(false); if (timeInfoVect.suggestDatetime.size() == 0) { TIME_FRAME_IN_THE_NEXT_SIX_MONTHT timeLimit.beginTime = beginTime; timeLimit.endTime = endTime; } else if (timeInfoVect.suggestDatetime.size() == 1) { if (timeInfoVect.suggestDatetime.at(0).datetime.date() < QDateTime::currentDateTime().date() || timeInfoVect.suggestDatetime.at(0).datetime.date() > QDateTime::currentDateTime().addDays(MAXIMUM_DAYS_IN_THE_FUTURE).date()) { setTimeIsExpired(true); return timeLimit; } if (timeInfoVect.suggestDatetime.at(0).hasTime) { if (timeInfoVect.suggestDatetime.at(0).datetime < QDateTime::currentDateTime()) { setTimeIsExpired(true); } else { timeLimit.beginTime = timeInfoVect.suggestDatetime.at(0).datetime; timeLimit.endTime = timeInfoVect.suggestDatetime.at(0).datetime; } } else { if (timeInfoVect.suggestDatetime.at(0).datetime.date() == QDateTime::currentDateTime().date()) { timeLimit.beginTime = QDateTime::currentDateTime(); timeLimit.endTime.setDate(timeLimit.beginTime.date()); timeLimit.endTime.setTime(QTime(23, 59, 59)); } else { timeLimit.beginTime = timeInfoVect.suggestDatetime.at(0).datetime; timeLimit.endTime.setDate(timeLimit.beginTime.date()); timeLimit.endTime.setTime(QTime(23, 59, 59)); } } } else { QDateTime maxDay = QDateTime::currentDateTime().addDays(MAXIMUM_DAYS_IN_THE_FUTURE); if (timeInfoVect.suggestDatetime.at(1).datetime.date() < QDateTime::currentDateTime().date() || timeInfoVect.suggestDatetime.at(0).datetime.date() > maxDay.date()) { setTimeIsExpired(true); return timeLimit; } if (timeInfoVect.suggestDatetime.at(0).datetime < QDateTime::currentDateTime()) { timeLimit.beginTime = QDateTime::currentDateTime(); } else { timeLimit.beginTime = timeInfoVect.suggestDatetime.at(0).datetime; } if (timeInfoVect.suggestDatetime.at(1).hasTime) { timeLimit.endTime = timeInfoVect.suggestDatetime.at(1).datetime; } else { timeLimit.endTime.setDate(timeInfoVect.suggestDatetime.at(1).datetime.date()); timeLimit.endTime.setTime(QTime(23, 59, 59)); } if (timeLimit.endTime.date() > maxDay.date()) { timeLimit.endTime.setDate(maxDay.date()); timeLimit.endTime.setTime(QTime(23, 59, 59)); } } return timeLimit; } queryScheduleProxy::TimeLimit queryScheduleProxy::getTimeFileterByTimeInfo(const SemanticsDateTime &timeInfoVect) { TimeLimit fileterTime; fileterTime.isInvalid = true; if (timeInfoVect.suggestDatetime.size() == 0) { } else if (timeInfoVect.suggestDatetime.size() == 1) { if (timeInfoVect.suggestDatetime.at(0).hasTime) { fileterTime.beginTime = timeInfoVect.suggestDatetime.at(0).datetime.time(); fileterTime.endTime = fileterTime.beginTime; fileterTime.isInvalid = false; } } else { fileterTime.beginTime = timeInfoVect.suggestDatetime.at(0).datetime.time(); fileterTime.endTime = timeInfoVect.suggestDatetime.at(1).datetime.time(); fileterTime.isInvalid = false; } return fileterTime; } bool queryScheduleProxy::getTimeIsExpired() const { return m_TimeIsExpired; } void queryScheduleProxy::setTimeIsExpired(const bool timeisExp) { m_TimeIsExpired = timeisExp; } bool queryScheduleProxy::timeFrameIsValid(const SemanticsDateTime &timeInfoVect) { //如果开始时间大于结束时间则返回false if (timeInfoVect.suggestDatetime.size() > 1 && timeInfoVect.suggestDatetime.at(0).datetime > timeInfoVect.suggestDatetime.at(1).datetime) { return false; } return true; } dde-calendar-5.9.1/schedule-plugin/src/task/queryscheduleproxy.h000066400000000000000000000075301423264401600250160ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 QUERYSCHEDULEPROXY_H #define QUERYSCHEDULEPROXY_H #include "../data/schedulestructs.h" #include "../data/jsondata.h" #include "../dbus/schedulesdbus.h" class queryScheduleProxy { public: queryScheduleProxy(JsonData *jsonData, CSchedulesDBus *dbus); QVector querySchedule(); bool getTimeIsExpired() const; private: struct DateTimeLimit { QDateTime beginTime; QDateTime endTime; }; struct TimeLimit { QTime beginTime; QTime endTime; bool isInvalid {false}; }; QVector queryWeeklySchedule(QDateTime &beginTime, QDateTime &endTime, int beginW = 0, int endW = 0); QVector queryMonthlySchedule(QDateTime &beginTime, QDateTime &endTime, int beginM = 0, int endM = 0); QVector queryEveryDaySchedule(QDateTime &beginTime, QDateTime &endTime); QVector queryEveryYearSchedule(QDateTime &beginTime, QDateTime &endTime); QVector queryWorkingDaySchedule(QDateTime &beginTime, QDateTime &endTime); QVector queryNonRepeatingSchedule(); QVector queryNextNumSchedule(QDateTime &beginTime, QDateTime &endTime, int NextNum); QVector queryAllSchedule(QString key, QDateTime &beginTime, QDateTime &endTime); QVector sortAndFilterSchedule(QVector &out); QVector WeeklyScheduleFileter(QVector &out, QSet &weeklySet); QVector MonthlyScheduleFileter(QVector &out, int beginM = 0, int endM = 0); bool monthlyIsIntersections(QDateTime &beginTime, QDateTime &endTime, int beginM = 0, int endM = 0); bool checkedTimeIsIntersection(QTime &beginTime, QTime &endTime, QTime &fixbeginTime, QTime &fixendTime); QVector scheduleFileterByTime(QVector &scheduleInfo, QTime &fileterBeginTime, QTime &fileterEndTime); QVector scheduleFileterByDate(QVector &scheduleInfo, QDate &fileterBeginDate, QDate &fileterEndDate); QVector scheduleFileterByTitleName(QVector &scheduleInfo, const QString &strName); bool weeklyIsIntersections(QDateTime &beginTime, QDateTime &endTime, QSet &weeklySet); SemanticsDateTime getQueryDateTime(JsonData *jsonData); DateTimeLimit getTimeLimitByTimeInfo(const SemanticsDateTime &timeInfoVect); TimeLimit getTimeFileterByTimeInfo(const SemanticsDateTime &timeInfoVect); void setTimeIsExpired(const bool timeisExp); /** * @brief timeFrameIsValid 时间范围是否有效,开始时间不能大于结束时间 * @param timeInfoVect 时间范围 * @return 返回false表示开始时间大于结束时间 */ bool timeFrameIsValid(const SemanticsDateTime &timeInfoVect); private: JsonData *m_queryJsonData; CSchedulesDBus *m_dbus {nullptr}; bool m_TimeIsExpired {false}; }; #endif // QUERYSCHEDULEPROXY_H dde-calendar-5.9.1/schedule-plugin/src/task/queryscheduletask.cpp000066400000000000000000000411471423264401600251340ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "queryscheduletask.h" #include "../globaldef.h" queryScheduleTask::queryScheduleTask(CSchedulesDBus *dbus) : scheduleBaseTask(dbus) { } Reply queryScheduleTask::SchedulePress(semanticAnalysisTask &semanticTask) { QueryJsonData *queryJsonData = dynamic_cast(semanticTask.getJsonData()); //如果转换失败则返回错误消息 if (queryJsonData == nullptr) return errorMessage(); //如果时间无效 if (queryJsonData->getDateTimeInvalid()) { Reply m_reply; REPLY_ONLY_TTS(m_reply, DATETIME_ERR_TTS, DATETIME_ERR_TTS, true); return m_reply; } //查询日程 if (queryJsonData->offset() > -1 && queryJsonData->getPropertyStatus() == JsonData::PRO_NONE) { Reply m_reply; REPLY_ONLY_TTS(m_reply, CANCEL_ERR_TTS, CANCEL_ERR_TTS, true); return m_reply; } QString m_queryTitleName = queryJsonData->TitleName(); QVector getDayNum = queryJsonData->getRepeatNum(); viewWidget = new viewschedulewidget(); QVector showdate; TIME_FRAME_IN_THE_NEXT_SIX_MONTHT QVector schedule = getSchedule(m_queryTitleName, beginTime, endTime); setDateTime(queryJsonData); switch (queryJsonData->getRepeatStatus()) { case QueryJsonData::RepeatStatus::EVED: { showdate = getEveryDayOrWorkDaySchedule(queryJsonData, 1); } break; case QueryJsonData::RepeatStatus::WORKD: { showdate = getEveryDayOrWorkDaySchedule(queryJsonData, 2); } break; case QueryJsonData::RepeatStatus::RESTD: { QVector queryRest; queryRest.append(6); queryRest.append(7); showdate = getRestDaySchedule(queryJsonData, queryRest); } break; case QueryJsonData::RepeatStatus::EVEW: { showdate = getEveryWeekSchedule(queryJsonData, getDayNum); } break; case QueryJsonData::RepeatStatus::EVEM: { showdate = getEveryMonthSchedule(queryJsonData, getDayNum); } break; case QueryJsonData::RepeatStatus::EVEY: { showdate = getEveryYearSchedule(queryJsonData); } break; default: { showdate = getNonePropertyStatusSchedule(queryJsonData, schedule); } break; } viewWidget->viewScheduleInfoShow(showdate); Reply m_reply; if (queryJsonData->ShouldEndSession()) { //不进行多轮 if (queryOverDueDate(queryJsonData)) { //过期时间 REPLY_ONLY_TTS(m_reply, VIEW_DATE_IS_OVERDUE_TTS, VIEW_DATE_IS_OVERDUE_TTS, true); } else if (queryJsonData->getDateTime().suggestDatetime.size() > 0 && queryJsonData->getDateTime().suggestDatetime.at(0).datetime > QDateTime::currentDateTime().addMonths(6)) { //超过半年的时间 REPLY_ONLY_TTS(m_reply, VIEW_DATETIME_OUT_TTS, VIEW_DATETIME_OUT_TTS, true); } else { if (viewWidget->getScheduleNum(showdate) == 0) { //没有查询的日程 REPLY_ONLY_TTS(m_reply, NO_SCHEDULE_VIEWED_TTS, NO_SCHEDULE_VIEWED_TTS, true); } else { //查询到日程 QString str = QString(VIEW_SCHEDULE_TTS).arg(viewWidget->getScheduleNum(showdate)); REPLY_WIDGET_TTS(m_reply, viewWidget, str, str, true); } } } else { //多轮的情况 REPLY_ONLY_TTS(m_reply, queryJsonData->SuggestMsg(), queryJsonData->SuggestMsg(), false); } return m_reply; } void queryScheduleTask::setDateTime(QueryJsonData *queryJsonData) { switch (queryJsonData->getDateTime().suggestDatetime.size()) { case 1: { m_BeginDateTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime; m_EndDateTime = m_BeginDateTime; //时间处理 if (!queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { if (m_BeginDateTime.date() == QDate::currentDate()) { m_BeginDateTime.setTime(QTime::currentTime()); } else { m_BeginDateTime.setTime(QTime(0, 0, 0)); } m_EndDateTime.setTime(QTime(23, 59, 59)); } } break; case 2: { m_BeginDateTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime; m_EndDateTime = queryJsonData->getDateTime().suggestDatetime.at(1).datetime; //查询时间为过期时间或者是超过半年的时间,则返回一个无效的时间 if (queryJsonData->getDateTime().suggestDatetime.at(1).datetime.date() < QDateTime::currentDateTime().date() || queryJsonData->getDateTime().suggestDatetime.at(0).datetime.date() > QDate::currentDate().addMonths(6)) { //如果查询结束时间小于当前时间,设置开始结束时间为无效时间 m_BeginDateTime.setDate(QDate(0, 0, 0)); m_BeginDateTime.setTime(QTime(0, 0, 0)); m_EndDateTime.setDate(QDate(0, 0, 0)); m_EndDateTime.setTime(QTime(0, 0, 0)); break; } //对查询的开始时间进行处理 if (queryJsonData->getDateTime().suggestDatetime.at(0).datetime < QDateTime::currentDateTime()) { //开始时间小于当前时间,设置当前时间 m_BeginDateTime = QDateTime::currentDateTime(); } else { if (!queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { //没有time if (queryJsonData->getDateTime().suggestDatetime.at(0).datetime.date() == QDate::currentDate()) //如果是今天,设置当前时间 m_BeginDateTime.setTime(QTime::currentTime()); else //不是今天,设置一天最初的时间 m_BeginDateTime.setTime(QTime(0, 0, 0)); } } //对查询的结束时间进行处理 if (queryJsonData->getDateTime().suggestDatetime.at(1).datetime.date() > QDate::currentDate().addMonths(6)) { //如果查询的结束时间超过了半年,则设置为半年以后的时间 m_EndDateTime.setDate(QDate::currentDate().addMonths(6)); m_EndDateTime.setTime(QTime(23, 59, 59)); } else { //如果查询的结束时间没有超过半年,并且没有具体时间,则设置为一天最晚的时间 if (!queryJsonData->getDateTime().suggestDatetime.at(1).hasTime) { m_EndDateTime.setTime(QTime(23, 59, 59)); } } } break; default: { //如果没有时间,设置开始结束时间为无效时间 m_BeginDateTime.setDate(QDate(0, 0, 0)); m_BeginDateTime.setTime(QTime(0, 0, 0)); m_EndDateTime.setDate(QDate(0, 0, 0)); m_EndDateTime.setTime(QTime(0, 0, 0)); } break; } } QVector queryScheduleTask::getSchedule(QString titleName, QDateTime beginDatetime, QDateTime endDateTime) { QVector schedule; //使用dbus查询日程 m_dbus->QueryJobs(titleName, beginDatetime, endDateTime, schedule); //设置查询的日程 viewWidget->setScheduleDateRangeInfo(schedule); //返回过滤后的日程 return viewWidget->getAllScheduleInfo(); } QVector queryScheduleTask::getEveryDayOrWorkDaySchedule(QueryJsonData *queryJsonData, int repeat) { QTime m_BTime; QTime m_ETime; QVector schedule; schedule = viewWidget->getAllRpeatScheduleInfo(repeat); if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_BTime = m_BeginDateTime.time(); m_ETime = m_EndDateTime.time(); schedule = viewWidget->queryScheduleWithTime(schedule, m_BTime, m_ETime); } return schedule; } QVector queryScheduleTask::getRestDaySchedule(QueryJsonData *queryJsonData, QVector queryWeek) { QVector schedule; QTime m_BTime; QTime m_ETime; //查询所有周重复的日程 schedule = viewWidget->getAllRpeatScheduleInfo(3); //查询周几-周几的重复日程 schedule = viewWidget->queryScheduleWithWeek(schedule, queryWeek); //如果有时间,则再按照时间进行过滤 if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_BTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); m_ETime = m_BTime; schedule = viewWidget->queryScheduleWithTime(schedule, m_BTime, m_ETime); } return schedule; } QVector queryScheduleTask::getEveryWeekSchedule(QueryJsonData *queryJsonData, QVector repeatNum) { QTime m_BTime; QTime m_ETime; QVector schedule; //查询所有周重复的日程 schedule = viewWidget->getAllRpeatScheduleInfo(3); if (repeatNum.size() == 1) { QVector queryWeek; queryWeek.append(repeatNum[0]); schedule = viewWidget->queryScheduleWithWeek(schedule, queryWeek); if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_BTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); m_ETime = m_BTime; schedule = viewWidget->queryScheduleWithTime(schedule, m_BTime, m_ETime); } } else if (repeatNum.size() == 2) { int start = repeatNum[0]; int end = repeatNum[1]; QVector queryWeek; if (start == end) { return viewWidget->getAllRpeatScheduleInfo(1); } else if (start < end) { if (start == 1 && end == 5) { return viewWidget->getAllRpeatScheduleInfo(2); } else if (end - start == 6) { return viewWidget->getAllRpeatScheduleInfo(1); } else { for (int i = start; i <= end; i++) { queryWeek.append(i); } } } else { if (start - end == 1) { return viewWidget->getAllRpeatScheduleInfo(1); } else { for (int i = 0; i <= 7 - start; i++) { queryWeek.append(i + start); } for (int i = 0; i < end; i++) { queryWeek.append(i + 1); } } } //查询周几-周几的重复日程 schedule = viewWidget->queryScheduleWithWeek(schedule, queryWeek); if (queryJsonData->getDateTime().suggestDatetime.size() == 1) { if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_BTime = QTime(0, 0, 0); m_ETime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); schedule = viewWidget->queryScheduleWithWeek(schedule, queryWeek, end, m_BTime, m_ETime); } } } return schedule; } QVector queryScheduleTask::getEveryMonthSchedule(QueryJsonData *queryJsonData, QVector repeatNum) { QTime m_BTime; QTime m_ETime; QVector schedule; //查询所有月重复的日程 schedule = viewWidget->getAllRpeatScheduleInfo(4); if (repeatNum.size() == 1) { QVector queryMonth; queryMonth.append(repeatNum[0]); schedule = viewWidget->queryScheduleWithMonth(schedule, queryMonth); if (queryJsonData->getDateTime().suggestDatetime.size() == 1) { if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_BTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); m_ETime = m_BTime; schedule = viewWidget->queryScheduleWithTime(schedule, m_BTime, m_ETime); } } else if (queryJsonData->getDateTime().suggestDatetime.size() == 2) { m_BTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); m_ETime = queryJsonData->getDateTime().suggestDatetime.at(1).datetime.time(); schedule = viewWidget->queryScheduleWithTime(schedule, m_BTime, m_ETime); } } else if (repeatNum.size() == 2) { int start = repeatNum[0]; int end = repeatNum[1]; QVector queryMonth; if (start == end) { return viewWidget->getAllRpeatScheduleInfo(1); } else if (start < end) { for (int i = start; i <= end; i++) { queryMonth.append(i); } } schedule = viewWidget->queryScheduleWithMonth(schedule, queryMonth); } else { if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { m_BTime = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); m_ETime = m_BTime; schedule = viewWidget->queryScheduleWithTime(schedule, m_BTime, m_ETime); } } return schedule; } QVector queryScheduleTask::getEveryYearSchedule(QueryJsonData *queryJsonData) { Q_UNUSED(queryJsonData) QVector schedule; if (queryJsonData->getDateTime().suggestDatetime.size() == 1) { //查询所有年重复的日程 schedule = viewWidget->getAllRpeatScheduleInfo(5); //设置查询的开始结束日期 QDate m_beginD = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.date(); QDate m_endD = m_beginD; //按照日期查询日程 schedule = viewWidget->queryScheduleWithDate(schedule, m_beginD, m_endD); //如果有时间,则按照时间查询 if (queryJsonData->getDateTime().suggestDatetime.at(0).hasTime) { QTime m_beginT = queryJsonData->getDateTime().suggestDatetime.at(0).datetime.time(); QTime m_endT = m_beginT; schedule = viewWidget->queryScheduleWithTime(schedule, m_beginT, m_endT); } } return schedule; } QVector queryScheduleTask::getNonePropertyStatusSchedule(QueryJsonData *queryJsonData, QVector schedule) { QVector scheduleInfo; scheduleInfo.clear(); switch (queryJsonData->getPropertyStatus()) { case QueryJsonData::PropertyStatus::ALL: { //查询所有的日程,因此不需要对已查询到的日程进行过滤操作 return schedule; } case QueryJsonData::PropertyStatus::NEXT: { if (schedule.isEmpty()) { //如果半年内没有日程,返回空容器 return scheduleInfo; } else { schedule.clear(); scheduleInfo = viewWidget->getNextScheduleInfo(); } //返回下一个日程信息 return scheduleInfo; } case QueryJsonData::PropertyStatus::LAST: break; default: { if (m_BeginDateTime.isValid()) { qDebug() << m_BeginDateTime << m_EndDateTime; //返回过滤的日程 return getSchedule(queryJsonData->TitleName(), m_BeginDateTime, m_EndDateTime); } } } //如果以上情况都没有返回半年所有日程 return schedule; } bool queryScheduleTask::queryOverDueDate(QueryJsonData *queryJsonData) { bool overduedate = false; int datenum; if (queryJsonData->getDateTime().suggestDatetime.size() > 0) { if (queryJsonData->getDateTime().suggestDatetime.size() == 1) datenum = 0; else datenum = 1; if (queryJsonData->getDateTime().suggestDatetime.at(datenum).datetime.date() < QDate::currentDate()) { overduedate = true; } else if (queryJsonData->getDateTime().suggestDatetime.at(datenum).datetime.date() == QDate::currentDate() && queryJsonData->getDateTime().suggestDatetime.at(datenum).hasTime && queryJsonData->getDateTime().suggestDatetime.at(datenum).datetime.time() < QTime::currentTime()) { overduedate = true; } else { overduedate = false; } } else { overduedate = false; } return overduedate; } dde-calendar-5.9.1/schedule-plugin/src/task/queryscheduletask.h000066400000000000000000000075571423264401600246100ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 QUERYSCHEDULETASK_H #define QUERYSCHEDULETASK_H #include "schedulebasetask.h" #include "../data/queryjsondata.h" #include "../widget/viewschedulewidget.h" class queryScheduleTask : public scheduleBaseTask { Q_OBJECT public: explicit queryScheduleTask(CSchedulesDBus *dbus); Reply SchedulePress(semanticAnalysisTask &semanticTask) override; private: /** * @brief setDateTime 设置查询的开始结束时间 * @param queryJsonData jsondata句柄 */ void setDateTime(QueryJsonData *queryJsonData); /** * @brief getHalfAYearSchedule 获取半年的日程信息 * @param titleName 日程titlename * @param beginDatetime 查询开始时间 * @param endDateTime 查询结束时间 * @return 日程信息 */ QVector getSchedule(QString titleName, QDateTime beginDatetime, QDateTime endDateTime); /** * @brief getEveryDayOrWorkDaySchedule 获取每天或者工作日的日程信息 * @param queryJsonData jsondatajubing * @param repeat 重复类型 * @return 日程信息 */ QVector getEveryDayOrWorkDaySchedule(QueryJsonData *queryJsonData, int repeat); /** * @brief getRestDaySchedule 获取休息日的日程信息 * @param queryJsonData jsondata句柄 * @param queryWeek 需要查询周几的容器 * @return 日程信息 */ QVector getRestDaySchedule(QueryJsonData *queryJsonData, QVector queryWeek); /** * @brief getEveryWeekSchedule 获取每周的日程信息 * @param queryJsonData jsondata句柄 * @param repeatNum 需要查询每周几-周几的容器 * @return 日程信息 */ QVector getEveryWeekSchedule(QueryJsonData *queryJsonData, QVector repeatNum); /** * @brief getEveryMonthSchedule 获取每月的日程信息 * @param queryJsonData jsondata句柄 * @param repeatNum 需要查询每月几号-几号的容器 * @return 日程信息 */ QVector getEveryMonthSchedule(QueryJsonData *queryJsonData, QVector repeatNum); /** * @brief getEveryYearSchedule 获取每年的日程信息 * @param queryJsonData jsondata句柄 * @return 日程信息 */ QVector getEveryYearSchedule(QueryJsonData *queryJsonData); /** * @brief getNonePropertyStatusSchedule 查询不是重复类型的日程 * @param queryJsonData jsondata句柄 * @param schedule 获取到的半年的日程信息 * @return 日程信息 */ QVector getNonePropertyStatusSchedule(QueryJsonData *queryJsonData, QVector schedule); /** * @brief queryOverDueDate 是否查询的是过去的日程 * @param queryJsonData jsondata句柄 * @return bool */ bool queryOverDueDate(QueryJsonData *queryJsonData); private: QDateTime m_BeginDateTime; QDateTime m_EndDateTime; viewschedulewidget *viewWidget = nullptr; protected: }; #endif // QUERYSCHEDULETASK_H dde-calendar-5.9.1/schedule-plugin/src/task/schedulebasetask.cpp000066400000000000000000000062501423264401600246750ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "schedulebasetask.h" #include "../state/schedulestate.h" #include "../globaldef.h" scheduleBaseTask::scheduleBaseTask(CSchedulesDBus *dbus, scheduleState *state) : QObject() , m_dbus(dbus) , m_State(state) { } scheduleBaseTask::~scheduleBaseTask() { if (m_State == nullptr) { delete m_State; m_State = nullptr; } } Reply scheduleBaseTask::SchedulePress(semanticAnalysisTask &semanticTask) { Reply reply; if (m_State != nullptr) { if (semanticTask.Intent() == JSON_NO_INTENT) { reply = m_State->getReplyByIntent(false); } else if (semanticTask.Intent() == JSON_YES_INTENT) { reply = m_State->getReplyByIntent(true); } else { reply = m_State->process(semanticTask.getJsonData()); } updateState(); } return reply; } Reply scheduleBaseTask::getFeedbackByQuerySchedule(const QVector &info) { Q_UNUSED(info); return Reply(); } Reply scheduleBaseTask::getReplyBySelectSchedule(const ScheduleDtailInfo &info) { Q_UNUSED(info); return Reply(); } Reply scheduleBaseTask::InitState(const JsonData *jsonData, bool isUpdateState) { Q_UNUSED(jsonData); Q_UNUSED(isUpdateState); return Reply(); } Reply scheduleBaseTask::repeatScheduleHandle(const ScheduleDtailInfo &info, bool isOnlyOne) { Q_UNUSED(info); Q_UNUSED(isOnlyOne); return Reply(); } Reply scheduleBaseTask::confirwScheduleHandle(const ScheduleDtailInfo &info) { Q_UNUSED(info); return Reply(); } Reply scheduleBaseTask::confirmInfo(bool isOK) { Q_UNUSED(isOK); return Reply(); } scheduleState *scheduleBaseTask::getState() const { return m_State; } Reply scheduleBaseTask::overdueScheduleProcess() { Reply reply; REPLY_ONLY_TTS(reply, OVERTIME_TTS, OVERTIME_TTS, true); return reply; } void scheduleBaseTask::updateState() { do { scheduleState *nextState = m_State->getNextState(); if (nextState != nullptr) { delete m_State; m_State = nextState; } else { break; } } while (1); } /** * @brief scheduleBaseTask::errorMessage 用户输入无法匹配返回错误消息提示 * @return 关于无法处理该关键字的答复 */ Reply scheduleBaseTask::errorMessage() { //答复 Reply reply; REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true) return reply; } dde-calendar-5.9.1/schedule-plugin/src/task/schedulebasetask.h000066400000000000000000000042001423264401600243330ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULEBASETASK_H #define SCHEDULEBASETASK_H #include "semanticanalysistask.h" #include "../interface/reply.h" #include "../dbus/schedulesdbus.h" #include "../data/schedulestructs.h" #include class scheduleState; class scheduleBaseTask : public QObject { Q_OBJECT public: scheduleBaseTask(CSchedulesDBus *dbus, scheduleState *state = nullptr); virtual ~scheduleBaseTask(); virtual Reply SchedulePress(semanticAnalysisTask &semanticTask); virtual Reply getFeedbackByQuerySchedule(const QVector &info); virtual Reply getReplyBySelectSchedule(const ScheduleDtailInfo &info); virtual Reply InitState(const JsonData *jsonData, bool isUpdateState = false); virtual Reply repeatScheduleHandle(const ScheduleDtailInfo &info, bool isOnlyOne); virtual Reply confirwScheduleHandle(const ScheduleDtailInfo &info); virtual Reply confirmInfo(bool isOK); scheduleState *getState() const; Reply overdueScheduleProcess(); signals: void signaleSendMessage(Reply reply); protected: void updateState(); /** * @brief errorMessage 用户输入无法匹配返回错误消息提示 * @return 关于无法处理该关键字的答复 */ Reply errorMessage(); protected: CSchedulesDBus *m_dbus {nullptr}; scheduleState *m_State {nullptr}; }; #endif // SCHEDULEBASETASK_H dde-calendar-5.9.1/schedule-plugin/src/task/schedulemanagetask.cpp000066400000000000000000000104241423264401600252110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "schedulemanagetask.h" #include "../dbus/schedulesdbus.h" #include "../globaldef.h" #include "../widget/schedulelistwidget.h" #include "../data/createjsondata.h" #include "../data/queryjsondata.h" #include "../data/canceljsondata.h" #include "../data/changejsondata.h" #include "../widget/viewschedulewidget.h" #include "createscheduletask.h" #include "queryscheduletask.h" #include "cancelscheduletask.h" #include "changescheduletask.h" DWIDGET_USE_NAMESPACE ScheduleManageTask *ScheduleManageTask::m_scheduleManageTask = nullptr; ScheduleManageTask::ScheduleManageTask(QObject *parent) : QObject(parent) , m_dbus(new CSchedulesDBus(DBUS_SERVICE, DBUS_PATCH, QDBusConnection::sessionBus(), this)) { m_scheduleTaskMap[JSON_CREATE] = new createScheduleTask(m_dbus); m_scheduleTaskMap[JSON_VIEW] = new queryScheduleTask(m_dbus); m_scheduleTaskMap[JSON_CANCEL] = new cancelScheduleTask(m_dbus); m_scheduleTaskMap[JSON_CHANGE] = new changeScheduleTask(m_dbus); QMap::Iterator inter = m_scheduleTaskMap.begin(); for (; inter != m_scheduleTaskMap.end(); ++inter) { scheduleBaseTask *task = inter.value(); connect(task, &scheduleBaseTask::signaleSendMessage, this, &ScheduleManageTask::signaleSendMessage); } } ScheduleManageTask::~ScheduleManageTask() { QMap::Iterator inter = m_scheduleTaskMap.begin(); for (; inter != m_scheduleTaskMap.end(); ++inter) { scheduleBaseTask *task = inter.value(); delete task; } m_scheduleTaskMap.clear(); } ScheduleManageTask *ScheduleManageTask::getInstance() { if (m_scheduleManageTask == nullptr) { m_scheduleManageTask = new ScheduleManageTask(); } return m_scheduleManageTask; } void ScheduleManageTask::releaseInstance() { if (m_scheduleManageTask != nullptr) { delete m_scheduleManageTask; m_scheduleManageTask = nullptr; } } void ScheduleManageTask::process(semanticAnalysisTask &semanticTask) { if (m_scheduleTaskMap.contains(semanticTask.Intent())) { if (m_preScheduleTask != m_scheduleTaskMap[semanticTask.Intent()]) { if (m_preScheduleTask != nullptr) m_preScheduleTask->InitState(nullptr, true); m_preScheduleTask = m_scheduleTaskMap[semanticTask.Intent()]; } } Reply reply; if (m_preScheduleTask == nullptr){ REPLY_ONLY_TTS(reply, G_ERR_TTS, G_ERR_TTS, true); } else { reply =m_preScheduleTask->SchedulePress(semanticTask); connectHideEventToInitState(reply); } setReply(reply); } void ScheduleManageTask::slotReceivce(QVariant data, Reply *reply) { Q_UNUSED(data); Q_UNUSED(reply); } void ScheduleManageTask::slotWidgetHideInitState() { if (m_preScheduleTask != nullptr) m_preScheduleTask->InitState(nullptr, true); } void ScheduleManageTask::connectHideEventToInitState(Reply reply) { //判断回复内容是否有回复窗口 if(reply.getReplyWidget() !=nullptr){ //转换为IconDFrame窗口 IconDFrame *_iconWidget = qobject_cast(reply.getReplyWidget()); if(_iconWidget != nullptr){ //如果转换成功则关联 connect(_iconWidget, &IconDFrame::widgetIsHide, this, &ScheduleManageTask::slotWidgetHideInitState, Qt::UniqueConnection); } } } Reply ScheduleManageTask::getReply() const { return m_Reply; } void ScheduleManageTask::setReply(const Reply &reply) { m_Reply = reply; } dde-calendar-5.9.1/schedule-plugin/src/task/schedulemanagetask.h000066400000000000000000000043311423264401600246560ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULEMANAGETASK_H #define SCHEDULEMANAGETASK_H #include #include "../interface/reply.h" #include "semanticanalysistask.h" #include "../dbus/schedulesdbus.h" #include "../widget/icondframe.h" #include "../data/schedulestructs.h" #include "../widget/createschedulewidget.h" #include "../interface/reply.h" #include "schedulebasetask.h" //class widgetStrategy; class CSchedulesDBus; class ScheduleManageTask : public QObject { Q_OBJECT public: static ScheduleManageTask *getInstance(); static void releaseInstance(); void process(semanticAnalysisTask &semanticTask); Reply getReply() const; void setReply(const Reply &reply); private: explicit ScheduleManageTask(QObject *parent = nullptr); ~ScheduleManageTask(); signals: void signaleSendMessage(Reply reply); public slots: void slotReceivce(QVariant data, Reply *reply); /** * @brief slotWidgetHideInitState 窗口隐藏时状态初始化 */ void slotWidgetHideInitState(); private: static ScheduleManageTask *m_scheduleManageTask; /** * @brief connectHideEventToInitState 窗口隐藏绑定状态初始化 * @param reply 回复 */ void connectHideEventToInitState(Reply reply); private: CSchedulesDBus *m_dbus {nullptr}; QMap m_scheduleTaskMap; Reply m_Reply; scheduleBaseTask *m_preScheduleTask {nullptr}; }; #endif // SCHEDULEMANAGETASK_H dde-calendar-5.9.1/schedule-plugin/src/task/semanticanalysistask.cpp000066400000000000000000000113151423264401600256130ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "semanticanalysistask.h" #include #include #include #include "../data/createjsondata.h" #include "../data/queryjsondata.h" #include "../data/canceljsondata.h" #include "../data/changejsondata.h" #include "../globaldef.h" semanticAnalysisTask::semanticAnalysisTask(QObject *parent) : QObject(parent) { } semanticAnalysisTask::~semanticAnalysisTask() { deleteJsonData(); } bool semanticAnalysisTask::resolveTaskJson(const QString &semantic) { setIntent(""); deleteJsonData(); QJsonParseError jsonError; QJsonDocument doc = QJsonDocument::fromJson(semantic.toUtf8(), &jsonError); if (!doc.isNull() && (jsonError.error == QJsonParseError::NoError)) { auto rootObject = doc.object(); if (!(rootObject.contains("intent") && rootObject["intent"].isObject())) { return false; } auto intentObject = rootObject["intent"].toObject(); if (intentObject.empty()) { return false; } if (intentObject.contains("semantic") && intentObject["semantic"].isArray()) { auto semanticObjArr = intentObject["semantic"].toArray(); for (int i = 0; i < semanticObjArr.size(); ++i) { auto semanticObj = semanticObjArr[i].toObject(); if (semanticObj.contains("intent") && semanticObj["intent"].isString()) { setIntent(semanticObj["intent"].toString()); } m_JsonData = createJsonDataFactory(Intent()); if (m_JsonData != nullptr) { m_JsonData->JosnResolve(semanticObj); } } } if (intentObject.contains("voice_answer") && intentObject["voice_answer"].isArray()) { auto voiceAnsObjArr = intentObject["voice_answer"].toArray(); for (int i = 0; i < voiceAnsObjArr.size(); ++i) { auto voiceAnsObj = voiceAnsObjArr[i].toObject(); if (voiceAnsObj.contains("type") && voiceAnsObj["type"].isString()) { if (voiceAnsObj["type"] != "TTS") { continue; } if (voiceAnsObj.contains("content") && voiceAnsObj["content"].isString()) { //语音播报的文本 if (m_JsonData != nullptr) { m_JsonData->setSuggestMsg(voiceAnsObj["content"].toString()); } break; } } } } if (intentObject.contains("shouldEndSession") && intentObject["shouldEndSession"].isBool()) { setShouldEndSession(intentObject["shouldEndSession"].toBool()); } else { setShouldEndSession(true); } } else { return false; } return true; } QString semanticAnalysisTask::Intent() const { return m_Intent; } void semanticAnalysisTask::setIntent(const QString &Intent) { m_Intent = Intent; } JsonData *semanticAnalysisTask::getJsonData() const { return m_JsonData; } void semanticAnalysisTask::deleteJsonData() { if (m_JsonData != nullptr) { delete m_JsonData; m_JsonData = nullptr; } } JsonData *semanticAnalysisTask::createJsonDataFactory(const QString &Intent) { if (Intent == JSON_CREATE) { //创建 return new CreateJsonData(); } else if (Intent == JSON_VIEW) { //查询 return new QueryJsonData(); } else if (Intent == JSON_CANCEL) { //取消 return new cancelJsonData(); } else if (Intent == JSON_CHANGE) { //改变 return new changejsondata(); } return nullptr; } void semanticAnalysisTask::setShouldEndSession(bool isEnd) { if (m_JsonData != nullptr) { m_JsonData->setShouldEndSession(isEnd); } } void semanticAnalysisTask::setJsonData(JsonData *JsonData) { m_JsonData = JsonData; } dde-calendar-5.9.1/schedule-plugin/src/task/semanticanalysistask.h000066400000000000000000000030531423264401600252600ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SEMANTICANALYSISTASK_H #define SEMANTICANALYSISTASK_H #include #include #include "../data/jsondata.h" class QJsonObject; class semanticAnalysisTask : public QObject { Q_OBJECT public: explicit semanticAnalysisTask(QObject *parent = nullptr); ~semanticAnalysisTask(); bool resolveTaskJson(const QString &semantic); QString Intent() const; void setIntent(const QString &Intent); JsonData *getJsonData() const; void setJsonData(JsonData *JsonData); private: void deleteJsonData(); JsonData *createJsonDataFactory(const QString &Intent); void setShouldEndSession(bool isEnd); signals: public slots: private: QString m_Intent; JsonData *m_JsonData {nullptr}; }; #endif // SEMANTICANALYSISTASK_H dde-calendar-5.9.1/schedule-plugin/src/widget/000077500000000000000000000000001423264401600211755ustar00rootroot00000000000000dde-calendar-5.9.1/schedule-plugin/src/widget/buttonwidget.cpp000066400000000000000000000070411423264401600244220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "buttonwidget.h" #include #include #include #include buttonwidget::buttonwidget(QWidget *parent) : DWidget(parent) , buttonLayout(new QHBoxLayout()) , clickedButtonIndex(0) { buttonLayout->setMargin(0); buttonLayout->setContentsMargins(BTWidget::BUTTON_LAYOUT_LEFT_MARGIN, BTWidget::BUTTON_LAYOUT_TOP_MARGIN, BTWidget::BUTTON_LAYOUT_RIGHT_MARGIN, BTWidget::BUTTON_LAYOUT_BOTTOM_MARGIN); setLayout(buttonLayout); } int buttonwidget::addbutton(const QString &text, bool isDefault, buttonwidget::ButtonType type) { int index = buttonCount(); insertButton(index, text, isDefault, type); return index; } void buttonwidget::insertButton(int index, const QString &text, bool isDefault, buttonwidget::ButtonType type) { QAbstractButton *button; switch (type) { case ButtonWarning: button = new DWarningButton(this); break; case ButtonRecommend: button = new DSuggestButton(this); break; default: button = new DPushButton(this); break; } button->setText(text); button->setObjectName("ActionButton"); insertButton(index, button, isDefault); } void buttonwidget::insertButton(int index, QAbstractButton *button, bool isDefault) { DVerticalLine *line = new DVerticalLine(this); line->setObjectName("VLine"); line->setFixedHeight(30); buttonLayout->insertWidget(index * 2, line); buttonLayout->insertWidget(index * 2 + 1, button); buttonList << button; line->show(); buttonLayout->itemAt(0)->widget()->hide(); connect(button, &QAbstractButton::clicked, this, &buttonwidget::onButtonClicked); if (isDefault) { QPushButton *pushbutton = qobject_cast(button); pushbutton->setDefault(pushbutton); } const QString &text = button->text(); if (text.count() == 2) { for (const QChar &ch : text) { switch (ch.script()) { case QChar::Script_Han: case QChar::Script_Katakana: case QChar::Script_Hiragana: case QChar::Script_Hangul: break; default: return; } } button->setText(QString().append(text.at(0)).append(QChar::Nbsp).append(text.at(1))); } } int buttonwidget::buttonCount() const { return buttonList.count(); } void buttonwidget::onButtonClicked(bool clicked) { Q_UNUSED(clicked); QAbstractButton *button = qobject_cast(this->sender()); clickedButtonIndex = buttonList.indexOf(button); emit buttonClicked(clickedButtonIndex, button->text()); } dde-calendar-5.9.1/schedule-plugin/src/widget/buttonwidget.h000066400000000000000000000040371423264401600240710ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 BUTTONWIDGET_H #define BUTTONWIDGET_H #include #include #include #include DWIDGET_USE_NAMESPACE namespace BTWidget { const int BUTTON_LAYOUT_TOP_MARGIN = 0; const int BUTTON_LAYOUT_BOTTOM_MARGIN = 0; const int BUTTON_LAYOUT_LEFT_MARGIN = 0; const int BUTTON_LAYOUT_RIGHT_MARGIN = 0; } // namespace BTWidget class buttonwidget : public DWidget { Q_OBJECT public: explicit buttonwidget(QWidget *parent = nullptr); enum ButtonType { ButtonNormal, ButtonWarning, ButtonRecommend }; //将isDefault设置为true,保证有焦点时,点击enter可以选中 int addbutton(const QString &text, bool isDefault = true, ButtonType type = ButtonNormal); void insertButton(int index, const QString &text, bool isDefault = true, ButtonType type = ButtonNormal); void insertButton(int index, QAbstractButton *button, bool isDefault = true); int buttonCount() const; signals: void buttonClicked(int index, const QString &text); public slots: void onButtonClicked(bool clicked); private: QList buttonList; QSpacerItem *spacer = nullptr; QHBoxLayout *buttonLayout; int clickedButtonIndex; }; #endif // BUTTONWIDGET_H dde-calendar-5.9.1/schedule-plugin/src/widget/createschedulewidget.cpp000066400000000000000000000160041423264401600260660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "createschedulewidget.h" #include #include #include #include #include "buttonwidget.h" #include "../globaldef.h" createSchedulewidget::createSchedulewidget(QWidget *parent) : IconDFrame(parent) , m_scheduleDtailInfo(ScheduleDtailInfo()) , m_scheduleitemwidget(new scheduleitemwidget(this)) { connect(m_scheduleitemwidget, &scheduleitemwidget::signalItemPress, this, &createSchedulewidget::slotItemPress); // updateUI(); } ScheduleDtailInfo &createSchedulewidget::getScheduleDtailInfo() { return m_scheduleDtailInfo; } void createSchedulewidget::setTitleName(const QString &titleName) { m_titleName = titleName; } void createSchedulewidget::setDateTime(QDateTime begintime, QDateTime endtime) { m_BeginDateTime = begintime; m_EndDateTime = endtime; } void createSchedulewidget::setRpeat(int rpeat) { m_rpeat = rpeat; } void createSchedulewidget::setschedule() { QDateTime m_beginTime; QDateTime m_endTime; m_beginTime = m_BeginDateTime; m_endTime = m_EndDateTime; m_scheduleDtailInfo.beginDateTime = m_beginTime; m_scheduleDtailInfo.endDateTime = m_endTime; m_scheduleDtailInfo.titleName = m_titleName; m_scheduleDtailInfo.type.ID = 3; m_scheduleDtailInfo.id = 0; m_scheduleDtailInfo.RecurID = 0; m_scheduleDtailInfo.allday = false; m_scheduleDtailInfo.remind = true; m_scheduleDtailInfo.remindData.n = 0; m_scheduleDtailInfo.rpeat = m_rpeat; // if (m_rpeat != 0) { //结束重复于类型为:永不 m_scheduleDtailInfo.enddata.type = 0; // } } void createSchedulewidget::scheduleEmpty(bool isEmpty) { m_scheduleEmpty = isEmpty; } void createSchedulewidget::updateUI() { if (m_scheduleEmpty) { //获取筛选到的日程信息 getCreatScheduleFromDbus(); //如果筛选到的日程不为空,则展示日程插件 if (!m_scheduleInfo.isEmpty()) { QVBoxLayout *mainlayout = new QVBoxLayout(); m_scheduleitemwidget->setScheduleDtailInfo(m_scheduleInfo); m_scheduleitemwidget->addscheduleitem(); mainlayout->addWidget(m_scheduleitemwidget); setCenterLayout(mainlayout); } else { qCritical() << "There's not the same schedule in scheduleSql!"; } } else { //是否创建日程 QVBoxLayout *mainlayout = new QVBoxLayout(); buttonwidget *button = new buttonwidget(this); button->addbutton(CANCEL_BUTTON_STRING, true, buttonwidget::ButtonRecommend); button->addbutton(CONFIRM_BUTTON_STRING); connect(button, &buttonwidget::buttonClicked, this, &createSchedulewidget::slotsbuttonchance); m_scheduleitemwidget->setScheduleDtailInfo(m_scheduleInfo); m_scheduleitemwidget->addscheduleitem(); mainlayout->addWidget(m_scheduleitemwidget); mainlayout->addSpacing(4); mainlayout->addWidget(button); setCenterLayout(mainlayout); } } void createSchedulewidget::setScheduleDbus(CSchedulesDBus *dbus) { m_dbus = dbus; } bool createSchedulewidget::buttonclicked() { return m_buttonclicked; } void createSchedulewidget::slotsbuttonchance(int index, const QString &text) { Q_UNUSED(text) if (index == 0) { m_buttonclicked = false; } if (index == 1) { m_buttonclicked = true; } } void createSchedulewidget::slotItemPress(const ScheduleDtailInfo &info) { QProcess proc; proc.startDetached(PROCESS_OPEN_CALENDAR); QThread::msleep(750); QString schedulestr = CSchedulesDBus::createScheduleDtailInfojson(info); QDBusMessage message = QDBusMessage::createMethodCall(DBUS_CALENDAR_SERVICE, DBUS_CALENDAR_PATCH, DBUS_CALENDAR_INTFACE, "OpenSchedule"); message << schedulestr; //发送消息 QDBusMessage response = QDBusConnection::sessionBus().call(message); } void createSchedulewidget::getCreatScheduleFromDbus() { //存放查询的日程信息 QVector out; //存放符合筛选条件的日程信息 QVector scheduleinfo; //清空容器 scheduleinfo.clear(); out.clear(); //通过dbus获取和新建的日程具有相同titlename,beginDateTime,endDateTime的日程 m_dbus->QueryJobs(m_scheduleDtailInfo.titleName, m_scheduleDtailInfo.beginDateTime, m_scheduleDtailInfo.endDateTime, out); //筛选具体日程 for (int i = 0; i < out.count(); i++) { for (int j = 0; j < out.at(i).vData.count(); j++) { //筛选条件 if (out.at(i).vData.at(j).titleName == m_scheduleDtailInfo.titleName && out.at(i).vData.at(j).beginDateTime == m_scheduleDtailInfo.beginDateTime && out.at(i).vData.at(j).endDateTime == m_scheduleDtailInfo.endDateTime && out.at(i).vData.at(j).rpeat == m_scheduleDtailInfo.rpeat && out.at(i).vData.at(j).allday == m_scheduleDtailInfo.allday && out.at(i).vData.at(j).type.ID == m_scheduleDtailInfo.type.ID && out.at(i).vData.at(j).RecurID == m_scheduleDtailInfo.RecurID && out.at(i).vData.at(j).remind == m_scheduleDtailInfo.remind && out.at(i).vData.at(j).remindData.n == m_scheduleDtailInfo.remindData.n) { if (m_scheduleDtailInfo.rpeat > 0 && out.at(i).vData.at(j).enddata.type != m_scheduleDtailInfo.enddata.type) continue; scheduleinfo.append(out.at(i).vData.at(j)); } } } //如果和新建日程具有相同信息的日程有多个,则取id最大的那一个 if (scheduleinfo.count() > 1) { for (int i = 0; i < scheduleinfo.count() - 1; i++) { if (scheduleinfo.at(i).id < scheduleinfo.at(i + 1).id) { m_scheduleInfo.clear(); m_scheduleInfo.append(scheduleinfo.at(i + 1)); } else { m_scheduleInfo.clear(); m_scheduleInfo.append(scheduleinfo.at(i)); } } } else { m_scheduleInfo = scheduleinfo; } } dde-calendar-5.9.1/schedule-plugin/src/widget/createschedulewidget.h000066400000000000000000000042601423264401600255340ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CREATESCHEDULE_H #define CREATESCHEDULE_H #include #include #include #include "../data/schedulestructs.h" #include "icondframe.h" #include "scheduleitemwidget.h" #include "../dbus/schedulesdbus.h" DWIDGET_USE_NAMESPACE class createSchedulewidget : public IconDFrame { Q_OBJECT public: explicit createSchedulewidget(QWidget *parent = nullptr); public: ScheduleDtailInfo &getScheduleDtailInfo(); void setTitleName(const QString &titleName); void setDateTime(QDateTime begintime, QDateTime endtime); void setRpeat(int rpeat); void setschedule(); void scheduleEmpty(bool isEmpty); void updateUI(); void setScheduleDbus(CSchedulesDBus *dbus); bool buttonclicked(); public slots: void slotsbuttonchance(int index, const QString &text); void slotItemPress(const ScheduleDtailInfo &info); /** * @brief getCreatScheduleFromDbus 通过dbus获取新建的日程信息 */ void getCreatScheduleFromDbus(); private: ScheduleDtailInfo m_scheduleDtailInfo; QDateTime m_BeginDateTime; QDateTime m_EndDateTime; QString m_titleName; int m_rpeat; bool m_scheduleEmpty = false; scheduleitemwidget *m_scheduleitemwidget; QVector m_scheduleInfo; CSchedulesDBus *m_dbus = nullptr; bool m_buttonclicked = false; signals: public slots: }; #endif // CREATESCHEDULE_H dde-calendar-5.9.1/schedule-plugin/src/widget/icondframe.cpp000066400000000000000000000125301423264401600240110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "icondframe.h" #include #include #include #include #include #include "../globaldef.h" #include "../interface/reply.h" IconDFrame::IconDFrame(QWidget *parent) : DFrame(parent) , m_Dayrenderer(new QSvgRenderer()) , m_Weekrenderer(new QSvgRenderer()) , m_Monthrenderer(new QSvgRenderer()) , m_backgroundrenderer(new QSvgRenderer()) { //设置接受tab切换 setFocusPolicy(Qt::TabFocus); } IconDFrame::~IconDFrame() { delete m_Dayrenderer; m_Dayrenderer = nullptr; delete m_Weekrenderer; m_Weekrenderer = nullptr; delete m_Monthrenderer; m_Monthrenderer = nullptr; delete m_backgroundrenderer; m_backgroundrenderer = nullptr; } void IconDFrame::setCenterLayout(QLayout *layout) { QVBoxLayout *vlayout = new QVBoxLayout(); vlayout->addSpacing(25); vlayout->addLayout(layout); this->setLayout(vlayout); } void IconDFrame::paintEvent(QPaintEvent *event) { setTheMe(DGuiApplicationHelper::instance()->themeType()); DFrame::paintEvent(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; //绘制tab切换focus效果 if (m_tabFocusIn) { QPen pen; //设置边框为2 pen.setWidth(2); //设置边框颜色为活动色 pen.setColor(DGuiApplicationHelper::instance()->applicationPalette().highlight().color()); painter.setPen(pen); //设置边框矩形,由于插件widget会被助手覆盖一个像素,所以需要减去一个像素的外边 QRect _showRect(1, 1, this->width() - 2, this->height() - 2); painter.drawRoundedRect(_showRect, 8, 8); } //绘制图标 paintPixmap(painter); //绘制标题 paintTitle(painter); painter.end(); } void IconDFrame::hideEvent(QHideEvent *event) { Q_UNUSED(event); if (isEnabled()) { //如果窗口为启用状态则触发窗口隐藏信号 emit widgetIsHide(); } } void IconDFrame::focusInEvent(QFocusEvent *event) { Q_UNUSED(event); //设置focus标志为true //TODO 根据需求先取消tab选中效果 m_tabFocusIn = false; //刷新界面 update(); } void IconDFrame::focusOutEvent(QFocusEvent *event) { Q_UNUSED(event); //设置focus标志为false m_tabFocusIn = false; //刷新界面 update(); } void IconDFrame::setTheMe(const int type) { QColor titleColor; if (type == 0 || type == 1) { titleColor.setRgb(0, 0, 0); titleColor.setAlphaF(0.4); } else { titleColor.setRgb(255, 255, 255); titleColor.setAlphaF(0.4); } setTitleColor(titleColor); } void IconDFrame::paintPixmap(QPainter &painter) { QString dayfile = QString(":/resources/DynamicIcon/day%1.svg").arg(QDate::currentDate().day()); m_Dayrenderer->load(dayfile); QString weekfile = QString(":/resources/DynamicIcon/week%1.svg").arg(QDate::currentDate().dayOfWeek()); m_Weekrenderer->load(weekfile); QString monthfile = QString(":/resources/DynamicIcon/month%1.svg").arg(QDate::currentDate().month()); m_Monthrenderer->load(monthfile); QString backgroundfile(":/resources/DynamicIcon/calendar_bg.svg"); m_backgroundrenderer->load(backgroundfile); painter.save(); painter.setRenderHint(QPainter::SmoothPixmapTransform); //draw background QRectF backgroundRect = QRectF(11, 9, 16, 16); m_backgroundrenderer->render(&painter, backgroundRect); //draw month qreal month_x = 13; qreal month_y = 10; qreal month_w = 11; qreal month_h = 4; m_Monthrenderer->render(&painter, QRectF(month_x, month_y, month_w, month_h)); //draw day qreal day_x = 14; qreal day_y = 14; qreal day_w = 9; qreal day_h = 7; m_Dayrenderer->render(&painter, QRectF(day_x, day_y, day_w, day_h)); painter.restore(); } void IconDFrame::paintTitle(QPainter &painter) { QRect rect(34, 7, 24, 17); painter.save(); painter.setPen(TitleColor()); painter.setFont(TitleFont()); painter.drawText(rect, Qt::AlignCenter, tr(PLUGIN_TITLE_NAME)); painter.restore(); } void IconDFrame::slotReceivce(QVariant data, Reply *reply) { Q_UNUSED(data); Q_UNUSED(reply); } QColor IconDFrame::TitleColor() const { return m_TitleColor; } void IconDFrame::setTitleColor(const QColor &TitleColor) { m_TitleColor = TitleColor; } QFont IconDFrame::TitleFont() { m_TitleFont.setPixelSize(12); return m_TitleFont; } dde-calendar-5.9.1/schedule-plugin/src/widget/icondframe.h000066400000000000000000000040061423264401600234550ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 ICONDFRAME_H #define ICONDFRAME_H #include class QSvgRenderer; class Reply; DWIDGET_USE_NAMESPACE class IconDFrame : public DFrame { Q_OBJECT public: explicit IconDFrame(QWidget *parent = nullptr); ~IconDFrame() override; void setCenterLayout(QLayout *layout); QColor TitleColor() const; void setTitleColor(const QColor &TitleColor); private: QFont TitleFont(); protected: void paintEvent(QPaintEvent *event) override; void hideEvent(QHideEvent *event) override; void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; private: void setTheMe(const int type); void paintPixmap(QPainter &painter); void paintTitle(QPainter &painter); signals: void signaleSendMessage(QString text); /** * @brief widgetIsHide 窗口隐藏信号 */ void widgetIsHide(); public slots: virtual void slotReceivce(QVariant data, Reply *reply); private: QSvgRenderer *m_Dayrenderer; QSvgRenderer *m_Weekrenderer; QSvgRenderer *m_Monthrenderer; QSvgRenderer *m_backgroundrenderer; QColor m_TitleColor; QFont m_TitleFont; bool m_tabFocusIn {false}; //获取tab焦点标记 }; #endif // ICONDFRAME_H dde-calendar-5.9.1/schedule-plugin/src/widget/itemwidget.cpp000066400000000000000000000141241423264401600240450ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "itemwidget.h" #include #include ItemWidget::ItemWidget(QWidget *parent) : DWidget(parent) { QFont datetimefont; datetimefont.setPixelSize(12); QFont titlefont; titlefont.setPixelSize(14); setTitleFont(titlefont); setDateTimeFont(datetimefont); } void ItemWidget::paintEvent(QPaintEvent *event) { setTheMe(DApplicationHelper::instance()->themeType()); DWidget::paintEvent(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; drawBackground(painter); DrawItem(painter); } void ItemWidget::drawBackground(QPainter &painter) { const int radius = 8; const int diameter = radius * 2; const int RectWidth = this->rect().width(); const int RectHeight = this->rect().height(); painter.save(); painter.setPen(Qt::NoPen); QColor backgroundcolor(getBackgroundColor()); painter.setBrush(backgroundcolor); switch (m_Positon) { case ItemTop: { QPainterPath painterPath; painterPath.moveTo(0, RectHeight); painterPath.lineTo(RectWidth, RectHeight); painterPath.lineTo(RectWidth, diameter); painterPath.arcTo(QRect(RectWidth - diameter, 0, diameter, diameter), 0, 90); painterPath.lineTo(diameter, 0); painterPath.arcTo(QRect(0, 0, diameter, diameter), 90, 90); painterPath.lineTo(0, RectHeight); painterPath.closeSubpath(); painter.drawPath(painterPath); } break; case ItemMiddle: painter.drawRect(this->rect()); break; case ItemBottom: { QPainterPath painterPath; painterPath.moveTo(0, 0); painterPath.lineTo(0, RectHeight - diameter); painterPath.arcTo(QRect(0, RectHeight - diameter, diameter, diameter), 180, 90); painterPath.lineTo(RectWidth - diameter, RectHeight); painterPath.arcTo(QRect(RectWidth - diameter, RectHeight - diameter, diameter, diameter), 270, 90); painterPath.lineTo(RectWidth, 0); painterPath.lineTo(0, 0); painterPath.closeSubpath(); painter.drawPath(painterPath); } break; case ItemOnly: painter.drawRoundedRect(this->rect(), 8, 8); break; } painter.restore(); } QColor ItemWidget::getBackgroundColor() { return m_BackgroundColor; } void ItemWidget::setTheMe(const int type) { m_scheduleColor.setTheMe(type); QColor titleColor; QColor datetimeColor; if (type == 0 || type == 1) { titleColor.setRgb(0, 0, 0); titleColor.setAlphaF(0.8); datetimeColor.setRgb(0, 0, 0); datetimeColor.setAlphaF(0.6); //设置浅色背景色 m_BackgroundColor = "#000000"; m_BackgroundColor.setAlphaF(0.05); } else { titleColor.setRgb(255, 255, 255); titleColor.setAlphaF(1); datetimeColor.setRgb(255, 255, 255); datetimeColor.setAlphaF(0.6); //设置深色背景色 m_BackgroundColor = "#FFFFFF"; m_BackgroundColor.setAlphaF(0.05); } // DPalette palette; // setTitleColor(palette.color(DPalette::Normal, DPalette::BrightText)); setTitleColor(titleColor); setDateTimeColor(datetimeColor); } QColor ItemWidget::ScheduleColor() { return m_scheduleColor.getColorByTypeId(m_scheduleInfo.type.ID).splitColor; } ScheduleDtailInfo ItemWidget::getScheduleInfo() const { return m_scheduleInfo; } void ItemWidget::setDateTimeFont(const QFont &DateTimeFont) { m_DateTimeFont = DateTimeFont; } void ItemWidget::setTitleFont(const QFont &TitleFont) { m_TitleFont = TitleFont; } void ItemWidget::setDateTimeColor(const QColor &DateTimeColor) { m_DateTimeColor = DateTimeColor; } ScheduleDtailInfo ItemWidget::scheduleInfo() const { return m_scheduleInfo; } void ItemWidget::setScheduleInfo(const ScheduleDtailInfo &scheduleInfo) { m_scheduleInfo = scheduleInfo; setScheduleBeginTime(scheduleInfo.beginDateTime); setScheduleEndTime(scheduleInfo.endDateTime); setShowDate(scheduleInfo.beginDateTime.date()); setTitleContent(scheduleInfo.titleName); } void ItemWidget::setTitleColor(const QColor &TitleColor) { m_TitleColor = TitleColor; } QColor ItemWidget::getDateTimeColor() const { return m_DateTimeColor; } QFont ItemWidget::getDateTimeFont() const { return m_DateTimeFont; } QColor ItemWidget::getTitleColor() const { return m_TitleColor; } QFont ItemWidget::getTitleFont() const { return m_TitleFont; } QDateTime ItemWidget::getScheduleEndTime() const { return m_ScheduleEndTime; } void ItemWidget::setScheduleEndTime(const QDateTime &ScheduleEndTime) { m_ScheduleEndTime = ScheduleEndTime; } QDateTime ItemWidget::getScheduleBeginTime() const { return m_ScheduleBeginTime; } void ItemWidget::setScheduleBeginTime(const QDateTime &ScheduleBeginTime) { m_ScheduleBeginTime = ScheduleBeginTime; } QDate ItemWidget::getShowDate() const { return m_ShowDate; } void ItemWidget::setShowDate(const QDate &ShowDate) { m_ShowDate = ShowDate; } QString ItemWidget::getTitleContent() const { return m_TitleContent; } void ItemWidget::setTitleContent(const QString &TitleContent) { m_TitleContent = TitleContent; } void ItemWidget::setPositon(const Item_Position &Positon) { m_Positon = Positon; } void ItemWidget::DrawItem(QPainter &painter) { Q_UNUSED(painter); } dde-calendar-5.9.1/schedule-plugin/src/widget/itemwidget.h000066400000000000000000000057101423264401600235130ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 ITEMWIDGET_H #define ITEMWIDGET_H #include "../data/schedulecolourmanage.h" #include "../data/schedulestructs.h" #include #include #include #include DWIDGET_USE_NAMESPACE class ItemWidget : public DWidget { Q_OBJECT public: enum Item_Position { ItemTop, ItemMiddle, ItemBottom, ItemOnly }; public: explicit ItemWidget(QWidget *parent = nullptr); void setPositon(const Item_Position &Positon); virtual void DrawItem(QPainter &painter); void setTitleContent(const QString &TitleContent); QString getTitleContent() const; QDate getShowDate() const; void setShowDate(const QDate &ShowDate); QDateTime getScheduleBeginTime() const; void setScheduleBeginTime(const QDateTime &ScheduleBeginTime); QDateTime getScheduleEndTime() const; void setScheduleEndTime(const QDateTime &ScheduleEndTime); ScheduleDtailInfo scheduleInfo() const; void setScheduleInfo(const ScheduleDtailInfo &scheduleInfo); ScheduleDtailInfo getScheduleInfo() const; protected: QFont getTitleFont() const; QColor getTitleColor() const; QFont getDateTimeFont() const; QColor getDateTimeColor() const; void setTitleColor(const QColor &TitleColor); void setDateTimeColor(const QColor &DateTimeColor); void setTitleFont(const QFont &TitleFont); void setDateTimeFont(const QFont &DateTimeFont); protected: void paintEvent(QPaintEvent *event) override; void drawBackground(QPainter &painter); QColor getBackgroundColor(); virtual void setTheMe(const int type); QColor ScheduleColor(); signals: public slots: private: Item_Position m_Positon {ItemMiddle}; QString m_TitleContent; QDate m_ShowDate; QDateTime m_ScheduleBeginTime; QDateTime m_ScheduleEndTime; QFont m_TitleFont; QColor m_TitleColor; QFont m_DateTimeFont; QColor m_DateTimeColor; /** * @brief m_BackgroundColor 绘制背景色 */ QColor m_BackgroundColor{"#000000"}; ScheduleColourManage m_scheduleColor; ScheduleDtailInfo m_scheduleInfo; }; #endif // ITEMWIDGET_H dde-calendar-5.9.1/schedule-plugin/src/widget/modifyscheduleitem.cpp000066400000000000000000000106021423264401600255630ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "modifyscheduleitem.h" #include "../globaldef.h" #include modifyScheduleItem::modifyScheduleItem(QWidget *parent) : ItemWidget(parent) { setFixedHeight(MODIFY_ITEM_HEIGHT); } void modifyScheduleItem::DrawItem(QPainter &painter) { drawIndex(painter); drawLine(painter); drawTitleContent(painter); drawScheduleColorLine(painter); drawTime(painter); drawDate(painter); } int modifyScheduleItem::getIndex() const { return m_Index; } void modifyScheduleItem::setIndex(int Index) { m_Index = Index; } void modifyScheduleItem::drawIndex(QPainter &painter) { painter.save(); painter.setFont(getTitleFont()); painter.setPen(getDateTimeColor()); const QRect indexRect(m_IndexX, 0, m_IndexWidth, this->rect().height()); painter.drawText(indexRect, Qt::AlignCenter, QString::number(getIndex())); painter.restore(); } void modifyScheduleItem::drawLine(QPainter &painter) { painter.save(); QRect rect(40, 10, 1, 28); painter.setPen(Qt::NoPen); painter.setBrush(LineColor()); painter.drawRect(rect); painter.restore(); } void modifyScheduleItem::drawTitleContent(QPainter &painter) { painter.save(); painter.setFont(getTitleFont()); painter.setPen(getTitleColor()); const int textRectWidth = this->rect().width() - m_TItleRightMargin - m_TitleX; const QRect titleContent(m_TitleX, 0, textRectWidth, this->rect().height()); QFontMetrics metrics(getTitleFont()); painter.drawText(titleContent, Qt::AlignLeft | Qt::AlignVCenter, metrics.elidedText(getTitleContent(), Qt::ElideRight, textRectWidth)); painter.restore(); } void modifyScheduleItem::drawScheduleColorLine(QPainter &painter) { painter.save(); QRect rect(this->width() - m_TItleRightMargin, 0, 2, this->height()); painter.setPen(Qt::NoPen); painter.setBrush(ScheduleColor()); painter.drawRect(rect); painter.restore(); } void modifyScheduleItem::drawTime(QPainter &painter) { painter.save(); QRect rect(this->width() - 75, 10 - m_DateTimeOffset, 65, 17); painter.setPen(getDateTimeColor()); painter.setFont(getDateTimeFont()); QString timestr; if (scheduleInfo().allday) { timestr = ALL_DAY; } else { timestr = QString("%1-%2").arg(getScheduleBeginTime().toString("hh:mm")).arg(getScheduleEndTime().toString("hh:mm")); } painter.drawText(rect, Qt::AlignLeft | Qt::AlignTop, timestr); painter.restore(); } void modifyScheduleItem::drawDate(QPainter &painter) { painter.save(); QRect rect(this->width() - 75, 27 - m_DateTimeOffset, 65, 17); painter.setPen(getDateTimeColor()); painter.setFont(getDateTimeFont()); painter.drawText(rect, Qt::AlignLeft | Qt::AlignTop, getShowDate().toString("yyyy/MM/dd")); painter.restore(); } void modifyScheduleItem::setLineColor(const QColor &LineColor) { m_LineColor = LineColor; } void modifyScheduleItem::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { emit signalSendSelectScheduleIndex(getIndex()); } } QColor modifyScheduleItem::LineColor() const { return m_LineColor; } void modifyScheduleItem::setTheMe(const int type) { ItemWidget::setTheMe(type); QColor lineColor; if (type == 0 || type == 1) { lineColor = QColor("#000000"); lineColor.setAlphaF(0.1); } else { //设置深色主题分割线颜色 lineColor = QColor("#FFFFFF"); lineColor.setAlphaF(0.1); } setLineColor(lineColor); } dde-calendar-5.9.1/schedule-plugin/src/widget/modifyscheduleitem.h000066400000000000000000000035751423264401600252430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 MODIFYSCHEDULEITEM_H #define MODIFYSCHEDULEITEM_H #include "itemwidget.h" class modifyScheduleItem : public ItemWidget { Q_OBJECT public: explicit modifyScheduleItem(QWidget *parent = nullptr); int getIndex() const; void setIndex(int Index); protected: QColor LineColor() const; void setLineColor(const QColor &LineColor); protected: void mousePressEvent(QMouseEvent *event) override; private: void setTheMe(const int type) override; void DrawItem(QPainter &painter) override; void drawIndex(QPainter &painter); void drawLine(QPainter &painter); void drawTitleContent(QPainter &painter); void drawScheduleColorLine(QPainter &painter); void drawTime(QPainter &painter); void drawDate(QPainter &painter); signals: void signalSendSelectScheduleIndex(int index); public slots: private: int m_Index = 1; const int m_IndexWidth {16}; const int m_IndexX {14}; QColor m_LineColor {"#000000"}; const int m_TitleX {51}; const int m_TItleRightMargin {97}; const int m_DateTimeOffset = 3; }; #endif // MODIFYSCHEDULEITEM_H dde-calendar-5.9.1/schedule-plugin/src/widget/opencalendarwidget.cpp000066400000000000000000000045221423264401600255430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "opencalendarwidget.h" #include #include #include #include "../globaldef.h" #include OpenCalendarWidget::OpenCalendarWidget(QWidget *parent) : DWidget(parent) { setFixedHeight(OPENCALENDAR_WDIGET_HEIGHT); } void OpenCalendarWidget::paintEvent(QPaintEvent *event) { Q_UNUSED(event); setTheMe(DApplicationHelper::instance()->themeType()); QPainter painter(this); painter.setPen(TitleColor()); painter.setFont(TitleFont()); painter.drawText(this->rect(), Qt::AlignLeft | Qt::AlignVCenter, QString(OPENCALENDAR_WIDGET_TITLE).arg(m_ScheduleCount)); } void OpenCalendarWidget::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { QProcess proc; proc.startDetached(PROCESS_OPEN_CALENDAR); } } QColor OpenCalendarWidget::TitleColor() const { return m_TitleColor; } void OpenCalendarWidget::setTitleColor(const QColor &TitleColor) { m_TitleColor = TitleColor; } QFont OpenCalendarWidget::TitleFont() { m_TitleFont.setPixelSize(12); return m_TitleFont; } void OpenCalendarWidget::setTheMe(const int type) { QColor titleColor; if (type == 0 || type == 1) { titleColor.setRgb(0, 0, 0); titleColor.setAlphaF(0.4); } else { titleColor.setRgb(255, 255, 255); titleColor.setAlphaF(0.4); } setTitleColor(titleColor); } void OpenCalendarWidget::setScheduleCount(int ScheduleCount) { m_ScheduleCount = ScheduleCount; update(); } dde-calendar-5.9.1/schedule-plugin/src/widget/opencalendarwidget.h000066400000000000000000000027541423264401600252150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 OPENCALENDARWIDGET_H #define OPENCALENDARWIDGET_H #include #include #include DWIDGET_USE_NAMESPACE class OpenCalendarWidget : public DWidget { Q_OBJECT public: explicit OpenCalendarWidget(QWidget *parent = nullptr); void setScheduleCount(int ScheduleCount); QFont TitleFont(); QColor TitleColor() const; void setTitleColor(const QColor &TitleColor); private: void setTheMe(const int type); protected: void paintEvent(QPaintEvent *event) override; void mousePressEvent(QMouseEvent *event) override; signals: public slots: private: int m_ScheduleCount; QColor m_TitleColor; QFont m_TitleFont; }; #endif // OPENCALENDARWIDGET_H dde-calendar-5.9.1/schedule-plugin/src/widget/repeatschedulewidget.cpp000066400000000000000000000061441423264401600261070ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "repeatschedulewidget.h" #include "scheduleitemwidget.h" #include "buttonwidget.h" #include "../globaldef.h" repeatScheduleWidget::repeatScheduleWidget(repeatScheduleWidget::Operation_type operation, repeatScheduleWidget::Widget_type widgetype, bool tocreateBtn, QWidget *parent) : IconDFrame(parent) , m_OperationType(operation) , m_WidgetType(widgetype) , m_createBtnBool(tocreateBtn) { } void repeatScheduleWidget::setSchedule(const ScheduleDtailInfo &info) { m_scheduleInfo.clear(); m_scheduleInfo.append(info); initUI(); } void repeatScheduleWidget::initUI() { m_scheduleitemwidget = new scheduleitemwidget(this); QVBoxLayout *mainlayout = new QVBoxLayout(); m_scheduleitemwidget->setScheduleDtailInfo(m_scheduleInfo); m_scheduleitemwidget->addscheduleitem(); mainlayout->addWidget(m_scheduleitemwidget); if (m_createBtnBool) { buttonwidget *button = new buttonwidget(this); m_buttonCount = 0; switch (m_WidgetType) { case Widget_Confirm: { button->addbutton(CANCEL_BUTTON_STRING); if (m_OperationType == Operation_Cancel) { button->addbutton(CONFIRM_BUTTON_STRING, true, buttonwidget::ButtonWarning); } else { button->addbutton(CONFIRM_BUTTON_STRING, true, buttonwidget::ButtonRecommend); } } break; default: { if (m_OperationType == Operation_Cancel) { button->addbutton(CANCEL_BUTTON_STRING); button->addbutton(DELETEALL_BUTTON_STRING); button->addbutton(ONLY_DELETE_THIS_BUTTON_STRING, true, buttonwidget::ButtonWarning); } else { button->addbutton(CANCEL_BUTTON_STRING); button->addbutton(CHANGE_ALL_BUTTON_STRING); button->addbutton(CHANGE_ONLYL_BUTTON_STRING, true, buttonwidget::ButtonRecommend); } } break; } m_buttonCount = button->buttonCount(); connect(button, &buttonwidget::buttonClicked, this, &repeatScheduleWidget::slotButtonCheckNum); mainlayout->addSpacing(4); mainlayout->addWidget(button); } setCenterLayout(mainlayout); } void repeatScheduleWidget::slotButtonCheckNum(int index, const QString &text) { emit signalButtonCheckNum(index, text, m_buttonCount); } dde-calendar-5.9.1/schedule-plugin/src/widget/repeatschedulewidget.h000066400000000000000000000035631423264401600255560ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 REPEATSCHEDULEWIDGET_H #define REPEATSCHEDULEWIDGET_H #include "icondframe.h" #include "../data/schedulestructs.h" class scheduleitemwidget; class repeatScheduleWidget : public IconDFrame { Q_OBJECT public: enum Operation_type { Operation_Cancel, Operation_Change }; enum Widget_type { Widget_Repeat, Widget_Confirm }; public: explicit repeatScheduleWidget(Operation_type operation, Widget_type widgetype, bool tocreateBtn = true, QWidget *parent = nullptr); void setSchedule(const ScheduleDtailInfo &info); private: void initUI(); signals: void signalButtonCheckNum(int index, const QString &text, const int buttonCount); public slots: void slotButtonCheckNum(int index, const QString &text); private: scheduleitemwidget *m_scheduleitemwidget {nullptr}; QVector m_scheduleInfo; Operation_type m_OperationType {Operation_Cancel}; Widget_type m_WidgetType {Widget_Confirm}; int m_buttonCount {0}; bool m_createBtnBool {true}; }; #endif // REPEATSCHEDULEWIDGET_H dde-calendar-5.9.1/schedule-plugin/src/widget/scheduleitemwidget.cpp000066400000000000000000000136461423264401600255720ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "scheduleitemwidget.h" #include "../globaldef.h" #include #include #include scheduleitemwidget::scheduleitemwidget(QWidget *parent) : DWidget(parent) { } scheduleitemwidget::~scheduleitemwidget() { } void scheduleitemwidget::setScheduleDtailInfo(QVector &scheduleInfo) { m_scheduleInfo = scheduleInfo; sortScheduleWithTime(); } void scheduleitemwidget::addscheduleitem() { QVBoxLayout *mainlayout = new QVBoxLayout(); scheduleitemdate *m_scheduleitemdate = new scheduleitemdate(); mainlayout->setContentsMargins(0, 0, 0, 0); mainlayout->addWidget(m_scheduleitemdate); mainlayout->addSpacing(10); mainlayout->setSpacing(1); if (m_scheduleInfo.count() == 1) { //单个日程 scheduleitem *m_scheduleitem = new scheduleitem(); connect(m_scheduleitem, &scheduleitem::signalItemPress, this, &scheduleitemwidget::signalItemPress); m_scheduleitem->setPositon(ItemWidget::ItemOnly); m_scheduleitemdate->setScheduleDtailInfo(m_scheduleInfo.first()); m_scheduleitem->setScheduleInfo(m_scheduleInfo.first()); mainlayout->addWidget(m_scheduleitem); } else if (m_scheduleInfo.count() > 1) { //多个日程 for (int i = 0; i < m_scheduleInfo.count(); i++) { scheduleitem *m_scheduleitem = new scheduleitem(); connect(m_scheduleitem, &scheduleitem::signalItemPress, this, &scheduleitemwidget::signalItemPress); if (i == 0) { m_scheduleitem->setPositon(ItemWidget::ItemTop); } else if (i == m_scheduleInfo.count() - 1) { m_scheduleitem->setPositon(ItemWidget::ItemBottom); } else { m_scheduleitem->setPositon(ItemWidget::ItemMiddle); } m_scheduleitemdate->setScheduleDtailInfo(m_scheduleInfo[i]); m_scheduleitem->setScheduleInfo(m_scheduleInfo[i]); mainlayout->addWidget(m_scheduleitem); } } this->setLayout(mainlayout); } void scheduleitemwidget::sortScheduleWithTime() { for (int i = 0; i < m_scheduleInfo.count(); i++) { for (int j = 0; j < m_scheduleInfo.count() - i - 1; j++) { if (m_scheduleInfo[j].beginDateTime > m_scheduleInfo[j + 1].beginDateTime) std::swap(m_scheduleInfo[j], m_scheduleInfo[j + 1]); } } } scheduleitem::scheduleitem(QWidget *parent) : ItemWidget(parent) { setFixedHeight(36); } void scheduleitem::DrawItem(QPainter &painter) { drawScheduleColorLine(painter); drawTime(painter); drawDetails(painter); } void scheduleitem::drawScheduleColorLine(QPainter &painter) { painter.save(); QRect rect(m_LineRightMargin, 0, 2, this->height()); painter.setPen(Qt::NoPen); painter.setBrush(ScheduleColor()); painter.drawRect(rect); painter.restore(); } void scheduleitem::drawTime(QPainter &painter) { painter.save(); QRect rect(m_timeLeftMargin, 0, 82, this->rect().height()); painter.setPen(getDateTimeColor()); painter.setFont(getDateTimeFont()); QString timestr; if (scheduleInfo().allday) { timestr = ALL_DAY; } else { timestr = QString("%1-%2").arg(scheduleInfo().beginDateTime.toString("hh:mm")).arg(scheduleInfo().endDateTime.toString("hh:mm")); } painter.drawText(rect, Qt::AlignLeft | Qt::AlignVCenter, timestr); painter.restore(); } void scheduleitem::drawDetails(QPainter &painter) { painter.save(); QRect rect(m_DetailsRightMargin + m_LineRightMargin + 2, 0, m_DetailsWidth, this->rect().height()); painter.setPen(getTitleColor()); painter.setFont(getTitleFont()); QFontMetrics metrics(getTitleFont()); painter.drawText(rect, Qt::AlignLeft | Qt::AlignVCenter, metrics.elidedText(getTitleContent(), Qt::ElideRight, rect.width() - m_EllipsisWidth)); painter.restore(); } void scheduleitem::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { emit signalItemPress(getScheduleInfo()); } } scheduleitemdate::scheduleitemdate(QWidget *parent) : QWidget(parent) { setFixedHeight(20); } void scheduleitemdate::setScheduleDtailInfo(ScheduleDtailInfo &scheduelDtailInfo) { m_scheduleDtailInfo = scheduelDtailInfo; } QColor scheduleitemdate::DetailsColor() { int type = DGuiApplicationHelper::instance()->themeType(); if (type == 0 || type == 1) { m_DateTimeColor.setRgb(0, 0, 0); } else { m_DateTimeColor.setRgb(255, 255, 255); } return m_DateTimeColor; } void scheduleitemdate::paintEvent(QPaintEvent *event) { QWidget::paintEvent(event); QPainter painter(this); painter.save(); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(DetailsColor()); painter.drawText(QRect(m_LeftMargin, 0, this->rect().width(), 20), Qt::AlignLeft | Qt::AlignVCenter, QString("%1 %2").arg(m_scheduleDtailInfo.beginDateTime.date().toString("yyyy年MM月dd日")).arg(m_scheduleDtailInfo.beginDateTime.toString("dddd"))); painter.restore(); } dde-calendar-5.9.1/schedule-plugin/src/widget/scheduleitemwidget.h000066400000000000000000000051061423264401600252270ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CREATSHCEDULEITEM_H #define CREATSHCEDULEITEM_H #include "itemwidget.h" #include "../data/schedulestructs.h" #include "../data/schedulecolourmanage.h" #include class scheduleitemdate; class scheduleitem; class scheduleitemwidget : public DWidget { Q_OBJECT public: explicit scheduleitemwidget(QWidget *parent = nullptr); ~scheduleitemwidget(); void setScheduleDtailInfo(QVector &scheduleInfo); void addscheduleitem(); signals: void signalItemPress(const ScheduleDtailInfo &info); private: void sortScheduleWithTime(); private: ScheduleDtailInfo m_scheduleDtailInfo; QVector m_scheduleInfo; }; class scheduleitem : public ItemWidget { Q_OBJECT public: explicit scheduleitem(QWidget *parent = nullptr); private: void DrawItem(QPainter &painter) override; void drawScheduleColorLine(QPainter &painter); void drawTime(QPainter &painter); void drawDetails(QPainter &painter); protected: void mousePressEvent(QMouseEvent *event) override; signals: void signalItemPress(const ScheduleDtailInfo &info); private: const int m_timeLeftMargin = 13; const int m_timeTopMargin = 9; const int m_LineRightMargin = 84; const int m_DetailsRightMargin = 7; const int m_DetailsTopMargin = 7; const int m_DetailsWidth = 256; const int m_EllipsisWidth = 8; }; class scheduleitemdate : public QWidget { Q_OBJECT public: explicit scheduleitemdate(QWidget *parent = nullptr); void setScheduleDtailInfo(ScheduleDtailInfo &scheduelDtailInfo); QColor DetailsColor(); protected: void paintEvent(QPaintEvent *event); private: ScheduleDtailInfo m_scheduleDtailInfo; QColor m_DateTimeColor; const int m_LeftMargin = 13; }; #endif // CREATSHCEDULEITEM_H dde-calendar-5.9.1/schedule-plugin/src/widget/schedulelistwidget.cpp000066400000000000000000000045001423264401600255740ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 "schedulelistwidget.h" #include #include "modifyscheduleitem.h" #include "opencalendarwidget.h" #include "../globaldef.h" scheduleListWidget::scheduleListWidget(QWidget *parent) : IconDFrame(parent) { } void scheduleListWidget::setScheduleInfoVector(const QVector &ScheduleInfoVector) { m_ScheduleInfoVector = ScheduleInfoVector; updateUI(); } void scheduleListWidget::updateUI() { QVBoxLayout *layout = new QVBoxLayout(); layout->setSpacing(1); bool showOpenWidget = m_ScheduleInfoVector.size() > ITEM_SHOW_NUM; const int showcount = showOpenWidget ? ITEM_SHOW_NUM : m_ScheduleInfoVector.size(); for (int i = 0; i < showcount; ++i) { modifyScheduleItem *item = new modifyScheduleItem(); if (i == 0) { item->setPositon(ItemWidget::ItemTop); } else if (i == showcount - 1) { item->setPositon(ItemWidget::ItemBottom); } else { item->setPositon(ItemWidget::ItemMiddle); } item->setIndex(i + 1); item->setScheduleInfo(m_ScheduleInfoVector[i]); connect(item, &modifyScheduleItem::signalSendSelectScheduleIndex, this, &scheduleListWidget::signalSelectScheduleIndex); layout->addWidget(item); } if (showOpenWidget) { OpenCalendarWidget *openWidget = new OpenCalendarWidget(); openWidget->setScheduleCount(m_ScheduleInfoVector.size()); layout->addSpacing(6); layout->addWidget(openWidget); } this->setCenterLayout(layout); } dde-calendar-5.9.1/schedule-plugin/src/widget/schedulelistwidget.h000066400000000000000000000025111423264401600252410ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: uniontech * * Maintainer: uniontech * * 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 SCHEDULELISTWIDGET_H #define SCHEDULELISTWIDGET_H #include #include "../data/schedulestructs.h" #include "icondframe.h" DWIDGET_USE_NAMESPACE class scheduleListWidget : public IconDFrame { Q_OBJECT public: explicit scheduleListWidget(QWidget *parent = nullptr); void setScheduleInfoVector(const QVector &ScheduleInfoVector); void updateUI(); signals: void signalSelectScheduleIndex(int index); private: QVector m_ScheduleInfoVector; }; #endif // SCHEDULELISTWIDGET_H dde-calendar-5.9.1/schedule-plugin/src/widget/viewschedulewidget.cpp000066400000000000000000000253641423264401600256060ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "viewschedulewidget.h" #include "opencalendarwidget.h" #include #include #include "../globaldef.h" #include "../dbus/schedulesdbus.h" viewschedulewidget::viewschedulewidget(QWidget *parent) : IconDFrame(parent) { } viewschedulewidget::~viewschedulewidget() { } void viewschedulewidget::setScheduleDateRangeInfo(QVector &scheduleDateInfo) { m_scheduleDateInfo = scheduleDateInfo; } void viewschedulewidget::viewScheduleInfoShow(QVector m_showdate) { QVBoxLayout *mainlayout = new QVBoxLayout(); mainlayout->setSpacing(10); int scheduleNum = 0; QVector scheduleInfo; for (int i = 0; i < m_showdate.count(); i++) { for (int j = 0; j < m_showdate.at(i).vData.count(); j++) { scheduleInfo.append(m_showdate.at(i).vData.at(j)); scheduleNum++; if (scheduleNum == 10) break; } scheduleitemwidget *item = new scheduleitemwidget(); connect(item, &scheduleitemwidget::signalItemPress, this, &viewschedulewidget::slotItemPress); item->setScheduleDtailInfo(scheduleInfo); item->addscheduleitem(); mainlayout->addWidget(item); scheduleInfo.clear(); if (scheduleNum == 10) break; } if (getScheduleNum(m_showdate) > 10) { OpenCalendarWidget *openWidget = new OpenCalendarWidget(); openWidget->setScheduleCount(getScheduleNum(m_showdate)); mainlayout->addWidget(openWidget); } setCenterLayout(mainlayout); } int viewschedulewidget::getScheduleNum(QVector m_showdate) { int scheduleTotalNum = 0; for (int i = 0; i < m_showdate.count(); i++) { scheduleTotalNum += m_showdate.at(i).vData.count(); } return scheduleTotalNum; } void viewschedulewidget::setQueryBeginDateTime(QDateTime begindatetime) { m_beginDateTime = begindatetime; } void viewschedulewidget::setQueryEndDateTime(QDateTime enddatetime) { m_endDateTime = enddatetime; } QVector viewschedulewidget::getAllRpeatScheduleInfo(int rpeat) { QVector scheduleInfo; ScheduleDateRangeInfo scheduleDtailInfo; for (int i = 0; i < getAllScheduleInfo().count(); i++) { for (int j = 0; j < getAllScheduleInfo().at(i).vData.count(); j++) { if (getAllScheduleInfo().at(i).vData.at(j).rpeat == rpeat) { scheduleDtailInfo.vData.append(getAllScheduleInfo().at(i).vData.at(j)); } } if (scheduleDtailInfo.vData.count() > 0) scheduleInfo.append(scheduleDtailInfo); scheduleDtailInfo.vData.clear(); } return scheduleInfo; } QVector viewschedulewidget::getNextScheduleInfo() { //返回的日程信息 QVector showdate; //下一个日程当天的所有日程 ScheduleDateRangeInfo scheduleinfo; //当天最早的日程 ScheduleDateRangeInfo viewScheduleInfo; //下一个日程的时间 QTime earlyTime; //下一个日程的索引 int index = 0; //下一个日程的id int scheduleid = 0; scheduleinfo = getAllScheduleInfo().first(); earlyTime = scheduleinfo.vData.at(0).beginDateTime.time(); scheduleid = scheduleinfo.vData.at(0).id; //在一天的日程中筛选时间最早(如果时间最早有多个,取id最小的)的日程 for (int i = 1; i < scheduleinfo.vData.count(); i++) { QTime viewTime = scheduleinfo.vData.at(i).beginDateTime.time(); int viewScheduleid = scheduleinfo.vData.at(i).id; if (earlyTime > viewTime) { earlyTime = viewTime; index = i; } else if (earlyTime == viewTime) { if (scheduleid > viewScheduleid) { index = i; } } } //将筛选到的日程信息添加到当天最早的日程容器中 viewScheduleInfo.vData.append(scheduleinfo.vData.at(index)); showdate.append(viewScheduleInfo); return showdate; } void viewschedulewidget::slotItemPress(const ScheduleDtailInfo &info) { QProcess proc; proc.startDetached(PROCESS_OPEN_CALENDAR); QThread::msleep(750); QString schedulestr = CSchedulesDBus::createScheduleDtailInfojson(info); QDBusMessage message = QDBusMessage::createMethodCall(DBUS_CALENDAR_SERVICE, DBUS_CALENDAR_PATCH, DBUS_CALENDAR_INTFACE, "OpenSchedule"); message << schedulestr; //发送消息 QDBusMessage response = QDBusConnection::sessionBus().call(message); } QVector viewschedulewidget::queryScheduleWithTime(QVector &scheduleinfo, QTime beginT, QTime endT) { QVector scheduleDateInfo; ScheduleDateRangeInfo scheduleDInfo; for (int i = 0; i < scheduleinfo.count(); i++) { for (int j = 0; j < scheduleinfo.at(i).vData.count(); j++) { if (scheduleinfo.at(i).vData.at(j).beginDateTime.time() <= endT && scheduleinfo.at(i).vData.at(j).endDateTime.time() >= beginT) { scheduleDInfo.vData.append(scheduleinfo.at(i).vData.at(j)); } } if (scheduleDInfo.vData.count() > 0) scheduleDateInfo.append(scheduleDInfo); scheduleDInfo.vData.clear(); } return scheduleDateInfo; } QVector viewschedulewidget::queryScheduleWithDate(QVector &scheduleinfo, QDate beginD, QDate endD) { QVector scheduleDateInfo; ScheduleDateRangeInfo scheduleDInfo; for (int i = 0; i < scheduleinfo.count(); i++) { for (int j = 0; j < scheduleinfo.at(i).vData.count(); j++) { if (scheduleinfo.at(i).vData.at(j).beginDateTime.date() <= endD && scheduleinfo.at(i).vData.at(j).endDateTime.date() >= beginD) { scheduleDInfo.vData.append(scheduleinfo.at(i).vData.at(j)); } } if (scheduleDInfo.vData.count() > 0) scheduleDateInfo.append(scheduleDInfo); scheduleDInfo.vData.clear(); } return scheduleDateInfo; } QVector viewschedulewidget::queryScheduleWithWeek(QVector &scheduleinfo, QVector weekDay, int dayofweek, QTime beginT, QTime endT) { QVector scheduleDateInfo; ScheduleDateRangeInfo scheduleDInfo; for (int i = 0; i < scheduleinfo.count(); i++) { for (int j = 0; j < scheduleinfo.at(i).vData.count(); j++) { for (int k = 0; k < weekDay.count(); k++) { if (scheduleinfo.at(i).vData.at(j).beginDateTime.date().dayOfWeek() == weekDay[k]) { if (weekDay[k] == dayofweek) { if (scheduleinfo.at(i).vData.at(j).beginDateTime.time() <= endT && scheduleinfo.at(i).vData.at(j).endDateTime.time() >= beginT) { scheduleDInfo.vData.append(scheduleinfo.at(i).vData.at(j)); } } else { scheduleDInfo.vData.append(scheduleinfo.at(i).vData.at(j)); } break; } } } if (scheduleDInfo.vData.count() > 0) scheduleDateInfo.append(scheduleDInfo); scheduleDInfo.vData.clear(); } return scheduleDateInfo; } QVector viewschedulewidget::queryScheduleWithMonth(QVector &scheduleinfo, QVector monthDay, int dayofmonth, QTime beginT, QTime endT) { QVector scheduleDateInfo; ScheduleDateRangeInfo scheduleDInfo; for (int i = 0; i < scheduleinfo.count(); i++) { for (int j = 0; j < scheduleinfo.at(i).vData.count(); j++) { for (int k = 0; k < monthDay.count(); k++) { if (scheduleinfo.at(i).vData.at(j).beginDateTime.date().day() == monthDay[k]) { if (monthDay[k] == dayofmonth) { if (scheduleinfo.at(i).vData.at(j).beginDateTime.time() <= endT && scheduleinfo.at(i).vData.at(j).endDateTime.time() >= beginT) { scheduleDInfo.vData.append(scheduleinfo.at(i).vData.at(j)); } } else { scheduleDInfo.vData.append(scheduleinfo.at(i).vData.at(j)); } break; } } } if (scheduleDInfo.vData.count() > 0) scheduleDateInfo.append(scheduleDInfo); scheduleDInfo.vData.clear(); } return scheduleDateInfo; } QVector viewschedulewidget::getAllScheduleInfo() { //查询到的一天的日程 ScheduleDateRangeInfo showdate; //查询到的所有日程 QVector showDate; //判断查询到的日程是否有重复的 QVector allScheduleInfo; for (int i = 0; i < m_scheduleDateInfo.count(); i++) { for (int j = 0; j < m_scheduleDateInfo.at(i).vData.count(); j++) { if (!(m_scheduleDateInfo[i].vData[j].type.ID == 4 || allScheduleInfo.contains(m_scheduleDateInfo[i].vData[j]))) { //不是节假日并且allScheduleInfo中没有该日程 allScheduleInfo.append(m_scheduleDateInfo.at(i).vData.at(j)); showdate.vData.append(m_scheduleDateInfo.at(i).vData.at(j)); } } if (showdate.vData.count() > 0) { showDate.append(showdate); } showdate.vData.clear(); } for (int i = 0; i < showDate.count(); i++) { for (int j = 0; j < showDate.count() - i - 1; j++) { if (showDate[j].date > showDate[j + 1].date) std::swap(showDate[j], showDate[j + 1]); } } return showDate; } dde-calendar-5.9.1/schedule-plugin/src/widget/viewschedulewidget.h000066400000000000000000000053131423264401600252430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 VIEWSCHEDULEWIDGET_H #define VIEWSCHEDULEWIDGET_H #include #include "icondframe.h" #include "../data/schedulestructs.h" #include "scheduleitemwidget.h" class viewschedulewidget : public IconDFrame { Q_OBJECT public: explicit viewschedulewidget(QWidget *parent = nullptr); ~viewschedulewidget(); void setScheduleDateRangeInfo(QVector &scheduleDateInfo); void viewScheduleInfoShow(QVector m_showdate); int getScheduleNum(QVector m_showdate); void setQueryBeginDateTime(QDateTime begindatetime); void setQueryEndDateTime(QDateTime enddatetime); QVector queryScheduleWithTime(QVector &scheduleinfo, QTime beginT, QTime endT); QVector queryScheduleWithDate(QVector &scheduleinfo, QDate beginD, QDate endD); QVector queryScheduleWithWeek(QVector &scheduleinfo, QVector weekDay, int dayofweek = 0, QTime beginT = QTime(0, 0, 0), QTime endT = QTime(0, 0, 0)); QVector queryScheduleWithMonth(QVector &scheduleinfo, QVector monthDay, int dayofmonth = 0, QTime beginT = QTime(0, 0, 0), QTime endT = QTime(0, 0, 0)); QVector getAllScheduleInfo(); QVector getAllRpeatScheduleInfo(int rpeat); /** * @brief getNextScheduleInfo 获取下一个日程 * @return 下一个日程信息 */ QVector getNextScheduleInfo(); public slots: void slotItemPress(const ScheduleDtailInfo &info); private: QVector m_scheduleInfo; QVector m_scheduleDateInfo; QVector m_showdate; QDateTime m_beginDateTime; QDateTime m_endDateTime; }; #endif // QUERYSCHEDULEWIDGET_H dde-calendar-5.9.1/tests/000077500000000000000000000000001423264401600151755ustar00rootroot00000000000000dde-calendar-5.9.1/tests/CMakeLists.txt000066400000000000000000000011741423264401600177400ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) project(dde-calendar-test) set(ASAN_CMAKE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake) ADD_SUBDIRECTORY(dde-calendar-client-test) ADD_SUBDIRECTORY(dde-calendar-service-test) include_directories(third-party_stub) add_custom_target(test) add_custom_command(TARGET test COMMAND echo " =================== CREAT LCOV REPROT BEGIN ==================== " COMMAND ${CMAKE_BINARY_DIR}/tests/dde-calendar-client-test/dde-calendar-test COMMAND ${CMAKE_BINARY_DIR}/tests/dde-calendar-service-test/dde-calendar-service-test COMMAND echo " =================== TEST END ==================== " ) dde-calendar-5.9.1/tests/cmake-lcov-test.sh000066400000000000000000000013361423264401600205320ustar00rootroot00000000000000utdir=build-ut rm -r $utdir rm -r ../$utdir mkdir ../$utdir cd ../$utdir cmake -DCMAKE_BUILD_TYPE=Debug .. make -j16 ./tests/dde-calendar-client-test/dde-calendar-test --gtest_output=xml:./report/report_calendar_client.xml ./tests/dde-calendar-service-test/dde-calendar-service-test --gtest_output=xml:./report/report_calendar_service.xml workdir=$(cd ../$(dirname $0)/$utdir; pwd) mkdir -p report lcov -d $workdir -c -o ./report/coverage.info lcov --extract ./report/coverage.info '*/calendar-basicstruct/*' '*/calendar-client/*' '*/calendar-service/*' '*/schedule-plugin/*' -o ./report/coverage.info lcov --remove ./report/coverage.info '*/tests/*' -o ./report/coverage.info genhtml -o ./report ./report/coverage.info exit 0dde-calendar-5.9.1/tests/cmake/000077500000000000000000000000001423264401600162555ustar00rootroot00000000000000dde-calendar-5.9.1/tests/cmake/asan.cmake000066400000000000000000000013051423264401600202000ustar00rootroot00000000000000set(CMAKE_SAFETYTEST "${CMAKE_SAFETYTEST_ARG}") if(CMAKE_SAFETYTEST STREQUAL "") set(CMAKE_SAFETYTEST "CMAKE_SAFETYTEST_ARG_OFF") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${CMAKE_SAFETYTEST}") if(CMAKE_SAFETYTEST STREQUAL "CMAKE_SAFETYTEST_ARG_ON") #安全测试选项 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fsanitize=undefined,address -O2") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fsanitize=undefined,address -O2") endif() #安全编译参数 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong -D_FORTITY_SOURCE=1 -z noexecstack -pie -fPIC -z lazy") # 设置添加gocv相关信息的输出 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage")dde-calendar-5.9.1/tests/dde-calendar-client-test/000077500000000000000000000000001423264401600217315ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/CMakeLists.txt000066400000000000000000000042011423264401600244660ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) #common resource names project(dde-calendar-client-test) ADD_COMPILE_OPTIONS(-fno-access-control) set(APP_CLIENT_DIR "${CMAKE_SOURCE_DIR}/calendar-client") set(APP_RES_DIR "${APP_CLIENT_DIR}/assets") set(APP_QRC "${APP_RES_DIR}/resources.qrc") set(APP_BIN_NAME "dde-calendar-test") set(PROJECT_NAME_TEST ${APP_BIN_NAME}) find_package(PkgConfig REQUIRED) find_package(DtkCore REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Widgets REQUIRED) find_package(Qt5DBus REQUIRED) find_package(Qt5Svg REQUIRED) find_package(DtkWidget REQUIRED) find_package(DtkGui REQUIRED) find_package(DFrameworkdbus REQUIRED) find_package(GTest REQUIRED) find_package(Qt5Test REQUIRED) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--as-needed -fPIE") set(CMAKE_EXE_LINKER_FLAGS "-pie") include_directories(${APP_CLIENT_DIR}/src) SUBDIRLIST(all_src ${APP_CLIENT_DIR}/src) #Include all app own subdirectorys foreach(subdir ${all_src}) include_directories(${APP_CLIENT_DIR}/src/${subdir}) endforeach() file(GLOB_RECURSE Calendar_SRC ${APP_CLIENT_DIR}/src/*.cpp) include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS}) list(REMOVE_ITEM Calendar_SRC ${APP_CLIENT_DIR}/src/main.cpp) #test SRC SUBDIRLIST(TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src) foreach(subdir ${TEST_SRC}) include_directories(${subdir}) endforeach() file(GLOB_RECURSE Calendar_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) include_directories(../../calendar-basicstruct/) list(APPEND CMAKE_MODULE_PATH "${ASAN_CMAKE_DIR}") include(asan) # Tell CMake to create the executable add_executable(${APP_BIN_NAME} ${Calendar_TEST_SRC} ${Calendar_SRC} ${APP_QRC}) target_include_directories(${APP_BIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${OBJECT_BINARY_DIR}) target_link_libraries(${APP_BIN_NAME} ${DtkWidget_LIBRARIES} ${DtkCore_LIBRARIES} ${DtkGui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Svg_LIBRARIES} ${Qt5DBus_LIBRARIES} ${DFrameworkdbus_LIBRARIES} ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} Qt5::Test pthread basestruct ) dde-calendar-5.9.1/tests/dde-calendar-client-test/src/000077500000000000000000000000001423264401600225205ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/client_main.cpp000066400000000000000000000023641423264401600255130ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "gtest/gtest.h" #if defined(CMAKE_SAFETYTEST_ARG_ON) #include #endif #include DWIDGET_USE_NAMESPACE int main(int argc, char **argv) { qputenv("QT_QPA_PLATFORM", "offscreen"); DApplication application(argc, argv); ::testing::InitGoogleTest(&argc, argv); int ret = RUN_ALL_TESTS(); #if defined(CMAKE_SAFETYTEST_ARG_ON) __sanitizer_set_report_path("asan.log"); #endif return ret; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/cscheduledbusstub.cpp000066400000000000000000000040211423264401600267340ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "cscheduledbusstub.h" #include "cscheduledbus.h" #include qint64 CreateJob_stub(void *obj, const ScheduleDataInfo &info) { Q_UNUSED(obj) Q_UNUSED(info) return 1; } bool UpdateJob_stub(void *obj, const ScheduleDataInfo &info) { Q_UNUSED(obj) Q_UNUSED(info) return true; } bool DeleteJob_stub(void *obj, qint64 jobId) { Q_UNUSED(obj) Q_UNUSED(jobId) return true; } bool GetJob_stub(void *obj, qint64 jobId, ScheduleDataInfo &out) { Q_UNUSED(obj) Q_UNUSED(jobId) Q_UNUSED(out) return true; } bool QueryJobs_stub(void *obj, QString key, QDateTime starttime, QDateTime endtime, QMap> &out) { Q_UNUSED(obj) Q_UNUSED(key) Q_UNUSED(starttime) Q_UNUSED(endtime) Q_UNUSED(out) return true; } void cscheduleDbusStub(Stub &stub) { stub.set(ADDR(CScheduleDBus, CreateJob), CreateJob_stub); stub.set(ADDR(CScheduleDBus, UpdateJob), UpdateJob_stub); stub.set(ADDR(CScheduleDBus, DeleteJob), DeleteJob_stub); stub.set(ADDR(CScheduleDBus, GetJob), GetJob_stub); stub.set((bool (CScheduleDBus::*)(QString, QDateTime, QDateTime, QMap> &))ADDR(CScheduleDBus, QueryJobs), QueryJobs_stub); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/cscheduledbusstub.h000066400000000000000000000017101423264401600264030ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 CSCHEDULEDBUSSTUB_H #define CSCHEDULEDBUSSTUB_H #include "../third-party_stub/stub.h" void cscheduleDbusStub(Stub &stub); #endif // CSCHEDULEDBUSSTUB_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/dialog_stub.cpp000066400000000000000000000023231423264401600255200ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "dialog_stub.h" #include "dialog/dcalendarddialog.h" #include "dialog/myscheduleview.h" #include int calendarDDialogExecReturn = 0; int calendar_DDialog_Exec_stub(void *obj) { Q_UNUSED(obj) return calendarDDialogExecReturn; } void calendarDDialogExecStub(Stub &stub) { typedef int (*fptr)(DDialog *); fptr A_foo = (fptr)(&DDialog::exec); stub.set(A_foo, calendar_DDialog_Exec_stub); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/dialog_stub.h000066400000000000000000000020731423264401600251670ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 DIALOG_STUB_H #define DIALOG_STUB_H #include "../third-party_stub/stub.h" //DCalendarDDialog //对话框 exec 打桩 int calendar_DDialog_Exec_stub(void *obj); void calendarDDialogExecStub(Stub &stub); extern int calendarDDialogExecReturn; #endif // DIALOG_STUB_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_configsettings.cpp000066400000000000000000000027751423264401600273240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_configsettings.h" test_configsettings::test_configsettings() { } test_configsettings::~test_configsettings() { } void test_configsettings::SetUp() { conf = CConfigSettings::getInstance(); } void test_configsettings::TearDown() { } void stub_Handle() { } void setValue_stub(void *obj, const QString &key, const QVariant &value) { Q_UNUSED(obj) Q_UNUSED(key) Q_UNUSED(value)} //void CConfigSettings::sync() TEST_F(test_configsettings, sync) { Stub stub; stub.set(ADDR(CConfigSettings, sync), stub_Handle); conf->sync(); } TEST_F(test_configsettings, setOption) { Stub stub; stub.set(ADDR(QSettings, setValue), setValue_stub); conf->setOption("base.state", 0); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_configsettings.h000066400000000000000000000023311423264401600267550ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_CONFIGSETTINGS_H #define TEST_CONFIGSETTINGS_H #include "configsettings.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include class test_configsettings : public QObject, public::testing::Test { public: test_configsettings(); ~test_configsettings(); void SetUp() override; void TearDown() override; protected: CConfigSettings *conf = nullptr; }; #endif // TEST_CONFIGSETTINGS_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_cscheduleoperation.cpp000066400000000000000000000152141423264401600301460ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_cscheduleoperation.h" #include "cscheduledbus.h" #include "dialog/dcalendarddialog.h" #include "schedulectrldlg.h" #include "dialog_stub.h" #include "cscheduledbusstub.h" test_cscheduleoperation::test_cscheduleoperation() { } test_cscheduleoperation::~test_cscheduleoperation() { } namespace ScheduleTestBtnNum { static int button_num = 0; } int clickButton_stub(void *obj) { Q_UNUSED(obj) return ScheduleTestBtnNum::button_num; } void test_cscheduleoperation::SetUp() { cscheduleDbusStub(stub); } void test_cscheduleoperation::TearDown() { } TEST_F(test_cscheduleoperation, createSchedule) { ScheduleDataInfo info; operation.createSchedule(info); } TEST_F(test_cscheduleoperation, changeSchedule) { calendarDDialogExecStub(stub); stub.set(ADDR(CScheduleCtrlDlg, clickButton), clickButton_stub); ScheduleDataInfo info; QDate current = QDate::currentDate(); info.setBeginDateTime(QDateTime(current, QTime(0, 0, 0))); info.setEndDateTime(QDateTime(current, QTime(23, 59, 59))); info.setTitleName(tr("New Event")); info.setAllDay(true); info.setRemindData(RemindData(1, QTime(9, 0))); info.setID(0); info.setRecurID(0); ScheduleDataInfo newinfo = info; newinfo.setTitleName(tr("test")); newinfo.setAllDay(false); info.getRepetitionRule().setRuleId(RepetitionRule::RRule_NONE); ScheduleTestBtnNum::button_num = 0; operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 1; operation.changeSchedule(newinfo, info); newinfo.setAllDay(true); operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 0; newinfo.getRepetitionRule().setRuleId(RepetitionRule::RRule_EVEDAY); operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 1; operation.changeSchedule(newinfo, info); info.getRepetitionRule().setRuleId(RepetitionRule::RRule_EVEDAY); operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 0; operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 2; operation.changeSchedule(newinfo, info); newinfo.setRecurID(2); ScheduleTestBtnNum::button_num = 0; operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 1; operation.changeSchedule(newinfo, info); ScheduleTestBtnNum::button_num = 2; operation.changeSchedule(newinfo, info); } TEST_F(test_cscheduleoperation, changeSchedule_01) { calendarDDialogExecStub(stub); ScheduleDataInfo oldInfo; ScheduleDataInfo newInfo; oldInfo.setAllDay(true); oldInfo.m_ScheduleRRule.setRuleId(RepetitionRule::RRule_NONE); newInfo.setAllDay(false); newInfo.m_ScheduleRRule.setRuleId(RepetitionRule::RRule_EVEDAY); operation.changeSchedule(oldInfo, newInfo); } TEST_F(test_cscheduleoperation, deleteSchedule) { calendarDDialogExecStub(stub); stub.set(ADDR(CScheduleCtrlDlg, clickButton), clickButton_stub); ScheduleDataInfo info; QDate current = QDate::currentDate(); info.setBeginDateTime(QDateTime(current, QTime(0, 0, 0))); info.setEndDateTime(QDateTime(current, QTime(23, 59, 59))); info.setTitleName(tr("New Event")); info.setAllDay(true); info.setRemindData(RemindData(1, QTime(9, 0))); info.setID(0); info.setRecurID(0); ScheduleTestBtnNum::button_num = 0; operation.deleteSchedule(info); ScheduleTestBtnNum::button_num = 1; operation.deleteSchedule(info); //删除重复日程 info.getRepetitionRule().setRuleId(RepetitionRule::RRule_EVEDAY); ScheduleTestBtnNum::button_num = 0; operation.deleteSchedule(info); ScheduleTestBtnNum::button_num = 1; operation.deleteSchedule(info); ScheduleTestBtnNum::button_num = 2; operation.deleteSchedule(info); info.setRecurID(2); ScheduleTestBtnNum::button_num = 0; operation.deleteSchedule(info); ScheduleTestBtnNum::button_num = 1; operation.deleteSchedule(info); ScheduleTestBtnNum::button_num = 2; operation.deleteSchedule(info); } TEST_F(test_cscheduleoperation, queryScheduleStr) { QDateTime currenttime = QDateTime::currentDateTime(); operation.queryScheduleStr("", currenttime, currenttime); } TEST_F(test_cscheduleoperation, deleteOnlyInfo_01) { ScheduleDataInfo info; operation.deleteOnlyInfo(info); } TEST_F(test_cscheduleoperation, deleteOnlyInfo_02) { ScheduleDataInfo info; info.m_ScheduleRRule.setRuleId(RepetitionRule::RRule_EVEDAY); operation.deleteOnlyInfo(info); } TEST_F(test_cscheduleoperation, deleteOnlyInfo_03) { ScheduleDataInfo info; info.setType(4); operation.deleteOnlyInfo(info); } TEST_F(test_cscheduleoperation, queryScheduleInfo_01) { ScheduleDataInfo info; QDateTime date; QMap> map; operation.queryScheduleInfo("", date, date, map); } TEST_F(test_cscheduleoperation, updateJobType_01) { calendarDDialogExecStub(stub); JobTypeInfo oldInfo(0); JobTypeInfo newInfo; operation.updateJobType(oldInfo, newInfo); } TEST_F(test_cscheduleoperation, updateJobType_02) { calendarDDialogExecStub(stub); JobTypeInfo oldInfo(1); JobTypeInfo newInfo(1); EXPECT_TRUE(operation.updateJobType(oldInfo, newInfo)); } TEST_F(test_cscheduleoperation, updateJobType_03) { calendarDDialogExecStub(stub); JobTypeInfo oldInfo(1, "", 10); JobTypeInfo newInfo(0, "", 0); operation.updateJobType(oldInfo, newInfo); EXPECT_EQ(oldInfo.getColorTypeNo(), newInfo.getColorTypeNo()); } TEST_F(test_cscheduleoperation, updateJobType_04) { calendarDDialogExecStub(stub); JobTypeInfo oldInfo(1, "", 5); JobTypeInfo newInfo(0, "", 0); operation.updateJobType(oldInfo, newInfo); EXPECT_TRUE(newInfo.getColorTypeNo() != 5); } TEST_F(test_cscheduleoperation, updateJobType_05) { calendarDDialogExecStub(stub); JobTypeInfo oldInfo(1, "", 5); operation.updateJobType(oldInfo); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_cscheduleoperation.h000066400000000000000000000024451423264401600276150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CSCHEDULEOPERATION_H #define TEST_CSCHEDULEOPERATION_H #include "../third-party_stub/stub.h" #include "scheduleTask/cscheduleoperation.h" #include "gtest/gtest.h" #include class test_cscheduleoperation : public QObject , public ::testing::Test { public: test_cscheduleoperation(); ~test_cscheduleoperation(); void SetUp() override; void TearDown() override; public: CScheduleOperation operation; public: Stub stub; }; #endif // TEST_CSCHEDULEOPERATION_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/000077500000000000000000000000001423264401600262355ustar00rootroot00000000000000test_animationstackedwidget.cpp000066400000000000000000000063711423264401600344520ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_animationstackedwidget.h" test_animationstackedwidget::test_animationstackedwidget() { } test_animationstackedwidget::~test_animationstackedwidget() { } //void AnimationStackedWidget::setDuration(int duration) TEST_F(test_animationstackedwidget, setDuration) { mAnimationStackedWidget->setDuration(400); } //void AnimationStackedWidget::animationFinished() TEST_F(test_animationstackedwidget, animationfinished) { mAnimationStackedWidget->animationFinished(); } //void AnimationStackedWidget::setCurrent(int index) TEST_F(test_animationstackedwidget, setCurrent) { mAnimationStackedWidget->setCurrent(4); } //void AnimationStackedWidget::setPre() TEST_F(test_animationstackedwidget, setPre) { mAnimationStackedWidget->setPre(); } //void AnimationStackedWidget::setNext() TEST_F(test_animationstackedwidget, setNext) { mAnimationStackedWidget->setNext(); } //void AnimationStackedWidget::setCurrentWidget(int &index, int beginWidth) TEST_F(test_animationstackedwidget, setCurrentWidget) { int index = 2; mAnimationStackedWidget->setCurrentWidget(index, 8); } //int AnimationStackedWidget::getBeginValue() TEST_F(test_animationstackedwidget, getBeginValue) { mAnimationStackedWidget->getBeginValue(); } //AnimationStackedWidget::MoveOrientation AnimationStackedWidget::getMoveOrientation(const int currIndex, const int nextIndex) TEST_F(test_animationstackedwidget, getMoveOrientation) { mAnimationStackedWidget->getMoveOrientation(2, 4); } //double AnimationStackedWidget::offset() const TEST_F(test_animationstackedwidget, offset) { mAnimationStackedWidget->offset(); } //void AnimationStackedWidget::setOffset(double offset) TEST_F(test_animationstackedwidget, setOffset) { mAnimationStackedWidget->setOffset(2.0); } TEST_F(test_animationstackedwidget,animationtest) { mAnimationStackedWidget->setCurrentIndex(0); mAnimationStackedWidget->setDuration(250); mAnimationStackedWidget->setCurrent(1); mAnimationStackedWidget->setFixedSize(500, 800); QPixmap pixmap(mAnimationStackedWidget->size()); for (int i = 0; i <10; ++i) { mAnimationStackedWidget->setOffset(i); pixmap = mAnimationStackedWidget->grab(); } mAnimationStackedWidget->setCurrentIndex(1); mAnimationStackedWidget->setCurrent(0); for (int i = 0; i <10; ++i) { mAnimationStackedWidget->setOffset(i); pixmap = mAnimationStackedWidget->grab(); } } test_animationstackedwidget.h000066400000000000000000000034251423264401600341140ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_ANIMATIONSTACKEDWIDGET_H #define TEST_ANIMATIONSTACKEDWIDGET_H #include #include #include "customWidget/animationstackedwidget.h" class test_animationstackedwidget: public::QObject, public::testing::Test { public: test_animationstackedwidget(); ~test_animationstackedwidget(); virtual void SetUp() { mAnimationStackedWidget = new AnimationStackedWidget(); widget1 = new QWidget(mAnimationStackedWidget); widget2 = new QWidget(mAnimationStackedWidget); mAnimationStackedWidget->addWidget(widget1); mAnimationStackedWidget->addWidget(widget2); } virtual void TearDown() { delete mAnimationStackedWidget; mAnimationStackedWidget = nullptr; } protected: AnimationStackedWidget *mAnimationStackedWidget = nullptr; QWidget *widget1 = nullptr; QWidget *widget2 = nullptr; }; #endif // TEST_ANIMATIONSTACKEDWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_ccustomtimeedit.cpp000066400000000000000000000041271423264401600332060ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ccustomtimeedit.h" #include #include void test_CCustomTimeEdit::SetUp() { m_timeEdit = new CCustomTimeEdit(); } void test_CCustomTimeEdit::TearDown() { delete m_timeEdit; m_timeEdit = nullptr; } //mouseEventTest TEST_F(test_CCustomTimeEdit, mouseEventTest) { QWidget *widget = new QWidget(); m_timeEdit->setParent(widget); QTest::mousePress(m_timeEdit, Qt::LeftButton); QTest::mouseRelease(m_timeEdit, Qt::LeftButton); QTest::mouseDClick(m_timeEdit, Qt::LeftButton); QTest::mouseRelease(m_timeEdit, Qt::LeftButton); m_timeEdit->setParent(nullptr); delete widget; } TEST_F(test_CCustomTimeEdit,focusInEvent) { QFocusEvent focusEvent_in(QEvent::FocusIn,Qt::FocusReason::ActiveWindowFocusReason); QApplication::sendEvent(m_timeEdit,&focusEvent_in); } TEST_F(test_CCustomTimeEdit,focusOutEvent) { QFocusEvent focusEvent_out( QEvent::FocusOut,Qt::FocusReason::TabFocusReason); QApplication::sendEvent(m_timeEdit,&focusEvent_out); } TEST_F(test_CCustomTimeEdit,keyPressEvent) { QWidget *widget = new QWidget(); m_timeEdit->setParent(widget); QKeyEvent keyevent(QEvent::KeyPress,Qt::Key_Left,Qt::NoModifier); QApplication::sendEvent(m_timeEdit,&keyevent); m_timeEdit->setParent(nullptr); delete widget; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_ccustomtimeedit.h000066400000000000000000000024541423264401600326540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CCUSTOMTIMEEDIT_H #define TEST_CCUSTOMTIMEEDIT_H #include #include "customWidget/ccustomtimeedit.h" #include class test_CCustomTimeEdit : public QObject , public testing::Test { Q_OBJECT public: explicit test_CCustomTimeEdit(QObject *parent = nullptr) : QObject(parent) { }; void SetUp() override; void TearDown() override; signals: public slots: public: CCustomTimeEdit *m_timeEdit = nullptr; }; #endif // TEST_CCUSTOMTIMEEDIT_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cdateedit.cpp000066400000000000000000000100161423264401600317240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_cdateedit.h" test_cdateedit::test_cdateedit(QObject *parent) : QObject(parent) { } TEST_F(test_cdateedit, setDate_001) { QDate date = QDate(2022, 4, 20); mWidget->setDate(date); EXPECT_EQ(mWidget->date().toString(), date.toString()); } TEST_F(test_cdateedit, setDisplayFormat_001) { mWidget->setDisplayFormat("123"); EXPECT_EQ(mWidget->m_format, "123") << "123"; mWidget->setDisplayFormat("yyyy/MM/dd"); EXPECT_EQ(mWidget->m_format, "yyyy/MM/dd") << "yyyy/MM/dd"; } TEST_F(test_cdateedit, displayFormat_001) { mWidget->setDisplayFormat("123"); EXPECT_EQ(mWidget->displayFormat(), "123") << "123"; mWidget->setDisplayFormat("yyyy/MM/dd"); EXPECT_EQ(mWidget->displayFormat(), "yyyy/MM/dd") << "yyyy/MM/dd"; } TEST_F(test_cdateedit, setLunarCalendarStatus_001) { mWidget->setLunarCalendarStatus(true); EXPECT_TRUE(mWidget->m_showLunarCalendar) << "true"; mWidget->setLunarCalendarStatus(false); EXPECT_FALSE(mWidget->m_showLunarCalendar) << "false"; } TEST_F(test_cdateedit, setLunarTextFormat_001) { QTextCharFormat format; mWidget->setLunarTextFormat(format); EXPECT_EQ(mWidget->m_lunarTextFormat, format); } TEST_F(test_cdateedit, getsetLunarTextFormat_001) { QTextCharFormat format; mWidget->setLunarTextFormat(format); EXPECT_EQ(mWidget->getsetLunarTextFormat(), format); } TEST_F(test_cdateedit, setCalendarPopup_001) { mWidget->setCalendarPopup(true); } TEST_F(test_cdateedit, slotDateEidtInfo_001) { mWidget->setLunarCalendarStatus(true); mWidget->slotDateEidtInfo(QDate()); } TEST_F(test_cdateedit, slotDateEidtInfo_002) { mWidget->setLunarCalendarStatus(false); mWidget->slotDateEidtInfo(QDate()); } TEST_F(test_cdateedit, slotRefreshLineEditTextFormat_001) { mWidget->setLunarCalendarStatus(true); mWidget->slotRefreshLineEditTextFormat("1232/23/13"); } TEST_F(test_cdateedit, slotCursorPositionChanged_001) { mWidget->setLunarCalendarStatus(true); mWidget->slotCursorPositionChanged(0, 2); } TEST_F(test_cdateedit, slotCursorPositionChanged_002) { mWidget->setLunarCalendarStatus(false); mWidget->slotCursorPositionChanged(0, 2); } TEST_F(test_cdateedit, slotCursorPositionChanged_003) { mWidget->setLunarCalendarStatus(true); mWidget->selectAll(); mWidget->slotCursorPositionChanged(2, 4); } TEST_F(test_cdateedit, slotSelectionChanged_001) { mWidget->setLunarCalendarStatus(true); mWidget->selectAll(); mWidget->slotSelectionChanged(); } TEST_F(test_cdateedit, slotSelectionChanged_002) { mWidget->setLunarCalendarStatus(false); mWidget->selectAll(); mWidget->slotSelectionChanged(); } TEST_F(test_cdateedit, getLunarName_001) { mWidget->setLunarCalendarStatus(false); mWidget->getLunarName(QDate(2022, 4, 20)); } TEST_F(test_cdateedit, setLineEditTextFormat_001) { mWidget->setLineEditTextFormat(mWidget->lineEdit(), QList()); } TEST_F(test_cdateedit, updateCalendarWidget_001) { mWidget->setCalendarPopup(true); mWidget->setLunarCalendarStatus(true); mWidget->updateCalendarWidget(); } TEST_F(test_cdateedit, updateCalendarWidget_002) { mWidget->setCalendarPopup(true); mWidget->setLunarCalendarStatus(false); mWidget->updateCalendarWidget(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cdateedit.h000066400000000000000000000024331423264401600313750ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEXT_CDATEEDIT_H #define TEXT_CDATEEDIT_H #include "cdateedit.h" #include #include #include class test_cdateedit : public QObject, public::testing::Test { Q_OBJECT public: explicit test_cdateedit(QObject *parent = nullptr); virtual void SetUp() { mWidget = new CDateEdit(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: CDateEdit *mWidget = nullptr; }; #endif // TEXT_CDATEEDIT_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cdynamicicon.cpp000066400000000000000000000025431423264401600324440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_cdynamicicon.h" test_cdynamicicon::test_cdynamicicon() { mDynamicicon = new CDynamicIcon(8, 8); } test_cdynamicicon::~test_cdynamicicon() { delete mDynamicicon; mDynamicicon = nullptr; } //void CDynamicIcon::setDate(const QDate &date) TEST_F(test_cdynamicicon, setDate) { mDynamicicon->setDate(QDate::currentDate()); } //void CDynamicIcon::setTitlebar(DTitlebar *titlebar) TEST_F(test_cdynamicicon, setTitlebar) { DTitlebar *titlebar; mDynamicicon->setTitlebar(titlebar); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cdynamicicon.h000066400000000000000000000022761423264401600321140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CDYNAMICICON_H #define TEST_CDYNAMICICON_H #include #include #include "customWidget/cdynamicicon.h" class test_cdynamicicon: public::QObject, public::testing::Test { public: test_cdynamicicon(); ~test_cdynamicicon(); protected: CDynamicIcon *mDynamicicon = nullptr; }; #endif // TEST_CDYNAMICICON_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/000077500000000000000000000000001423264401600315565ustar00rootroot00000000000000test_colorlabel.cpp000066400000000000000000000076701423264401600353720ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_colorlabel.h" test_colorlabel::test_colorlabel(QObject *parent) : QObject(parent) { } TEST_F(test_colorlabel, getColor_001) { ColorLabel *colorLabel = new ColorLabel(); EXPECT_EQ(colorLabel->getColor(0, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(1, 0.5, 0.5).name(), "#3f7e7f");; EXPECT_EQ(colorLabel->getColor(1, 0.2, 0.5).name(), "#667f7f"); EXPECT_EQ(colorLabel->getColor(1, 0.1, 0.9).name(), "#cee5e5"); EXPECT_EQ(colorLabel->getColor(1, 0.3, 0.4).name(), "#476566"); EXPECT_EQ(colorLabel->getColor(2, 0.5, 0.5).name(), "#3f7d7f"); EXPECT_EQ(colorLabel->getColor(0.5, 0.5, 0.5).name(), "#3f7e7f"); EXPECT_EQ(colorLabel->getColor(5, 0.5, 0.5).name(), "#3f7a7f"); EXPECT_EQ(colorLabel->getColor(1, 0.5, 0.5).name(), "#3f7e7f"); EXPECT_EQ(colorLabel->getColor(10, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(60, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(120, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(180, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(241, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(305, 0, 0).name(), "#000000"); EXPECT_EQ(colorLabel->getColor(360, 0, 0).name(), "#000000"); delete colorLabel; } TEST_F(test_colorlabel, setHue_001) { ColorLabel *colorLabel = new ColorLabel(); colorLabel->setHue(1); EXPECT_EQ(1, colorLabel->m_hue); colorLabel->setHue(5); EXPECT_EQ(5, colorLabel->m_hue); colorLabel->setHue(100); EXPECT_EQ(100, colorLabel->m_hue); delete colorLabel; } TEST_F(test_colorlabel, pickColor) { ColorLabel *colorLabel = new ColorLabel(); colorLabel->pickColor(QPoint(), 0); delete colorLabel; } TEST_F(test_colorlabel, paintEvent_001) { ColorLabel *colorLabel = new ColorLabel(); QPaintEvent *e = new QPaintEvent(QRect()); colorLabel->m_entered = true; colorLabel->paintEvent(e); colorLabel->m_entered = false; colorLabel->paintEvent(e); delete e; delete colorLabel; } TEST_F(test_colorlabel, mousePressEvent_001) { ColorLabel *colorLabel = new ColorLabel(); QMouseEvent *e = new QMouseEvent(QEvent::MouseMove, QPointF(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); colorLabel->mousePressEvent(e); EXPECT_TRUE(colorLabel->m_pressed); delete e; delete colorLabel; } TEST_F(test_colorlabel, mouseMoveEvent) { ColorLabel *colorLabel = new ColorLabel(); QMouseEvent *e = new QMouseEvent(QEvent::MouseMove, QPointF(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); colorLabel->mouseMoveEvent(e); EXPECT_TRUE(colorLabel->m_entered); delete e; delete colorLabel; } TEST_F(test_colorlabel, mouseReleaseEvent_001) { ColorLabel *colorLabel = new ColorLabel(); QMouseEvent *e = new QMouseEvent(QEvent::MouseMove, QPointF(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); colorLabel->mouseReleaseEvent(e); EXPECT_FALSE(colorLabel->m_pressed); delete e; delete colorLabel; } TEST_F(test_colorlabel, pickColorCursor_001) { ColorLabel *colorLabel = new ColorLabel(); QCursor cursor = colorLabel->pickColorCursor(); EXPECT_NE(cursor, QCursor()); delete colorLabel; } test_colorlabel.h000066400000000000000000000021641423264401600350300ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_COLORLABEL_H #define TEST_COLORLABEL_H #include #include #include #include class test_colorlabel : public QObject, public::testing::Test { Q_OBJECT public: explicit test_colorlabel(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_COLORLABEL_H test_colorpickerwidget.cpp000066400000000000000000000054461423264401600367730ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_colorpickerwidget.h" test_colorpickerwidget::test_colorpickerwidget(QObject *parent) : QObject(parent) { } TEST_F(test_colorpickerwidget, getSelectedColor_001) { mWidget->slotUpdateColor(QColor("#000000")); EXPECT_EQ(mWidget->getSelectedColor(), "#000000") << "text: #000000"; mWidget->slotUpdateColor(QColor("#123456")); EXPECT_EQ(mWidget->getSelectedColor(), "#123456") << "text: #123456"; } TEST_F(test_colorpickerwidget, initUI_001) { mWidget->initUI(); EXPECT_EQ(140, mWidget->m_cancelBtn->width()) << "m_cancelBtn->width()"; EXPECT_EQ(36, mWidget->m_cancelBtn->height()) << "m_cancelBtn->height()"; EXPECT_FALSE(mWidget->m_colHexLineEdit->isClearButtonEnabled()) << "m_colHexLineEdit->isClearButtonEnabled()"; } TEST_F(test_colorpickerwidget, setColorHexLineEdit_001) { mWidget->setColorHexLineEdit(); EXPECT_TRUE(mWidget->m_colHexLineEdit->text().isEmpty()); } TEST_F(test_colorpickerwidget, slotUpdateColor) { mWidget->slotUpdateColor(QColor("#000000")); EXPECT_EQ(mWidget->m_colHexLineEdit->text(), "000000") << "text: #000000"; mWidget->slotUpdateColor(QColor("#123456")); EXPECT_EQ(mWidget->m_colHexLineEdit->text(), "123456") << "text: #123456"; } TEST_F(test_colorpickerwidget, slotHexLineEditChange_001) { mWidget->slotHexLineEditChange(""); EXPECT_FALSE(mWidget->m_enterBtn->isEnabled()); } TEST_F(test_colorpickerwidget, slotHexLineEditChange_002) { mWidget->slotHexLineEditChange("FFfF"); EXPECT_EQ(mWidget->m_colHexLineEdit->text(), "ffff") << "eq"; EXPECT_FALSE(mWidget->m_enterBtn->isEnabled()) << "false"; } TEST_F(test_colorpickerwidget, slotHexLineEditChange_003) { mWidget->slotHexLineEditChange("FFfFff"); EXPECT_EQ(mWidget->m_colHexLineEdit->text(), "ffffff") << "eq"; EXPECT_TRUE(mWidget->m_enterBtn->isEnabled()) << "true"; } TEST_F(test_colorpickerwidget, slotCancelBtnClicked_001) { mWidget->slotCancelBtnClicked(); } TEST_F(test_colorpickerwidget, slotEnterBtnClicked_001) { mWidget->slotEnterBtnClicked(); } test_colorpickerwidget.h000066400000000000000000000025511423264401600364320ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_COLORPICKERWIDGET_H #define TEST_COLORPICKERWIDGET_H #include #include #include #include class test_colorpickerwidget : public QObject, public::testing::Test { Q_OBJECT public: explicit test_colorpickerwidget(QObject *parent = nullptr); virtual void SetUp() { mWidget = new CColorPickerWidget(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: CColorPickerWidget *mWidget = nullptr; }; #endif // TEST_COLORPICKERWIDGET_H test_colorslider.cpp000066400000000000000000000034651423264401600355730ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_colorslider.h" test_colorslider::test_colorslider(QObject *parent) : QObject(parent) { } TEST_F(test_colorslider, getColor_001) { EXPECT_EQ(mWidget->getColor(0, 0, 0).name(), "#000000"); EXPECT_EQ(mWidget->getColor(1, 0.5, 0.5).name(), "#3f7e7f");; EXPECT_EQ(mWidget->getColor(1, 0.2, 0.5).name(), "#667f7f"); EXPECT_EQ(mWidget->getColor(1, 0.1, 0.9).name(), "#cee5e5"); EXPECT_EQ(mWidget->getColor(1, 0.3, 0.4).name(), "#476566"); EXPECT_EQ(mWidget->getColor(2, 0.5, 0.5).name(), "#3f7d7f"); EXPECT_EQ(mWidget->getColor(0.5, 0.5, 0.5).name(), "#3f7e7f"); EXPECT_EQ(mWidget->getColor(5, 0.5, 0.5).name(), "#3f7a7f"); EXPECT_EQ(mWidget->getColor(1, 0.5, 0.5).name(), "#3f7e7f"); EXPECT_EQ(mWidget->getColor(10, 0, 0).name(), "#000000"); EXPECT_EQ(mWidget->getColor(60, 0, 0).name(), "#000000"); EXPECT_EQ(mWidget->getColor(71, 0, 0).name(), "#000000"); } TEST_F(test_colorslider, paintEvent_001) { QPaintEvent *e = new QPaintEvent(QRect()); mWidget->paintEvent(e); delete e; } test_colorslider.h000066400000000000000000000024671423264401600352410ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEXT_COLORSLIDER_H #define TEXT_COLORSLIDER_H #include #include #include #include class test_colorslider : public QObject, public::testing::Test { Q_OBJECT public: explicit test_colorslider(QObject *parent = nullptr); virtual void SetUp() { mWidget = new ColorSlider(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: ColorSlider *mWidget = nullptr; }; #endif // TEXT_COLORSLIDER_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorseletorwidget.cpp000066400000000000000000000123041423264401600337200ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_colorseletorwidget.h" #include "../third-party_stub/stub.h" static int colorseletorwidget_stub_true() { return 1; } test_colorseletorwidget::test_colorseletorwidget(QObject *parent) : QObject(parent) { } TEST_F(test_colorseletorwidget, reset_001) { mWidget->reset(); EXPECT_TRUE(mWidget->m_colorEntityMap.isEmpty()); } TEST_F(test_colorseletorwidget, getSelectedColorInfo_001) { JobTypeColorInfo info(0, "#123456", 1); mWidget->m_colorInfo = info; EXPECT_TRUE(mWidget->getSelectedColorInfo() == info); } TEST_F(test_colorseletorwidget, setUserColor_001) { JobTypeColorInfo info(0, "#123456", ColorSeletorWidget::TypeSystem); mWidget->setUserColor(info); EXPECT_TRUE(mWidget->m_userColorBtn == nullptr); } TEST_F(test_colorseletorwidget, setUserColor_002) { JobTypeColorInfo info(0, "#123456", ColorSeletorWidget::TypeUser); mWidget->setUserColor(info); EXPECT_TRUE(mWidget->m_userColorBtn != nullptr); } TEST_F(test_colorseletorwidget, setSelectedColorByIndex_001) { mWidget->reset(); JobTypeColorInfo info(0, "#123456", ColorSeletorWidget::TypeUser); mWidget->setUserColor(info); mWidget->setSelectedColorByIndex(0); EXPECT_TRUE(mWidget->m_userColorBtn->isChecked()); } TEST_F(test_colorseletorwidget, setSelectedColorById_001) { mWidget->reset(); mWidget->addColor(JobTypeColorInfo(1, "#123456", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(2, "#111111", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(3, "#222222", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(4, "#333333", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(0, "#444444", ColorSeletorWidget::TypeUser)); mWidget->setSelectedColorById(0); EXPECT_TRUE(mWidget->m_userColorBtn->isChecked()) << "0"; mWidget->setSelectedColorById(3); EXPECT_FALSE(mWidget->m_userColorBtn->isChecked()) << "3"; } TEST_F(test_colorseletorwidget, setSelectedColor_001) { mWidget->reset(); mWidget->addColor(JobTypeColorInfo(1, "#123456", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(2, "#111111", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(3, "#222222", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(4, "#333333", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(0, "#444444", ColorSeletorWidget::TypeUser)); mWidget->setSelectedColor(JobTypeColorInfo(0, "#444444", ColorSeletorWidget::TypeUser)); EXPECT_TRUE(mWidget->m_userColorBtn->isChecked()) << "1"; mWidget->setSelectedColor((JobTypeColorInfo(4, "#333333", ColorSeletorWidget::TypeSystem))); EXPECT_FALSE(mWidget->m_userColorBtn->isChecked()) << "2"; mWidget->setSelectedColor((JobTypeColorInfo(4, "#555555", ColorSeletorWidget::TypeSystem))); EXPECT_TRUE(mWidget->m_userColorBtn->isChecked()) << "3"; } TEST_F(test_colorseletorwidget, initColorButton_001) { mWidget->initColorButton(); } TEST_F(test_colorseletorwidget, slotButtonClicked_001) { mWidget->reset(); mWidget->addColor(JobTypeColorInfo(1, "#123456", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(2, "#111111", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(3, "#222222", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(4, "#333333", ColorSeletorWidget::TypeSystem)); mWidget->addColor(JobTypeColorInfo(0, "#444444", ColorSeletorWidget::TypeUser)); mWidget->slotButtonClicked(1); mWidget->slotButtonClicked(6); } TEST_F(test_colorseletorwidget, slotAddColorButClicked_001) { typedef int (*fptr)(); fptr A_foo = (fptr)(&QDialog::exec); Stub stub; stub.set(A_foo, colorseletorwidget_stub_true); mWidget->slotAddColorButClicked(); EXPECT_TRUE(mWidget->m_userColorBtn->isChecked()); } TEST_F(test_colorseletorwidget, init_001) { mWidget->init(); } TEST_F(test_colorseletorwidget, initView_001) { mWidget->initView(); } TEST_F(test_colorseletorwidget, addColor_001) { mWidget->reset(); mWidget->addColor(JobTypeColorInfo(0, "", 1)); EXPECT_EQ(mWidget->m_colorEntityMap.size(), 1); } TEST_F(test_colorseletorwidget, addColor_002) { mWidget->reset(); mWidget->addColor(JobTypeColorInfo(0, "", ColorSeletorWidget::TypeUser)); EXPECT_EQ(mWidget->m_colorEntityMap.size(), 1) << "eq"; EXPECT_NE(mWidget->m_userColorBtn, nullptr) << "ne"; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_colorseletorwidget.h000066400000000000000000000025431423264401600333710ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_COLORSELETORWIDGET_H #define TEST_COLORSELETORWIDGET_H #include #include #include #include class test_colorseletorwidget : public QObject, public::testing::Test { Q_OBJECT public: explicit test_colorseletorwidget(QObject *parent = nullptr); virtual void SetUp() { mWidget = new ColorSeletorWidget(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: ColorSeletorWidget *mWidget = nullptr; }; #endif // TEST_COLORSELETORWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cpushbutton.cpp000066400000000000000000000042661423264401600323660ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_cpushbutton.h" test_cpushbutton::test_cpushbutton(QObject *parent) : QObject(parent) { } TEST_F(test_cpushbutton, setHighlight_001) { mWidget->setHighlight(true); EXPECT_TRUE(mWidget->m_Highlighted); } TEST_F(test_cpushbutton, setHighlight_002) { mWidget->setHighlight(false); EXPECT_FALSE(mWidget->m_Highlighted); } TEST_F(test_cpushbutton, isHighlight_001) { mWidget->setHighlight(true); EXPECT_TRUE(mWidget->isHighlight()); } TEST_F(test_cpushbutton, isHighlight_002) { mWidget->setHighlight(false); EXPECT_FALSE(mWidget->isHighlight()); } TEST_F(test_cpushbutton, mousePressEvent_001) { QMouseEvent *e = new QMouseEvent(QEvent::MouseMove, QPointF(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); mWidget->mousePressEvent(e); EXPECT_TRUE(mWidget->m_pressed); delete e; } TEST_F(test_cpushbutton, mouseReleaseEvent_001) { QMouseEvent *e = new QMouseEvent(QEvent::MouseMove, QPointF(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); mWidget->mouseReleaseEvent(e); EXPECT_FALSE(mWidget->m_pressed); delete e; } TEST_F(test_cpushbutton, paintEvent_001) { QPaintEvent *e = new QPaintEvent(QRect()); mWidget->setHighlight(true); mWidget->paintEvent(e); delete e; } TEST_F(test_cpushbutton, paintEvent_002) { QPaintEvent *e = new QPaintEvent(QRect()); mWidget->setHighlight(false); mWidget->paintEvent(e); delete e; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cpushbutton.h000066400000000000000000000024521423264401600320260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_CPUSHBUTTON_H #define TEST_CPUSHBUTTON_H #include "cpushbutton.h" #include #include #include class test_cpushbutton : public QObject, public::testing::Test { Q_OBJECT public: explicit test_cpushbutton(QObject *parent = nullptr); virtual void SetUp() { mWidget = new CPushButton(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: CPushButton *mWidget = nullptr; }; #endif // TEST_CPUSHBUTTON_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cradiobutton.cpp000066400000000000000000000026721423264401600325040ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_cradiobutton.h" test_cradiobutton::test_cradiobutton() { } TEST_F(test_cradiobutton, setColor_001) { QColor color("#000000"); mWidget->setColor(color); EXPECT_EQ(mWidget->getColor(), color); } TEST_F(test_cradiobutton, paintEvent_001) { QColor color("#000000"); mWidget->setColor(color); mWidget->setChecked(true); QPaintEvent *e = new QPaintEvent(QRect()); mWidget->paintEvent(e); delete e; } TEST_F(test_cradiobutton, paintEvent_002) { QColor color("#000000"); mWidget->setColor(color); mWidget->setChecked(false); QPaintEvent *e = new QPaintEvent(QRect()); mWidget->paintEvent(e); delete e; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_cradiobutton.h000066400000000000000000000023631423264401600321460ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_CRADIOBUTTON_H #define TEST_CRADIOBUTTON_H #include "cradiobutton.h" #include #include #include class test_cradiobutton: public::testing::Test { public: test_cradiobutton(); virtual void SetUp() { mWidget = new CRadioButton(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: CRadioButton *mWidget = nullptr; }; #endif // TEST_CRADIOBUTTON_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_ctitlewidget.cpp000066400000000000000000000055541423264401600325010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_ctitlewidget.h" test_ctitlewidget::test_ctitlewidget() { } TEST_F(test_ctitlewidget, setShowState_001) { mWidget->setShowState(CTitleWidget::Title_State_Mini); EXPECT_EQ(mWidget->m_showState, CTitleWidget::Title_State_Mini); } TEST_F(test_ctitlewidget, setShowState_002) { mWidget->setShowState(CTitleWidget::Title_State_Normal); EXPECT_EQ(mWidget->m_showState, CTitleWidget::Title_State_Normal); } TEST_F(test_ctitlewidget, buttonBox_001) { EXPECT_EQ(mWidget->buttonBox(), mWidget->m_buttonBox); } TEST_F(test_ctitlewidget, searchEdit_001) { EXPECT_EQ(mWidget->searchEdit(), mWidget->m_searchEdit); } TEST_F(test_ctitlewidget, stateUpdate_001) { mWidget->setShowState(CTitleWidget::Title_State_Mini); mWidget->stateUpdate(); } TEST_F(test_ctitlewidget, stateUpdate_002) { mWidget->setShowState(CTitleWidget::Title_State_Normal); mWidget->stateUpdate(); } TEST_F(test_ctitlewidget, miniStateShowSearchEdit_001) { mWidget->miniStateShowSearchEdit(); EXPECT_EQ(mWidget->width(), mWidget->m_searchEdit->maximumWidth()); } TEST_F(test_ctitlewidget, normalStateUpdateSearchEditWidth_001) { mWidget->normalStateUpdateSearchEditWidth(); EXPECT_NE(mWidget->width(), mWidget->m_searchEdit->maximumWidth()); } TEST_F(test_ctitlewidget, eventFilter_001) { DButtonBoxButton btn(""); QKeyEvent e(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier); mWidget->eventFilter(&btn, &e); EXPECT_NE(mWidget->width(), mWidget->m_searchEdit->maximumWidth()); } TEST_F(test_ctitlewidget, eventFilter_002) { QFocusEvent e(QEvent::FocusOut, Qt::TabFocusReason); mWidget->eventFilter(mWidget->m_searchEdit, &e); EXPECT_NE(mWidget->width(), mWidget->m_searchEdit->maximumWidth()); } TEST_F(test_ctitlewidget, slotShowSearchEdit_001) { mWidget->slotShowSearchEdit(); } TEST_F(test_ctitlewidget, slotSearchEditFocusChanged_001) { mWidget->slotSearchEditFocusChanged(true); } TEST_F(test_ctitlewidget, slotSearchEditFocusChanged_002) { mWidget->setShowState(CTitleWidget::Title_State_Mini); mWidget->slotSearchEditFocusChanged(false); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_ctitlewidget.h000066400000000000000000000023641423264401600321420ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_CTITLEWIDGET_H #define TEST_CTITLEWIDGET_H #include "ctitlewidget.h" #include #include #include class test_ctitlewidget: public::testing::Test { public: test_ctitlewidget(); virtual void SetUp() { mWidget = new CTitleWidget(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: CTitleWidget *mWidget = nullptr; }; #endif // TEST_CTITLEWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_customframe.cpp000066400000000000000000000046271423264401600323360ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_customframe.h" test_customframe::test_customframe() { mCustomFrame = new CustomFrame(); } test_customframe::~test_customframe() { delete mCustomFrame; mCustomFrame = nullptr; } //void CustomFrame::setBColor(QColor normalC) TEST_F(test_customframe, setBcolor) { mCustomFrame->setBColor(Qt::red); } //void CustomFrame::setRoundState(bool lstate, bool tstate, bool rstate, bool bstate) TEST_F(test_customframe, setRoundState) { mCustomFrame->setRoundState(true, true, true, true); } //void CustomFrame::setTextStr(QFont font, QColor tc, QString strc, int flag) TEST_F(test_customframe, setTextStr) { QFont font; mCustomFrame->setTextStr(font, Qt::red, "hello", 1); } //void CustomFrame::setTextStr(QString strc) TEST_F(test_customframe, setTextstr) { mCustomFrame->setTextStr("hello"); } //void CustomFrame::setTextColor(QColor tc) TEST_F(test_customframe, setTextColor) { mCustomFrame->setTextColor(Qt::red); } //void CustomFrame::setTextFont(QFont font) TEST_F(test_customframe, setTextFont) { QFont font; mCustomFrame->setTextFont(font); } //void CustomFrame::setTextAlign(int flag) TEST_F(test_customframe, setTextAlign) { mCustomFrame->setTextAlign(2); } //void CustomFrame::setRadius(int radius) TEST_F(test_customframe, setRadius) { mCustomFrame->setRadius(4); } //void CustomFrame::setboreder(int framew) TEST_F(test_customframe, setboreder) { mCustomFrame->setboreder(4); } //void CustomFrame::setFixedSize(int w, int h) TEST_F(test_customframe, setFixedSize) { mCustomFrame->setFixedSize(40, 44); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_customframe.h000066400000000000000000000022661423264401600320000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CUSTOMFRAME_H #define TEST_CUSTOMFRAME_H #include #include #include "customWidget/customframe.h" class test_customframe: public::QObject, public::testing::Test { public: test_customframe(); ~test_customframe(); protected: CustomFrame *mCustomFrame = nullptr; }; #endif // TEST_CUSTOMFRAME_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_jobtypecombobox.cpp000066400000000000000000000124551423264401600332140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_jobtypecombobox.h" #include "../third-party_stub/stub.h" static QList jobtypecombobox_stub_JobTypeInfos1() { QList infos; infos.push_back(JobTypeInfo(1, "1", 0, "#000000")); infos.push_back(JobTypeInfo(2)); infos.push_back(JobTypeInfo(3, "3", 2, "#000000")); return infos; } static QList jobtypecombobox_stub_JobTypeInfos2() { QList infos; infos.push_back(JobTypeInfo(1, "1", 0, "#000000")); infos.push_back(JobTypeInfo(2, "2", 1, "#000000")); infos.push_back(JobTypeInfo(3, "3", 2, "#000000")); return infos; } static int jobtypecombobox_stub_flase() { return 0; } test_jobtypecombobox::test_jobtypecombobox() { } TEST_F(test_jobtypecombobox, updateJobType_001) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); EXPECT_TRUE(mWidget->updateJobType()); } TEST_F(test_jobtypecombobox, getCurrentJobTypeNo_001) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos1); stub.set(ADDR(QComboBox, currentIndex), jobtypecombobox_stub_flase); mWidget->updateJobType(); mWidget->getCurrentJobTypeNo(); } TEST_F(test_jobtypecombobox, setCurrentJobTypeNo_001) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos1); mWidget->updateJobType(); mWidget->setCurrentJobTypeNo(3); } TEST_F(test_jobtypecombobox, slotBtnAddItemClicked_001) { mWidget->slotBtnAddItemClicked(); EXPECT_TRUE(mWidget->isEditable()); EXPECT_TRUE(mWidget->currentText().isEmpty()); } TEST_F(test_jobtypecombobox, showPopup_001) { mWidget->showPopup(); EXPECT_FALSE(mWidget->isEditable()); } TEST_F(test_jobtypecombobox, eventFilter_001) { QPointF point(1, 1); QEnterEvent e(point, point, point); mWidget->showPopup(); mWidget->eventFilter(mWidget->m_addBtn, &e); } TEST_F(test_jobtypecombobox, eventFilter_002) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); mWidget->updateJobType(); QPointF point(1, 1); QFocusEvent e(QEvent::FocusIn); mWidget->showPopup(); mWidget->eventFilter(mWidget->m_addBtn, &e); } TEST_F(test_jobtypecombobox, eventFilter_003) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); mWidget->updateJobType(); QPointF point(1, 1); QKeyEvent e(QEvent::KeyPress, Qt::Key_Up, Qt::NoModifier); mWidget->showPopup(); mWidget->m_addBtn->setHighlight(true); mWidget->eventFilter(mWidget->m_addBtn, &e); EXPECT_TRUE(mWidget->m_addBtn->isHighlight()); } TEST_F(test_jobtypecombobox, eventFilter_004) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); mWidget->updateJobType(); QPointF point(1, 1); QKeyEvent e(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier); mWidget->showPopup(); mWidget->m_addBtn->setHighlight(true); mWidget->eventFilter(mWidget->m_addBtn, &e); EXPECT_TRUE(mWidget->m_addBtn->isHighlight()); } TEST_F(test_jobtypecombobox, eventFilter_005) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); mWidget->updateJobType(); QPointF point(1, 1); QKeyEvent e(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier); mWidget->showPopup(); mWidget->m_addBtn->setHighlight(true); mWidget->eventFilter(mWidget->m_customWidget, &e); EXPECT_TRUE(mWidget->m_addBtn->isHighlight()); } TEST_F(test_jobtypecombobox, initUI_001) { mWidget->initUI(); EXPECT_FALSE(mWidget->isEditable()); } TEST_F(test_jobtypecombobox, addJobTypeItem_001) { mWidget->addJobTypeItem(1, "#000000", ""); } TEST_F(test_jobtypecombobox, addCustomWidget_001) { QFrame *viewContainer = mWidget->findChild(); mWidget->addCustomWidget(viewContainer); EXPECT_TRUE(mWidget->m_addBtn != nullptr); } TEST_F(test_jobtypecombobox, setItemSelectable_001) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); mWidget->updateJobType(); mWidget->showPopup(); mWidget->setItemSelectable(true); EXPECT_FALSE(mWidget->m_addBtn->isHighlight()); } TEST_F(test_jobtypecombobox, setItemSelectable_002) { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypecombobox_stub_JobTypeInfos2); mWidget->updateJobType(); mWidget->showPopup(); mWidget->setItemSelectable(false); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_jobtypecombobox.h000066400000000000000000000024131423264401600326520ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_JOBTYPECOMBOBOX_H #define TEST_JOBTYPECOMBOBOX_H #include "jobtypecombobox.h" #include #include #include class test_jobtypecombobox: public::testing::Test { public: test_jobtypecombobox(); virtual void SetUp() { mWidget = new JobTypeComboBox(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: JobTypeComboBox *mWidget = nullptr; }; #endif // TEST_JOBTYPECOMBOBOX_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_jobtypelistview.cpp000066400000000000000000000050241423264401600332440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_jobtypelistview.h" #include "cscheduleoperation.h" #include "../dialog_stub.h" static int jobtypelistview_stub_true(int) { return 1; } test_jobtypelistview::test_jobtypelistview() { } TEST_F(test_jobtypelistview, canAdd_001) { EXPECT_TRUE(mWidget->canAdd()); } TEST_F(test_jobtypelistview, viewportEvent_001) { QHoverEvent e(QEvent::HoverLeave, QPointF(0, 0), QPointF(0, 0)); mWidget->viewportEvent(&e); } TEST_F(test_jobtypelistview, viewportEvent_002) { QHoverEvent e(QEvent::HoverLeave, QPointF(0, 0), QPointF(0, 0)); mWidget->m_iIndexCurrentHover = 0; mWidget->viewportEvent(&e); } TEST_F(test_jobtypelistview, viewportEvent_003) { QHoverEvent e(QEvent::HoverMove, QPointF(1, 1), QPointF(1, 1)); mWidget->m_iIndexCurrentHover = 1; mWidget->viewportEvent(&e); } TEST_F(test_jobtypelistview, initUI_001) { mWidget->initUI(); } TEST_F(test_jobtypelistview, addJobTypeItem_001) { mWidget->addJobTypeItem(JobTypeInfo()); } TEST_F(test_jobtypelistview, slotUpdateJobType_001) { Stub stub; calendarDDialogExecStub(stub); mWidget->slotUpdateJobType(); } TEST_F(test_jobtypelistview, slotDeleteJobType_001) { mWidget->slotDeleteJobType(); } TEST_F(test_jobtypelistview, slotDeleteJobType_002) { mWidget->m_iIndexCurrentHover = 1; mWidget->slotDeleteJobType(); } TEST_F(test_jobtypelistview, slotDeleteJobType_003) { Stub stub; calendarDDialogExecStub(stub); stub.set(ADDR(CScheduleOperation, isJobTypeUsed), jobtypelistview_stub_true); mWidget->m_iIndexCurrentHover = 1; mWidget->slotDeleteJobType(); } TEST_F(test_jobtypelistview, updateJobType_003) { mWidget->m_iIndexCurrentHover = 1; mWidget->updateJobType(); EXPECT_EQ(mWidget->m_iIndexCurrentHover, -1); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_jobtypelistview.h000066400000000000000000000032601423264401600327110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_JOBTYPELISTVIEW_H #define TEST_JOBTYPELISTVIEW_H #include "jobtypelistview.h" #include "../third-party_stub/stub.h" #include #include #include static QList jobtypelistview_stub_JobTypeInfos() { QList infos; infos.push_back(JobTypeInfo(1, "1", 0, "#000000")); infos.push_back(JobTypeInfo(2, "2", 1, "#000000")); infos.push_back(JobTypeInfo(3, "3", 2, "#000000")); return infos; } class test_jobtypelistview: public::testing::Test { public: test_jobtypelistview(); void SetUp() { Stub stub; stub.set(ADDR(JobTypeInfoManager, getJobTypeList), jobtypelistview_stub_JobTypeInfos); mWidget = new JobTypeListView(); } void TearDown() { delete mWidget; mWidget = nullptr; } protected: JobTypeListView *mWidget = nullptr; }; #endif // TEST_JOBTYPELISTVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_labelwidget.cpp000066400000000000000000000020541423264401600322640ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_labelwidget.h" #include "../third-party_stub/stub.h" static int labelwidget_stub_true() { return 1; } test_labelwidget::test_labelwidget() { } TEST_F(test_labelwidget, paintEvent_001) { QPaintEvent e(QRect(0, 0, 0, 0)); mWidget->paintEvent(&e); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_labelwidget.h000066400000000000000000000023531423264401600317330ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_LABELWIDGET_H #define TEST_LABELWIDGET_H #include "labelwidget.h" #include #include #include class test_labelwidget: public::testing::Test { public: test_labelwidget(); virtual void SetUp() { mWidget = new LabelWidget(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: LabelWidget *mWidget = nullptr; }; #endif // TEST_LABELWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_lunarcalendarwidget.cpp000066400000000000000000000021461423264401600340220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_lunarcalendarwidget.h" test_lunarcalendarwidget::test_lunarcalendarwidget() { } TEST_F(test_lunarcalendarwidget, setLunarYearText_001) { mWidget->setLunarYearText("2023"); EXPECT_EQ(mWidget->lunarYearText(), "2023"); } TEST_F(test_lunarcalendarwidget, minimumSizeHint_001) { mWidget->minimumSizeHint(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_lunarcalendarwidget.h000066400000000000000000000024531423264401600334700ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_LUNARCALENDARWIDGET_H #define TEST_LUNARCALENDARWIDGET_H #include "lunarcalendarwidget.h" #include #include #include class test_lunarcalendarwidget: public::testing::Test { public: test_lunarcalendarwidget(); virtual void SetUp() { mWidget = new LunarCalendarWidget(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: LunarCalendarWidget *mWidget = nullptr; }; #endif // TEST_LUNARCALENDARWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_monthbrefwidget.cpp000066400000000000000000000140061423264401600331710ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_monthbrefwidget.h" #include #include #include #include test_monthbrefwidget::test_monthbrefwidget() { } test_monthbrefwidget::~test_monthbrefwidget() { } void test_monthbrefwidget::SetUp() { mMonthBrefWidget = new MonthBrefWidget(); mMonthDayRect = new CMonthDayRect(); } void test_monthbrefwidget::TearDown() { delete mMonthBrefWidget; mMonthBrefWidget = nullptr; delete mMonthDayRect; mMonthDayRect = nullptr; } QVector getDateList() { QDate currentdate = QDate::currentDate(); QVector dateList; for (int i = 0; i < 42; i++) { dateList.append(currentdate.addDays(i)); } return dateList; } QVector getBoolList() { QVector lineList; for (int i = 0; i < 42; i++) { if (i % 2 == 0) lineList.append(true); else lineList.append(false); } return lineList; } //void MonthBrefWidget::setDate(const int showMonth, const QVector &showDate) TEST_F(test_monthbrefwidget, setDate) { const int month = 4; mMonthBrefWidget->setDate(month, getDateList()); } //void MonthBrefWidget::setTheMe(int type) TEST_F(test_monthbrefwidget, setTheMe) { mMonthBrefWidget->setTheMe(1); mMonthBrefWidget->setTheMe(2); } //void MonthBrefWidget::setLintFlag(const QVector &lineFlag) TEST_F(test_monthbrefwidget, setLintFlag) { mMonthBrefWidget->setLintFlag(getBoolList()); } //void MonthBrefWidget::setSearchScheduleFlag(const QVector &searchFlag) TEST_F(test_monthbrefwidget, setSearchScheduleFlag) { mMonthBrefWidget->setSearchScheduleFlag(getBoolList()); } //void MonthBrefWidget::updateSize() TEST_F(test_monthbrefwidget, updateSize) { mMonthBrefWidget->updateSize(); } //int MonthBrefWidget::getMousePosItem(const QPointF &pos) TEST_F(test_monthbrefwidget, getMousePosItem) { QPointF pointf; mMonthBrefWidget->getMousePosItem(pointf); } //void MonthBrefWidget::mousePress(const QPoint &point TEST_F(test_monthbrefwidget, mousePress) { QPoint point; mMonthBrefWidget->mousePress(point); } //void CMonthDayRect::setTheMe(int type) TEST_F(test_monthbrefwidget, settheme) { mMonthDayRect->setTheMe(1); mMonthDayRect->setTheMe(2); } //void CMonthDayRect::setDate(const QDate &date) TEST_F(test_monthbrefwidget, setdate) { mMonthDayRect->setDate(QDate::currentDate()); } //QDate CMonthDayRect::getDate() const TEST_F(test_monthbrefwidget, getdate) { mMonthDayRect->setDate(QDate::currentDate()); mMonthDayRect->getDate(); } //void CMonthDayRect::setCellEvent(const CMonthDayRect::CellEventType &type) TEST_F(test_monthbrefwidget, setCellEvent) { mMonthDayRect->setCellEvent(CMonthDayRect::CellEventType::Cellhover); } //void CMonthDayRect::setIsCurrentMonth(const bool isCurrMonth) TEST_F(test_monthbrefwidget, setIsCurrentMonth) { mMonthDayRect->setIsCurrentMonth(true); } //QRectF CMonthDayRect::rect() const TEST_F(test_monthbrefwidget, rect) { mMonthDayRect->setRect(QRect(10, 10, 8, 8)); mMonthDayRect->rect(); } //void CMonthDayRect::setRect(const QRectF &rect) TEST_F(test_monthbrefwidget, setRect) { mMonthDayRect->setRect(QRect(10, 10, 8, 8)); } //void CMonthDayRect::setRect(qreal x, qreal y, qreal w, qreal h) TEST_F(test_monthbrefwidget, setrect) { // mMonthDayRect->setRect(8, 8, 8, 8); } //void CMonthDayRect::setLineFlag(const bool flag) TEST_F(test_monthbrefwidget, setLIneflag) { mMonthDayRect->setLineFlag(true); } //void CMonthDayRect::setSearchScheduleFlag(const bool flag) TEST_F(test_monthbrefwidget, setSearchScheduleflag) { mMonthDayRect->setSearchScheduleFlag(true); } //void CMonthDayRect::setDevicePixelRatio(const qreal pixel) TEST_F(test_monthbrefwidget, setDevicePixelRatio) { mMonthDayRect->setDevicePixelRatio(2); } //void CMonthDayRect::setCurrentRect(CMonthDayRect *currrect) TEST_F(test_monthbrefwidget, setCurrentrect) { mMonthDayRect->setCurrentRect(mMonthDayRect); } //void CMonthDayRect::setSystemActiveColor(const QColor &activeColor) TEST_F(test_monthbrefwidget, setSystemActiveColor) { mMonthDayRect->setSystemActiveColor(Qt::red); } //getPixmap TEST_F(test_monthbrefwidget, getPixmap) { mMonthBrefWidget->setFixedSize(800, 500); mMonthBrefWidget->setDate(QDate::currentDate().month(), getDateList()); QPixmap pixmap(mMonthBrefWidget->size()); mMonthBrefWidget->render(&pixmap); } TEST_F(test_monthbrefwidget, resizeEvent) { mMonthBrefWidget->setFixedSize(QSize(600, 500)); QResizeEvent resizeEvent(QSize(600, 501), QSize(600, 500)); QApplication::sendEvent(mMonthBrefWidget, &resizeEvent); } TEST_F(test_monthbrefwidget, mouseEvent) { mMonthBrefWidget->setFixedSize(QSize(600, 500)); mMonthBrefWidget->setDate(QDate::currentDate().month(), getDateList()); QTest::mouseDClick(mMonthBrefWidget, Qt::MouseButton::LeftButton); QTest::mouseRelease(mMonthBrefWidget, Qt::MouseButton::LeftButton); } //mouseDoubleClickEvent TEST_F(test_monthbrefwidget, mouseDoubleClickEvent) { mMonthBrefWidget->setFixedSize(QSize(600, 500)); mMonthBrefWidget->setDate(QDate::currentDate().month(), getDateList()); QTest::mouseDClick(mMonthBrefWidget, Qt::MouseButton::LeftButton); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_monthbrefwidget.h000066400000000000000000000025001423264401600326320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_MONTHBREFWIDGET_H #define TEST_MONTHBREFWIDGET_H #include #include #include "customWidget/monthbrefwidget.h" class test_monthbrefwidget : public::QObject, public::testing::Test { public: test_monthbrefwidget(); ~test_monthbrefwidget(); void SetUp() override; void TearDown() override; protected: MonthBrefWidget *mMonthBrefWidget = nullptr; CMonthDayRect *mMonthDayRect = nullptr; }; #endif // TEST_MONTHBREFWIDGET_H test_scheduleremindwidget.cpp000066400000000000000000000065721423264401600341320ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_scheduleremindwidget.h" test_scheduleremindwidget::test_scheduleremindwidget() { mScheduleRemindWidget = new ScheduleRemindWidget(); mCenterWidget = new CenterWidget(); } test_scheduleremindwidget::~test_scheduleremindwidget() { delete mScheduleRemindWidget; mScheduleRemindWidget = nullptr; delete mCenterWidget; mCenterWidget = nullptr; } QVector getScheduleRemindData() { ScheduleDataInfo schedule1, schedule2; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(false); schedule2.setType(2); schedule2.setRecurID(0); QVector scheduleList{}; scheduleList.append(schedule1); scheduleList.append(schedule2); return scheduleList; } //void SchecduleRemindWidget::setData(const ScheduleDataInfo &vScheduleInfo, const CSchedulesColor &gcolor) TEST_F(test_scheduleremindwidget, setData) { CSchedulesColor gdcolor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(2); mScheduleRemindWidget->setData(getScheduleRemindData().first(), gdcolor); } //void SchecduleRemindWidget::setDirection(DArrowRectangle::ArrowDirection value) TEST_F(test_scheduleremindwidget, setdirection) { mScheduleRemindWidget->setDirection(DArrowRectangle::ArrowDirection::ArrowRight); } //void CenterWidget::setData(const ScheduleDataInfo &vScheduleInfo, const CSchedulesColor &gcolor) TEST_F(test_scheduleremindwidget, setDate) { CSchedulesColor gdcolor = CScheduleDataManage::getScheduleDataManage()->getScheduleColorByType(2); mCenterWidget->setData(getScheduleRemindData().first(), gdcolor); } //void CenterWidget::setTheMe(const int type) TEST_F(test_scheduleremindwidget, setTheMe) { mCenterWidget->setTheMe(1); mCenterWidget->setTheMe(2); } //void CenterWidget::UpdateTextList() TEST_F(test_scheduleremindwidget, updateTextList) { mCenterWidget->UpdateTextList(); } //getPixmap TEST_F(test_scheduleremindwidget, getPixmap) { mCenterWidget->setFixedSize(800, 500); QPixmap pixmap(mCenterWidget->size()); mCenterWidget->render(&pixmap); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_scheduleremindwidget.h000066400000000000000000000024631423264401600336510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_SCHEDULEREMINDWIDGET_H #define TEST_SCHEDULEREMINDWIDGET_H #include #include #include "customWidget/scheduleRemindWidget.h" class test_scheduleremindwidget : public::QObject, public::testing::Test { public: test_scheduleremindwidget(); ~test_scheduleremindwidget(); protected: ScheduleRemindWidget *mScheduleRemindWidget = nullptr; CenterWidget *mCenterWidget = nullptr; }; #endif // TEST_SCHEDULEREMINDWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_scheduleview.cpp000066400000000000000000000140601423264401600324700ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_scheduleview.h" test_scheduleview::test_scheduleview() { mScheduleView = new CScheduleView(); } test_scheduleview::~test_scheduleview() { delete mScheduleView; mScheduleView = nullptr; } QVector getScheduleData() { ScheduleDataInfo schedule1, schedule2; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(false); schedule2.setType(2); schedule2.setRecurID(0); QVector scheduleList{}; scheduleList.append(schedule1); scheduleList.append(schedule2); return scheduleList; } //void CScheduleView::setviewMargin(int left, int top, int right, int bottom) TEST_F(test_scheduleview, setviewMargin) { mScheduleView->setviewMargin(8, 8, 4, 4); } //void CScheduleView::setRange(int w, int h, QDate begin, QDate end) TEST_F(test_scheduleview, setRange) { mScheduleView->setRange(4, 4, QDate::currentDate(), QDate::currentDate().addDays(1)); } //void CScheduleView::setRange(QDate begin, QDate end) TEST_F(test_scheduleview, setrange) { mScheduleView->setRange(QDate::currentDate(), QDate::currentDate().addDays(1)); } //void CScheduleView::setTheMe(int type) TEST_F(test_scheduleview, setTheMe) { mScheduleView->setTheMe(1); mScheduleView->setTheMe(2); } //void CScheduleView::setLunarVisible(bool state) TEST_F(test_scheduleview, setLunarVisible) { mScheduleView->setLunarVisible(true); } //void CScheduleView::setTime(QTime time) TEST_F(test_scheduleview, setTime) { mScheduleView->setTime(QTime::currentTime()); } //void CScheduleView::setSelectSchedule(const ScheduleDataInfo &scheduleInfo) TEST_F(test_scheduleview, setSelectSchedule) { ScheduleDataInfo scheduleinfo = getScheduleData().first(); mScheduleView->setSelectSchedule(scheduleinfo); scheduleinfo = getScheduleData().at(1); mScheduleView->setSelectSchedule(scheduleinfo); } //void CScheduleView::updateHeight() TEST_F(test_scheduleview, updateHeight) { mScheduleView->updateHeight(); } //bool CScheduleView::IsDragging() TEST_F(test_scheduleview, IsDragging) { mScheduleView->IsDragging(); } //void CScheduleView::setCurrentDate(const QDateTime ¤tDate) TEST_F(test_scheduleview, setCurrentDate) { mScheduleView->setCurrentDate(QDateTime::currentDateTime()); } //void CScheduleView::setShowScheduleInfo(const QMap > &scheduleInfo) TEST_F(test_scheduleview, setShowScheduleInfo) { QMap > dateInfoMap; dateInfoMap.insert(QDate::currentDate(), getScheduleData()); mScheduleView->setShowScheduleInfo(dateInfoMap); } //void CScheduleView::setDate(QDate date) TEST_F(test_scheduleview, setDate) { mScheduleView->setDate(QDate::currentDate()); } //void CScheduleView::slotupdateSchedule() TEST_F(test_scheduleview, slotupdateSchedule) { mScheduleView->slotupdateSchedule(); } //void CScheduleView::slotPosHours(QVector vPos, QVector vHours, int currentTimeType) TEST_F(test_scheduleview, slotPosHours) { QVector pos; pos.append(1); pos.append(2); pos.append(3); pos.append(4); QVector hours; hours.append(4); hours.append(8); hours.append(16); hours.append(20); mScheduleView->slotPosHours(pos, hours, 1); } //void CScheduleView::slotCurrentScheduleDate(QDate date) TEST_F(test_scheduleview, slotCurrentScheduleDate) { mScheduleView->slotCurrentScheduleDate(QDate::currentDate()); } //void CScheduleView::slotScheduleShow(const bool isShow, const ScheduleDataInfo &out) TEST_F(test_scheduleview, slotScheduleShow) { mScheduleView->slotScheduleShow(false, getScheduleData().first()); mScheduleView->slotScheduleShow(true, getScheduleData().at(1)); } //void CScheduleView::slotUpdatePaint(const int topM) TEST_F(test_scheduleview, slotUpdatePaint) { const int top = 4; mScheduleView->slotUpdatePaint(top); } //void CScheduleView::slotUpdateScene() TEST_F(test_scheduleview, slotUpdateScene) { mScheduleView->slotUpdateScene(); } //void CScheduleView::updateSchedule() TEST_F(test_scheduleview, updateSchedule) { mScheduleView->updateSchedule(); } //void CScheduleView::updateAllday() TEST_F(test_scheduleview, updateAllday) { mScheduleView->updateAllday(); } //int CScheduleView::scheduleViewHeight() TEST_F(test_scheduleview, scheduleViewHeight) { mScheduleView->scheduleViewHeight(); } //getPixmap TEST_F(test_scheduleview, getPixmap) { QVector pos; pos.append(1); pos.append(2); pos.append(3); pos.append(4); QVector hours; hours.append(4); hours.append(8); hours.append(16); hours.append(20); mScheduleView->slotPosHours(pos, hours, 1); mScheduleView->setFixedSize(800, 500); QPixmap pixmap(mScheduleView->size()); mScheduleView->render(&pixmap); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_scheduleview.h000066400000000000000000000023011423264401600321300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_SCHEDULEVIEW_H #define TEST_SCHEDULEVIEW_H #include #include #include "customWidget/scheduleview.h" class test_scheduleview : public::QObject, public::testing::Test { public: test_scheduleview(); ~test_scheduleview(); protected: CScheduleView *mScheduleView = nullptr; }; #endif // TEST_SCHEDULEVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_timeedit.cpp000066400000000000000000000035621423264401600316120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_timeedit.h" #include #include #include test_timeedit::test_timeedit() { mTimeEdit = new CTimeEdit(); } test_timeedit::~test_timeedit() { delete mTimeEdit; mTimeEdit = nullptr; } //void CTimeEdit::setTime(QTime time) TEST_F(test_timeedit, setTime) { mTimeEdit->setTime(QTime(23, 59, 59)); } //QTime CTimeEdit::getTime() TEST_F(test_timeedit, getTime) { mTimeEdit->getTime(); } //setTimeFormat TEST_F(test_timeedit, setTimeFormat) { mTimeEdit->setTimeFormat(1); mTimeEdit->setTimeFormat(0); } //slotFocusDraw TEST_F(test_timeedit, slotFocusDraw) { mTimeEdit->slotFocusDraw(false); } //getPixmap TEST_F(test_timeedit, getPixmap) { mTimeEdit->slotFocusDraw(true); mTimeEdit->setFixedSize(200, 50); QPixmap pixmap(mTimeEdit->size()); mTimeEdit->render(&pixmap); } TEST_F(test_timeedit,focusInEvent) { QFocusEvent focusEvent_in( QEvent::FocusIn,Qt::FocusReason::TabFocusReason); QApplication::sendEvent(mTimeEdit,&focusEvent_in); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_timeedit.h000066400000000000000000000022401423264401600312470ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_TIMEEDIT_H #define TEST_TIMEEDIT_H #include #include #include "customWidget/timeedit.h" class test_timeedit : public QObject , public testing::Test { public: test_timeedit(); ~test_timeedit(); protected: CTimeEdit *mTimeEdit = nullptr; }; #endif // TEST_TIMEEDIT_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_titlewidget.cpp000066400000000000000000000032361423264401600323310ustar00rootroot00000000000000#include "test_titlewidget.h" #include #include #include #include test_titleWidget::test_titleWidget() { } void test_titleWidget::SetUp() { m_titleWidget = new CTitleWidget(); } void test_titleWidget::TearDown() { delete m_titleWidget; m_titleWidget = nullptr; } TEST_F(test_titleWidget,resizeEvent) { m_titleWidget->setFixedSize(600,30); QResizeEvent resizeEvent(QSize(500,30),QSize(600,30)); QApplication::sendEvent(m_titleWidget, &resizeEvent); m_titleWidget->setFixedSize(1900,30); QResizeEvent resizeEvent1(QSize(1920,30),QSize(1900,30)); QApplication::sendEvent(m_titleWidget, &resizeEvent1); } TEST_F(test_titleWidget,eventFilter) { DButtonBoxButton *boxbtn = m_titleWidget->findChild(); if(boxbtn){ QKeyEvent keyevent(QEvent::KeyPress,Qt::Key_Return,Qt::NoModifier); QApplication::sendEvent(boxbtn,&keyevent); } DSearchEdit *edit = m_titleWidget->findChild(); if(edit){ QFocusEvent focusEvent_in( QEvent::FocusIn,Qt::FocusReason::TabFocusReason); QApplication::sendEvent(edit->lineEdit(),&focusEvent_in); QFocusEvent focusEvent_out( QEvent::FocusOut,Qt::FocusReason::TabFocusReason); QApplication::sendEvent(edit->lineEdit(),&focusEvent_out); } DButtonBox *buttonBox = m_titleWidget->findChild(); if(buttonBox){ buttonBox->button(0)->setFocus(); buttonBox->button(0)->setChecked(true); QFocusEvent focusEvent_in(QEvent::FocusIn,Qt::FocusReason::ActiveWindowFocusReason); QApplication::sendEvent(buttonBox,&focusEvent_in); } }dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_titlewidget.h000066400000000000000000000006451423264401600317770ustar00rootroot00000000000000#ifndef TEST_TITLEWIDGET_H #define TEST_TITLEWIDGET_H #include #include #include "customWidget/ctitlewidget.h" class test_titleWidget : public QObject,public testing::Test { Q_OBJECT public: explicit test_titleWidget(); void SetUp() override; void TearDown() override; signals: public slots: public: CTitleWidget *m_titleWidget = nullptr; }; #endif // TEST_TITLEWIDGET_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_todaybutton.cpp000066400000000000000000000064171423264401600323640ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_todaybutton.h" #include #include #include //#include test_todaybutton::test_todaybutton() { } void test_todaybutton::SetUp() { mTodayButton = new CTodayButton(); } void test_todaybutton::TearDown() { delete mTodayButton; mTodayButton = nullptr; } //void CTodayButton::setBColor(QColor normalC, QColor hoverC, QColor pressc, QColor normalC1, QColor hoverC1, QColor pressc1) TEST_F(test_todaybutton, setBColor) { mTodayButton->setBColor("#FFFFFF", "#000000", "#000000", "#FFFFFF", "#000000", "#000000"); } //void CTodayButton::setTColor(QColor normalC, QColor hoverC, QColor pressc) TEST_F(test_todaybutton, setTColor) { mTodayButton->setTColor(Qt::red, "#001A2E", "#0081FF"); } //void CTodayButton::setshadowColor(QColor sc) TEST_F(test_todaybutton, setshadowColor) { mTodayButton->setshadowColor("#FFFFFF"); } //test mouse event TEST_F(test_todaybutton, mouseEventTest) { QTest::mousePress(mTodayButton, Qt::LeftButton); QTest::mouseRelease(mTodayButton, Qt::LeftButton); QWidget *testWidget = new QWidget(); CTodayButton *toDayButton = new CTodayButton(testWidget); toDayButton->setGeometry(10, 10, 20, 20); testWidget->setFixedSize(50, 50); toDayButton->setFocus(Qt::TabFocusReason); QTest::mouseMove(testWidget, QPoint(2, 2)); QTest::mouseMove(testWidget, QPoint(15, 15)); QTest::mouseMove(testWidget, QPoint(45, 45)); QTest::keyClick(testWidget, Qt::Key_Tab); QTest::keyClick(testWidget->focusWidget(), Qt::Key_Tab); QTest::keyClick(testWidget->focusWidget(), Qt::Key_Tab); delete testWidget; } //test key event TEST_F(test_todaybutton, keyEventTest) { QTest::keyClick(mTodayButton, Qt::Key_Enter); QTest::keyClick(mTodayButton, Qt::Key_Tab); } //QTEST_MAIN(testGUI_toDayButton) TEST_F(test_todaybutton,focusOutEvent) { mTodayButton->setFocus(); QFocusEvent focusEvent_out( QEvent::FocusOut,Qt::FocusReason::TabFocusReason); QApplication::sendEvent(mTodayButton,&focusEvent_out); } TEST_F(test_todaybutton,enterEvent) { QEnterEvent enterEvent(QPointF(10,2),QPointF(11,3),QPointF(12,4)); QApplication::sendEvent(mTodayButton,&enterEvent); QEvent event(QEvent::Leave); QApplication::sendEvent(mTodayButton,&event); } TEST_F(test_todaybutton,keypressEvent) { QKeyEvent keyevent(QEvent::KeyPress,Qt::Key_Return,Qt::NoModifier); QApplication::sendEvent(mTodayButton,&keyevent); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_customWidget/test_todaybutton.h000066400000000000000000000023451423264401600320250ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_TODAYBUTTON_H #define TEST_TODAYBUTTON_H #include #include #include "customWidget/todaybutton.h" class test_todaybutton : public::QObject, public::testing::Test { Q_OBJECT public: test_todaybutton(); void SetUp() override; void TearDown() override; protected: CTodayButton *mTodayButton = nullptr; }; #endif // TEST_TODAYBUTTON_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/000077500000000000000000000000001423264401600256015ustar00rootroot00000000000000test_calendardatedatamanage.cpp000066400000000000000000000113521423264401600337010ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_calendardatedatamanage.h" #include test_calendardatedatamanage::test_calendardatedatamanage() { } void test_calendardatedatamanage::SetUp() { calendarDateDataManager = new CalendarDateDataManager(); } void test_calendardatedatamanage::TearDown() { delete calendarDateDataManager; calendarDateDataManager = nullptr; } /** *本类是为获取当前日期的类,所拿到的数据会根据当前时间不断变化,因此暂时不做返回值判断 */ //void CalendarDateDataManager::setSelectDate(const QDate &selectDate, const bool isSwitchYear) TEST_F(test_calendardatedatamanage, setSelectDate) { QDate selectDate(2020, 12, 25); bool isSwitchYear = true; calendarDateDataManager->setSelectDate(selectDate, isSwitchYear); isSwitchYear = false; calendarDateDataManager->setSelectDate(selectDate, isSwitchYear); } //QDate CalendarDateDataManager::getSelectDate() const TEST_F(test_calendardatedatamanage, getSelectDate) { QDate selectDate; selectDate = calendarDateDataManager->getSelectDate(); //qInfo() << selectDate; } //void CalendarDateDataManager::setCurrentDateTime(const QDateTime ¤tDateTime) TEST_F(test_calendardatedatamanage, setCurrentDateTime) { QDate date(2020, 12, 25); QDateTime currentDateTime(date); calendarDateDataManager->setCurrentDateTime(currentDateTime); } //QDateTime CalendarDateDataManager::getCurrentDate() const TEST_F(test_calendardatedatamanage, getCurrentDate) { QDateTime currentDateTime; currentDateTime = calendarDateDataManager->getCurrentDate(); } //QMap > CalendarDateDataManager::getYearDate() TEST_F(test_calendardatedatamanage, getYearDate) { QMap > dateTime; dateTime = calendarDateDataManager->getYearDate(); } //QVector CalendarDateDataManager::getWeekDate(const QDate &date) TEST_F(test_calendardatedatamanage, getWeekDate) { QDate selectDate(2020, 12, 25); QVector dateV = calendarDateDataManager->getWeekDate(selectDate); } //void CalendarDateDataManager::setWeekFirstDay(const Qt::DayOfWeek &firstDay) TEST_F(test_calendardatedatamanage, setWeekFirstDay) { Qt::DayOfWeek firstDay(Qt::Sunday); calendarDateDataManager->setWeekFirstDay(firstDay); } // Qt::DayOfWeek CalendarDateDataManager::getWeekFirstDay() TEST_F(test_calendardatedatamanage, getWeekFirstDay) { Qt::DayOfWeek firstDay(Qt::Sunday); Qt::DayOfWeek getfirstDay; getfirstDay = calendarDateDataManager->getWeekFirstDay(); //qInfo() << getfirstDay; assert(firstDay == getfirstDay); } //void CalendarDateDataManager::setWeekDayFormatByID(const int &weekDayFormatID) TEST_F(test_calendardatedatamanage, setWeekDayFormatByID) { int setWeekDayFormatByID = 0; calendarDateDataManager->setWeekDayFormatByID(setWeekDayFormatByID); setWeekDayFormatByID = 1; calendarDateDataManager->setWeekDayFormatByID(setWeekDayFormatByID); } //QString CalendarDateDataManager::getWeekDayFormat() const TEST_F(test_calendardatedatamanage, getWeekDayFormat) { QString getWEKfomat; calendarDateDataManager->getWeekDayFormat(); } //ShowDateRange CalendarDateDataManager::getShowDateRange() const TEST_F(test_calendardatedatamanage, getShowDateRange) { ShowDateRange showDateR; showDateR = calendarDateDataManager->getShowDateRange(); } //int CalendarDateDataManager::getWeekNumOfYear(const QDate &date) TEST_F(test_calendardatedatamanage, getWeekNumOfYear) { //2020-12-25 为第52周 const int weeknum = 52; QDate date(2020, 12, 25); int weekNum = 0; weekNum = calendarDateDataManager->getWeekNumOfYear(date); assert(weeknum == weekNum); } TEST_F(test_calendardatedatamanage, setDateFormatChanged) { for (int i = 0; i < 10; ++i) { calendarDateDataManager->setDateFormatChanged(i); } } //setTimeFormatChanged TEST_F(test_calendardatedatamanage, setTimeFormatChanged) { calendarDateDataManager->setTimeFormatChanged(0); calendarDateDataManager->setTimeFormatChanged(1); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/test_calendardatedatamanage.h000066400000000000000000000023421423264401600334240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_CALENDARDATEDATAMANAGE_H #define TEST_CALENDARDATEDATAMANAGE_H #include "calendardatedatamanage.h" #include "gtest/gtest.h" #include class test_calendardatedatamanage : public QObject, public::testing::Test { public: test_calendardatedatamanage(); void SetUp() override; void TearDown() override; protected: CalendarDateDataManager *calendarDateDataManager = nullptr; }; #endif // TEST_CALENDARDATEDATAMANAGE_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/test_schedulecoormanage.cpp000066400000000000000000000135341423264401600332020ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_schedulecoormanage.h" #include test_schedulecoormanage::test_schedulecoormanage() { cScheduleCoorManage = new CScheduleCoorManage(); } test_schedulecoormanage::~test_schedulecoormanage() { delete cScheduleCoorManage; } //void CScheduleCoorManage::setRange(int w, int h, QDate begindate, QDate enddate, int rightmagin) TEST_F(test_schedulecoormanage, setRange) { int w = 100; int h = 100; QDate begindate(2020, 12, 01); QDate enddate(2020, 12, 31); int rightmagin = 1; cScheduleCoorManage->setRange(w, h, begindate, enddate, rightmagin); } //void CScheduleCoorManage::setDateRange(QDate begindate, QDate enddate) TEST_F(test_schedulecoormanage, setDateRange) { QDate begindate(2020, 12, 01); QDate enddate(2020, 12, 21); cScheduleCoorManage->setDateRange(begindate, enddate); cScheduleCoorManage->setDateRange(enddate, begindate); int w = 100; int h = 100; QDate m_begindate(2020, 12, 11); QDate m_enddate(2020, 12, 31); int rightmagin = 1; cScheduleCoorManage->setRange(w, h, m_begindate, m_enddate, rightmagin); cScheduleCoorManage->setDateRange(begindate, enddate); } /** * @brief test_schedulecoormanage, getDrawRegion * (QDateTime begintime, QDateTime endtime) * (QDateTime begintime, QDateTime endtime, int index, int coount) * (QDate date, QDateTime begintime, QDateTime endtime, int index, int coount, int maxnum, int type) */ TEST_F(test_schedulecoormanage, getDrawRegion) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); cScheduleCoorManage->getDrawRegion(begindate, enddate); cScheduleCoorManage->getDrawRegion(enddate, begindate); int index = 2; int coount = 1; cScheduleCoorManage->getDrawRegion(begindate, enddate, index, coount); cScheduleCoorManage->getDrawRegion(enddate, begindate, index, coount); QDate date(2020, 12, 31); int maxnum = 3; int type = 0; cScheduleCoorManage->getDrawRegion(date, begindate, enddate, index, coount, maxnum, type); cScheduleCoorManage->getDrawRegion(date, enddate, begindate, index, coount, maxnum, type); int w = 100; int h = 100; QDate m_begindate(2020, 11, 11); QDate m_enddate(2020, 12, 31); int rightmagin = 1; cScheduleCoorManage->setRange(w, h, m_begindate, m_enddate, rightmagin); cScheduleCoorManage->getDrawRegion(begindate, enddate); cScheduleCoorManage->getDrawRegion(begindate, enddate, index, coount); coount = 5; cScheduleCoorManage->getDrawRegion(date, begindate, enddate, index, coount, maxnum, type); index = 5; cScheduleCoorManage->getDrawRegion(date, begindate, enddate, index, coount, maxnum, type); } //QRectF CScheduleCoorManage::getDrawRegionF(QDateTime begintime, QDateTime endtime) TEST_F(test_schedulecoormanage, getDrawRegionF) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); cScheduleCoorManage->getDrawRegionF(begindate, enddate); cScheduleCoorManage->getDrawRegionF(enddate, begindate); int w = 100; int h = 100; QDate m_begindate(2020, 11, 11); QDate m_enddate(2020, 12, 31); int rightmagin = 1; cScheduleCoorManage->setRange(w, h, m_begindate, m_enddate, rightmagin); cScheduleCoorManage->getDrawRegionF(begindate, enddate); } //QRectF CScheduleCoorManage::getAllDayDrawRegion(QDate begin, QDate end) TEST_F(test_schedulecoormanage, getAllDayDrawRegion) { QDate begindate(2020, 12, 01); QDate enddate(2020, 12, 31); cScheduleCoorManage->getAllDayDrawRegion(begindate, enddate); cScheduleCoorManage->getAllDayDrawRegion(enddate, begindate); } //QDateTime CScheduleCoorManage::getDate(QPointF pos) TEST_F(test_schedulecoormanage, getDate) { QPointF pos(0, 0); QDateTime dateTime = cScheduleCoorManage->getDate(pos); qInfo() << dateTime; QPointF pos1(-1, 0); QDateTime dateTime1 = cScheduleCoorManage->getDate(pos1); } //QDate CScheduleCoorManage::getsDate(QPointF pos) TEST_F(test_schedulecoormanage, getsDate) { QPointF pos(0, 0); QDate date = cScheduleCoorManage->getsDate(pos); qInfo() << date; QPointF pos1(-1, 0); cScheduleCoorManage->getsDate(pos1); } //float CScheduleCoorManage::getHeight(const QTime &time) TEST_F(test_schedulecoormanage, getHeight) { const float Height = 0; QTime time(18, 8, 9, 30); float height = cScheduleCoorManage->getHeight(time); qInfo() << height; assert(Height <= height); } //QDate getBegindate() TEST_F(test_schedulecoormanage, getBegindate) { int w = 100; int h = 100; QDate m_begindate(2020, 11, 11); QDate m_enddate(2020, 12, 31); int rightmagin = 1; cScheduleCoorManage->setRange(w, h, m_begindate, m_enddate, rightmagin); QDate getbegindate = cScheduleCoorManage->getBegindate(); assert(m_begindate == getbegindate); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/test_schedulecoormanage.h000066400000000000000000000022501423264401600326400ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_SCHEDULECOORMANAGE_H #define TEST_SCHEDULECOORMANAGE_H #include "schedulecoormanage.h" #include "gtest/gtest.h" #include class test_schedulecoormanage : public QObject, public::testing::Test { public: test_schedulecoormanage(); ~test_schedulecoormanage(); protected: CScheduleCoorManage *cScheduleCoorManage = nullptr; }; #endif // TEST_SCHEDULECOORMANAGE_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/test_scheduledatamanage.cpp000066400000000000000000000032131423264401600331420ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_scheduledatamanage.h" test_scheduledatamanage::test_scheduledatamanage() { datamanage = new CScheduleDataManage(); } test_scheduledatamanage::~test_scheduledatamanage() { delete datamanage; } //bool CScheduleDataManage::getSearchResult(QDate date) TEST_F(test_scheduledatamanage, getSearchResult) { //QDate date(2020, 12, 01); //datamanage->getSearchResult(date); } //CScheduleDataManage *CScheduleDataManage::getScheduleDataManage() TEST_F(test_scheduledatamanage, getScheduleDataManage) { datamanage->getScheduleDataManage(); } //QColor CScheduleDataManage::getSystemActiveColor() TEST_F(test_scheduledatamanage, getSystemActiveColor) { datamanage->getSystemActiveColor(); } //int getTheme() TEST_F(test_scheduledatamanage, getTheme) { datamanage->m_theme = 1; int theme = datamanage->getTheme(); assert(1 == theme); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dataManage/test_scheduledatamanage.h000066400000000000000000000022371423264401600326140ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_SCHEDULEDATAMANAGE_H #define TEST_SCHEDULEDATAMANAGE_H #include "scheduledatamanage.h" #include "gtest/gtest.h" #include class test_scheduledatamanage : public QObject, public::testing::Test { public: test_scheduledatamanage(); ~test_scheduledatamanage(); protected: CScheduleDataManage *datamanage = nullptr; }; #endif // TEST_SCHEDULEDATAMANAGE_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/000077500000000000000000000000001423264401600250165ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_myscheduleview.cpp000066400000000000000000000076611423264401600316300ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_myscheduleview.h" #include "../dialog_stub.h" #include #include QVector getScheduleViewData() { ScheduleDataInfo schedule1, schedule2; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); QVector scheduleList{}; scheduleList.append(schedule1); scheduleList.append(schedule2); return scheduleList; } test_myscheduleview::test_myscheduleview() { ScheduleDataInfo scheduleinfo = getScheduleViewData().first(); mScheduleView = new CMyScheduleView(scheduleinfo); } test_myscheduleview::~test_myscheduleview() { delete mScheduleView; mScheduleView = nullptr; } //void CMyScheduleView::setLabelTextColor(const int type) TEST_F(test_myscheduleview, setLabelTextColor) { mScheduleView->setLabelTextColor(1); mScheduleView->setLabelTextColor(2); } // TEST_F(test_myscheduleview, CMyScheduleView) { ScheduleDataInfo scheduleinfo; QDateTime currentDateTime = QDateTime::currentDateTime(); scheduleinfo.setID(1); scheduleinfo.setBeginDateTime(currentDateTime); scheduleinfo.setEndDateTime(currentDateTime.addDays(1)); scheduleinfo.setTitleName("测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试" "测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试" "测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试" "测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试" "测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试" "测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试" "测试测试测试测试测试测试测试测试测试测试测试测试测试测试"); scheduleinfo.setAllDay(true); scheduleinfo.setType(4); scheduleinfo.setRecurID(0); CMyScheduleView scheduleView(scheduleinfo); } //FontChange TEST_F(test_myscheduleview, FontChange) { QEvent event(QEvent::FontChange); QApplication::sendEvent(mScheduleView, &event); } //slotBtClick TEST_F(test_myscheduleview, slotBtClick) { Stub stub; calendarDDialogExecStub(stub); mScheduleView->slotBtClick(1, "tt"); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_myscheduleview.h000066400000000000000000000023121423264401600312610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_MYSCHEDULEVIEW_H #define TEST_MYSCHEDULEVIEW_H #include #include #include "dialog/myscheduleview.h" class test_myscheduleview : public::QObject, public::testing::Test { public: test_myscheduleview(); ~test_myscheduleview(); protected: CMyScheduleView *mScheduleView = nullptr; }; #endif // TEST_MYSCHEDULEVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_schedulectrldlg.cpp000066400000000000000000000057601423264401600317410ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_schedulectrldlg.h" #include #include test_schedulectrldlg::test_schedulectrldlg() { mScheduleCtrlDlg = new CScheduleCtrlDlg(); } test_schedulectrldlg::~test_schedulectrldlg() { delete mScheduleCtrlDlg; mScheduleCtrlDlg = nullptr; } //void CScheduleCtrlDlg::setTheMe(const int type) TEST_F(test_schedulectrldlg, setTheMe) { mScheduleCtrlDlg->setTheMe(1); mScheduleCtrlDlg->setTheMe(2); } //void CScheduleCtrlDlg::buttonJudge(int id) TEST_F(test_schedulectrldlg, buttonJudge) { mScheduleCtrlDlg->buttonJudge(1); } //QAbstractButton *CScheduleCtrlDlg::addPushButton(QString btName, bool type) TEST_F(test_schedulectrldlg, addPushButton) { mScheduleCtrlDlg->addPushButton("schedule", true); mScheduleCtrlDlg->addPushButton("schedule", false); } //QAbstractButton *CScheduleCtrlDlg::addsuggestButton(QString btName, bool type) TEST_F(test_schedulectrldlg, addsuggestButton) { mScheduleCtrlDlg->addsuggestButton("schedule", true); mScheduleCtrlDlg->addsuggestButton("schedule", false); } //QAbstractButton *CScheduleCtrlDlg::addWaringButton(QString btName, bool type) TEST_F(test_schedulectrldlg, addWaringButton) { mScheduleCtrlDlg->addsuggestButton("schedule", true); mScheduleCtrlDlg->addsuggestButton("schedule", false); } //void CScheduleCtrlDlg::setText(QString str) TEST_F(test_schedulectrldlg, setText) { mScheduleCtrlDlg->setText("schedule"); } //void CScheduleCtrlDlg::setInformativeText(QString str) TEST_F(test_schedulectrldlg, setInfomativeText) { mScheduleCtrlDlg->setInformativeText("schedule"); } //int CScheduleCtrlDlg::clickButton() TEST_F(test_schedulectrldlg, clickButton) { mScheduleCtrlDlg->clickButton(); } //changeEvent TEST_F(test_schedulectrldlg, changeEvent) { QEvent event(QEvent::FontChange); mScheduleCtrlDlg->setText(tr("You are changing the repeating rule of this event.")); mScheduleCtrlDlg->setInformativeText(tr("Do you want to change all occurrences?")); mScheduleCtrlDlg->addPushButton(tr("Cancel", "button"), true); mScheduleCtrlDlg->addWaringButton(tr("Change All"), true); QApplication::sendEvent(mScheduleCtrlDlg, &event); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_schedulectrldlg.h000066400000000000000000000023261423264401600314010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_SCHEDULECTRLDLG_H #define TEST_SCHEDULECTRLDLG_H #include #include #include "dialog/schedulectrldlg.h" class test_schedulectrldlg : public::QObject, public::testing::Test { public: test_schedulectrldlg(); ~test_schedulectrldlg(); protected: CScheduleCtrlDlg *mScheduleCtrlDlg = nullptr; }; #endif // TEST_SCHEDULECTRLDLG_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_scheduledlg.cpp000066400000000000000000000145001423264401600310440ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_scheduledlg.h" #include "../cscheduledbusstub.h" #include "../dialog_stub.h" #include test_scheduledlg::test_scheduledlg() { mScheduleDlg = new CScheduleDlg(1); } test_scheduledlg::~test_scheduledlg() { delete mScheduleDlg; mScheduleDlg = nullptr; } QVector getScheduleDlgData() { ScheduleDataInfo schedule1, schedule2; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); QVector scheduleList{}; scheduleList.append(schedule1); scheduleList.append(schedule2); return scheduleList; } //void CScheduleDlg::setData(const ScheduleDataInfo &info) TEST_F(test_scheduledlg, setData) { mScheduleDlg->setData(getScheduleDlgData().first()); } //void CScheduleDlg::setDate(const QDateTime &date) TEST_F(test_scheduledlg, setDate) { QDateTime datetime1 = QDateTime(QDate::currentDate(), QTime(23, 54, 55)); mScheduleDlg->setDate(datetime1); QDateTime datetime11 = QDateTime(QDate::currentDate(), QTime(13, 54, 55)); mScheduleDlg->setDate(datetime1); QDateTime datetime2 = QDateTime(QDate::currentDate(), QTime(13, 40, 55)); mScheduleDlg->setDate(datetime2); } //void CScheduleDlg::setAllDay(bool flag) TEST_F(test_scheduledlg, setAllDay) { mScheduleDlg->setAllDay(true); } //bool CScheduleDlg::clickOkBtn() TEST_F(test_scheduledlg, clickOkBtn) { Stub stub; cscheduleDbusStub(stub); mScheduleDlg->clickOkBtn(); //begindatetime < enddatetime ScheduleDataInfo schedule; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule.setID(1); schedule.setBeginDateTime(currentDateTime); schedule.setEndDateTime(currentDateTime.addDays(-1)); schedule.setTitleName("scheduleOne"); schedule.setAllDay(true); schedule.setType(1); schedule.setRecurID(0); mScheduleDlg->setData(schedule); mScheduleDlg->clickOkBtn(); // mScheduleDlg->m_type = 1; schedule.setEndDateTime(currentDateTime.addDays(1)); mScheduleDlg->setData(schedule); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_rmindCombox->setCurrentIndex(3); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_rmindCombox->setCurrentIndex(4); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_rmindCombox->setCurrentIndex(5); mScheduleDlg->clickOkBtn(); schedule.setAllDay(false); mScheduleDlg->setData(schedule); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_rmindCombox->setCurrentIndex(3); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_rmindCombox->setCurrentIndex(4); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_rmindCombox->setCurrentIndex(5); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_endrepeatCombox->setCurrentIndex(2); mScheduleDlg->clickOkBtn(); mScheduleDlg->m_endrepeatCombox->setCurrentIndex(3); mScheduleDlg->clickOkBtn(); } //void CScheduleDlg::slotBtClick(int buttonIndex, QString buttonName) TEST_F(test_scheduledlg, slotBtClick) { Stub stub; cscheduleDbusStub(stub); mScheduleDlg->slotBtClick(0, "ok"); mScheduleDlg->slotBtClick(1, "ok"); } //void CScheduleDlg::slotTextChange() TEST_F(test_scheduledlg, slotTextChange) { mScheduleDlg->slotTextChange(); } //void CScheduleDlg::slotendrepeatTextchange() TEST_F(test_scheduledlg, slotendrepeaTextchange) { mScheduleDlg->slotendrepeatTextchange(); } //void CScheduleDlg::slotBDateEidtInfo(const QDate &date) TEST_F(test_scheduledlg, slotBDateEidtInfo) { mScheduleDlg->slotBDateEidtInfo(QDate::currentDate()); } //void CScheduleDlg::slotallDayStateChanged(int state) TEST_F(test_scheduledlg, slotallDayStateCheanged) { mScheduleDlg->slotallDayStateChanged(1); mScheduleDlg->slotallDayStateChanged(0); } //void CScheduleDlg::slotbRpeatactivated(int index) TEST_F(test_scheduledlg, slotbRpearactivated) { mScheduleDlg->slotbRpeatactivated(0); mScheduleDlg->slotbRpeatactivated(2); } //void CScheduleDlg::sloteRpeatactivated(int index) TEST_F(test_scheduledlg, sloteRpearactivated) { mScheduleDlg->sloteRpeatactivated(0); mScheduleDlg->sloteRpeatactivated(1); mScheduleDlg->sloteRpeatactivated(2); } //void CScheduleDlg::setTheMe(const int type) TEST_F(test_scheduledlg, setTheMe) { mScheduleDlg->setTheMe(1); mScheduleDlg->setTheMe(2); } // TEST_F(test_scheduledlg, exec) { Stub stub; calendarDDialogExecStub(stub); mScheduleDlg->exec(); } //setDateFormat TEST_F(test_scheduledlg, setDateFormat) { for (int i = 0; i < 10; ++i) { mScheduleDlg->setDateFormat(i); } } //setTimeFormat TEST_F(test_scheduledlg, setTimeFormat) { mScheduleDlg->setTimeFormat(0); mScheduleDlg->setTimeFormat(1); } //mouseMoveEvent TEST_F(test_scheduledlg, mouseMoveEvent) { QTest::mouseMove(mScheduleDlg); } //updateDateTimeFormat TEST_F(test_scheduledlg, updateDateTimeFormat) { mScheduleDlg->updateDateTimeFormat(); } //changeEvent TEST_F(test_scheduledlg, changeEvent) { QEvent event(QEvent::FontChange); QApplication::sendEvent(mScheduleDlg, &event); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_scheduledlg.h000066400000000000000000000022611423264401600305120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_SCHEDULEDLG_H #define TEST_SCHEDULEDLG_H #include #include #include "dialog/scheduledlg.h" class test_scheduledlg : public::QObject, public::testing::Test { public: test_scheduledlg(); ~test_scheduledlg(); protected: CScheduleDlg *mScheduleDlg = nullptr; }; #endif // TEST_SCHEDULEDLG_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_scheduletypeeditdlg.cpp000066400000000000000000000037611423264401600326230ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_scheduletypeeditdlg.h" test_scheduletypeeditdlg::test_scheduletypeeditdlg() { } TEST_F(test_scheduletypeeditdlg, slotEditTextChanged_001) { mWidget->m_typeText = "123"; mWidget->slotEditTextChanged("21212312312315456489512315489456123165489456123135485"); EXPECT_EQ(mWidget->m_lineEdit->text(), "123"); } TEST_F(test_scheduletypeeditdlg, slotEditTextChanged_002) { mWidget->m_typeText = "123"; mWidget->slotEditTextChanged(""); EXPECT_FALSE(mWidget->getButton(1)->isEnabled()); } TEST_F(test_scheduletypeeditdlg, slotEditTextChanged_003) { mWidget->m_typeText = "123"; mWidget->slotEditTextChanged(" "); EXPECT_FALSE(mWidget->getButton(1)->isEnabled()); } TEST_F(test_scheduletypeeditdlg, slotFocusChanged_001) { mWidget->m_lineEdit->setText(""); mWidget->slotFocusChanged(false); } TEST_F(test_scheduletypeeditdlg, slotBtnCancel_001) { mWidget->slotBtnCancel(); } TEST_F(test_scheduletypeeditdlg, slotBtnNext_001) { mWidget->slotBtnNext(); } TEST_F(test_scheduletypeeditdlg, init_001) { mWidget->init(); } TEST_F(test_scheduletypeeditdlg, initView_001) { mWidget->initView(); } TEST_F(test_scheduletypeeditdlg, initData_001) { mWidget->initData(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_dialog/test_scheduletypeeditdlg.h000066400000000000000000000024531423264401600322650ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_SCHEDULETYPEEDITDLG_H #define TEST_SCHEDULETYPEEDITDLG_H #include "scheduletypeeditdlg.h" #include #include #include class test_scheduletypeeditdlg: public::testing::Test { public: test_scheduletypeeditdlg(); virtual void SetUp() { mWidget = new ScheduleTypeEditDlg(); } virtual void TearDown() { delete mWidget; mWidget = nullptr; } protected: ScheduleTypeEditDlg *mWidget = nullptr; }; #endif // TEST_SCHEDULETYPEEDITDLG_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/000077500000000000000000000000001423264401600254245ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/keypressstub.cpp000066400000000000000000000073351423264401600307030ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "keypressstub.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "view/cgraphicsscene.h" #include "KeyPress/cscenetabkeydeal.h" #include bool itemFocus = false; bool scene_activeSwitching = false; bool WeekDayBackgroundItem_hasNextItem = false; bool WeekDayBackgroundItem_showFocus = false; QGraphicsItem *SceneCurrentItem = nullptr; CFocusItem::CItemType focusItemType = CFocusItem::CBACK; QDate itemDate = QDate::currentDate(); //bbbbbbbbbbbbb CFocusItem stub bbbbbbbbbbbbbbbbbbbbbb bool getItemFocus_stub() { return itemFocus; } CFocusItem::CItemType getItemType_stub() { return focusItemType; } //eeeeeeeeeeeeeeeeeeeeeee // CGraphicsScene stub void setActiveSwitching_stub(bool activeSwitching) { scene_activeSwitching = activeSwitching; } QGraphicsItem *getCurrentFocusItem_stub(void *obj) { Q_UNUSED(obj) return SceneCurrentItem; } void signalSwitchView_stub(const QDate &focusDate, bool setItemFocus = false) { Q_UNUSED(focusDate); Q_UNUSED(setItemFocus); } // CWeekDayBackgroundItem stub void setItemFocus(void *obj, bool isFocus) { Q_UNUSED(obj) itemFocus = isFocus; } bool hasNextSubItem_stub(void *obj) { Q_UNUSED(obj) return WeekDayBackgroundItem_hasNextItem; } bool showFocus_stub(void *obj) { Q_UNUSED(obj) return WeekDayBackgroundItem_showFocus; } void initState_stub(void *obj) { Q_UNUSED(obj)} QDate getDate_stub(void *obj) { Q_UNUSED(obj) return itemDate; } // SceneTabHandle stub //bool focusItemDeal_stub(CSceneBackgroundItem *item, CGraphicsScene *scene) //{ // Q_UNUSED(item) // Q_UNUSED(scene) // return false; //} KeyPressStub::KeyPressStub() { SceneCurrentItem = new CWeekDayBackgroundItem(); typedef void (*fptr)(CWeekDayBackgroundItem *, bool); fptr A_foo = (fptr)(&CWeekDayBackgroundItem::setItemFocus); //obtaining an address stub.set(ADDR(CFocusItem, getItemFocus), getItemFocus_stub); stub.set(ADDR(CFocusItem, getItemType), getItemType_stub); stub.set(A_foo, setItemFocus); stub.set(ADDR(CGraphicsScene, setActiveSwitching), setActiveSwitching_stub); stub.set(ADDR(CGraphicsScene, signalSwitchView), signalSwitchView_stub); stub.set(ADDR(CGraphicsScene, getCurrentFocusItem), getCurrentFocusItem_stub); stub.set(ADDR(CWeekDayBackgroundItem, hasNextSubItem), hasNextSubItem_stub); stub.set(ADDR(CWeekDayBackgroundItem, showFocus), showFocus_stub); stub.set(ADDR(CWeekDayBackgroundItem, initState), initState_stub); stub.set(ADDR(CWeekDayBackgroundItem, getDate), getDate_stub); // typedef bool (*sceneTabKeyHandle)(CSceneTabKeyDeal *, CSceneBackgroundItem *, CGraphicsScene *); // sceneTabKeyHandle SceneTabHandle = (sceneTabKeyHandle)(&CSceneTabKeyDeal::focusItemDeal); // stub.set(SceneTabHandle, focusItemDeal_stub); } KeyPressStub::~KeyPressStub() { delete SceneCurrentItem; SceneCurrentItem = nullptr; } Stub &KeyPressStub::getStub() { return stub; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/keypressstub.h000066400000000000000000000025421423264401600303430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 KEYPRESSSTUB_H #define KEYPRESSSTUB_H #include "../third-party_stub/stub.h" #include "view/graphicsItem/cfocusitem.h" #include class QGraphicsItem; class KeyPressStub { public: KeyPressStub(); ~KeyPressStub(); Stub &getStub(); private: Stub stub; }; extern bool itemFocus; extern bool scene_activeSwitching; extern bool WeekDayBackgroundItem_hasNextItem; extern bool WeekDayBackgroundItem_showFocus; extern QGraphicsItem *SceneCurrentItem; extern CFocusItem::CItemType focusItemType; extern QDate itemDate; #endif // KEYPRESSSTUB_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_calldaykeyleftdeal.cpp000066400000000000000000000025371423264401600330210ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_calldaykeyleftdeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/calldaykeyleftdeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CAllDayKeyLeftDeal::test_CAllDayKeyLeftDeal(QObject *parent) : QObject(parent) { } TEST(LeftHandle_test, test_CAllDayKeyLeftDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CAllDayKeyLeftDeal alldayLeftDeal(scene); alldayLeftDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_calldaykeyleftdeal.h000066400000000000000000000021311423264401600324540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CALLDAYKEYLEFTDEAL_H #define TEST_CALLDAYKEYLEFTDEAL_H #include #include class test_CAllDayKeyLeftDeal : public QObject { Q_OBJECT public: explicit test_CAllDayKeyLeftDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CALLDAYKEYLEFTDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_calldaykeyrightdeal.cpp000066400000000000000000000025501423264401600331770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_calldaykeyrightdeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/calldaykeyrightdeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CAllDayKeyRightDeal::test_CAllDayKeyRightDeal(QObject *parent) : QObject(parent) { } TEST(RightHandle_test, test_CAllDayKeyRightDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CAllDayKeyRightDeal alldayRightDeal(scene); alldayRightDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_calldaykeyrightdeal.h000066400000000000000000000021131423264401600326370ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CALLDAYKEYRIGHTDEAL_H #define TEST_CALLDAYKEYRIGHTDEAL_H #include class test_CAllDayKeyRightDeal : public QObject { Q_OBJECT public: explicit test_CAllDayKeyRightDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CALLDAYKEYRIGHTDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeydowndeal.cpp000066400000000000000000000024571423264401600316500ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ckeydowndeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/ckeydowndeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CKeyDownDeal::test_CKeyDownDeal(QObject *parent) : QObject(parent) { } TEST(DownHandle_test, test_CKeyDownDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CKeyDownDeal downDeal(scene); downDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeydowndeal.h000066400000000000000000000020501423264401600313020ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CKEYDOWNDEAL_H #define TEST_CKEYDOWNDEAL_H #include class test_CKeyDownDeal : public QObject { Q_OBJECT public: explicit test_CKeyDownDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CKEYDOWNDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyenabledeal.cpp000066400000000000000000000044241423264401600321230ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ckeyenabledeal.h" #include "../third-party_stub/stub.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "../dialog_stub.h" #include "view/graphicsItem/scheduleitem.h" #include test_CKeyEnableDeal::test_CKeyEnableDeal() { } void test_CKeyEnableDeal::SetUp() { delete SceneCurrentItem; SceneCurrentItem = new CSceneBackgroundItem(CSceneBackgroundItem::OnMonthView); calendarDDialogExecStub(stub.getStub()); scene = QSharedPointer(new CGraphicsScene()); view = QSharedPointer(new QGraphicsView()); view->setScene(scene.get()); enableDeal = QSharedPointer(new CKeyEnableDeal(scene.get())); } void test_CKeyEnableDeal::TearDown() { } TEST_F(test_CKeyEnableDeal, focusItemDeal_Back) { enableDeal->dealEvent(); } TEST_F(test_CKeyEnableDeal, focusItemDeal_Back_addDay) { itemDate = QDate::currentDate().addDays(1); enableDeal->dealEvent(); } CFocusItem *focusItem = nullptr; CFocusItem *getFocusItem_stub() { return focusItem; } TEST_F(test_CKeyEnableDeal, focusItemDeal_Item) { QRectF rect(0, 0, 100, 100); focusItem = new CScheduleItem(rect); stub.getStub().set(ADDR(CSceneBackgroundItem, getFocusItem), getFocusItem_stub); focusItemType = CFocusItem::CITEM; enableDeal->dealEvent(); delete focusItem; focusItem = nullptr; } TEST_F(test_CKeyEnableDeal, focusItemDeal_Other) { focusItemType = CFocusItem::COTHER; enableDeal->dealEvent(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyenabledeal.h000066400000000000000000000025651423264401600315740ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CKEYENABLEDEAL_H #define TEST_CKEYENABLEDEAL_H #include "keypressstub.h" #include "view/cgraphicsscene.h" #include "gtest/gtest.h" #include "KeyPress/ckeyenabledeal.h" #include class test_CKeyEnableDeal : public QObject , public ::testing::Test { Q_OBJECT public: test_CKeyEnableDeal(); void SetUp(); void TearDown(); public: KeyPressStub stub; QSharedPointer scene; QSharedPointer view; QSharedPointer enableDeal; }; extern CFocusItem *focusItem; #endif // TEST_CKEYENABLEDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyleftdeal.cpp000066400000000000000000000024571423264401600316330ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ckeyleftdeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/ckeyleftdeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CKeyLeftDeal::test_CKeyLeftDeal(QObject *parent) : QObject(parent) { } TEST(LeftHandle_test, test_CKeyLeftDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CKeyLeftDeal leftDeal(scene); leftDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyleftdeal.h000066400000000000000000000020501423264401600312650ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CKEYLEFTDEAL_H #define TEST_CKEYLEFTDEAL_H #include class test_CKeyLeftDeal : public QObject { Q_OBJECT public: explicit test_CKeyLeftDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CKEYLEFTDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeypressprxy.cpp000066400000000000000000000027231423264401600321260ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ckeypressprxy.h" #include "ckeyleftdeal.h" test_CKeyPressPrxy::test_CKeyPressPrxy() { keyPressPrxy = QSharedPointer(new CKeyPressPrxy); } TEST_F(test_CKeyPressPrxy, keyPressDeal_NoEvent) { ASSERT_FALSE(keyPressPrxy->keyPressDeal(Qt::Key_Tab)); } TEST_F(test_CKeyPressPrxy, keyPressDeal) { keyPressPrxy->addkeyPressDeal(new CKeyLeftDeal()); ASSERT_FALSE(keyPressPrxy->keyPressDeal(Qt::Key_Left)); } TEST_F(test_CKeyPressPrxy, removeDeal) { CKeyLeftDeal *leftDeal = new CKeyLeftDeal(); keyPressPrxy->addkeyPressDeal(leftDeal); keyPressPrxy->removeDeal(leftDeal); ASSERT_FALSE(keyPressPrxy->keyPressDeal(Qt::Key_Left)); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeypressprxy.h000066400000000000000000000023151423264401600315700ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CKEYPRESSPRXY_H #define TEST_CKEYPRESSPRXY_H #include "configsettings.h" #include "gtest/gtest.h" #include "ckeypressprxy.h" #include #include class test_CKeyPressPrxy : public QObject , public ::testing::Test { Q_OBJECT public: test_CKeyPressPrxy(); signals: public slots: public: QSharedPointer keyPressPrxy; }; #endif // TEST_CKEYPRESSPRXY_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyrightdeal.cpp000066400000000000000000000024701423264401600320110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ckeyrightdeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/ckeyrightdeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CKeyRightDeal::test_CKeyRightDeal(QObject *parent) : QObject(parent) { } TEST(RightHandle_test, test_CKeyRightDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CKeyRightDeal rightDeal(scene); rightDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyrightdeal.h000066400000000000000000000020551423264401600314550ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CKEYRIGHTDEAL_H #define TEST_CKEYRIGHTDEAL_H #include class test_CKeyRightDeal : public QObject { Q_OBJECT public: explicit test_CKeyRightDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CKEYRIGHTDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyupdeal.cpp000066400000000000000000000024351423264401600313210ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_ckeyupdeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/ckeyupdeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CKeyUpDeal::test_CKeyUpDeal(QObject *parent) : QObject(parent) { } TEST(UpHandle_test, test_CKeyUpDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CKeyUpDeal upDeal(scene); upDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_ckeyupdeal.h000066400000000000000000000020361423264401600307630ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CKEYUPDEAL_H #define TEST_CKEYUPDEAL_H #include class test_CKeyUpDeal : public QObject { Q_OBJECT public: explicit test_CKeyUpDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CKEYUPDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_cscenetabkeydeal.cpp000066400000000000000000000025111423264401600324540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_cscenetabkeydeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/cscenetabkeydeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CSceneTabKeyDeal::test_CSceneTabKeyDeal(QObject *parent) : QObject(parent) { } TEST(SceneTabHandle_test, test_CSceneTabKeyDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CSceneTabKeyDeal tabDeal(scene); tabDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_cscenetabkeydeal.h000066400000000000000000000020741423264401600321250ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CSCENETABKEYDEAL_H #define TEST_CSCENETABKEYDEAL_H #include class test_CSceneTabKeyDeal : public QObject { Q_OBJECT public: explicit test_CSceneTabKeyDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CSCENETABKEYDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_cweekdayscenetabkeydeal.cpp000066400000000000000000000026021423264401600340270ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_cweekdayscenetabkeydeal.h" #include "../third-party_stub/stub.h" #include "gtest/gtest.h" #include "view/cgraphicsscene.h" #include "KeyPress/cweekdayscenetabkeydeal.h" #include "view/graphicsItem/cweekdaybackgrounditem.h" #include "keypressstub.h" test_CWeekDaySceneTabKeyDeal::test_CWeekDaySceneTabKeyDeal(QObject *parent) : QObject(parent) { } TEST(WeekDaySceneTabHandle_test, test_CWeekDaySceneTabKeyDeal) { KeyPressStub stub; CGraphicsScene *scene = new CGraphicsScene(); CWeekDaySceneTabKeyDeal weektabDeal(scene); weektabDeal.dealEvent(); delete scene; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_keypress/test_cweekdayscenetabkeydeal.h000066400000000000000000000021371423264401600334770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CWEEKDAYSCENETABKEYDEAL_H #define TEST_CWEEKDAYSCENETABKEYDEAL_H #include class test_CWeekDaySceneTabKeyDeal : public QObject { Q_OBJECT public: explicit test_CWeekDaySceneTabKeyDeal(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_CWEEKDAYSCENETABKEYDEAL_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_shortcut.cpp000066400000000000000000000020251423264401600261350ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_shortcut.h" #include "shortcut.h" #include "gtest/gtest.h" test_Shortcut::test_Shortcut(QObject *parent) : QObject(parent) { } TEST(shorcutTest, shorcut) { Shortcut shortcut; QString str = shortcut.toStr(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_shortcut.h000066400000000000000000000020241423264401600256010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_SHORTCUT_H #define TEST_SHORTCUT_H #include class test_Shortcut : public QObject { Q_OBJECT public: explicit test_Shortcut(QObject *parent = nullptr); signals: public slots: }; #endif // TEST_SHORTCUT_Hdde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_tabletconfig.cpp000066400000000000000000000021231423264401600267220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_tabletconfig.h" test_TabletConfig::test_TabletConfig() { } TEST(istableTest, TabletConfig) { TabletConfig tabletconfig; tabletconfig.setIsTablet(true); ASSERT_TRUE(tabletconfig.isTablet()); tabletconfig.setIsTablet(false); ASSERT_FALSE(tabletconfig.isTablet()); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_tabletconfig.h000066400000000000000000000021301423264401600263650ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_TABLETCONFIG_H #define TEST_TABLETCONFIG_H #include "tabletconfig.h" #include "gtest/gtest.h" #include class test_TabletConfig : public QObject , public ::testing::Test { Q_OBJECT public: test_TabletConfig(); signals: public slots: }; #endif // TEST_TABLETCONFIG_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/000077500000000000000000000000001423264401600245315ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_alldayeventview.cpp000066400000000000000000000306321423264401600315030ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_alldayeventview.h" #include "../dialog_stub.h" #include #include #include test_alldayeventview::test_alldayeventview() { } void test_alldayeventview::SetUp() { cAllDayEventWeekView = new CAllDayEventWeekView(); cAllDayEventWeekView->setFixedSize(QSize(800, 300)); } void test_alldayeventview::TearDown() { delete cAllDayEventWeekView; cAllDayEventWeekView = nullptr; } //void CAllDayEventWeekView::setTheMe(int type) TEST_F(test_alldayeventview, setTheMe) { int type = 1; cAllDayEventWeekView->setTheMe(); cAllDayEventWeekView->setTheMe(type); } //bool CAllDayEventWeekView::MeetCreationConditions(const QDateTime &date) TEST_F(test_alldayeventview, MeetCreationConditions) { QString begin = "2020-12-01 12:24:36"; QDateTime date = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); cAllDayEventWeekView->MeetCreationConditions(date); } //bool CAllDayEventWeekView::IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) TEST_F(test_alldayeventview, IsEqualtime) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); bool getBool = cAllDayEventWeekView->IsEqualtime(begindate, enddate); assert(false == getBool); enddate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); getBool = cAllDayEventWeekView->IsEqualtime(begindate, enddate); assert(true == getBool); } //void CAllDayEventWeekView::setRange(int w, int h, QDate begindate, QDate enddate, int rightmagin) TEST_F(test_alldayeventview, setRange) { int w = 3; int h = 2; QDate begindate(2020, 12, 01); QDate enddate(2020, 12, 21); int rightmagin = 2; cAllDayEventWeekView->setRange(w, h, begindate, enddate, rightmagin); } QVector getTestScheduleDataInfo() { ScheduleDataInfo info1; info1.setID(1); info1.setType(2); info1.setAllDay(true); info1.setRecurID(2); info1.setTitleName("测试1"); QString strDate = "2020-12-02 12:24:36"; QDateTime ignoreDate = QDateTime::fromString(strDate, "yyyy-MM-dd hh:mm:ss"); QVector ignoreDateList; ignoreDateList.append(ignoreDate); info1.setIgnoreTime(ignoreDateList); QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-03 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); info1.setBeginDateTime(begindate); info1.setEndDateTime(enddate); ScheduleDataInfo info2; info2.setID(1); info2.setType(2); info2.setAllDay(true); info2.setRecurID(2); info2.setTitleName("测试2"); QString strDate2 = "2020-12-12 12:24:36"; QDateTime ignoreDate2 = QDateTime::fromString(strDate2, "yyyy-MM-dd hh:mm:ss"); QVector ignoreDateList2; ignoreDateList2.append(ignoreDate2); info2.setIgnoreTime(ignoreDateList2); QString begin2 = "2020-12-11 12:24:36"; QDateTime begindate2 = QDateTime::fromString(begin2, "yyyy-MM-dd hh:mm:ss"); QString end2 = "2020-12-13 12:24:36"; QDateTime enddate2 = QDateTime::fromString(end2, "yyyy-MM-dd hh:mm:ss"); info2.setBeginDateTime(begindate2); info2.setEndDateTime(enddate2); ScheduleDataInfo info3; info3.setID(1); info3.setType(2); info3.setAllDay(true); info3.setRecurID(2); info3.setTitleName("测试3"); QString strDate3 = "2020-12-22 12:24:36"; QDateTime ignoreDate3 = QDateTime::fromString(strDate3, "yyyy-MM-dd hh:mm:ss"); QVector ignoreDateList3; ignoreDateList3.append(ignoreDate3); info3.setIgnoreTime(ignoreDateList3); QString begin3 = "2020-12-21 12:24:36"; QDateTime begindate3 = QDateTime::fromString(begin3, "yyyy-MM-dd hh:mm:ss"); QString end3 = "2020-12-23 12:24:36"; QDateTime enddate3 = QDateTime::fromString(end3, "yyyy-MM-dd hh:mm:ss"); info3.setBeginDateTime(begindate3); info3.setEndDateTime(enddate3); QVector infoList; infoList.append(info1); infoList.append(info2); infoList.append(info3); return infoList; } //void CAllDayEventWeekView::setDayData(const QVector> &vlistData) TEST_F(test_alldayeventview, setDayData) { QVector> vlistData; QVector infoList1; infoList1.append(getTestScheduleDataInfo().at(0)); infoList1.append(getTestScheduleDataInfo().at(1)); QVector infoList2; infoList2.append(getTestScheduleDataInfo().at(2)); vlistData.append(infoList1); vlistData.append(infoList2); cAllDayEventWeekView->setDayData(vlistData); } //void CAllDayEventWeekView::setInfo(const QVector &info) TEST_F(test_alldayeventview, setInfo) { cAllDayEventWeekView->setInfo(getTestScheduleDataInfo()); } //void CAllDayEventWeekView::slotDoubleEvent() TEST_F(test_alldayeventview, slotDoubleEvent) { cAllDayEventWeekView->slotDoubleEvent(); } //void CAllDayEventWeekView::createItemWidget(int index, bool average) TEST_F(test_alldayeventview, createItemWidget) { QVector> vlistData; QVector infoList1; infoList1.append(getTestScheduleDataInfo().at(0)); infoList1.append(getTestScheduleDataInfo().at(1)); QVector infoList2; infoList2.append(getTestScheduleDataInfo().at(2)); vlistData.append(infoList1); vlistData.append(infoList2); cAllDayEventWeekView->setDayData(vlistData); int w = 1000; int h = 900; QDate begindate(2020, 12, 01); QDate enddate(2020, 12, 21); int rightmagin = 2; cAllDayEventWeekView->setRange(w, h, begindate, enddate, rightmagin); int index = 0; bool average = true; cAllDayEventWeekView->createItemWidget(index, average); cAllDayEventWeekView->updateHeight(); //setSelectSearchSchedule cAllDayEventWeekView->setSelectSearchSchedule(getTestScheduleDataInfo().at(1)); } //void CAllDayEventWeekView::updateItemHeightByFontSize() TEST_F(test_alldayeventview, updateItemHeightByFontSize) { cAllDayEventWeekView->updateItemHeightByFontSize(); } //void CAllDayEventWeekView::upDateInfoShow(const DragStatus &status, const ScheduleDataInfo &info) TEST_F(test_alldayeventview, upDateInfoShow) { cAllDayEventWeekView->setInfo(getTestScheduleDataInfo()); cAllDayEventWeekView->upDateInfoShow(DragInfoGraphicsView::DragStatus::ChangeEnd, getTestScheduleDataInfo().at(1)); cAllDayEventWeekView->upDateInfoShow(DragInfoGraphicsView::DragStatus::ChangeBegin, getTestScheduleDataInfo().at(1)); cAllDayEventWeekView->upDateInfoShow(DragInfoGraphicsView::DragStatus::ChangeWhole, getTestScheduleDataInfo().at(1)); cAllDayEventWeekView->upDateInfoShow(DragInfoGraphicsView::DragStatus::IsCreate, getTestScheduleDataInfo().at(1)); } // TEST_F(test_alldayeventview, getPixmap) { cAllDayEventWeekView->setFixedSize(500, 800); QPixmap pixmap(cAllDayEventWeekView->size()); pixmap = cAllDayEventWeekView->grab(); } // TEST_F(test_alldayeventview, eventTest) { QTest::keyEvent(QTest::Press, cAllDayEventWeekView, Qt::Key::Key_Enter); cAllDayEventWeekView->setFixedSize(500, 100); QTest::mouseDClick(cAllDayEventWeekView, Qt::LeftButton, Qt::NoModifier, QPoint(200, 50)); } //slotCreate TEST_F(test_alldayeventview, slotCreate) { calendarDDialogExecReturn = 1; Stub stub; calendarDDialogExecStub(stub); cAllDayEventWeekView->slotCreate(QDateTime::currentDateTime()); } //getDragScheduleInfoBeginTime TEST_F(test_alldayeventview, getDragScheduleInfoBeginTime) { cAllDayEventWeekView->getDragScheduleInfoBeginTime(QDateTime::currentDateTime()); } //changeEvent TEST_F(test_alldayeventview, changeEvent) { QEvent event(QEvent::FontChange); QApplication::sendEvent(cAllDayEventWeekView, &event); } //mousePressEvent TEST_F(test_alldayeventview, mousePressEvent) { QMouseEvent event(QEvent::MouseButtonPress, QPointF(32, 13), QPointF(646, 438), QPointF(646, 438), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt); QApplication::sendEvent(cAllDayEventWeekView->viewport(), &event); } TEST_F(test_alldayeventview, JudgeIsCreate) { QPointF point(32, 13); cAllDayEventWeekView->JudgeIsCreate(point); } QAction *stub_exec(const QPoint &pos, QAction *at = nullptr) { Q_UNUSED(pos) Q_UNUSED(at) return nullptr; } //RightClickToCreate TEST_F(test_alldayeventview, RightClickToCreate) { Stub stub; stub.set((QAction * (QMenu::*)(const QPoint &, QAction *)) ADDR(QMenu, exec), stub_exec); cAllDayEventWeekView->RightClickToCreate(nullptr, QPoint(30, 50)); } //MoveInfoProcess TEST_F(test_alldayeventview, MoveInfoProcess) { ScheduleDataInfo info; QDateTime currentTime = QDateTime::currentDateTime(); info.setBeginDateTime(currentTime); info.setEndDateTime(currentTime.addDays(1)); info.setAllDay(true); cAllDayEventWeekView->MoveInfoProcess(info, QPointF(0, 0)); info.setAllDay(false); cAllDayEventWeekView->MoveInfoProcess(info, QPointF(0, 0)); } //getDragScheduleInfoEndTime TEST_F(test_alldayeventview, getDragScheduleInfoEndTime) { cAllDayEventWeekView->getDragScheduleInfoEndTime(QDateTime::currentDateTime()); } //slotUpdateScene TEST_F(test_alldayeventview, slotUpdateScene) { cAllDayEventWeekView->slotUpdateScene(); } TEST_F(test_alldayeventview, updateInfo) { cAllDayEventWeekView->updateInfo(); cAllDayEventWeekView->m_DragStatus = DragInfoGraphicsView::IsCreate; cAllDayEventWeekView->updateInfo(); } //mouseDoubleClickEvent TEST_F(test_alldayeventview, mouseDoubleClickEvent) { Stub stub; calendarDDialogExecStub(stub); QTest::mouseDClick(cAllDayEventWeekView->viewport(), Qt::LeftButton); } // TEST_F(test_alldayeventview, setSceneRect) { cAllDayEventWeekView->setSceneRect(20, 20, 1000, 1500); cAllDayEventWeekView->updateBackgroundShowItem(); } //slotPosOnView TEST_F(test_alldayeventview, slotPosOnView) { cAllDayEventWeekView->slotPosOnView(1); } //mouseReleaseEvent TEST_F(test_alldayeventview, mouseReleaseEvent) { QMouseEvent event(QEvent::MouseButtonRelease, QPointF(32, 13), QPointF(646, 438), QPointF(646, 438), Qt::RightButton, Qt::RightButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt); QApplication::sendEvent(cAllDayEventWeekView->viewport(), &event); } //mouseReleaseEvent TEST_F(test_alldayeventview, mouseReleaseEvent1) { cAllDayEventWeekView->m_TouchBeginTime = QDateTime::currentDateTime().toMSecsSinceEpoch() - 10; QMouseEvent event(QEvent::MouseButtonRelease, QPointF(32, 13), QPointF(646, 438), QPointF(646, 438), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt); QApplication::sendEvent(cAllDayEventWeekView->viewport(), &event); } //mouseMoveEvent TEST_F(test_alldayeventview, mouseMoveEvent) { cAllDayEventWeekView->m_touchState = DragInfoGraphicsView::TS_PRESS; QTest::mouseMove(cAllDayEventWeekView->viewport()); } //wheelEvent TEST_F(test_alldayeventview, wheelEvent) { QEvent event(QEvent::Wheel); QApplication::sendEvent(cAllDayEventWeekView->viewport(), &event); } //contextMenuEvent TEST_F(test_alldayeventview, contextMenuEvent) { // QEvent event(QEvent::ContextMenu); QContextMenuEvent event(QContextMenuEvent::Mouse, QPoint(20, 20), QPoint(120, 120), Qt::NoModifier); Stub stub; stub.set((QAction * (QMenu::*)(const QPoint &, QAction *)) ADDR(QMenu, exec), stub_exec); calendarDDialogExecStub(stub); QApplication::sendEvent(cAllDayEventWeekView->viewport(), &event); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_alldayeventview.h000066400000000000000000000022631423264401600311470ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_ALLDAYEVENTVIEW_H #define TEST_ALLDAYEVENTVIEW_H #include "alldayeventview.h" #include "gtest/gtest.h" #include class test_alldayeventview : public QObject, public::testing::Test { public: test_alldayeventview(); void SetUp() override; void TearDown() override; protected: CAllDayEventWeekView *cAllDayEventWeekView = nullptr; }; #endif // TEST_ALLDAYEVENTVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_calldayscheduleitem.cpp000066400000000000000000000037571423264401600323150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_calldayscheduleitem.h" #include "../testscheduledata.h" #include test_CAlldayscheduleitem::test_CAlldayscheduleitem() { } void test_CAlldayscheduleitem::SetUp() { m_rectF.setRect(0, 0, 200, 50); m_allItem = new CAllDayScheduleItem(m_rectF); } void test_CAlldayscheduleitem::TearDown() { delete m_allItem; m_allItem = nullptr; } //paintBackground TEST_F(test_CAlldayscheduleitem, paintBackground) { m_allItem->setData(TestDataInfo::getScheduleItemDInfo().first()); QPixmap pixmap(m_rectF.toRect().size()); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); m_allItem->setPressSchedule(TestDataInfo::getScheduleItemDInfo().first()); m_allItem->m_vSelectflag = true; m_allItem->paintBackground(&painter, pixmap.rect(), true); m_allItem->m_vHoverflag = true; m_allItem->m_vSelectflag = false; m_allItem->paintBackground(&painter, pixmap.rect(), true); } //hasSelectSchedule TEST_F(test_CAlldayscheduleitem, hasSelectSchedule) { m_allItem->setData(TestDataInfo::getScheduleItemDInfo().first()); bool hasSelectInfo = m_allItem->hasSelectSchedule(TestDataInfo::getScheduleItemDInfo().first()); ASSERT_TRUE(hasSelectInfo); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_calldayscheduleitem.h000066400000000000000000000024071423264401600317510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CALLDAYSCHEDULEITEM_H #define TEST_CALLDAYSCHEDULEITEM_H #include "gtest/gtest.h" #include "graphicsItem/calldayscheduleitem.h" #include class test_CAlldayscheduleitem : public QObject , public ::testing::Test { Q_OBJECT public: test_CAlldayscheduleitem(); void SetUp() override; void TearDown() override; signals: public slots: public: CAllDayScheduleItem *m_allItem; QRectF m_rectF; }; #endif // TEST_CALLDAYSCHEDULEITEM_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_cweekdaybackgrounditem.cpp000066400000000000000000000035141423264401600330120ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_cweekdaybackgrounditem.h" test_CWeekDayBackgroundItem::test_CWeekDayBackgroundItem() { } void test_CWeekDayBackgroundItem::SetUp() { m_weekItem = new CWeekDayBackgroundItem(); } void test_CWeekDayBackgroundItem::TearDown() { delete m_weekItem; m_weekItem = nullptr; } //showFocus TEST_F(test_CWeekDayBackgroundItem, showFocus) { m_weekItem->setShowFocus(true); ASSERT_TRUE(m_weekItem->showFocus()); m_weekItem->setShowFocus(false); ASSERT_FALSE(m_weekItem->showFocus()); } //setItemFocus TEST_F(test_CWeekDayBackgroundItem, setItemFocus) { m_weekItem->setItemFocus(true); } //hasNextSubItem TEST_F(test_CWeekDayBackgroundItem, hasNextSubItem) { bool hasNextSub; hasNextSub = m_weekItem->hasNextSubItem(); ASSERT_FALSE(hasNextSub); } //drawDividingLine TEST_F(test_CWeekDayBackgroundItem, drawDividingLine) { m_weekItem->setDrawDividingLine(false); ASSERT_FALSE(m_weekItem->drawDividingLine()); m_weekItem->setDrawDividingLine(true); ASSERT_TRUE(m_weekItem->drawDividingLine()); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_cweekdaybackgrounditem.h000066400000000000000000000025171423264401600324610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_CWEEKDAYBACKGROUNDITEM_H #define TEST_CWEEKDAYBACKGROUNDITEM_H #include "graphicsItem/cweekdaybackgrounditem.h" #include "gtest/gtest.h" #include class test_CWeekDayBackgroundItem : public QObject , public testing::Test { Q_OBJECT public: test_CWeekDayBackgroundItem(); // Sets up the test fixture. void SetUp() override; // Tears down the test fixture. void TearDown() override; signals: public slots: public: CWeekDayBackgroundItem *m_weekItem; }; #endif // TEST_CWEEKDAYBACKGROUNDITEM_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_graphicsscene.cpp000066400000000000000000000055121423264401600311150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_graphicsscene.h" #include #include #include #include #include "view/graphicsItem/cfocusitem.h" test_graphicsscene::test_graphicsscene() { } void test_graphicsscene::SetUp() { m_Scene = new CGraphicsScene(); } void test_graphicsscene::TearDown() { delete m_Scene; m_Scene = nullptr; } TEST_F(test_graphicsscene, getCurrentFocusItem) { QGraphicsItem *item = m_Scene->getCurrentFocusItem(); Q_UNUSED(item) } //setPrePage TEST_F(test_graphicsscene, setPrePage) { m_Scene->setPrePage(QDate::currentDate(), false); } //focusInDeal TEST_F(test_graphicsscene, focusInDeal) { m_Scene->setIsShowCurrentItem(true); QFocusEvent event(QEvent::FocusIn, Qt::TabFocusReason); QApplication::sendEvent(m_Scene, &event); } TEST_F(test_graphicsscene, focusInDeal1) { CFocusItem *item = new CFocusItem(); m_Scene->setCurrentFocusItem(item); m_Scene->addItem(item); QFocusEvent event(QEvent::FocusIn, Qt::ActiveWindowFocusReason); QApplication::sendEvent(m_Scene, &event); m_Scene->clear(); } //focusOutDeal TEST_F(test_graphicsscene, focusOutDeal) { QFocusEvent event(QEvent::FocusOut, Qt::TabFocusReason); m_Scene->setActiveSwitching(true); QApplication::sendEvent(m_Scene, &event); } //focusOutDeal TEST_F(test_graphicsscene, focusOutDeal1) { QFocusEvent event(QEvent::FocusOut, Qt::TabFocusReason); m_Scene->setActiveSwitching(false); QApplication::sendEvent(m_Scene, &event); } TEST_F(test_graphicsscene, event) { QFocusEvent event(QEvent::FocusOut); m_Scene->event(&event); } //setIsContextMenu TEST_F(test_graphicsscene, setIsContextMenu) { m_Scene->setIsShowCurrentItem(false); } //currentItemInit TEST_F(test_graphicsscene, currentItemInit) { CFocusItem *item = new CFocusItem(); m_Scene->setCurrentFocusItem(item); m_Scene->addItem(item); m_Scene->currentItemInit(); m_Scene->clear(); } //getActiveSwitching TEST_F(test_graphicsscene, getActiveSwitching) { m_Scene->getActiveSwitching(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_graphicsscene.h000066400000000000000000000023071423264401600305610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_GRAPHICSSCENE_H #define TEST_GRAPHICSSCENE_H #include "gtest/gtest.h" #include "cgraphicsscene.h" #include class test_graphicsscene : public QObject , public ::testing::Test { Q_OBJECT public: test_graphicsscene(); void SetUp() override; void TearDown() override; signals: public slots: public: CGraphicsScene *m_Scene = nullptr; }; #endif // TEST_GRAPHICSSCENE_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_graphicsview.cpp000066400000000000000000000232751423264401600310000ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_graphicsview.h" #include "graphicsItem/scheduleitem.h" #include "../third-party_stub/stub.h" #include "../dialog_stub.h" #include test_graphicsview::test_graphicsview() { cGraphicsView = new CGraphicsView(nullptr, CGraphicsView::WeekPos); } test_graphicsview::~test_graphicsview() { delete cGraphicsView; } //void CGraphicsView::setMargins(int left, int top, int right, int bottom) TEST_F(test_graphicsview, setMargins) { int left = 50; int top = 50; int right = 50; int bottom = 50; cGraphicsView->setMargins(left, top, right, bottom); assert(cGraphicsView->m_margins.left() == 50); } //void CGraphicsView::setTheMe(int type) TEST_F(test_graphicsview, setTheMe) { int type = 0; cGraphicsView->setTheMe(type); type = 2; cGraphicsView->setTheMe(type); } //bool CGraphicsView::MeetCreationConditions(const QDateTime &date) TEST_F(test_graphicsview, MeetCreationConditions) { QString strDate = "2020-12-28 12:24:36"; QDateTime date = QDateTime::fromString(strDate, "yyyy-MM-dd hh:mm:ss"); cGraphicsView->MeetCreationConditions(date); } TEST_F(test_graphicsview, updateHeight_01) { cGraphicsView->updateHeight(); } //void CGraphicsView::setRange(int w, int h, QDate begindate, QDate enddate, int rightMargin) TEST_F(test_graphicsview, setRange) { int w = 20; int h = 20; QDate begindate(2020, 11, 11); QDate enddate(2020, 11, 31); int rightMargin = 10; cGraphicsView->setRange(w, h, begindate, enddate, rightMargin); cGraphicsView->setRange(begindate, enddate); } //void CGraphicsView::setCurrentDate(const QDateTime ¤tDate) TEST_F(test_graphicsview, setCurrentDate) { QDateTime date = QDateTime::currentDateTime(); cGraphicsView->setCurrentDate(date); } //void CGraphicsView::setInfo(const QVector &info) TEST_F(test_graphicsview, setInfo) { QVector infos = QVector {}; cGraphicsView->setInfo(infos); } bool MScheduleTimeThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2); TEST_F(test_graphicsview, MScheduleTimeThan) { ScheduleDataInfo info1 = ScheduleDataInfo{}; ScheduleDataInfo info2 = ScheduleDataInfo{}; MScheduleTimeThan(info1, info2); } //void CGraphicsView::upDateInfoShow(const CGraphicsView::DragStatus &status, const ScheduleDataInfo &info) TEST_F(test_graphicsview, upDateInfoShow) { ScheduleDataInfo info = ScheduleDataInfo{}; cGraphicsView->upDateInfoShow(CGraphicsView::DragStatus::IsCreate, info); cGraphicsView->upDateInfoShow(CGraphicsView::DragStatus::ChangeEnd, info); cGraphicsView->upDateInfoShow(CGraphicsView::DragStatus::ChangeBegin, info); cGraphicsView->upDateInfoShow(CGraphicsView::DragStatus::ChangeWhole, info); cGraphicsView->upDateInfoShow(CGraphicsView::DragStatus::NONE, info); } //QDateTime CGraphicsView::getPosDate(const QPoint &p) TEST_F(test_graphicsview, getPosDate) { QDateTime dateTime; QPoint point(50, 40); dateTime = cGraphicsView->getPosDate(point); } //void CGraphicsView::ShowSchedule(DragInfoItem *infoitem) //TEST_F(test_graphicsview, ShowSchedule) //{ // QPoint point(50, 40); // QGraphicsItem *listItem = itemAt(point); // DragInfoItem *infoitem = dynamic_cast(listItem); // CScheduleItem *scheduleitem = dynamic_cast(infoitem); // qInfo() << scheduleitem->getType(); // cGraphicsView->ShowSchedule(infoitem); //} TEST_F(test_graphicsview, MoveInfoProcess_01) { ScheduleDataInfo info = ScheduleDataInfo{}; QPointF pos(1, 1); info.setAllDay(true); cGraphicsView->MoveInfoProcess(info, pos); EXPECT_FALSE(info.getAllDay()); } TEST_F(test_graphicsview, MoveInfoProcess_02) { ScheduleDataInfo info = ScheduleDataInfo{}; QPointF pos(1, 1); info.setAllDay(false); cGraphicsView->MoveInfoProcess(info, pos); EXPECT_FALSE(info.getAllDay()); } //void CGraphicsView::addScheduleItem(const ScheduleDataInfo &info, QDate date, int index, int totalNum, int type, int viewtype, int maxnum) TEST_F(test_graphicsview, addScheduleItem_01) { ScheduleDataInfo info = ScheduleDataInfo{}; QDate date(2020, 12, 28); int index = 1; int totalNum = 2; int type = 1; int viewtype = 1; int maxnum = 3; cGraphicsView->addScheduleItem(info, date, index, totalNum, type, viewtype, maxnum); } TEST_F(test_graphicsview, clearSchedule_01) { cGraphicsView->clearSchedule(); EXPECT_TRUE(cGraphicsView->m_updateDflag); EXPECT_TRUE(cGraphicsView->m_vScheduleItem.isEmpty()); } //void CGraphicsView::scheduleClassificationType(QVector &scheduleInfolist, QList &info) TEST_F(test_graphicsview, schedusleClassificationType) { QVector scheduleInfolist = QVector {}; QList info = QList {}; cGraphicsView->scheduleClassificationType(scheduleInfolist, info); } //void CGraphicsView::slotDoubleEvent(int type) TEST_F(test_graphicsview, slotDoubleEvent) { int type = 1; cGraphicsView->slotDoubleEvent(type); } //void CGraphicsView::slotScrollBar() TEST_F(test_graphicsview, slotScrollBar) { cGraphicsView->slotScrollBar(); } //void CGraphicsView::slotUpdateScene() TEST_F(test_graphicsview, slotUpdateScene) { cGraphicsView->slotUpdateScene(); } //void CGraphicsView::scrollBarValueChangedSlot() TEST_F(test_graphicsview, scrollBarValueChangedSlot_01) { cGraphicsView->scrollBarValueChangedSlot(); } //ScheduleDataInfo CGraphicsView::getScheduleInfo(const QDateTime &beginDate, const QDateTime &endDate) TEST_F(test_graphicsview, getScheduleInfo_01) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); cGraphicsView->getScheduleInfo(begindate, enddate); } TEST_F(test_graphicsview, getScheduleInfo_02) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); cGraphicsView->getScheduleInfo(enddate, begindate); } //bool CGraphicsView::IsEqualtime(const QDateTime &timeFirst, const QDateTime &timeSecond) TEST_F(test_graphicsview, IsEqualtime) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); cGraphicsView->IsEqualtime(begindate, enddate); } //bool CGraphicsView::JudgeIsCreate(const QPointF &pos) TEST_F(test_graphicsview, JudgeIsCreate) { QPointF pos(20, 20); bool getBool = cGraphicsView->JudgeIsCreate(pos); } //void CGraphicsView::RightClickToCreate(QGraphicsItem *listItem, const QPoint &pos) TEST_F(test_graphicsview, RightClickToCreate) { // QGraphicsItem *listItem = nullptr; // QPoint pos(20, 20); //cGraphicsView->RightClickToCreate(listItem, pos); } //QDateTime CGraphicsView::getDragScheduleInfoBeginTime(const QDateTime &moveDateTime) TEST_F(test_graphicsview, getDragScheduleInfoBeginTime) { QString begin = "2020-12-01 12:24:36"; QDateTime begindate = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss"); cGraphicsView->getDragScheduleInfoBeginTime(begindate); } //QDateTime CGraphicsView::getDragScheduleInfoEndTime(const QDateTime &moveDateTime) TEST_F(test_graphicsview, getDragScheduleInfoEndTime) { QString end = "2020-12-21 12:24:36"; QDateTime enddate = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss"); cGraphicsView->getDragScheduleInfoEndTime(enddate); } //void CGraphicsView::keepCenterOnScene() TEST_F(test_graphicsview, keepCenterOnScene) { cGraphicsView->keepCenterOnScene(); } //void CGraphicsView::setTime(QTime time) TEST_F(test_graphicsview, setTime) { QTime time(7, 30, 5, 100); cGraphicsView->setTime(time); } //void CGraphicsView::updateInfo() TEST_F(test_graphicsview, updateInfo) { cGraphicsView->updateInfo(); } TEST_F(test_graphicsview, mouseDoubleClickEvent_01) { Stub stub; calendarDDialogExecStub(stub); QMouseEvent event(QEvent::MouseButtonDblClick, QPointF(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); cGraphicsView->mouseDoubleClickEvent(&event); } TEST_F(test_graphicsview, mousePressEvent_01) { QMouseEvent event(QEvent::MouseButtonPress, QPointF(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); cGraphicsView->mousePressEvent(&event); } TEST_F(test_graphicsview, mouseMoveEvent_01) { QMouseEvent event(QEvent::MouseButtonPress, QPointF(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); cGraphicsView->mouseMoveEvent(&event); } TEST_F(test_graphicsview, resizeEvent_01) { QResizeEvent event(QSize(50, 50), QSize(100, 100)); cGraphicsView->resizeEvent(&event); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_graphicsview.h000066400000000000000000000021621423264401600304350ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_GRAPHICSVIEW_H #define TEST_GRAPHICSVIEW_H #include "graphicsview.h" #include "gtest/gtest.h" #include class test_graphicsview : public QObject, public::testing::Test { public: test_graphicsview(); ~test_graphicsview(); protected: CGraphicsView *cGraphicsView = nullptr; }; #endif // TEST_GRAPHICSVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_monthgraphiview.cpp000066400000000000000000000163061423264401600315150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_monthgraphiview.h" #include "../third-party_stub/stub.h" #include "../dialog_stub.h" #include "widget/monthWidget/monthscheduleview.h" static void monthgraphiview_stub_void() { } static int monthgraphiview_stub_true() { return 1; } test_monthgraphiview::test_monthgraphiview() { cMonthGraphiview = new CMonthGraphicsview(); } test_monthgraphiview::~test_monthgraphiview() { delete cMonthGraphiview; } //void CMonthGraphiview::setTheMe(int type) TEST_F(test_monthgraphiview, setTheMe) { int type = 1; cMonthGraphiview->setTheMe(); cMonthGraphiview->setTheMe(type); } //void CMonthGraphiview::setDate(const QVector &showDate) TEST_F(test_monthgraphiview, setDate) { QVector showDate; QDate date1(2020, 10, 1); QDate date2(2020, 12, 1); for (int i = 0; i < 42; ++i) { if (i % 2 == 0) { showDate.append(date1); } else { showDate.append(date2); } } std::cout << showDate.size() << std::endl; cMonthGraphiview->setDate(showDate); } //void CMonthGraphiview::setLunarInfo(const QMap &lunarCache) TEST_F(test_monthgraphiview, setLunarInfo) { QMap lunarCache = QMap {}; cMonthGraphiview->setLunarInfo(lunarCache); } //void CMonthGraphiview::setLunarVisible(bool visible) TEST_F(test_monthgraphiview, setLunarVisible) { bool visible = false; cMonthGraphiview->setLunarVisible(visible); } //void CMonthGraphiview::setScheduleInfo(const QMap > &info) TEST_F(test_monthgraphiview, setScheduleInfo) { QMap > info = QMap > {}; cMonthGraphiview->setScheduleInfo(info); } //void CMonthGraphiview::setSelectSearchSchedule(const ScheduleDataInfo &scheduleInfo) TEST_F(test_monthgraphiview, setSelectSearchSchedule) { ScheduleDataInfo scheduleInfo = ScheduleDataInfo{}; cMonthGraphiview->setSelectSearchSchedule(scheduleInfo); } //QPointF CMonthGraphiview::getItemPos(const QPoint &p, const QRectF &itemRect) TEST_F(test_monthgraphiview, getItemPos) { QPoint p(100, 100); QRectF itemRect; cMonthGraphiview->getItemPos(p, itemRect); } //QDateTime CMonthGraphiview::getPosDate(const QPoint &p) TEST_F(test_monthgraphiview, getPosDate_01) { QPoint p(100, 100); cMonthGraphiview->getPosDate(p); } TEST_F(test_monthgraphiview, getPosDate_02) { QPoint p(-100, -1); cMonthGraphiview->getPosDate(p); } TEST_F(test_monthgraphiview, getPosDate_03) { QPoint p(-1, -1); cMonthGraphiview->setSceneRect(-2, -2, 100, 100); cMonthGraphiview->getPosDate(p); } ////void CMonthGraphiview::upDateInfoShow(const CMonthGraphiview::DragStatus &status, const ScheduleDataInfo &info) TEST_F(test_monthgraphiview, upDateInfoShow_01) { Stub stub; stub.set(ADDR(CWeekScheduleView, addData), monthgraphiview_stub_void); stub.set(ADDR(CWeekScheduleView, changeDate), monthgraphiview_stub_void); ScheduleDataInfo info = ScheduleDataInfo{}; cMonthGraphiview->upDateInfoShow(CMonthGraphicsview::IsCreate, info); cMonthGraphiview->upDateInfoShow(CMonthGraphicsview::ChangeBegin, info); cMonthGraphiview->upDateInfoShow(CMonthGraphicsview::ChangeEnd, info); cMonthGraphiview->upDateInfoShow(CMonthGraphicsview::ChangeWhole, info); cMonthGraphiview->upDateInfoShow(CMonthGraphicsview::NONE, info); } TEST_F(test_monthgraphiview, slideEvent_01) { QPointF pos(1, 1); QPointF stopPos(2, 2); cMonthGraphiview->slideEvent(pos, stopPos); } TEST_F(test_monthgraphiview, mouseDoubleClickEvent_01) { QMouseEvent event(QEvent::MouseButtonDblClick, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); cMonthGraphiview->mouseDoubleClickEvent(&event); } TEST_F(test_monthgraphiview, mouseDoubleClickEvent_02) { QMouseEvent event(QEvent::MouseButtonDblClick, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::NoModifier); cMonthGraphiview->mouseDoubleClickEvent(&event); } TEST_F(test_monthgraphiview, mouseDoubleClickEvent_03) { QMouseEvent event(QEvent::MouseButtonDblClick, QPointF(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); cMonthGraphiview->mouseDoubleClickEvent(&event); } TEST_F(test_monthgraphiview, resizeEvent_01) { QResizeEvent event(QSize(50, 50), QSize(100, 100)); cMonthGraphiview->resizeEvent(&event); } TEST_F(test_monthgraphiview, changeEvent_01) { QEvent event(QEvent::FontChange); cMonthGraphiview->changeEvent(&event); } TEST_F(test_monthgraphiview, wheelEvent_01) { QWheelEvent event(QPointF(1, 1), 0, Qt::LeftButton, Qt::NoModifier); cMonthGraphiview->wheelEvent(&event); } TEST_F(test_monthgraphiview, updateBackgroundShowItem_01) { cMonthGraphiview->updateBackgroundShowItem(); } TEST_F(test_monthgraphiview, setDragPixmap_01) { QDrag drag(cMonthGraphiview); CMonthScheduleItem item(QRect(0, 0, 10, 10)); cMonthGraphiview->setDragPixmap(&drag, &item); } TEST_F(test_monthgraphiview, MeetCreationConditions_01) { QDateTime date; EXPECT_TRUE(cMonthGraphiview->MeetCreationConditions(date)); } TEST_F(test_monthgraphiview, IsEqualtime_01) { QDateTime date; EXPECT_TRUE(cMonthGraphiview->IsEqualtime(date, date)); } TEST_F(test_monthgraphiview, JudgeIsCreate_01) { EXPECT_FALSE(cMonthGraphiview->JudgeIsCreate(QPointF(1, 1))); } TEST_F(test_monthgraphiview, RightClickToCreate_01) { QPoint pos(1, 1); cMonthGraphiview->RightClickToCreate(nullptr, pos); } TEST_F(test_monthgraphiview, MoveInfoProcess_01) { QPointF pos(1, 1); ScheduleDataInfo info; cMonthGraphiview->MoveInfoProcess(info, pos); } TEST_F(test_monthgraphiview, MoveInfoProcess_02) { QPointF pos(1, -1); ScheduleDataInfo info; cMonthGraphiview->MoveInfoProcess(info, pos); } TEST_F(test_monthgraphiview, getDragScheduleInfoBeginTime_02) { QPointF pos(1, -1); QDateTime time; cMonthGraphiview->m_InfoEndTime = time; EXPECT_EQ(cMonthGraphiview->getDragScheduleInfoBeginTime(time), time); } TEST_F(test_monthgraphiview, getDragScheduleInfoEndTime_02) { QPointF pos(1, -1); QDateTime time; cMonthGraphiview->m_InfoEndTime = time; EXPECT_EQ(cMonthGraphiview->getDragScheduleInfoEndTime(time), time); } TEST_F(test_monthgraphiview, slotCreate_02) { Stub stub; calendarDDialogExecStub(stub); QPointF pos(1, -1); QDateTime time; cMonthGraphiview->m_InfoEndTime = time; cMonthGraphiview->slotCreate(time); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_monthgraphiview.h000066400000000000000000000022141423264401600311530ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_MONTHGRAPHVIEW_H #define TEST_MONTHGRAPHVIEW_H #include "monthgraphiview.h" #include "gtest/gtest.h" #include class test_monthgraphiview : public QObject, public::testing::Test { public: test_monthgraphiview(); ~test_monthgraphiview(); protected: CMonthGraphicsview *cMonthGraphiview = nullptr; }; #endif // TEST_MONTHGRAPHVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_scheduleitem.cpp000066400000000000000000000121431423264401600307500ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_scheduleitem.h" #include "../third-party_stub/stub.h" #include test_scheduleitem::test_scheduleitem() { QRectF rectf; mScheduleItem = new CScheduleItem(rectf); } test_scheduleitem::~test_scheduleitem() { delete mScheduleItem; mScheduleItem = nullptr; } QVector getScheduleItemDInfo() { QVector scheduleDate {}; ScheduleDataInfo schedule1, schedule2, schedule3, schedule4, schedule5, scheduleFes; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); schedule3.setID(3); schedule3.setBeginDateTime(currentDateTime.addDays(2)); schedule3.setEndDateTime(currentDateTime.addDays(2).addSecs(60 * 60)); schedule3.setTitleName("scheduleThree"); schedule3.setAllDay(false); schedule3.setType(3); schedule3.setRecurID(0); schedule4.setID(4); schedule4.setBeginDateTime(currentDateTime.addDays(3)); schedule4.setEndDateTime(currentDateTime.addDays(3).addSecs(60 * 60)); schedule4.setTitleName("scheduleFour"); schedule4.setAllDay(false); schedule4.setType(1); schedule4.setRecurID(0); schedule5.setID(5); schedule5.setBeginDateTime(currentDateTime.addDays(4)); schedule5.setEndDateTime(currentDateTime.addDays(4).addSecs(60 * 60)); schedule5.setTitleName("scheduleFive"); schedule5.setAllDay(false); schedule5.setType(2); schedule5.setRecurID(0); scheduleFes.setID(6); scheduleFes.setBeginDateTime(currentDateTime.addDays(5)); scheduleFes.setEndDateTime(currentDateTime.addDays(5).addSecs(60 * 60)); scheduleFes.setTitleName("scheduleFestival"); scheduleFes.setAllDay(true); scheduleFes.setType(4); scheduleFes.setRecurID(0); scheduleDate.append(schedule1); scheduleDate.append(schedule2); scheduleDate.append(schedule3); scheduleDate.append(schedule4); scheduleDate.append(schedule5); scheduleDate.append(scheduleFes); return scheduleDate; } //void CScheduleItem::setData(const ScheduleDataInfo &info, QDate date, int totalNum) TEST_F(test_scheduleitem, setData) { ScheduleDataInfo scheduleinof = getScheduleItemDInfo().first(); mScheduleItem->setData(scheduleinof, QDate::currentDate(), 4); } //bool CScheduleItem::hasSelectSchedule(const ScheduleDataInfo &info) TEST_F(test_scheduleitem, hasSelectSchedule) { ScheduleDataInfo scheduleinfo1 = getScheduleItemDInfo().first(); ScheduleDataInfo scheduleinfo2 = getScheduleItemDInfo().at(1); mScheduleItem->setData(scheduleinfo1, QDate::currentDate(), 4); bool res = mScheduleItem->hasSelectSchedule(scheduleinfo1); EXPECT_TRUE(res); res = mScheduleItem->hasSelectSchedule(scheduleinfo2); EXPECT_FALSE(res); } //void CScheduleItem::splitText(QFont font, int w, int h, QString str, QStringList &liststr, QFontMetrics &fontm) TEST_F(test_scheduleitem, splitText) { QFont font; QString str = "helo"; QStringList strlist("hello,word!"); QFontMetrics fontmetrics(font); mScheduleItem->splitText(font, 10, 12, str, strlist, fontmetrics); mScheduleItem->splitText(font, 40, 40, str, strlist, fontmetrics); } bool getItemFocus_Stub() { return true; } //paintBackground TEST_F(test_scheduleitem, paintBackground) { QRectF rectf(0, 0, 100, 100); mScheduleItem->setRect(rectf); mScheduleItem->setData(getScheduleItemDInfo().first(), QDate::currentDate(), 4); QPixmap pixmap(rectf.toRect().size()); pixmap.fill(Qt::transparent); QPainter painter(&pixmap); mScheduleItem->m_vHighflag = true; mScheduleItem->m_vSelectflag = false; mScheduleItem->paintBackground(&painter, pixmap.rect(), true); Stub stub; stub.set(ADDR(CFocusItem, getItemFocus), getItemFocus_Stub); mScheduleItem->m_vSelectflag = true; mScheduleItem->paintBackground(&painter, pixmap.rect(), true); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_view/test_scheduleitem.h000066400000000000000000000022301423264401600304110ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_SCHEDULEITEM_H #define TEST_SCHEDULEITEM_H #include #include #include "graphicsItem/scheduleitem.h" class test_scheduleitem : public ::QObject , public ::testing::Test { public: test_scheduleitem(); ~test_scheduleitem(); protected: CScheduleItem *mScheduleItem = nullptr; }; #endif // TEST_SCHEDULEITEM_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/000077500000000000000000000000001423264401600250425ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/000077500000000000000000000000001423264401600300225ustar00rootroot00000000000000test_dayhuangliview.cpp000066400000000000000000000037661423264401600345420ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_dayhuangliview.h" test_dayhuangliview::test_dayhuangliview() { mDayHuangLiLabel = new CDayHuangLiLabel(); } test_dayhuangliview::~test_dayhuangliview() { delete mDayHuangLiLabel; mDayHuangLiLabel = nullptr; } //void CDayHuangLiLabel::setbackgroundColor(QColor backgroundColor) TEST_F(test_dayhuangliview, setbackgroundColor) { mDayHuangLiLabel->setbackgroundColor(QColor(100, 100, 255)); } //void CDayHuangLiLabel::setTextInfo(QColor tcolor, QFont font) TEST_F(test_dayhuangliview, setTextInfo) { mDayHuangLiLabel->setTextInfo(QColor(100, 100, 255), QFont()); } //void CDayHuangLiLabel::setHuangLiText(QStringList vhuangli, int type) TEST_F(test_dayhuangliview, setHuangLiText) { QStringList strlist("嫁娶 入土"); mDayHuangLiLabel->setHuangLiText(strlist, 1); QStringList strlist1(""); mDayHuangLiLabel->setHuangLiText(strlist1, 2); } TEST_F(test_dayhuangliview, getPixmap) { QStringList strlist("嫁娶 入土"); mDayHuangLiLabel->setHuangLiText(strlist, 1); mDayHuangLiLabel->setbackgroundColor(QColor(100, 100, 255)); mDayHuangLiLabel->setFixedSize(200, 50); QPixmap pixmap(mDayHuangLiLabel->size()); mDayHuangLiLabel->render(&pixmap); } test_dayhuangliview.h000066400000000000000000000022471423264401600342000ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_DAYHUANGLIVIEW_H #define TEST_DAYHUANGLIVIEW_H #include #include #include class test_dayhuangliview : public QObject , public ::testing::Test { public: test_dayhuangliview(); ~test_dayhuangliview(); protected: CDayHuangLiLabel *mDayHuangLiLabel = nullptr; }; #endif // TEST_DAYHUANGLIVIEW_H test_daymonthview.cpp000066400000000000000000000104651423264401600342320ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_daymonthview.h" test_daymonthview::test_daymonthview() { mDayMonthView = new CDayMonthView(); } test_daymonthview::~test_daymonthview() { delete mDayMonthView; mDayMonthView = nullptr; } QVector dayMonthviewGetDayList() { QVector dateList {}; QDate currentDate = QDate::currentDate(); for (int i = 0; i < 42; i++) { dateList.append(currentDate.addDays(i)); } return dateList; } QMap dayMonthViewGetHuangLiDayInfo() { QMap huangLiDayInfo {}; CaHuangLiDayInfo huangLiInfo1 {}; huangLiInfo1.mGanZhiYear = "辛丑牛年"; //年干支 huangLiInfo1.mGanZhiMonth = "庚寅月"; //月干支 huangLiInfo1.mGanZhiDay = "辛卯日"; //日干支 huangLiInfo1.mLunarMonthName = "正月"; //农历月名称 huangLiInfo1.mLunarDayName = "初一"; //农历日名称 huangLiInfo1.mLunarLeapMonth = 4; //闰月 huangLiInfo1.mZodiac = "牛"; //生肖 huangLiInfo1.mTerm = ""; //农历节气 huangLiInfo1.mSolarFestival = "国庆节"; //阳历节日 huangLiInfo1.mLunarFestival = "除夕"; //农历节日 huangLiInfo1.mSuit = "嫁娶"; //黄历宜 huangLiInfo1.mAvoid = "入土"; //黄历忌 huangLiDayInfo.insert(QDate::currentDate(), huangLiInfo1); return huangLiDayInfo; } QVector dayMonthViewGetLineFlag() { QVector flags {}; for (int i = 0; i < 42; i++) { flags.append(true); } return flags; } //void CDayMonthView::setShowDate(const QVector &showDate, const QDate &selectDate, const QDate ¤tDate) TEST_F(test_daymonthview, setShowDate) { mDayMonthView->setShowDate(dayMonthviewGetDayList(), QDate::currentDate(), QDate::currentDate()); } //void CDayMonthView::setLunarVisible(bool visible) TEST_F(test_daymonthview, setLunarVisible) { mDayMonthView->setLunarVisible(true); } //void CDayMonthView::setTheMe(int type) TEST_F(test_daymonthview, setTheMe) { mDayMonthView->setTheMe(1); mDayMonthView->setTheMe(2); } //void CDayMonthView::setSearchFlag(bool flag) TEST_F(test_daymonthview, setSearchFlag) { mDayMonthView->setSearchFlag(true); } //void CDayMonthView::setHuangLiInfo(const CaHuangLiDayInfo &huangLiInfo) TEST_F(test_daymonthview, setHuangLiInfo) { mDayMonthView->setHuangLiInfo(dayMonthViewGetHuangLiDayInfo().value(QDate::currentDate())); } //void CDayMonthView::setHasScheduleFlag(const QVector &hasScheduleFlag) TEST_F(test_daymonthview, setHasScheduleFlag) { mDayMonthView->setHasScheduleFlag(dayMonthViewGetLineFlag()); } //void CDayMonthView::updateDateLunarDay() TEST_F(test_daymonthview, updateDateLunarDay) { mDayMonthView->updateDateLunarDay(); } //void CDayMonthView::changeSelectDate(const QDate &date) TEST_F(test_daymonthview, changeSelectDate) { mDayMonthView->changeSelectDate(QDate::currentDate()); } //void CDayMonthView::slotprev() TEST_F(test_daymonthview, slotprev) { mDayMonthView->setShowDate(dayMonthviewGetDayList(), QDate::currentDate().addDays(1), QDate::currentDate().addDays(1)); mDayMonthView->slotprev(); } //void CDayMonthView::slotnext() TEST_F(test_daymonthview, slotnext) { mDayMonthView->setShowDate(dayMonthviewGetDayList(), QDate::currentDate().addDays(1), QDate::currentDate().addDays(1)); mDayMonthView->slotnext(); } //void CDayMonthView::slottoday() TEST_F(test_daymonthview, slottoday) { mDayMonthView->setShowDate(dayMonthviewGetDayList(), QDate::currentDate().addDays(1), QDate::currentDate().addDays(1)); mDayMonthView->slottoday(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/test_daymonthview.h000066400000000000000000000022231423264401600337470ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_DAYMONTHVIEW_H #define TEST_DAYMONTHVIEW_H #include #include #include class test_daymonthview : public QObject , public ::testing::Test { public: test_daymonthview(); ~test_daymonthview(); protected: CDayMonthView *mDayMonthView = nullptr; }; #endif // TEST_DAYMONTHVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/test_daywindow.cpp000066400000000000000000000036471423264401600336040ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_daywindow.h" test_dayWindow::test_dayWindow() { } void test_dayWindow::SetUp() { QDateTime currentTime = QDateTime::currentDateTime(); m_dayWindow = new CDayWindow(); m_dayWindow->setCurrentDateTime(currentTime); m_dayWindow->setSelectDate(currentTime.date()); } void test_dayWindow::TearDown() { delete m_dayWindow; m_dayWindow = nullptr; } //测试paintevent TEST_F(test_dayWindow, getPixmap) { m_dayWindow->setFixedSize(800, 600); QPixmap pixmap(m_dayWindow->size()); m_dayWindow->render(&pixmap); } //setTheme TEST_F(test_dayWindow, setTheme) { m_dayWindow->setTheMe(0); m_dayWindow->setTheMe(1); m_dayWindow->setTheMe(2); } //setSearchWFlag TEST_F(test_dayWindow, setSearchWFlag) { m_dayWindow->setSearchWFlag(false); } //slotChangeSelectDate TEST_F(test_dayWindow, slotChangeSelectDate) { m_dayWindow->slotChangeSelectDate(m_dayWindow->getSelectDate()); } //slotSwitchPrePage TEST_F(test_dayWindow, slotSwitchPrePage) { m_dayWindow->slotSwitchPrePage(); } //slotSwitchNextPage TEST_F(test_dayWindow, slotSwitchNextPage) { m_dayWindow->slotSwitchNextPage(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_dayWidget/test_daywindow.h000066400000000000000000000022551423264401600332430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_DAYWINDOW_H #define TEST_DAYWINDOW_H #include "gtest/gtest.h" #include "dayWidget/daywindow.h" #include class test_dayWindow : public QObject , public ::testing::Test { Q_OBJECT public: test_dayWindow(); void SetUp() override; void TearDown() override; signals: public slots: public: CDayWindow *m_dayWindow; }; #endif // TEST_DAYWINDOW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/000077500000000000000000000000001423264401600303725ustar00rootroot00000000000000test_monthdayview.cpp000066400000000000000000000131331423264401600345750ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_monthdayview.h" #include "touchgestureoperation.h" #include "../third-party_stub/stub.h" #include #include static int monthdayview_int = 0; static int monthdayview_stub_int() { return monthdayview_int; } static bool monthdayview_stub_event(QEvent *) { return true; } test_monthdayview::test_monthdayview() { mMonthDayView = new CMonthDayView(); mMonthWidget = new CMonthWidget(); mMonthRect = new CMonthRect(); } test_monthdayview::~test_monthdayview() { delete mMonthDayView; mMonthDayView = nullptr; delete mMonthWidget; mMonthWidget = nullptr; delete mMonthRect; mMonthRect = nullptr; } //void CMonthDayView::setSelectDate(const QDate &date) TEST_F(test_monthdayview, setSelectdate) { mMonthDayView->setSelectDate(QDate::currentDate()); } //void CMonthDayView::setTheMe(int type) TEST_F(test_monthdayview, setTheMe) { mMonthDayView->setTheMe(1); mMonthDayView->setTheMe(2); } //void CMonthDayView::setSearchflag(bool flag) TEST_F(test_monthdayview, setSearchflag) { mMonthDayView->setSearchflag(false); } TEST_F(test_monthdayview, event_01) { Stub stub; stub.set(ADDR(touchGestureOperation, getTouchState), monthdayview_stub_int); QMouseEvent e(QEvent::MouseButtonPress, QPointF(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); mMonthDayView->event(&e); } //void CMonthWidget::setDate(const QDate date[12]) TEST_F(test_monthdayview, setDate) { QDate m_days[12]; QDate currentDate = QDate::currentDate(); for (int i = 0; i < 12; i++) { m_days[i] = currentDate.addDays(i); } mMonthWidget->setDate(m_days); } //void CMonthWidget::updateSize() TEST_F(test_monthdayview, updateSize) { mMonthWidget->updateSize(); } //void CMonthRect::setDate(const QDate &date) TEST_F(test_monthdayview, setRectDate) { mMonthRect->setDate(QDate::currentDate()); mMonthRect->getDate(); } //void CMonthRect::setRect(const QRectF &rect) TEST_F(test_monthdayview, setRect) { mMonthRect->setRect(QRectF()); mMonthRect->rect(); } //void CMonthRect::setDevicePixelRatio(const qreal pixel) TEST_F(test_monthdayview, setDevicePixelRatio) { mMonthRect->setDevicePixelRatio(1.2); } //void CMonthRect::setTheMe(int type) TEST_F(test_monthdayview, setRTheMe) { mMonthRect->setTheMe(1); mMonthRect->setTheMe(2); } TEST_F(test_monthdayview, paintEvent_01) { QPaintEvent paint(QRect(0, 0, 1, 1)); mMonthWidget->paintEvent(&paint); } TEST_F(test_monthdayview, mouseReleaseEvent_01) { QMouseEvent e(QEvent::MouseButtonPress, QPointF(1, 1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier); mMonthWidget->mouseReleaseEvent(&e); } TEST_F(test_monthdayview, keyPressEvent_01) { QKeyEvent e(QEvent::KeyPress, Qt::Key_Left, Qt::NoModifier); mMonthWidget->keyPressEvent(&e); } TEST_F(test_monthdayview, keyPressEvent_02) { QKeyEvent e(QEvent::KeyPress, Qt::Key_Right, Qt::NoModifier); mMonthWidget->keyPressEvent(&e); } TEST_F(test_monthdayview, keyPressEvent_03) { QKeyEvent e(QEvent::KeyPress, Qt::Key_Up, Qt::NoModifier); mMonthWidget->keyPressEvent(&e); } TEST_F(test_monthdayview, focusInEvent_01) { QFocusEvent e(QEvent::FocusIn, Qt::TabFocusReason); mMonthWidget->focusInEvent(&e); EXPECT_TRUE(mMonthWidget->m_isFocus); } TEST_F(test_monthdayview, focusInEvent_02) { QFocusEvent e(QEvent::FocusIn, Qt::OtherFocusReason); mMonthWidget->focusInEvent(&e); EXPECT_FALSE(mMonthWidget->m_isFocus); } TEST_F(test_monthdayview, focusOutEvent_01) { QFocusEvent e(QEvent::FocusIn, Qt::OtherFocusReason); mMonthWidget->focusOutEvent(&e); EXPECT_FALSE(mMonthWidget->m_isFocus); } TEST_F(test_monthdayview, mousePress_01) { mMonthWidget->mousePress(QPoint(0, 0)); EXPECT_FALSE(mMonthWidget->m_isFocus); } TEST_F(test_monthdayview, updateSize_01) { mMonthWidget->updateSize(); } TEST_F(test_monthdayview, getMousePosItem_01) { mMonthWidget->getMousePosItem(QPointF()); } TEST_F(test_monthdayview, updateShowDate_01) { mMonthWidget->updateShowDate(QDate()); } TEST_F(test_monthdayview, paintItem_01) { mMonthRect->m_Date = QDate(2022, 4, 22); QPainter pa(mMonthWidget); mMonthRect->paintItem(&pa, QRect(), true); } TEST_F(test_monthdayview, paintItem_02) { mMonthRect->m_Date = QDate(2022, 4, 22); mMonthRect->m_SelectRect = mMonthRect; QPainter pa(mMonthWidget); mMonthRect->paintItem(&pa, QRect(), true); } TEST_F(test_monthdayview, setDevicePixelRatio_01) { mMonthRect->setDevicePixelRatio(10); EXPECT_EQ(mMonthRect->m_DevicePixelRatio, 10); } TEST_F(test_monthdayview, setTheMe_01) { mMonthRect->setTheMe(0); EXPECT_EQ(mMonthRect->m_defaultTextColor, Qt::black); } TEST_F(test_monthdayview, setTheMe_02) { mMonthRect->setTheMe(2); EXPECT_EQ(mMonthRect->m_defaultTextColor, QColor("#C0C6D4")); } test_monthdayview.h000066400000000000000000000023451423264401600342450ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_MONTHDAYVIEW_H #define TEST_MONTHDAYVIEW_H #include #include "monthWidget/monthdayview.h" #include "gtest/gtest.h" class test_monthdayview : public QObject , public ::testing::Test { public: test_monthdayview(); ~test_monthdayview(); protected: CMonthDayView *mMonthDayView = nullptr; CMonthWidget *mMonthWidget = nullptr; CMonthRect *mMonthRect = nullptr; }; #endif // TEST_MONTHDAYVIEW_H test_monthscheduleview.cpp000066400000000000000000000332561423264401600356240ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_monthscheduleview.h" #include "dataManage/scheduledaterangeinfo.h" test_monthscheduleview::test_monthscheduleview() { QRect rect; m_scene = new QGraphicsScene(); mMonthScheduleView = new CMonthScheduleView(nullptr, m_scene); mMonthScheduleWidgetItem = new CMonthScheduleItem(rect); mWeekScheduleView = new CWeekScheduleView(); mMonthScheduleNumButton = new CMonthScheduleNumItem(); } test_monthscheduleview::~test_monthscheduleview() { delete mMonthScheduleView; mMonthScheduleView = nullptr; delete m_scene; m_scene = nullptr; delete mWeekScheduleView; mWeekScheduleView = nullptr; delete mMonthScheduleNumButton; mMonthScheduleNumButton = nullptr; delete mMonthScheduleWidgetItem; mMonthScheduleWidgetItem = nullptr; } QVector getMonthScheduleDInfo() { QVector scheduleDate {}; ScheduleDataInfo schedule1, schedule2, schedule3, schedule4, schedule5, scheduleFes; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); schedule3.setID(3); schedule3.setBeginDateTime(currentDateTime.addDays(2)); schedule3.setEndDateTime(currentDateTime.addDays(2).addSecs(60 * 60)); schedule3.setTitleName("scheduleThree"); schedule3.setAllDay(false); schedule3.setType(3); schedule3.setRecurID(0); schedule4.setID(4); schedule4.setBeginDateTime(currentDateTime.addDays(3)); schedule4.setEndDateTime(currentDateTime.addDays(3).addSecs(60 * 60)); schedule4.setTitleName("scheduleFour"); schedule4.setAllDay(false); schedule4.setType(1); schedule4.setRecurID(0); schedule5.setID(5); schedule5.setBeginDateTime(currentDateTime.addDays(4)); schedule5.setEndDateTime(currentDateTime.addDays(4).addSecs(60 * 60)); schedule5.setTitleName("scheduleFive"); schedule5.setAllDay(false); schedule5.setType(2); schedule5.setRecurID(0); scheduleFes.setID(6); scheduleFes.setBeginDateTime(currentDateTime.addDays(5)); scheduleFes.setEndDateTime(currentDateTime.addDays(5).addSecs(60 * 60)); scheduleFes.setTitleName("scheduleFestival"); scheduleFes.setAllDay(true); scheduleFes.setType(4); scheduleFes.setRecurID(0); scheduleDate.append(schedule1); scheduleDate.append(schedule2); scheduleDate.append(schedule3); scheduleDate.append(schedule4); scheduleDate.append(schedule5); scheduleDate.append(scheduleFes); return scheduleDate; } QMap> getMonthMapScheduleDInfo(int getDays) { QDate currentDate = QDate::currentDate(); QVector scheduleInfo {}; QMap> scheduleDateInfo {}; switch (getDays) { case 0: { scheduleInfo.append(getMonthScheduleDInfo().at(0)); scheduleDateInfo[currentDate] = scheduleInfo; } break; case 1: { scheduleInfo.append(getMonthScheduleDInfo().at(1)); scheduleDateInfo[currentDate.addDays(1)] = scheduleInfo; } break; case 2: { scheduleInfo.append(getMonthScheduleDInfo().at(2)); scheduleDateInfo[currentDate.addDays(2)] = scheduleInfo; } break; default: { scheduleInfo.append(getMonthScheduleDInfo().at(3)); scheduleDateInfo[currentDate.addDays(3)] = scheduleInfo; scheduleInfo.append(getMonthScheduleDInfo().at(4)); scheduleDateInfo[currentDate.addDays(4)] = scheduleInfo; scheduleInfo.append(getMonthScheduleDInfo().at(5)); scheduleDateInfo[currentDate.addDays(5)] = scheduleInfo; } break; } return scheduleDateInfo; } QVector getScheduleDateRangeInfo() { QVector scheduleDateRangeInfo {}; MScheduleDateRangeInfo scheduledaterangeinfo1; scheduledaterangeinfo1.num = 4; scheduledaterangeinfo1.bdate = QDate::currentDate(); scheduledaterangeinfo1.edate = QDate::currentDate().addDays(1); scheduledaterangeinfo1.state = true; scheduledaterangeinfo1.tData = getMonthScheduleDInfo().first(); // MScheduleDateRangeInfo scheduledaterangeinfo2; // scheduledaterangeinfo2.num = 2; // scheduledaterangeinfo2.bDate = QDate(2021, 1, 23); // scheduledaterangeinfo2.eDate = QDate(2021, 1, 24); // scheduledaterangeinfo2.state = false; // scheduledaterangeinfo2.tData = getMonthScheduleDInfo().at(1); // MScheduleDateRangeInfo scheduledaterangeinfo3; // scheduledaterangeinfo3.num = 2; // scheduledaterangeinfo3.bDate = QDate(2021, 1, 25); // scheduledaterangeinfo3.eDate = QDate(2021, 1, 26); // scheduledaterangeinfo3.state = false; // scheduledaterangeinfo3.tData = getMonthScheduleDInfo().at(2); // MScheduleDateRangeInfo scheduledaterangeinfo4; // scheduledaterangeinfo4.num = 2; // scheduledaterangeinfo4.bDate = QDate(2021, 1, 27); // scheduledaterangeinfo4.eDate = QDate(2021, 1, 28); // scheduledaterangeinfo4.state = false; // scheduledaterangeinfo4.tData = getMonthScheduleDInfo().at(3); scheduleDateRangeInfo.append(scheduledaterangeinfo1); // scheduleDateRangeInfo.append(scheduledaterangeinfo2); // scheduleDateRangeInfo.append(scheduledaterangeinfo3); // scheduleDateRangeInfo.append(scheduledaterangeinfo4); return scheduleDateRangeInfo; } //void CMonthScheduleView::setallsize(int w, int h, int left, int top, int buttom, int itemHeight) TEST_F(test_monthscheduleview, setallsize) { mMonthScheduleView->setallsize(1, 1, 1, 1, 1, 1); } //void CMonthScheduleView::setData(QMap > &data, int currentMonth) TEST_F(test_monthscheduleview, setData) { QMap> mapScheduleInfo = getMonthMapScheduleDInfo(4); mMonthScheduleView->setData(mapScheduleInfo, 1); } //void CMonthScheduleView::slotFontChange() TEST_F(test_monthscheduleview, slotFontChange) { mMonthScheduleView->slotFontChange(); } //void CMonthScheduleView::updateData() TEST_F(test_monthscheduleview, updateDate) { mMonthScheduleView->updateData(); } //void CMonthScheduleView::updateHeight() TEST_F(test_monthscheduleview, updateHeight) { mMonthScheduleView->updateHeight(); } //QVector CMonthScheduleView::getScheduleShowItem() const TEST_F(test_monthscheduleview, getScheduleShowItem) { mMonthScheduleView->getScheduleShowItem(); } //void CMonthScheduleView::updateDate(const ScheduleDataInfo &info) TEST_F(test_monthscheduleview, updateData) { mMonthScheduleView->updateDate(getMonthScheduleDInfo().first()); } //void CMonthScheduleView::changeDate(const ScheduleDataInfo &info) TEST_F(test_monthscheduleview, changeDate) { mMonthScheduleView->changeDate(getMonthScheduleDInfo().first()); } //void CMonthScheduleView::updateDate(const int row, const ScheduleDataInfo &info) TEST_F(test_monthscheduleview, updatedate) { mMonthScheduleView->updateDate(2, getMonthScheduleDInfo().first()); } //void CMonthScheduleView::updateDateShow(QVector> &vCMDaySchedule, QVector &scheduleShowItem) TEST_F(test_monthscheduleview, updateDateShow) { QVector scheduleinfo = getScheduleDateRangeInfo(); QVector> m_scheduledaterangeinfo {}; QVector m_scheduleshowinfo {}; m_scheduledaterangeinfo.append(scheduleinfo); m_scheduleshowinfo.append(mMonthScheduleWidgetItem); mMonthScheduleView->updateDateShow(m_scheduledaterangeinfo, m_scheduleshowinfo); } //void CMonthScheduleView::createScheduleItemWidget(MScheduleDateRangeInfo info, int cNum, QVector &scheduleShowItem) TEST_F(test_monthscheduleview, createScheduleItemWidget) { QVector scheduledaterangeinfo = getScheduleDateRangeInfo(); QVector m_scheduleshowinfo {}; m_scheduleshowinfo.append(mMonthScheduleWidgetItem); mMonthScheduleView->createScheduleItemWidget(scheduledaterangeinfo.first(), 1, m_scheduleshowinfo); } //void CMonthScheduleView::createScheduleNumWidget(MScheduleDateRangeInfo info, int cNum, QVector &scheduleShowItem) TEST_F(test_monthscheduleview, createScheduleNumWidget) { MScheduleDateRangeInfo scheduledaterangeinfo = getScheduleDateRangeInfo().first(); QVector m_scheduleshowinfo {}; QMap> mapScheduleInfo = getMonthMapScheduleDInfo(4); mMonthScheduleView->setData(mapScheduleInfo, 3); mMonthScheduleView->createScheduleNumWidget(scheduledaterangeinfo, 2, m_scheduleshowinfo); } //void CMonthScheduleView::computePos(int cnum, QDate bgeindate, QDate enddate, QPoint &pos, int &fw, int &fh) TEST_F(test_monthscheduleview, computePos) { QDate bDate = QDate(2020, 1, 20); QDate eDate = QDate(2021, 1, 23); QPoint pos = QPoint(4, 4); int fw = 8; int fh = 8; mMonthScheduleView->computePos(2, bDate, eDate, pos, fw, fh); } //void CWeekScheduleView::setData(QMap > &data, const QDate &startDate, const QDate &stopDate) TEST_F(test_monthscheduleview, setweekData) { QMap> mapScheduleInfo = getMonthMapScheduleDInfo(4); QDate startDate = QDate(2021, 1, 21); QDate stopData = QDate(2021, 1, 27); mWeekScheduleView->setData(mapScheduleInfo, startDate, stopData); } //bool CWeekScheduleView::addData(const ScheduleDataInfo &info) TEST_F(test_monthscheduleview, addData) { QMap> mapScheduleInfo = getMonthMapScheduleDInfo(4); QDate startDate = QDate::currentDate(); QDate stopData = startDate.addDays(6); mWeekScheduleView->setData(mapScheduleInfo, startDate, stopData); bool re = mWeekScheduleView->addData(getMonthScheduleDInfo().first()); EXPECT_TRUE(re); startDate = QDate::currentDate().addDays(-7); stopData = QDate::currentDate().addDays(-1); mWeekScheduleView->setData(mapScheduleInfo, startDate, stopData); re = mWeekScheduleView->addData(getMonthScheduleDInfo().first()); EXPECT_FALSE(re); } //void CWeekScheduleView::changeDate(const ScheduleDataInfo &info) TEST_F(test_monthscheduleview, changedate) { mWeekScheduleView->changeDate(getMonthScheduleDInfo().first()); } //void CWeekScheduleView::setHeight(const int ScheduleHeight, const int DayHeigth) TEST_F(test_monthscheduleview, setHeight) { mWeekScheduleView->setHeight(10, 10); } //void CWeekScheduleView::updateSchedule(const bool isNormalDisplay, const ScheduleDataInfo &info) TEST_F(test_monthscheduleview, updateSchedule) { mWeekScheduleView->updateSchedule(true, getMonthScheduleDInfo().first()); mWeekScheduleView->updateSchedule(false, getMonthScheduleDInfo().first()); } //void CWeekScheduleView::clearItem() TEST_F(test_monthscheduleview, clearItem) { mWeekScheduleView->clearItem(); } //void CWeekScheduleView::setMaxNum() TEST_F(test_monthscheduleview, setMacNum) { mWeekScheduleView->setMaxNum(); } //void CWeekScheduleView::mScheduleClear() TEST_F(test_monthscheduleview, mScheduleClear) { mWeekScheduleView->mScheduleClear(); } //void CWeekScheduleView::sortAndFilter(QVector &vMDaySchedule) TEST_F(test_monthscheduleview, sortAndFileter) { QVector scheduleinfo = getScheduleDateRangeInfo(); mWeekScheduleView->setHeight(4, 20); QMap> mapScheduleInfo = getMonthMapScheduleDInfo(4); QDate startDate = QDate::currentDate(); QDate stopData = startDate.addDays(6); mWeekScheduleView->setData(mapScheduleInfo, startDate, stopData); mWeekScheduleView->sortAndFilter(scheduleinfo); } //void CMonthScheduleNumButton::setColor(QColor color1, QColor color2, bool GradientFlag) TEST_F(test_monthscheduleview, setColor) { QColor color1(100, 100, 255); QColor color2(200, 200, 255); mMonthScheduleNumButton->setColor(color1, color2); } //void CMonthScheduleNumButton::setText(QColor tcolor, QFont font, QPoint pos) TEST_F(test_monthscheduleview, setText) { QColor color(100, 100, 255); QFont font; mMonthScheduleNumButton->setText(color, font); } //void CMonthScheduleNumButton::setSizeType(DFontSizeManager::SizeType sizeType) TEST_F(test_monthscheduleview, setSizeType) { mMonthScheduleNumButton->setSizeType(DFontSizeManager::SizeType::T1); } //QPixmap CMonthScheduleWidgetItem::getPixmap() TEST_F(test_monthscheduleview, getPixmap) { mMonthScheduleWidgetItem->getPixmap(); } test_monthscheduleview.h000066400000000000000000000027641423264401600352710ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_MONTHSCHEDULEVIEW_H #define TEST_MONTHSCHEDULEVIEW_H #include #include "monthWidget/monthscheduleview.h" #include "graphicsItem/cmonthscheduleitem.h" #include "graphicsItem/cmonthschedulenumitem.h" #include "gtest/gtest.h" class test_monthscheduleview : public QObject , public ::testing::Test { public: test_monthscheduleview(); ~test_monthscheduleview(); protected: CMonthScheduleView *mMonthScheduleView = nullptr; CMonthScheduleItem *mMonthScheduleWidgetItem = nullptr; CWeekScheduleView *mWeekScheduleView = nullptr; CMonthScheduleNumItem *mMonthScheduleNumButton = nullptr; QGraphicsScene *m_scene = nullptr; }; #endif // TEST_MONTHSCHEDULEVIEW_H test_monthview.cpp000066400000000000000000000155321423264401600341040ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_monthview.h" test_monthview::test_monthview() { mMonthView = new CMonthView(); } test_monthview::~test_monthview() { delete mMonthView; mMonthView = nullptr; } QVector getMonthViewScheduleDInfo() { QVector scheduleDate {}; ScheduleDataInfo schedule1, schedule2, schedule3, schedule4, schedule5, scheduleFes; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); schedule3.setID(3); schedule3.setBeginDateTime(currentDateTime.addDays(2)); schedule3.setEndDateTime(currentDateTime.addDays(2).addSecs(60 * 60)); schedule3.setTitleName("scheduleThree"); schedule3.setAllDay(false); schedule3.setType(3); schedule3.setRecurID(0); schedule4.setID(4); schedule4.setBeginDateTime(currentDateTime.addDays(3)); schedule4.setEndDateTime(currentDateTime.addDays(3).addSecs(60 * 60)); schedule4.setTitleName("scheduleFour"); schedule4.setAllDay(false); schedule4.setType(1); schedule4.setRecurID(0); schedule5.setID(5); schedule5.setBeginDateTime(currentDateTime.addDays(4)); schedule5.setEndDateTime(currentDateTime.addDays(4).addSecs(60 * 60)); schedule5.setTitleName("scheduleFive"); schedule5.setAllDay(false); schedule5.setType(2); schedule5.setRecurID(0); scheduleFes.setID(6); scheduleFes.setBeginDateTime(currentDateTime.addDays(5)); scheduleFes.setEndDateTime(currentDateTime.addDays(5).addSecs(60 * 60)); scheduleFes.setTitleName("scheduleFestival"); scheduleFes.setAllDay(true); scheduleFes.setType(4); scheduleFes.setRecurID(0); scheduleDate.append(schedule1); scheduleDate.append(schedule2); scheduleDate.append(schedule3); scheduleDate.append(schedule4); scheduleDate.append(schedule5); scheduleDate.append(scheduleFes); return scheduleDate; } QVector MonthviewGetDayList() { QVector dateList {}; QDate currentDate = QDate::currentDate(); for (int i = 0; i < 42; i++) { dateList.append(currentDate.addDays(i)); } return dateList; } QMap MonthViewGetHuangLiDayInfo() { QMap huangLiDayinfo {}; CaHuangLiDayInfo huangLiInfo1 {}; huangLiInfo1.mGanZhiYear = "辛丑牛年"; //年干支 huangLiInfo1.mGanZhiMonth = "庚寅月"; //月干支 huangLiInfo1.mGanZhiDay = "辛卯日"; //日干支 huangLiInfo1.mLunarMonthName = "正月"; //农历月名称 huangLiInfo1.mLunarDayName = "初一"; //农历日名称 huangLiInfo1.mLunarLeapMonth = 4; //闰月 huangLiInfo1.mZodiac = "牛"; //生肖 huangLiInfo1.mTerm = ""; //农历节气 huangLiInfo1.mSolarFestival = "国庆节"; //阳历节日 huangLiInfo1.mLunarFestival = "除夕"; //农历节日 huangLiInfo1.mSuit = "嫁娶"; //黄历宜 huangLiInfo1.mAvoid = "入土"; //黄历忌 huangLiDayinfo.insert(QDate::currentDate(), huangLiInfo1); return huangLiDayinfo; } //void CMonthView::setTheMe(int type) TEST_F(test_monthview, setTheMe) { mMonthView->setTheMe(1); mMonthView->setTheMe(2); } //void CMonthView::setSelectSchedule(const ScheduleDataInfo &scheduleInfo) TEST_F(test_monthview, setSelectSchedule) { ScheduleDataInfo scheduleinfo = getMonthViewScheduleDInfo().first(); mMonthView->setSelectSchedule(scheduleinfo); } //void CMonthView::slotScheduleRemindWidget(const bool isShow, const ScheduleDataInfo &out) TEST_F(test_monthview, slotScheduleRemindWidget) { ScheduleDataInfo scheduleinfo = getMonthViewScheduleDInfo().first(); mMonthView->slotScheduleRemindWidget(false, scheduleinfo); mMonthView->slotScheduleRemindWidget(true, scheduleinfo); } //void CMonthView::setFirstWeekday(Qt::DayOfWeek weekday) TEST_F(test_monthview, setFirstWeekday) { mMonthView->setFirstWeekday(Qt::Sunday); } //void CMonthView::setShowDate(const QVector &showDate) TEST_F(test_monthview, setShowDate) { mMonthView->setShowDate(MonthviewGetDayList()); } //void CMonthView::setHuangLiInfo(const QMap &huangLiInfo) TEST_F(test_monthview, setHuangLiInfo) { mMonthView->setHuangLiInfo(MonthViewGetHuangLiDayInfo()); } //void CMonthView::setFestival(const QMap &festivalInfo) TEST_F(test_monthview, setFestival) { QMap festivalInfo {}; festivalInfo.insert(QDate::currentDate(), 1); festivalInfo.insert(QDate::currentDate().addDays(1), 2); mMonthView->setFestival(festivalInfo); } //void CMonthView::setScheduleInfo(const QMap > &scheduleInfo) TEST_F(test_monthview, setScheduleInfo) { QMap> scheduleinfo {}; scheduleinfo.insert(QDate::currentDate(), getMonthViewScheduleDInfo()); mMonthView->setScheduleInfo(scheduleinfo); } //void CMonthView::setSearchScheduleInfo(const QVector &searchScheduleInfo) TEST_F(test_monthview, setSearchScheduleInfo) { mMonthView->setSearchScheduleInfo(getMonthViewScheduleDInfo()); } //void CMonthView::setCurrentDate(const QDate ¤tDate) TEST_F(test_monthview, setCurrentDate) { mMonthView->setCurrentDate(QDate::currentDate()); } //ScheduleDataInfo CMonthView::getScheduleInfo(const QDate &beginDate, const QDate &endDate) TEST_F(test_monthview, getScheduleInfo) { QDate currentDate = QDate::currentDate(); QDate currentDate1 = QDate::currentDate().addDays(1); mMonthView->getScheduleInfo(currentDate, currentDate1); mMonthView->getScheduleInfo(currentDate1, currentDate); } TEST_F(test_monthview, isDragging) { mMonthView->isDragging(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/test_monthview.h000066400000000000000000000021721423264401600336240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_MONTHVIEW_H #define TEST_MONTHVIEW_H #include #include "gtest/gtest.h" #include "monthWidget/monthview.h" class test_monthview : public QObject , public ::testing::Test { public: test_monthview(); ~test_monthview(); protected: CMonthView *mMonthView = nullptr; }; #endif // TEST_MONTHVIEW_H test_monthweekview.cpp000066400000000000000000000047441423264401600347630ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_monthweekview.h" #include #include test_monthweekview::test_monthweekview() { mMonthWeekView = new CMonthWeekView(); mWeekRect = new WeekRect(); } test_monthweekview::~test_monthweekview() { delete mMonthWeekView; mMonthWeekView = nullptr; delete mWeekRect; mWeekRect = nullptr; } //void CMonthWeekView::setFirstDay(const Qt::DayOfWeek weekday) TEST_F(test_monthweekview, setFirstDay) { mMonthWeekView->setFirstDay(static_cast(QDate::currentDate().dayOfWeek())); mMonthWeekView->setFirstDay(static_cast(QDate::currentDate().addDays(1).dayOfWeek())); } //void CMonthWeekView::setTheMe(int type) TEST_F(test_monthweekview, setTheMe) { mMonthWeekView->setTheMe(1); mMonthWeekView->setTheMe(2); } //void CMonthWeekView::setCurrentDate(const QDate ¤tDate) TEST_F(test_monthweekview, setCurrentDate) { mMonthWeekView->setCurrentDate(QDate::currentDate()); } TEST_F(test_monthweekview, paintEvent_01) { QPaintEvent e(QRect(0, 0, 1, 1)); mMonthWeekView->paintEvent(&e); } //void WeekRect::setWeek(const Qt::DayOfWeek &showWeek, const bool &showLine) TEST_F(test_monthweekview, setWeek) { mWeekRect->setWeek(Qt::Sunday, false); } //void WeekRect::setRect(const QRectF &rectF) TEST_F(test_monthweekview, setRect) { mWeekRect->setRect(QRectF()); } //void WeekRect::setTheMe(int type) TEST_F(test_monthweekview, setRectTheMe_01) { mWeekRect->setTheMe(1); EXPECT_EQ(mWeekRect->m_testColor, QColor("#6F6F6F")); } //void WeekRect::setTheMe(int type) TEST_F(test_monthweekview, setRectTheMe_02) { mWeekRect->setTheMe(3); EXPECT_EQ(mWeekRect->m_testColor, QColor("#C0C6D4")); } test_monthweekview.h000066400000000000000000000023011423264401600344130ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_MONTHWEEKVIEW_H #define TEST_MONTHWEEKVIEW_H #include #include "monthWidget/monthweekview.h" #include "gtest/gtest.h" class test_monthweekview : public QObject , public ::testing::Test { public: test_monthweekview(); ~test_monthweekview(); protected: CMonthWeekView *mMonthWeekView = nullptr; WeekRect *mWeekRect = nullptr; }; #endif // TEST_MONTHWEEKVIEW_H test_monthwindow.cpp000066400000000000000000000045661423264401600344460ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_monthwindow.h" #include "../third-party_stub/stub.h" #include "monthWidget/monthview.h" test_monthWindow::test_monthWindow() { } void test_monthWindow::SetUp() { m_monthWindow = new CMonthWindow(nullptr); } void test_monthWindow::TearDown() { delete m_monthWindow; m_monthWindow = nullptr; } TEST_F(test_monthWindow, setTheMe) { m_monthWindow->setTheMe(0); m_monthWindow->setTheMe(1); m_monthWindow->setTheMe(2); } namespace MonthWindow { void deleteselectschedule_Stub(void *obj) { Q_UNUSED(obj) } } // namespace MonthWindow TEST_F(test_monthWindow, deleteselectSchedule) { Stub stub; stub.set(ADDR(CMonthView, deleteSelectSchedule), MonthWindow::deleteselectschedule_Stub); m_monthWindow->deleteselectSchedule(); } TEST_F(test_monthWindow, previousMonth) { QDate currentDate = QDate::currentDate(); m_monthWindow->setSelectDate(currentDate); m_monthWindow->previousMonth(); ASSERT_EQ(m_monthWindow->getSelectDate(), currentDate.addMonths(1)); } TEST_F(test_monthWindow, nextMonth) { QDate currentDate = QDate::currentDate(); m_monthWindow->setSelectDate(currentDate); m_monthWindow->nextMonth(); ASSERT_EQ(m_monthWindow->getSelectDate(), currentDate.addMonths(-1)); } TEST_F(test_monthWindow, slotViewSelectDate) { QDate currentDate = QDate::currentDate(); m_monthWindow->slotViewSelectDate(currentDate); } TEST_F(test_monthWindow, resizeEvent) { m_monthWindow->setFixedSize(500, 300); m_monthWindow->setFixedSize(600, 400); } TEST_F(test_monthWindow, slottoday) { m_monthWindow->slottoday(); } test_monthwindow.h000066400000000000000000000022731423264401600341040ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_monthWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_MONTHWINDOW_H #define TEST_MONTHWINDOW_H #include "gtest/gtest.h" #include "monthWidget/monthwindow.h" #include class test_monthWindow : public QObject , public ::testing::Test { Q_OBJECT public: explicit test_monthWindow(); void SetUp() override; void TearDown() override; public: CMonthWindow *m_monthWindow {nullptr}; }; #endif // TEST_MONTHWINDOW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_schedulesearchview.cpp000066400000000000000000000257721423264401600324770ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_schedulesearchview.h" #include "../third-party_stub/stub.h" #include "../calendar-basicstruct/src/utils.h" #include "../third-party_stub/addr_pri.h" #include "scheduleTask/cscheduledbus.h" #include "scheduleTask/scheduletask.h" #include "constants.h" #include "../testscheduledata.h" QVector getScheduleDInfo() { QVector scheduleDate {}; ScheduleDataInfo schedule1, schedule2, schedule3, schedule4, schedule5, scheduleFes; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addSecs(60 * 60)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); schedule3.setID(3); schedule3.setBeginDateTime(currentDateTime.addDays(2)); schedule3.setEndDateTime(currentDateTime.addDays(2).addSecs(60 * 60)); schedule3.setTitleName("scheduleThree"); schedule3.setAllDay(false); schedule3.setType(3); schedule3.setRecurID(0); schedule4.setID(4); schedule4.setBeginDateTime(currentDateTime.addDays(3)); schedule4.setEndDateTime(currentDateTime.addDays(3).addSecs(60 * 60)); schedule4.setTitleName("scheduleFour"); schedule4.setAllDay(false); schedule4.setType(1); schedule4.setRecurID(0); schedule5.setID(5); schedule5.setBeginDateTime(currentDateTime.addDays(4)); schedule5.setEndDateTime(currentDateTime.addDays(4).addSecs(60 * 60)); schedule5.setTitleName("scheduleFive"); schedule5.setAllDay(false); schedule5.setType(2); schedule5.setRecurID(0); scheduleFes.setID(6); scheduleFes.setBeginDateTime(currentDateTime.addDays(5)); scheduleFes.setEndDateTime(currentDateTime.addDays(5).addSecs(60 * 60)); scheduleFes.setTitleName("scheduleFestival"); scheduleFes.setAllDay(true); scheduleFes.setType(4); scheduleFes.setRecurID(0); scheduleDate.append(schedule1); scheduleDate.append(schedule2); scheduleDate.append(schedule3); scheduleDate.append(schedule4); scheduleDate.append(schedule5); scheduleDate.append(scheduleFes); return scheduleDate; } QMap> getMapScheduleDInfo(int getDays) { QDate currentDate = QDate::currentDate(); QVector scheduleInfo {}; QMap> scheduleDateInof {}; switch (getDays) { case 0: { scheduleInfo.append(getScheduleDInfo().at(0)); scheduleDateInof[currentDate] = scheduleInfo; } break; case 1: { scheduleInfo.append(getScheduleDInfo().at(1)); scheduleDateInof[currentDate.addDays(1)] = scheduleInfo; } break; case 2: { scheduleInfo.append(getScheduleDInfo().at(2)); scheduleDateInof[currentDate.addDays(2)] = scheduleInfo; } break; default: { scheduleInfo.append(getScheduleDInfo().at(3)); scheduleDateInof[currentDate.addDays(3)] = scheduleInfo; scheduleInfo.append(getScheduleDInfo().at(4)); scheduleDateInof[currentDate.addDays(4)] = scheduleInfo; scheduleInfo.append(getScheduleDInfo().at(5)); scheduleDateInof[currentDate.addDays(5)] = scheduleInfo; } break; } return scheduleDateInof; } bool stub_QueryJobs(const QString &key, QDateTime starttime, QDateTime endtime, QMap> &out) { Q_UNUSED(key); int days = static_cast(starttime.daysTo(endtime)); switch (days) { case 0: { out = getMapScheduleDInfo(0); } break; case 1: { out = getMapScheduleDInfo(1); } break; case 2: { out = getMapScheduleDInfo(2); } break; default: { out = getMapScheduleDInfo(days); } break; } return true; } test_schedulesearchview::test_schedulesearchview() { } test_schedulesearchview::~test_schedulesearchview() { } void test_schedulesearchview::SetUp() { mScheduleSearchView = new CScheduleSearchView(); mScheduleSearchDateItem = new CScheduleSearchDateItem(); mScheduleListWidget = new CScheduleListWidget(); mScheduleSearchItem = new CScheduleSearchItem(); } void test_schedulesearchview::TearDown() { delete mScheduleSearchView; mScheduleSearchView = nullptr; delete mScheduleSearchDateItem; mScheduleSearchDateItem = nullptr; delete mScheduleListWidget; mScheduleListWidget = nullptr; delete mScheduleSearchItem; mScheduleSearchItem = nullptr; } //void CScheduleSearchView::setTheMe(int type) TEST_F(test_schedulesearchview, setTheMe) { int type = 1; mScheduleSearchView->setTheMe(type); type = 2; mScheduleSearchView->setTheMe(type); } //void CScheduleSearchView::clearSearch() TEST_F(test_schedulesearchview, clearSearch) { ScheduleDataInfo schedule1; schedule1.setID(1); schedule1.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(0, 0, 0))); schedule1.setEndDateTime(QDateTime(QDate(2021, 1, 2), QTime(23, 59, 59))); schedule1.setTitleName("schedule test one"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); mScheduleSearchView->createItemWidget(schedule1, QDate(2021, 1, 1), 1); mScheduleSearchView->clearSearch(); } //void CScheduleSearchView::setMaxWidth(const int w) TEST_F(test_schedulesearchview, setMacWidth) { mScheduleSearchView->setMaxWidth(44); } //void CScheduleSearchView::slotsetSearch() TEST_F(test_schedulesearchview, slotsetSearch) { // mScheduleSearchView->slotsetSearch("jie"); } //void CScheduleSearchView::createItemWidget(ScheduleDataInfo info, QDate date, int rtype) TEST_F(test_schedulesearchview, createItemWidget) { ScheduleDataInfo scheduleinof = getScheduleDInfo().first(); mScheduleSearchView->createItemWidget(scheduleinof, QDate::currentDate(), 3); } //QListWidgetItem *CScheduleSearchView::createItemWidget(QDate date) TEST_F(test_schedulesearchview, createItemWidgetDate) { mScheduleSearchView->createItemWidget(QDate::currentDate()); } //void CScheduleSearchView::slotSelectSchedule(const ScheduleDataInfo &scheduleInfo) TEST_F(test_schedulesearchview, slotSelectSchedule) { ScheduleDataInfo scheduleinof = getScheduleDInfo().first(); mScheduleSearchView->slotSelectSchedule(scheduleinof); } //void CScheduleSearchView::updateSearch() TEST_F(test_schedulesearchview, updateSearch) { mScheduleSearchView->updateSearch(); } //void CScheduleSearchDateItem::setBackgroundColor(QColor color1) TEST_F(test_schedulesearchview, setBachgroundColor) { QColor color1(240, 100, 100); mScheduleSearchDateItem->setBackgroundColor(color1); } //void CScheduleSearchDateItem::setText(QColor tcolor, QFont font) TEST_F(test_schedulesearchview, setText) { QColor color(240, 100, 100); QFont font; font.setWeight(QFont::Medium); font.setPixelSize(DDECalendar::FontSizeTwelve); mScheduleSearchDateItem->setText(color, font); } //void CScheduleSearchDateItem::setDate(QDate date) TEST_F(test_schedulesearchview, setDate) { mScheduleSearchDateItem->setDate(QDate::currentDate()); } //void CScheduleSearchItem::setBackgroundColor(QColor color1) TEST_F(test_schedulesearchview, setBackGroundColor) { QColor color(240, 100, 100); mScheduleSearchItem->setBackgroundColor(color); } //void CScheduleSearchItem::setText(QColor tcolor, QFont font) TEST_F(test_schedulesearchview, setItemText) { QColor color(240, 100, 100); QFont font; font.setWeight(QFont::Medium); font.setPixelSize(DDECalendar::FontSizeTwelve); mScheduleSearchItem->setText(color, font); } //void CScheduleSearchItem::setTimeC(QColor tcolor, QFont font) TEST_F(test_schedulesearchview, setTimeC) { QColor color(240, 100, 100); QFont font; font.setWeight(QFont::Medium); font.setPixelSize(DDECalendar::FontSizeTwelve); mScheduleSearchItem->setTimeC(color, font); } //void CScheduleSearchItem::setData(ScheduleDataInfo vScheduleInfo, QDate date) TEST_F(test_schedulesearchview, setItemDate) { ScheduleDataInfo scheduleinfo = getScheduleDInfo().first(); mScheduleSearchItem->setData(scheduleinfo, QDate::currentDate()); } //void CScheduleSearchItem::setRoundtype(int rtype) TEST_F(test_schedulesearchview, setRoundtype) { mScheduleSearchItem->setRoundtype(3); mScheduleSearchItem->setRoundtype(2); } //void CScheduleSearchItem::setTheMe(int type) TEST_F(test_schedulesearchview, setItemTheMe) { mScheduleSearchItem->setTheMe(1); mScheduleSearchItem->setTheMe(2); } //void CScheduleSearchItem::slotEdit() TEST_F(test_schedulesearchview, slotEdit) { // ScheduleDataInfo scheduleinfo = getScheduleDInfo().first(); // mScheduleSearchItem->setData(scheduleinfo, QDate::currentDate()); // mScheduleSearchItem->slotEdit(); } //void CScheduleSearchItem::slotDelete() TEST_F(test_schedulesearchview, slotDelete) { // ScheduleDataInfo scheduleinfo = getScheduleDInfo().first(); // mScheduleSearchItem->setData(scheduleinfo, QDate::currentDate()); // mScheduleSearchItem->slotDelete(); } //const ScheduleDataInfo &getData() const TEST_F(test_schedulesearchview, getDate) { mScheduleSearchItem->getData(); } QMap> stub_getSearchScheduleInfo(void *obj, const QString &key, const QDateTime &startTime, const QDateTime &endTime) { Q_UNUSED(obj) Q_UNUSED(key) Q_UNUSED(startTime) Q_UNUSED(endTime) QMap> searchScheduleInfo {}; searchScheduleInfo[QDate::currentDate()] = TestDataInfo::getScheduleItemDInfo(); return searchScheduleInfo; } // TEST_F(test_schedulesearchview, getPixmap) { Stub stub; stub.set((QMap>(CScheduleTask::*)(const QString &, const QDateTime &, const QDateTime &))ADDR(CScheduleTask, getSearchScheduleInfo), stub_getSearchScheduleInfo); mScheduleSearchView->slotsetSearch("xjrc"); mScheduleSearchView->setFixedSize(300, 800); QPixmap pixmap(mScheduleListWidget->size()); pixmap = mScheduleSearchView->grab(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_schedulesearchview.h000066400000000000000000000026571423264401600321410ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_SCHEDULESEARCHVIEW_H #define TEST_SCHEDULESEARCHVIEW_H #include "widget/schedulesearchview.h" #include "gtest/gtest.h" #include class test_schedulesearchview : public QObject , public ::testing::Test { public: test_schedulesearchview(); ~test_schedulesearchview(); void SetUp() override; void TearDown() override; protected: CScheduleSearchView *mScheduleSearchView = nullptr; CScheduleSearchDateItem *mScheduleSearchDateItem = nullptr; CScheduleListWidget *mScheduleListWidget = nullptr; CScheduleSearchItem *mScheduleSearchItem = nullptr; }; #endif // TEST_SCHEDULESEARCHVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_touchgestureoperation.cpp000066400000000000000000000047631423264401600332610ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_touchgestureoperation.h" test_touchgestureoperation::test_touchgestureoperation() { mTouchGestureOperation = new touchGestureOperation(); } test_touchgestureoperation::~test_touchgestureoperation() { delete mTouchGestureOperation; mTouchGestureOperation = nullptr; } //void touchGestureOperation::setUpdate(bool b) TEST_F(test_touchgestureoperation, setUpdate) { mTouchGestureOperation->setUpdate(true); } //bool touchGestureOperation::isUpdate() const TEST_F(test_touchgestureoperation, isUpdate) { mTouchGestureOperation->setUpdate(false); bool res = mTouchGestureOperation->isUpdate(); EXPECT_FALSE(res); mTouchGestureOperation->setUpdate(true); res = mTouchGestureOperation->isUpdate(); EXPECT_TRUE(res); } //touchGestureOperation::TouchState touchGestureOperation::getTouchState() const TEST_F(test_touchgestureoperation, getTouchState) { mTouchGestureOperation->getTouchState(); } //touchGestureOperation::TouchMovingDirection touchGestureOperation::getMovingDir() const TEST_F(test_touchgestureoperation, getMovingDir) { mTouchGestureOperation->getMovingDir(); } //touchGestureOperation::TouchMovingDirection touchGestureOperation::getTouchMovingDir(QPointF &startPoint, QPointF &stopPoint, qreal &movingLine) TEST_F(test_touchgestureoperation, getTouchMovingDir) { QPointF point1; QPointF point2; qreal num = 2; mTouchGestureOperation->getTouchMovingDir(point1, point2, num); } //void touchGestureOperation::calculateAzimuthAngle(QPointF &startPoint, QPointF &stopPoint) TEST_F(test_touchgestureoperation, calculateAzimuthAngle) { QPointF point1; QPointF point2; mTouchGestureOperation->calculateAzimuthAngle(point1, point2); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_touchgestureoperation.h000066400000000000000000000023421423264401600327150ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_TOUCHGESTUREOPERATION_H #define TEST_TOUCHGESTUREOPERATION_H #include #include #include class test_touchgestureoperation : public ::QObject , public ::testing::Test { public: test_touchgestureoperation(); ~test_touchgestureoperation(); protected: touchGestureOperation *mTouchGestureOperation = nullptr; }; #endif // TEST_TOUCHGESTUREOPERATION_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/000077500000000000000000000000001423264401600302005ustar00rootroot00000000000000test_weekheadview.cpp000066400000000000000000000075161423264401600343450ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_weekheadview.h" #include "../third-party_stub/stub.h" test_weekheadview::test_weekheadview() { mWeekHeadView = new CWeekHeadView(); } test_weekheadview::~test_weekheadview() { delete mWeekHeadView; mWeekHeadView = nullptr; } QMap getHuangLiDayInfo() { QMap huangLiDayInfo {}; CaHuangLiDayInfo huangLiInfo1 {}; huangLiInfo1.mGanZhiYear = "辛丑牛年"; //年干支 huangLiInfo1.mGanZhiMonth = "庚寅月"; //月干支 huangLiInfo1.mGanZhiDay = "辛卯日"; //日干支 huangLiInfo1.mLunarMonthName = "正月"; //农历月名称 huangLiInfo1.mLunarDayName = "初一"; //农历日名称 huangLiInfo1.mLunarLeapMonth = 4; //闰月 huangLiInfo1.mZodiac = "牛"; //生肖 huangLiInfo1.mTerm = ""; //农历节气 huangLiInfo1.mSolarFestival = "国庆节"; //阳历节日 huangLiInfo1.mLunarFestival = "除夕"; //农历节日 huangLiInfo1.mSuit = "嫁娶"; //黄历宜 huangLiInfo1.mAvoid = "入土"; //黄历忌 huangLiDayInfo.insert(QDate::currentDate(), huangLiInfo1); return huangLiDayInfo; } QVector getDayList() { QVector dateList {}; QDate currentDate = QDate::currentDate(); dateList.append(currentDate); dateList.append(currentDate.addDays(1)); dateList.append(currentDate.addDays(2)); dateList.append(currentDate.addDays(3)); dateList.append(currentDate.addDays(4)); dateList.append(currentDate.addDays(5)); dateList.append(currentDate.addDays(6)); return dateList; } //void CWeekHeadView::setTheMe(int type) TEST_F(test_weekheadview, setTheMe) { mWeekHeadView->setTheMe(1); mWeekHeadView->setTheMe(2); } //void CWeekHeadView::setWeekDay(QVector vDays, const QDate &selectDate) TEST_F(test_weekheadview, setWeekDay) { QVector dateList {}; dateList.append(getDayList().first()); mWeekHeadView->setWeekDay(dateList, QDate::currentDate()); mWeekHeadView->setWeekDay(getDayList(), QDate::currentDate()); } //void CWeekHeadView::setLunarVisible(bool visible) TEST_F(test_weekheadview, setLunarvisible) { mWeekHeadView->setLunarVisible(false); mWeekHeadView->setLunarVisible(true); } //const QString CWeekHeadView::getCellDayNum(int pos) TEST_F(test_weekheadview, getCellDayNum) { mWeekHeadView->setWeekDay(getDayList(), QDate::currentDate()); mWeekHeadView->getCellDayNum(4); } //const QDate CWeekHeadView::getCellDate(int pos) TEST_F(test_weekheadview, getCellDate) { mWeekHeadView->setWeekDay(getDayList(), QDate::currentDate()); mWeekHeadView->getCellDate(4); } //const QString CWeekHeadView::getLunar(int pos) TEST_F(test_weekheadview, getLunar) { mWeekHeadView->setWeekDay(getDayList(), QDate::currentDate()); mWeekHeadView->setHunagLiInfo(getHuangLiDayInfo()); mWeekHeadView->getLunar(1); } TEST_F(test_weekheadview, getPixmap) { mWeekHeadView->setWeekDay(getDayList(), QDate::currentDate()); mWeekHeadView->setFixedSize(600, 80); QPixmap pixmap(mWeekHeadView->size()); mWeekHeadView->render(&pixmap); } test_weekheadview.h000066400000000000000000000022241423264401600340010ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_WEEKHEADVIEW_H #define TEST_WEEKHEADVIEW_H #include "weekWidget/weekheadview.h" #include "gtest/gtest.h" #include class test_weekheadview : public QObject , public ::testing::Test { public: test_weekheadview(); ~test_weekheadview(); protected: CWeekHeadView *mWeekHeadView = nullptr; }; #endif // TEST_WEEKHEADVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/test_weekview.cpp000066400000000000000000000032611423264401600335730ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_weekview.h" int getWeekNumOfYear(const QDate &date) { Q_UNUSED(date); return 4; } test_weekview::test_weekview() { mWeekView = new CWeekView(&getWeekNumOfYear); } test_weekview::~test_weekview() { delete mWeekView; mWeekView = nullptr; } //void CWeekView::setSelectDate(const QDate date) TEST_F(test_weekview, setSelectDate) { mWeekView->setSelectDate(QDate::currentDate()); } //void CWeekView::setCurrent(const QDateTime &dateTime) TEST_F(test_weekview, setCurrent) { mWeekView->setCurrent(QDateTime::currentDateTime()); } //void CWeekView::setTheMe(int type) TEST_F(test_weekview, setTheMe) { mWeekView->setTheMe(1); mWeekView->setTheMe(2); } TEST_F(test_weekview, getPixmap) { mWeekView->setSelectDate(QDate::currentDate()); mWeekView->setFixedSize(600, 50); QPixmap pixmap(mWeekView->size()); mWeekView->render(&pixmap); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/test_weekview.h000066400000000000000000000021601423264401600332350ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_WEEKVIEW_H #define TEST_WEEKVIEW_H #include "weekWidget/weekview.h" #include "gtest/gtest.h" #include class test_weekview : public QObject , public ::testing::Test { public: test_weekview(); ~test_weekview(); protected: CWeekView *mWeekView = nullptr; }; #endif // TEST_WEEKVIEW_H test_weekwindow.cpp000066400000000000000000000041621423264401600340520ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "test_weekwindow.h" #include "../third-party_stub/stub.h" #include "customWidget/scheduleview.h" test_weekWindow::test_weekWindow() { } void test_weekWindow::SetUp() { m_weekWindow = new CWeekWindow(nullptr); } void test_weekWindow::TearDown() { delete m_weekWindow; m_weekWindow = nullptr; } TEST_F(test_weekWindow, setTheMe) { m_weekWindow->setTheMe(0); m_weekWindow->setTheMe(1); m_weekWindow->setTheMe(2); } TEST_F(test_weekWindow, updateHeight) { m_weekWindow->updateHeight(); } TEST_F(test_weekWindow, setTime) { QTime time = QTime::currentTime(); //定位非全天显示位置 m_weekWindow->setTime(time); } TEST_F(test_weekWindow, setYearData) { m_weekWindow->setYearData(); } namespace WeekDeleteItem { void slotDeleteitem_Stub(void *obj) { Q_UNUSED(obj) } } // namespace WeekDeleteItem TEST_F(test_weekWindow, deleteselectSchedule) { Stub stub; stub.set(ADDR(CScheduleView, slotDeleteitem), WeekDeleteItem::slotDeleteitem_Stub); m_weekWindow->deleteselectSchedule(); } bool IsDragging_Stub(void *obj) { Q_UNUSED(obj) return false; } TEST_F(test_weekWindow, slotIsDragging) { Stub stub; stub.set(ADDR(CScheduleView, IsDragging), IsDragging_Stub); bool isDragging; m_weekWindow->slotIsDragging(isDragging); ASSERT_EQ(isDragging, false); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_weekWidget/test_weekwindow.h000066400000000000000000000023111423264401600335700ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TEST_WEEKWINDOW_H #define TEST_WEEKWINDOW_H #include "gtest/gtest.h" #include "weekWidget/weekwindow.h" #include class test_weekWindow : public QObject , public ::testing::Test { Q_OBJECT public: explicit test_weekWindow(); void SetUp() override; void TearDown() override; signals: public slots: public: CWeekWindow *m_weekWindow {nullptr}; }; #endif // TEST_WEEKWINDOW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/000077500000000000000000000000001423264401600302055ustar00rootroot00000000000000test_yearscheduleview.cpp000066400000000000000000000301531423264401600352430ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_yearscheduleview.h" #include "../third-party_stub/stub.h" #include "constants.h" #include test_yearscheduleview::test_yearscheduleview() { } test_yearscheduleview::~test_yearscheduleview() { } void test_yearscheduleview::SetUp() { cYearScheduleView = new CYearScheduleView(); zYearScheduleOutView = new CYearScheduleOutView(); } void test_yearscheduleview::TearDown() { delete cYearScheduleView; cYearScheduleView = nullptr; delete zYearScheduleOutView; zYearScheduleOutView = nullptr; } QVector test_yearscheduleview::getScheduleDataInfo() { QVector scheduleDate {}; ScheduleDataInfo schedule1, schedule2, schedule3, schedule4, schedule5, scheduleFes; schedule1.setID(1); schedule1.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(0, 0, 0))); schedule1.setEndDateTime(QDateTime(QDate(2021, 1, 2), QTime(23, 59, 59))); schedule1.setTitleName("schedule test one"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(QDateTime(QDate(2021, 1, 3), QTime(0, 0, 0))); schedule2.setEndDateTime(QDateTime(QDate(2021, 1, 5), QTime(23, 59, 59))); schedule2.setTitleName("schedule test two"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); schedule3.setID(3); schedule3.setBeginDateTime(QDateTime(QDate(2021, 1, 6), QTime(5, 23, 40))); schedule3.setEndDateTime(QDateTime(QDate(2021, 1, 9), QTime(6, 23, 40))); schedule3.setTitleName("schedule test three"); schedule3.setAllDay(false); schedule3.setType(3); schedule3.setRecurID(0); schedule4.setID(4); schedule4.setBeginDateTime(QDateTime(QDate(2021, 1, 10), QTime(7, 23, 40))); schedule4.setEndDateTime(QDateTime(QDate(2021, 1, 14), QTime(8, 23, 40))); schedule4.setTitleName("schedule test four"); schedule4.setAllDay(false); schedule4.setType(1); schedule4.setRecurID(0); schedule5.setID(5); schedule5.setBeginDateTime(QDateTime(QDate(2021, 1, 15), QTime(9, 23, 40))); schedule5.setEndDateTime(QDateTime(QDate(2021, 1, 20), QTime(10, 23, 40))); schedule5.setTitleName("schedule test five"); schedule5.setAllDay(false); schedule5.setType(2); schedule5.setRecurID(0); scheduleFes.setID(6); scheduleFes.setBeginDateTime(QDateTime(QDate(2021, 1, 21), QTime(0, 0, 0))); scheduleFes.setEndDateTime(QDateTime(QDate(2021, 1, 21), QTime(23, 59, 59))); scheduleFes.setTitleName("schedule test festival"); scheduleFes.setAllDay(true); scheduleFes.setType(4); scheduleFes.setRecurID(0); scheduleDate.append(schedule1); scheduleDate.append(schedule2); scheduleDate.append(schedule3); scheduleDate.append(schedule4); scheduleDate.append(schedule5); scheduleDate.append(scheduleFes); return scheduleDate; } QVector test_yearscheduleview::getScheduleDateAndTitle() { QVector scheduleDate {}; ScheduleDataInfo s11, s12; s11.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s11.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s12.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s12.setEndDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); ScheduleDataInfo s21, s22; s21.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s21.setEndDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s22.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s22.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); ScheduleDataInfo s31, s32; s31.setBeginDateTime(QDateTime(QDate(2020, 12, 30), QTime(16, 23, 40))); s31.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s32.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s32.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); ScheduleDataInfo s41, s42; s41.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s41.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s42.setBeginDateTime(QDateTime(QDate(2020, 12, 30), QTime(16, 23, 40))); s42.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); ScheduleDataInfo s51, s52; s51.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s51.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s51.setTitleName("ab"); s52.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s52.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s52.setTitleName("ba"); ScheduleDataInfo s61, s62; s61.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s61.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s61.setTitleName("ba"); s62.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s62.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s62.setTitleName("ab"); ScheduleDataInfo s71, s72; s71.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 2, 40))); s71.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s72.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s72.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); ScheduleDataInfo s81, s82; s81.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s81.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s82.setBeginDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 2, 40))); s82.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); ScheduleDataInfo s91, s92; s91.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s91.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); s92.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); s92.setEndDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); ScheduleDataInfo sa1, sa2; sa1.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); sa1.setEndDateTime(QDateTime(QDate(2021, 1, 1), QTime(16, 23, 40))); sa2.setBeginDateTime(QDateTime(QDate(2020, 12, 31), QTime(16, 23, 40))); sa2.setEndDateTime(QDateTime(QDate(2021, 12, 31), QTime(16, 23, 40))); scheduleDate << s11 << s12 << s21 << s22 << s31 << s32 << s41 << s42 << s51 << s52 << s61 << s62 << s71 << s72 << s81 << s82 << s91 << s92 << sa1 << sa2; return scheduleDate; } //bool YScheduleDateThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2) bool YScheduleDateThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2); TEST_F(test_yearscheduleview, yschesuledatethan) { //bdate1 != edate1 && bdate2 == edate2 EXPECT_TRUE(YScheduleDateThan(getScheduleDateAndTitle().at(0), getScheduleDateAndTitle().at(1))); //bdate1 == edate1 && bdate2 != edate2 EXPECT_FALSE(YScheduleDateThan(getScheduleDateAndTitle().at(2), getScheduleDateAndTitle().at(3))); //bdate1 != edate1 && bdate2 != edate2 //bdate1 < bdate2 EXPECT_TRUE(YScheduleDateThan(getScheduleDateAndTitle().at(4), getScheduleDateAndTitle().at(5))); //bdate1 != edate1 && bdate2 != edate2 //bdate1 < bdate2 EXPECT_FALSE(YScheduleDateThan(getScheduleDateAndTitle().at(6), getScheduleDateAndTitle().at(7))); //bdate1 = edate1 && bdate2 = edate2 //s1.getTitleName() < s2.getTitleName() EXPECT_TRUE(YScheduleDateThan(getScheduleDateAndTitle().at(8), getScheduleDateAndTitle().at(9))); //bdate1 = edate1 && bdate2 = edate2 //s1.getBeginDateTime() == s2.getBeginDateTime() //s1.getTitleName() < s2.getTitleName() EXPECT_FALSE(YScheduleDateThan(getScheduleDateAndTitle().at(10), getScheduleDateAndTitle().at(11))); //bdate1 = edate1 && bdate2 = edate2 //s1.getBeginDateTime() != s2.getBeginDateTime() //s1.getBeginDateTime() < s2.getBeginDateTime() EXPECT_TRUE(YScheduleDateThan(getScheduleDateAndTitle().at(12), getScheduleDateAndTitle().at(13))); //bdate1 = edate1 && bdate2 = edate2 //s1.getBeginDateTime() != s2.getBeginDateTime() //s1.getBeginDateTime() < s2.getBeginDateTime() EXPECT_FALSE(YScheduleDateThan(getScheduleDateAndTitle().at(14), getScheduleDateAndTitle().at(15))); } //bool YScheduleDaysThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2) bool YScheduleDaysThan(const ScheduleDataInfo &s1, const ScheduleDataInfo &s2); TEST_F(test_yearscheduleview, yscheduleDaysThan) { //s1.getBeginDateTime().date().daysTo(s1.getEndDateTime().date()) > s2.getBeginDateTime().date().daysTo(s2.getEndDateTime().date()) EXPECT_TRUE(YScheduleDaysThan(getScheduleDateAndTitle().at(16), getScheduleDateAndTitle().at(17))); //s1.getBeginDateTime().date().daysTo(s1.getEndDateTime().date()) > s2.getBeginDateTime().date().daysTo(s2.getEndDateTime().date()) EXPECT_FALSE(YScheduleDaysThan(getScheduleDateAndTitle().at(18), getScheduleDateAndTitle().at(19))); } //void CYearScheduleView::setData(QVector &vListData) TEST_F(test_yearscheduleview, setDate) { QVector scheduleinfo = getScheduleDataInfo(); cYearScheduleView->setData(scheduleinfo); } //void CYearScheduleView::clearData() TEST_F(test_yearscheduleview, clearDate) { cYearScheduleView->clearData(); } //int CYearScheduleView::showWindow() TEST_F(test_yearscheduleview, showWindow) { QVector vlistData = getScheduleDataInfo(); cYearScheduleView->showWindow(); cYearScheduleView->setData(vlistData); cYearScheduleView->showWindow(); } //void CYearScheduleView::setTheMe(int type) TEST_F(test_yearscheduleview, setTheMe) { int type = 1; cYearScheduleView->setTheMe(type); type = 2; cYearScheduleView->setTheMe(type); } //void CYearScheduleView::setCurrentDate(QDate cdate) TEST_F(test_yearscheduleview, setCurrentDate) { cYearScheduleView->setCurrentDate(QDate(2021, 1, 6)); } //QDate CYearScheduleView::getCurrentDate() TEST_F(test_yearscheduleview, getCurrentDate) { QDate currentDate = QDate::currentDate(); cYearScheduleView->setCurrentDate(currentDate); bool iscurrent = currentDate == cYearScheduleView->getCurrentDate(); EXPECT_TRUE(iscurrent); QDate earlyDate = QDate(1999, 1, 1); cYearScheduleView->setCurrentDate(earlyDate); iscurrent = currentDate == cYearScheduleView->getCurrentDate(); EXPECT_FALSE(iscurrent); } //void CYearScheduleOutView::setData(QVector &vListData) TEST_F(test_yearscheduleview, setOutData) { QVector scheduleInfo = getScheduleDataInfo(); zYearScheduleOutView->setData(scheduleInfo); } //void CYearScheduleOutView::clearData() TEST_F(test_yearscheduleview, clearOutData) { zYearScheduleOutView->clearData(); } //void CYearScheduleOutView::setTheMe(int type) TEST_F(test_yearscheduleview, setTheOutMe) { zYearScheduleOutView->setTheMe(1); } //void CYearScheduleOutView::setCurrentDate(QDate cdate) TEST_F(test_yearscheduleview, setCurrentOutDate) { zYearScheduleOutView->setCurrentDate(QDate(2021, 1, 6)); } TEST_F(test_yearscheduleview, paintEvent) { QPixmap pixmap(cYearScheduleView->size()); QVector scheduleInfo = getScheduleDataInfo(); cYearScheduleView->setData(scheduleInfo); cYearScheduleView->render(&pixmap); } TEST_F(test_yearscheduleview, mousePressEvent) { } test_yearscheduleview.h000066400000000000000000000026141423264401600347110ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_YEARSCHEDULEVIEW_H #define TEST_YEARSCHEDULEVIEW_H #include "yearWidget/yearscheduleview.h" #include "gtest/gtest.h" #include class test_yearscheduleview : public QObject, public::testing::Test { public: test_yearscheduleview(); ~test_yearscheduleview(); void SetUp() override; void TearDown() override; protected: CYearScheduleView *cYearScheduleView = nullptr; CYearScheduleOutView *zYearScheduleOutView = nullptr; public: QVector getScheduleDataInfo(); QVector getScheduleDateAndTitle(); }; #endif // TEST_YEARSCHEDULEVIEW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/test_yearview.cpp000066400000000000000000000073031423264401600336060ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_yearview.h" #include "../third-party_stub/stub.h" #include test_yearview::test_yearview() { } test_yearview::~test_yearview() { } void test_yearview::SetUp() { cYearView = new CYearView(); } void test_yearview::TearDown() { delete cYearView; cYearView = nullptr; } QVector getListDate() { QVector listDate {}; QDate date = QDate::currentDate(); for (int i = 0; i < 42; i++) { listDate.append(date); date = date.addDays(1); } return listDate; } //void CYearView::slotDoubleClickDate(const QDate &date) TEST_F(test_yearview, slotDoubltClickDate) { cYearView->slotDoubleClickDate(QDate(2021, 1, 6)); } //void CYearView::slotPressClickDate(const QDate &date) TEST_F(test_yearview, slotPressClickDate) { cYearView->slotPressClickDate(QDate(2021, 1, 6)); } //void CYearView::setTheMe(int type) TEST_F(test_yearview, setTheMe) { cYearView->setTheMe(1); cYearView->setTheMe(2); } //void CYearView::setShowDate(const QDate &showMonth, const QVector &showDate) TEST_F(test_yearview, setShowDate) { cYearView->setShowDate(getListDate().first(), getListDate()); } //void CYearView::setHasScheduleFlag(const QVector &hasScheduleFlag) TEST_F(test_yearview, setHasScheduleFlag) { QVector listLintFlag {}; listLintFlag.append(false); listLintFlag.append(true); cYearView->setHasScheduleFlag(listLintFlag); } //void CYearView::setHasSearchScheduleFlag(const QVector &hasSearchScheduleFlag) TEST_F(test_yearview, setHasSearchScheduleFlag) { QVector listLintFlag {}; listLintFlag.append(false); listLintFlag.append(true); cYearView->setHasSearchScheduleFlag(listLintFlag); } void setDate_Stub(const int showMonth, const QVector &showDate) { Q_UNUSED(showMonth) Q_UNUSED(showDate)} //bool CYearView::getStartAndStopDate(QDate &startDate, QDate &stopDate) TEST_F(test_yearview, getStartAndStopDate) { QDate startDate(QDate(2021, 1, 7)); QDate stopDate(QDate(2021, 1, 8)); cYearView->setShowDate(getListDate().first(), getListDate()); bool result = cYearView->getStartAndStopDate(startDate, stopDate); EXPECT_TRUE(result); QVector listDate {}; Stub stub; stub.set(ADDR(MonthBrefWidget, setDate), setDate_Stub); cYearView->setShowDate(getListDate().first(), listDate); bool result_false = cYearView->getStartAndStopDate(startDate, stopDate); EXPECT_FALSE(result_false); } bool hasFocus_Stub() { return true; } TEST_F(test_yearview, paintEvent) { Stub stub; stub.set(ADDR(QWidget, hasFocus), hasFocus_Stub); cYearView->setFixedSize(600, 600); QPixmap pixmap(cYearView->size()); cYearView->render(&pixmap); } TEST_F(test_yearview, guitest) { QWidget *currentMonth = cYearView->findChild("currentMouth"); if (currentMonth) { QTest::mouseDClick(currentMonth, Qt::LeftButton); } } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/test_yearview.h000066400000000000000000000022511423264401600332500ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_YEARVIEW_H #define TEST_YEARVIEW_H #include "yearWidget/yearview.h" #include "gtest/gtest.h" #include class test_yearview : public QObject , public ::testing::Test { public: test_yearview(); ~test_yearview(); void SetUp() override; void TearDown() override; protected: CYearView *cYearView = nullptr; }; #endif // TEST_YEARVIEW_H test_yearwindow.cpp000066400000000000000000000047351423264401600340720ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 "test_yearwindow.h" #include "customWidget/customframe.h" #include "widget/yearWidget/yearscheduleview.h" #include "calendarglobalenv.h" #include "constants.h" test_yearwindow::test_yearwindow() { CalendarGlobalEnv::getGlobalEnv()->registerKey(DDECalendar::CursorPointKey, QPoint(20, 20)); mYearWindow = new CYearWindow(); dateaManger = new CalendarDateDataManager(); } test_yearwindow::~test_yearwindow() { delete mYearWindow; mYearWindow = nullptr; delete dateaManger; dateaManger = nullptr; } //void CYearWindow::setTheMe(int type) TEST_F(test_yearwindow, setTheMe) { int type = 1; mYearWindow->setTheMe(type); type = 2; mYearWindow->setTheMe(type); } TEST_F(test_yearwindow, slotMousePress) { CalendarGlobalEnv::getGlobalEnv()->reviseValue(DDECalendar::CursorPointKey, QPoint(20, 20)); QDate currentDate = QDate::currentDate(); mYearWindow->slotMousePress(currentDate, 0); ASSERT_EQ(mYearWindow->getSelectDate(), currentDate); mYearWindow->slotMousePress(currentDate, 1); mYearWindow->slotMousePress(currentDate, 2); mYearWindow->slotMousePress(currentDate, 3); mYearWindow->slotMousePress(currentDate, 4); } TEST_F(test_yearwindow, calculateAzimuthAngle) { QPointF startPoint(0, 0); QPointF stopPoint(30, 20); mYearWindow->calculateAzimuthAngle(startPoint, stopPoint); stopPoint.setX(20); stopPoint.setY(30); mYearWindow->calculateAzimuthAngle(startPoint, stopPoint); stopPoint.setX(-20); stopPoint.setY(30); mYearWindow->calculateAzimuthAngle(startPoint, stopPoint); stopPoint.setX(-30); stopPoint.setY(20); mYearWindow->calculateAzimuthAngle(startPoint, stopPoint); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/test_widget/test_yearWidget/test_yearwindow.h000066400000000000000000000022661423264401600336130ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2021 Uniontech Software Technology Co.,Ltd. * * Author: zhengxiaokang * * Maintainer: zhengxiaokang * * 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 TEST_YEARWINDOW_H #define TEST_YEARWINDOW_H #include "yearWidget/yearwindow.h" #include "gtest/gtest.h" #include class test_yearwindow : public QObject , public ::testing::Test { public: test_yearwindow(); ~test_yearwindow(); protected: CYearWindow *mYearWindow = nullptr; CalendarDateDataManager *dateaManger = nullptr; }; #endif // TEST_YEARWINDOW_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/testmainwindowgui.cpp000066400000000000000000000145751423264401600270210ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "testmainwindowgui.h" #include "configsettings.h" #include "view/monthgraphiview.h" #include "yearWidget/yearwindow.h" #include "monthWidget/monthwindow.h" #include "dialog_stub.h" #include "testscheduledata.h" #include testMainWindowGUI::testMainWindowGUI() { } QVariant getSetView(const QString &str) { QVariant variant; if (str == "base.geometry") { QByteArray byteArray("\x01\xD9\xD0\xCB\x00\x02\x00\x00\x00\x00\x02\x12\x00\x00\x00\xF3\x00\x00\x05m\x00\x00\x03l\x00\x00\x02\x12\x00\x00\x00\xF3\x00\x00\x05m\x00\x00\x03l\x00\x00\x00\x00\x00\x00\x00\x00\x07\x80"); variant.setValue(byteArray); } else if (str == "base.state") { variant.setValue(1); } else if (str == "base.view") { variant.setValue(2); } return variant; } void testMainWindowGUI::SetUp() { Stub stub; stub.set(ADDR(CConfigSettings, value), getSetView); } void testMainWindowGUI::TearDown() { } TEST_F(testMainWindowGUI, yearGUITest) { Calendarmainwindow mainWindow(0); CYearWindow *myYearWindow = mainWindow.findChild("yearwindow"); if (myYearWindow != nullptr) { DIconButton *m_prevButton = myYearWindow->findChild("PrevButton"); DIconButton *m_nextButton = myYearWindow->findChild("NextButton"); LabelWidget *m_today = myYearWindow->findChild("yearToDay"); if (m_prevButton != nullptr) { QTest::mouseClick(m_prevButton, Qt::LeftButton); } if (m_today != nullptr) { QTest::mouseClick(m_today, Qt::LeftButton); } if (m_nextButton != nullptr) { QTest::mouseClick(m_nextButton, Qt::LeftButton); } //获取QStackedWidget QStackedWidget *stackedWidget = myYearWindow->findChild(); if (stackedWidget) { QWidget *currentWidget = stackedWidget->currentWidget(); if (currentWidget) { currentWidget->setFocus(); QTest::keyPress(currentWidget, Qt::Key_Up); } currentWidget = stackedWidget->currentWidget(); if (currentWidget) { currentWidget->setFocus(); QTest::keyPress(currentWidget, Qt::Key_Down); } } //year_resizeEvent myYearWindow->setSearchWFlag(true); mainWindow.resize(1000, 400); myYearWindow->setSearchWFlag(false); mainWindow.resize(700, 400); } } TEST_F(testMainWindowGUI, monthGUITest) { Calendarmainwindow mainWindow(1); CMonthWindow *mymonthWindow = mainWindow.findChild("monthWindow"); if (mymonthWindow != nullptr) { } } TEST_F(testMainWindowGUI, weekGUIKeyTest) { Calendarmainwindow mainWindow(2); } TEST_F(testMainWindowGUI, dayGUIKeyTest) { Calendarmainwindow mainWindow(3); } TEST_F(testMainWindowGUI, slotCurrentDateUpdate) { Calendarmainwindow mainWindow(1); mainWindow.slotCurrentDateUpdate(); } //slotSetSearchFocus TEST_F(testMainWindowGUI, slotSetSearchFocus) { Calendarmainwindow mainWindow(1); mainWindow.slotSetSearchFocus(); } //viewWindow TEST_F(testMainWindowGUI, viewWindow) { Calendarmainwindow mainWindow(1); mainWindow.viewWindow(3, false); mainWindow.viewWindow(0, true); } //setSearchWidth TEST_F(testMainWindowGUI, setSearchWidth) { Calendarmainwindow mainWindow(1); mainWindow.setSearchWidth(500); } //slotTheme TEST_F(testMainWindowGUI, slotTheme) { Calendarmainwindow mainWindow(1); mainWindow.slotTheme(0); mainWindow.slotTheme(1); mainWindow.slotTheme(2); } //slotOpenSchedule TEST_F(testMainWindowGUI, slotOpenSchedule) { Stub stub; calendarDDialogExecStub(stub); Calendarmainwindow mainWindow(1); QString job = ScheduleDataInfo::ScheduleToJsonStr(TestDataInfo::getScheduleItemDInfo().first()); mainWindow.slotOpenSchedule(job); } //slotWUpdateSchedule TEST_F(testMainWindowGUI, slotWUpdateSchedule) { Calendarmainwindow mainWindow(1); mainWindow.slotWUpdateSchedule(); } //slotStextChanged TEST_F(testMainWindowGUI, slotStextChanged) { Calendarmainwindow mainWindow(1); mainWindow.slotStextChanged(); } //slotStextfocusChanged TEST_F(testMainWindowGUI, slotStextfocusChanged) { Calendarmainwindow mainWindow(1); mainWindow.slotStextfocusChanged(true); } //slotDeleteitem TEST_F(testMainWindowGUI, slotDeleteitem) { Stub stub; calendarDDialogExecStub(stub); Calendarmainwindow mainWindow(1); mainWindow.slotDeleteitem(); } //slotNewSchedule TEST_F(testMainWindowGUI, slotNewSchedule) { Stub stub; calendarDDialogExecStub(stub); Calendarmainwindow mainWindow(1); mainWindow.slotNewSchedule(); } //slotSwitchView TEST_F(testMainWindowGUI, slotSwitchView) { Stub stub; calendarDDialogExecStub(stub); Calendarmainwindow mainWindow(1); mainWindow.slotSwitchView(0); mainWindow.slotSwitchView(1); mainWindow.slotSwitchView(2); mainWindow.slotSwitchView(3); } //slotViewtransparentFrame TEST_F(testMainWindowGUI, slotViewtransparentFrame) { Calendarmainwindow mainWindow(1); mainWindow.slotViewtransparentFrame(true); mainWindow.slotViewtransparentFrame(false); } bool stub_startDetached(const QString &program, const QStringList &arguments) { Q_UNUSED(program) Q_UNUSED(arguments) return true; } //slotViewShortcut TEST_F(testMainWindowGUI, slotViewShortcut) { Stub stub; stub.set((bool (*)(const QString &, const QStringList &))ADDR(QProcess, startDetached), stub_startDetached); Calendarmainwindow mainWindow(1); mainWindow.slotViewShortcut(); } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/testmainwindowgui.h000066400000000000000000000023071423264401600264540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TESTMAINWINDOWGUI_H #define TESTMAINWINDOWGUI_H #include "calendarmainwindow.h" #include "gtest/gtest.h" #include "../third-party_stub/stub.h" #include #include class testMainWindowGUI : public QObject , public ::testing::Test { public: testMainWindowGUI(); void SetUp() override; void TearDown() override; public: Stub stub; }; #endif // TESTMAINWINDOWGUI_H dde-calendar-5.9.1/tests/dde-calendar-client-test/src/testscheduledata.cpp000066400000000000000000000060601423264401600265540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "testscheduledata.h" TestScheduleData::TestScheduleData() { } QVector TestDataInfo::getScheduleItemDInfo() { QVector scheduleDate {}; ScheduleDataInfo schedule1, schedule2, schedule3, schedule4, schedule5, scheduleFes; QDateTime currentDateTime = QDateTime::currentDateTime(); schedule1.setID(1); schedule1.setBeginDateTime(currentDateTime); schedule1.setEndDateTime(currentDateTime.addDays(1)); schedule1.setTitleName("scheduleOne"); schedule1.setAllDay(true); schedule1.setType(1); schedule1.setRecurID(0); schedule2.setID(2); schedule2.setBeginDateTime(currentDateTime.addDays(1)); schedule2.setEndDateTime(currentDateTime.addDays(1).addSecs(60 * 60)); schedule2.setTitleName("scheduleTwo"); schedule2.setAllDay(true); schedule2.setType(2); schedule2.setRecurID(0); schedule3.setID(3); schedule3.setBeginDateTime(currentDateTime.addDays(2)); schedule3.setEndDateTime(currentDateTime.addDays(2).addSecs(60 * 60)); schedule3.setTitleName("scheduleThree"); schedule3.setAllDay(false); schedule3.setType(3); schedule3.setRecurID(0); schedule4.setID(4); schedule4.setBeginDateTime(currentDateTime.addDays(3)); schedule4.setEndDateTime(currentDateTime.addDays(3).addSecs(60 * 60)); schedule4.setTitleName("scheduleFour"); schedule4.setAllDay(false); schedule4.setType(1); schedule4.setRecurID(0); schedule5.setID(5); schedule5.setBeginDateTime(currentDateTime.addDays(4)); schedule5.setEndDateTime(currentDateTime.addDays(4).addSecs(60 * 60)); schedule5.setTitleName("scheduleFive"); schedule5.setAllDay(false); schedule5.setType(2); schedule5.setRecurID(0); scheduleFes.setID(6); scheduleFes.setBeginDateTime(currentDateTime.addDays(5)); scheduleFes.setEndDateTime(currentDateTime.addDays(5).addSecs(60 * 60)); scheduleFes.setTitleName("scheduleFestival"); scheduleFes.setAllDay(true); scheduleFes.setType(4); scheduleFes.setRecurID(0); scheduleDate.append(schedule1); scheduleDate.append(schedule2); scheduleDate.append(schedule3); scheduleDate.append(schedule4); scheduleDate.append(schedule5); scheduleDate.append(scheduleFes); return scheduleDate; } dde-calendar-5.9.1/tests/dde-calendar-client-test/src/testscheduledata.h000066400000000000000000000020741423264401600262220ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 TESTSCHEDULEDATA_H #define TESTSCHEDULEDATA_H #include "src/scheduledatainfo.h" #include class TestScheduleData { public: TestScheduleData(); }; namespace TestDataInfo { QVector getScheduleItemDInfo(); } #endif // TESTSCHEDULEDATA_H dde-calendar-5.9.1/tests/dde-calendar-service-test/000077500000000000000000000000001423264401600221135ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-service-test/CMakeLists.txt000066400000000000000000000034771423264401600246660ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.7) project(dde-calendar-service-test) ADD_COMPILE_OPTIONS(-fno-access-control) set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(APP_BIN_NAME "dde-calendar-service-test") set(APP_SERVICE_DIR "${CMAKE_SOURCE_DIR}/calendar-service") set(APP_SERVICE_RES_DIR "${APP_SERVICE_DIR}/assets") set(APP_QRC "${APP_SERVICE_RES_DIR}/resources.qrc") # Find the library find_package(PkgConfig REQUIRED) find_package(DtkCore REQUIRED) find_package(Qt5 COMPONENTS Core DBus Sql REQUIRED) find_package(Qt5Test REQUIRED) find_package(GTest REQUIRED) set(LINK_LIBS Qt5::Core Qt5::DBus Qt5::Sql ${DtkCore_LIBRARIES} ) include_directories(${APP_SERVICE_DIR}/src) SUBDIRLIST(all_src ${APP_SERVICE_DIR}/src) #Include all app own subdirectorys foreach(subdir ${all_src}) include_directories(${APP_SERVICE_DIR}/src/${subdir}) endforeach() file(GLOB_RECURSE CALENDARSERVICE_SRCS ${APP_SERVICE_DIR}/src/*.cpp) include_directories(../../calendar-basicstruct/) list(REMOVE_ITEM CALENDARSERVICE_SRCS ${APP_SERVICE_DIR}/src/main.cpp) #test src SUBDIRLIST(TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src) foreach(subdir ${TEST_SRC}) include_directories(${subdir}) endforeach() set(HL_DATABASE_DIR ${APP_SERVICE_RES_DIR}/data/huangli.db) set(SD_DATABASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/scheduler.db) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in config.h @ONLY) file(GLOB_RECURSE Calendar_Service_TEST_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) list(APPEND CMAKE_MODULE_PATH "${ASAN_CMAKE_DIR}") include(asan) add_executable(${APP_BIN_NAME} ${Calendar_Service_TEST_SRC} ${CALENDARSERVICE_SRCS} ${APP_QRC}) target_link_libraries(${APP_BIN_NAME} ${LINK_LIBS} ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} pthread basestruct )dde-calendar-5.9.1/tests/dde-calendar-service-test/scheduler.db000066400000000000000000000600001423264401600243740ustar00rootroot00000000000000SQLite format 3@ X.0:  1o Y3yindexidx_jobs_deleted_atjobsCREATE INDEX idx_jobs_deleted_at ON "jobs"(deleted_at)a%tablejobsjobsCREATE TABLE "jobs" ("id" integer primary key autoincrement,"created_at" datetime,"updated_at" datetime,"deleted_at" datetime,"type" integer,"title" varchar(255),"description" varchar(255),"all_day" bool,"start" datetime,"end" datetime,"r_rule" varchar(255),"remind" varchar(255),"ignore" varchar(255) , "title_pinyin" varchar(255))n= indexidx_job_types_deleted_atjob_typesCREATE INDEX idx_job_types_deleted_at ON "job_types"(deleted_at)P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)Lgtablejob_typesjob_typesCREATE TABLE "job_types" ("id" integer primary key autoincrement,"created_at" datetime,"updated_at" datetime,"deleted_at" datetime,"name" varchar(255),"color" varchar(255) ) p(o??;=2021-04-14T16:40:28+08:002021-04-14T16:40:28+08:002021-04-14 16:40:28.530UT测试Y——ID应为6#FFFFFFD?;2021-04-14T16:40:28+08:002021-04-14 16:40:28.528嗨皮#CC99AAX??=2021-04-14T16:40:28+08:002021-04-14T16:40:28+08:00UT测试X——ID应为4#FFFFFFF??2021-04-14T16:40:28+08:002021-04-14T16:40:28+08:00其他#800080F??2021-04-14T16:40:28+08:002021-04-14T16:40:28+08:00工作#00FF00F??2021-04-14T16:40:28+08:002021-04-14T16:40:28+08:00学习#FF0000 jobs job_types ;2021-04-14 16:40:28.530 _I_ gGG  ??yG2021-04-14T16:40:28.511+08:002021-04-14T16:40:28.524+08:00UT测试X2020-12-09T00:00:00+08:002020-12-09T23:59:00+08:00FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;UNTIL=20201130T000000Z1;09:00["2020-12-06T00:00:00+08:00"][ce][shi]4GG  ??[2021-04-14T16:40:28.496+08:002021-04-14T16:40:28.496+08:00UT测试A2020-12-05T00:00:00+08:002020-12-05T23:59:00+08:00FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=31;09:00[]  dde-calendar-5.9.1/tests/dde-calendar-service-test/src/000077500000000000000000000000001423264401600227025ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-service-test/src/config.h.in000066400000000000000000000016531423264401600247320ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 CONFIG_H #define CONFIG_H #define HL_DATABASE_DIR "@HL_DATABASE_DIR@" #define SD_DATABASE_DIR "@SD_DATABASE_DIR@" #endif // CONFIG_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/service_stub.cpp000066400000000000000000000030741423264401600261070ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 "service_stub.h" #include "dbusuiopenschedule.h" #include "dbusnotify.h" QDBusMessage callWithArgumentList_stub(QDBus::CallMode mode, const QString &method, const QList &args) { Q_UNUSED(mode); Q_UNUSED(method); Q_UNUSED(args); QDBusMessage reply; reply.createReply("succ"); return reply; } void qDBusAbstractInterface_callWithArgumentList_stub(Stub &stub) { stub.set(ADDR(QDBusAbstractInterface, callWithArgumentList), callWithArgumentList_stub); qDBusMessage_type_Stub(stub); } QDBusMessage::MessageType type_Stub() { return QDBusMessage::ReplyMessage; } void qDBusMessage_type_Stub(Stub &stub) { stub.set(ADDR(QDBusMessage, type), type_Stub); } dde-calendar-5.9.1/tests/dde-calendar-service-test/src/service_stub.h000066400000000000000000000020031423264401600255430ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: chenhaifeng * * Maintainer: chenhaifeng * * 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 SERVICE_STUB_H #define SERVICE_STUB_H #include "../third-party_stub/stub.h" void qDBusMessage_type_Stub(Stub &stub); void qDBusAbstractInterface_callWithArgumentList_stub(Stub &stub); #endif // SERVICE_STUB_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_calendarhuangli.cpp000066400000000000000000000110701423264401600275650ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_calendarhuangli.h" #include "../third-party_stub/stub.h" #include "config.h" #include #include bool stub_OpenHuangliDB(void *obj, const QString &dbpath) { Q_UNUSED(dbpath); HuangLiDataBase *o = reinterpret_cast(obj); o->m_database = QSqlDatabase::addDatabase("QSQLITE"); o->m_database.setDatabaseName(HL_DATABASE_DIR); return o->m_database.open(); } test_calendarhuangli::test_calendarhuangli() { Stub stub; stub.set(ADDR(HuangLiDataBase, OpenHuangliDatabase), stub_OpenHuangliDB); calendarHuangLi = new CalendarHuangLi(); } test_calendarhuangli::~test_calendarhuangli() { if (calendarHuangLi->m_database->m_database.isOpen()) { calendarHuangLi->m_database->m_database.close(); } delete calendarHuangLi; } //QString CalendarHuangLi::GetFestivalMonth(quint32 year, quint32 month) TEST_F(test_calendarhuangli, GetFestivalMonth) { quint32 year = 2020; quint32 month = 12; QString fesMonth = calendarHuangLi->GetFestivalMonth(year, month); } //QString CalendarHuangLi::GetHuangLiDay(quint32 year, quint32 month, quint32 day) TEST_F(test_calendarhuangli, GetHuangLiDay) { //2020年12月13日黄历信息 const QString huangli_20201213 = "{\"Avoid\":\"嫁娶.祈福.出火.移徙.入宅.\",\"GanZhiDay\":\"庚寅\",\"GanZhiMonth\":\"戊子\"," "\"GanZhiYear\":\"庚子\",\"LunarDayName\":\"廿九\",\"LunarFestival\":\"\",\"LunarLeapMonth\":0," "\"LunarMonthName\":\"十月\",\"SolarFestival\":\"南京大屠杀死难者国家公祭日\"," "\"Suit\":\"纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床." "栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.\",\"Term\":\"\",\"Worktime\":0,\"Zodiac\":\"鼠\"}"; quint32 year = 2020; quint32 month = 12; quint32 day = 13; QString gethuangli = calendarHuangLi->GetHuangLiDay(year, month, day); assert(huangli_20201213 == gethuangli); //2020年12月14日黄历信息 const QString huangli_20201214 = "{\"Avoid\":\"入宅.修造.动土.破土.安门.上梁.\",\"GanZhiDay\":\"辛卯\",\"GanZhiMonth\":\"戊子\"," "\"GanZhiYear\":\"庚子\",\"LunarDayName\":\"三十\",\"LunarFestival\":\"\",\"LunarLeapMonth\":0," "\"LunarMonthName\":\"十月\",\"SolarFestival\":\"\",\"Suit\":\"祭祀.入殓.移柩.余事勿取.\",\"Term\":" "\"\",\"Worktime\":0,\"Zodiac\":\"鼠\"}"; day = 14; gethuangli = calendarHuangLi->GetHuangLiDay(year, month, day); assert(huangli_20201214 == gethuangli); } //QString CalendarHuangLi::GetHuangLiMonth(quint32 year, quint32 month, bool fill) TEST_F(test_calendarhuangli, GetHuangLiMonth) { quint32 year = 2020; quint32 month = 12; bool fill = false; calendarHuangLi->GetHuangLiMonth(year, month, fill); fill = true; calendarHuangLi->GetHuangLiMonth(year, month, fill); } //CaLunarDayInfo CalendarHuangLi::GetLunarInfoBySolar(quint32 year, quint32 month, quint32 day) TEST_F(test_calendarhuangli, GetLunarInfoBySolar) { quint32 year = 2020; quint32 month = 12; quint32 day = 13; CaLunarDayInfo huangliDayInfo = calendarHuangLi->GetLunarInfoBySolar(year, month, day); } //CaLunarMonthInfo CalendarHuangLi::GetLunarCalendarMonth(quint32 year, quint32 month, bool fill) TEST_F(test_calendarhuangli, GetLunarCalendarMonth) { quint32 year = 2020; quint32 month = 12; bool fill = false; calendarHuangLi->GetLunarCalendarMonth(year, month, fill); fill = true; calendarHuangLi->GetLunarCalendarMonth(year, month, fill); } dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_calendarhuangli.h000066400000000000000000000022131423264401600272310ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_CALENDARHUANGLI_H #define TEST_CALENDARHUANGLI_H #include "calendarhuangli.h" #include "gtest/gtest.h" #include class test_calendarhuangli : public QObject, public::testing::Test { public: test_calendarhuangli(); ~test_calendarhuangli(); protected: CalendarHuangLi *calendarHuangLi = nullptr; }; #endif // TEST_CALENDARHUANGLI_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_calendarscheduler.cpp000066400000000000000000000142641423264401600301240ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_calendarscheduler.h" #include "../third-party_stub/stub.h" #include "service_stub.h" test_calendarscheduler::test_calendarscheduler() { } TEST_F(test_calendarscheduler, DeleteJob_01) { mCalendar->DeleteJob(0); } TEST_F(test_calendarscheduler, GetJob_01) { EXPECT_TRUE(mCalendar->GetJob(0).isEmpty()); } TEST_F(test_calendarscheduler, CreateJob_01) { mCalendar->CreateJob(""); } TEST_F(test_calendarscheduler, UpdateJob_01) { mCalendar->UpdateJob(""); } TEST_F(test_calendarscheduler, GetJobs_01) { QDateTime starTime; QDateTime endTime = starTime.addDays(1); EXPECT_FALSE(mCalendar->GetJobs(starTime, endTime).isEmpty()); } TEST_F(test_calendarscheduler, QueryJobs_01) { QString str("{\"End\":\"2022-10-22T14:52:29+08:00\",\"Key\":\"sd\",\"Start\":\"2021-10-22T14:52:29+08:00\"}"); EXPECT_FALSE(mCalendar->QueryJobs(str).isEmpty()); } TEST_F(test_calendarscheduler, QueryJobsWithLimit_01) { QString str("{\"End\":\"2022-10-22T14:52:29+08:00\",\"Key\":\"sd\",\"Start\":\"2021-10-22T14:52:29+08:00\"}"); EXPECT_FALSE(mCalendar->QueryJobsWithLimit(str, 5).isEmpty()); } TEST_F(test_calendarscheduler, QueryJobsWithRule_01) { QString str("{\"End\":\"2022-10-22T14:52:29+08:00\",\"Key\":\"sd\",\"Start\":\"2021-10-22T14:52:29+08:00\"}"); EXPECT_FALSE(mCalendar->QueryJobsWithRule(str, "").isEmpty()); } TEST_F(test_calendarscheduler, CreateJobType_01) { QString str("[{\"Authority\":7,\"ColorHex\":\"#5bdd80\",\"ColorTypeNo\":4,\"JobTypeName\":\"123\",\"JobTypeNo\":8}]"); EXPECT_FALSE(mCalendar->CreateJobType(str)); } TEST_F(test_calendarscheduler, DeleteJobType_01) { mCalendar->DeleteJobType(7); } TEST_F(test_calendarscheduler, UpdateJobType_01) { QString str("[{\"Authority\":7,\"ColorHex\":\"#5bdd80\",\"ColorTypeNo\":4,\"JobTypeName\":\"123\",\"JobTypeNo\":8}]"); mCalendar->UpdateJobType(str); } TEST_F(test_calendarscheduler, GetJobTypeList_01) { mCalendar->GetJobTypeList().isEmpty(); } TEST_F(test_calendarscheduler, isJobTypeUsed_01) { mCalendar->isJobTypeUsed(0); } TEST_F(test_calendarscheduler, GetColorTypeList_01) { mCalendar->GetColorTypeList().isEmpty(); } TEST_F(test_calendarscheduler, UpdateRemindTimeout_01) { mCalendar->UpdateRemindTimeout(true); mCalendar->UpdateRemindTimeout(false); } TEST_F(test_calendarscheduler, notifyMsgHanding_01) { for (int i = 0; i < 25; i++) { mCalendar->notifyMsgHanding(1, 1, i); } } TEST_F(test_calendarscheduler, initConnections_01) { mCalendar->initConnections(); } TEST_F(test_calendarscheduler, GetFestivalId_01) { mCalendar->GetFestivalId("123"); } TEST_F(test_calendarscheduler, IsFestivalJobEnabled_01) { mCalendar->IsFestivalJobEnabled(); } TEST_F(test_calendarscheduler, GetJobTimesBetween_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":0,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); Job job = mCalendar->josnStringToJob(str); QDateTime starTime; QDateTime endTime = starTime.addDays(-10); EXPECT_TRUE(mCalendar->GetJobTimesBetween(starTime, endTime, job).isEmpty()); } TEST_F(test_calendarscheduler, ParseRRule_01) { QString str = "BYDAY=MO,TU,WE,TH,FR;COUNT=2;UNTIL=3"; QStringList sList; sList << ";FREQ=DAILY" << ";FREQ=WEEKLY" << ";FREQ=MONTHLY" << ";FREQ=YEARLY"; for (QString s : sList) { mCalendar->ParseRRule(str + s); } } TEST_F(test_calendarscheduler, GetJobRemindTime_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":0,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); Job job = mCalendar->josnStringToJob(str); mCalendar->GetJobRemindTime(job); } TEST_F(test_calendarscheduler, josnStringToJob_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":0,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); Job job = mCalendar->josnStringToJob(str); EXPECT_TRUE(job.AllDay); EXPECT_TRUE(job.ID == 0); } TEST_F(test_calendarscheduler, getRemindTimeByCount_01) { mCalendar->getRemindTimeByCount(0); } TEST_F(test_calendarscheduler, getRemindTimeByMesc_01) { mCalendar->getRemindTimeByMesc(0); } TEST_F(test_calendarscheduler, closeNotification_01) { mCalendar->closeNotification(0); } TEST_F(test_calendarscheduler, OnModifyJobRemind_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":0,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); Job job = mCalendar->josnStringToJob(str); mCalendar->OnModifyJobRemind(job, ""); } TEST_F(test_calendarscheduler, saveNotifyID_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":0,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); Job job = mCalendar->josnStringToJob(str); mCalendar->saveNotifyID(job, 1); } dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_calendarscheduler.h000066400000000000000000000024221423264401600275620ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_CALENDARSCHEDULER_H #define TEST_CALENDARSCHEDULER_H #include "calendarscheduler.h" #include #include class test_calendarscheduler: public::testing::Test { public: test_calendarscheduler(); virtual void SetUp() { mCalendar = new CalendarScheduler(); } virtual void TearDown() { delete mCalendar; mCalendar = nullptr; } protected: CalendarScheduler *mCalendar = nullptr; }; #endif // TEST_CALENDARSCHEDULER_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_calendarservice.cpp000066400000000000000000000105601423264401600276010ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 "test_calendarservice.h" test_calendarservice::test_calendarservice() { } TEST_F(test_calendarservice, GetFestivalMonth_01) { mService->GetFestivalMonth(2022, 4); } TEST_F(test_calendarservice, GetHuangLiDay_01) { EXPECT_FALSE(mService->GetHuangLiDay(2022, 4, 22).isEmpty()); } TEST_F(test_calendarservice, GetHuangLiMonth_01) { EXPECT_FALSE(mService->GetHuangLiMonth(2022, 4, true).isEmpty()); } TEST_F(test_calendarservice, GetLunarInfoBySolar_01) { EXPECT_FALSE(mService->GetLunarInfoBySolar(2022, 4, true).mLunarDayName.isEmpty()); } TEST_F(test_calendarservice, GetLunarMonthCalendar_01) { EXPECT_TRUE(mService->GetLunarMonthCalendar(2022, 4, true).mDays); } TEST_F(test_calendarservice, CreateJob_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":1,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); mService->CreateJob(str); } TEST_F(test_calendarservice, CreateType_01) { QString str("[{\"Authority\":7,\"ColorHex\":\"#5bdd80\",\"ColorTypeNo\":4,\"JobTypeName\":\"123\",\"JobTypeNo\":12}]"); mService->CreateType(str); } TEST_F(test_calendarservice, DeleteJob_01) { mService->DeleteJob(1); } TEST_F(test_calendarservice, GetJob_01) { mService->GetJob(1); } TEST_F(test_calendarservice, GetJobs_01) { mService->GetJobs(2022, 2, 1, 2022, 4, 1); } TEST_F(test_calendarservice, UpdateJob_01) { QString str("{\"AllDay\":true,\"Description\":\"\",\"End\":\"2022-04-07T23:59:00+08:00\",\"ID\":1,\"Ignore\":[],\"IsLunar\":false,\"RRule\":\"\",\"RecurID\":0,\"Remind\":\"1;09:00\",\"Start\":\"2022-04-06T00:00:00+08:00\",\"Title\":\"新建日程\",\"Type\":1}"); mService->UpdateJob(str); } TEST_F(test_calendarservice, QueryJobs_01) { QString str("{\"End\":\"2022-10-22T14:52:29+08:00\",\"Key\":\"sd\",\"Start\":\"2021-10-22T14:52:29+08:00\"}"); EXPECT_FALSE(mService->QueryJobs(str).isEmpty()); } TEST_F(test_calendarservice, QueryJobsWithLimit_01) { QString str("{\"End\":\"2022-10-22T14:52:29+08:00\",\"Key\":\"sd\",\"Start\":\"2021-10-22T14:52:29+08:00\"}"); EXPECT_FALSE(mService->QueryJobsWithLimit(str, 5).isEmpty()); } TEST_F(test_calendarservice, QueryJobsWithRule_01) { QString str("{\"End\":\"2022-10-22T14:52:29+08:00\",\"Key\":\"sd\",\"Start\":\"2021-10-22T14:52:29+08:00\"}"); EXPECT_FALSE(mService->QueryJobsWithRule(str, "").isEmpty()); } TEST_F(test_calendarservice, remindJob_01) { mService->remindJob(1, 2); } TEST_F(test_calendarservice, updateRemindJob_01) { mService->updateRemindJob(true); } TEST_F(test_calendarservice, CreateJobType_01) { QString str("[{\"Authority\":7,\"ColorHex\":\"#5bdd80\",\"ColorTypeNo\":4,\"JobTypeName\":\"123\",\"JobTypeNo\":8}]"); EXPECT_FALSE(mService->CreateJobType(str)); } TEST_F(test_calendarservice, DeleteJobType_01) { mService->DeleteJobType(7); } TEST_F(test_calendarservice, UpdateJobType_01) { QString str("[{\"Authority\":7,\"ColorHex\":\"#5bdd80\",\"ColorTypeNo\":4,\"JobTypeName\":\"123\",\"JobTypeNo\":8}]"); mService->UpdateJobType(str); } TEST_F(test_calendarservice, GetJobTypeList_01) { mService->GetJobTypeList().isEmpty(); } TEST_F(test_calendarservice, isJobTypeUsed_01) { mService->isJobTypeUsed(0); } TEST_F(test_calendarservice, GetColorTypeList_01) { mService->GetColorTypeList().isEmpty(); } TEST_F(test_calendarservice, notifyMsgHanding_01) { mService->notifyMsgHanding(1, 1, 1); } TEST_F(test_calendarservice, initConnections_01) { mService->initConnections(); } dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_calendarservice.h000066400000000000000000000023761423264401600272540ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: leilong * * Maintainer: leilong * * 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 TEST_CALENDARSERVICE_H #define TEST_CALENDARSERVICE_H #include "calendarservice.h" #include #include class test_calendarservice: public::testing::Test { public: test_calendarservice(); virtual void SetUp() { mService = new CalendarService(); } virtual void TearDown() { delete mService; mService = nullptr; } protected: CalendarService *mService = nullptr; }; #endif // TEST_CALENDARSERVICE_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_dbmanager/000077500000000000000000000000001423264401600256615ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_dbmanager/test_huanglidatabase.cpp000066400000000000000000000075701423264401600325510ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_huanglidatabase.h" #include "../third-party_stub/stub.h" #include "config.h" bool stub_OpenHuangliDatabase(void *obj, const QString &dbpath) { Q_UNUSED(dbpath); HuangLiDataBase *o = reinterpret_cast(obj); o->m_database = QSqlDatabase::addDatabase("QSQLITE"); o->m_database.setDatabaseName(HL_DATABASE_DIR); return o->m_database.open(); } test_huanglidatabase::test_huanglidatabase() { Stub stub; stub.set(ADDR(HuangLiDataBase, OpenHuangliDatabase), stub_OpenHuangliDatabase); hlDb = new HuangLiDataBase(); } test_huanglidatabase::~test_huanglidatabase() { if (hlDb->m_database.isOpen()) { hlDb->m_database.close(); } delete hlDb; } //QString HuangLiDataBase::QueryFestivalList(quint32 year, quint8 month) TEST_F(test_huanglidatabase, QueryFestivalList) { quint32 year = 2020; quint8 month = 10; const QString strFes = "[{\"description\":\"10月1日至10月8日放假8天,9月27日,10月10日上班\",\"id\":\"2020100110\",\"list\":" "[{\"date\":\"2020-10-1\",\"status\":1}," "{\"date\":\"2020-10-2\",\"status\":1}," "{\"date\":\"2020-10-3\",\"status\":1}," "{\"date\":\"2020-10-4\",\"status\":1}," "{\"date\":\"2020-10-5\",\"status\":1}," "{\"date\":\"2020-10-6\",\"status\":1}," "{\"date\":\"2020-10-7\",\"status\":1}," "{\"date\":\"2020-10-8\",\"status\":1}," "{\"date\":\"2020-9-27\",\"status\":2}," "{\"date\":\"2020-10-10\",\"status\":2}]," "\"month\":10,\"name\":\"中秋节\",\"rest\":" "\"10月9日至10月10日请假2天,与周末连休可拼11天长假。\"}]"; QString getFes = hlDb->QueryFestivalList(year, month); assert(strFes == getFes); } //QList HuangLiDataBase::QueryHuangLiByDays(const QList &days) TEST_F(test_huanglidatabase, QueryHuangLiByDays) { QList days; stDay day1, day2; day1.Year = day2.Year = 2020; day1.Month = day2.Month = 10; day1.Day = 1; day2.Day = 2; days << day1 << day2; QList getHuangli = hlDb->QueryHuangLiByDays(days); stHuangLi hl1, hl2; hl1 = getHuangli.at(0); hl2 = getHuangli.at(1); QString hl2Suit = "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩."; QString hl2Avoid = "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产."; assert(20201001 == hl1.ID && 20201002 == hl2.ID); assert(hl2Suit == hl2.Suit && hl2Avoid == hl2.Avoid); } ////bool HuangLiDataBase::OpenHuangliDatabase(const QString &dbpath) //TEST_F(test_huanglidatabase, OpenHuangliDatabase) //{ // QString dbpath = ""; // hlDb->OpenHuangliDatabase(dbpath); // dbpath = "123123"; // hlDb->OpenHuangliDatabase(dbpath); // dbpath = "%s%s%s%s%s%s"; // hlDb->OpenHuangliDatabase(dbpath); // hlDb->OpenHuangliDatabase(HL_DATABASE_DIR); //} dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_dbmanager/test_huanglidatabase.h000066400000000000000000000022121423264401600322020ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_HUANGLIDATABASE_H #define TEST_HUANGLIDATABASE_H #include "dbmanager/huanglidatabase.h" #include "gtest/gtest.h" #include class test_huanglidatabase : public QObject, public::testing::Test { public: test_huanglidatabase(); ~test_huanglidatabase(); protected: HuangLiDataBase *hlDb = nullptr; }; #endif // TEST_HUANGLIDATABASE_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_jobremindmanager.cpp000066400000000000000000000075211423264401600277560ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_jobremindmanager.h" #include "../third-party_stub/stub.h" #include "service_stub.h" #include #include void stub_callWithArgumentList(QDBus::CallMode mode, const QString &method, const QList &args) { Q_UNUSED(mode); Q_UNUSED(method); Q_UNUSED(args); } test_jobremindmanager::test_jobremindmanager() { Stub stub; stub.set(ADDR(QDBusAbstractInterface, callWithArgumentList), stub_callWithArgumentList); jobRemindManager = new JobRemindManager(); } test_jobremindmanager::~test_jobremindmanager() { delete jobRemindManager; } QList createJobs() { Job job1; job1.Start = QDateTime::fromString("2020-12-21T00:00:00+08:00", Qt::ISODate); job1.End = QDateTime::fromString("2020-12-21T23:59:00+08:00", Qt::ISODate); job1.AllDay = true; job1.Type = 1; job1.Description = ""; job1.ID = 1; job1.Ignore = "[]"; job1.Title = "UT测试A"; job1.RRule = "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=3"; job1.RecurID = 0; job1.Remind = "1;09:00"; Job job2; job2.Start = QDateTime::fromString("2020-12-22T00:00:00+08:00", Qt::ISODate); job2.End = QDateTime::fromString("2020-12-22T23:59:00+08:00", Qt::ISODate); job2.AllDay = true; job2.Type = 1; job2.Description = ""; job2.ID = 2; job2.Ignore = "[\"2020-12-11T00:00:00+08:00\"]"; job2.Title = "UT测试B"; job2.RRule = "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=2"; job2.RecurID = 0; job2.Remind = "1;09:00"; Job job3; job3.Start = QDateTime::fromString("2020-12-24T00:00:00+08:00", Qt::ISODate); job3.End = QDateTime::fromString("2020-12-24T23:59:00+08:00", Qt::ISODate); job3.AllDay = true; job3.Type = 1; job3.Description = ""; job3.ID = 3; job3.Ignore = "[]"; job3.Title = "UT测试C"; job3.RRule = "FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;COUNT=4"; job3.RecurID = 0; job3.Remind = "1;09:00"; QList jobs; jobs << job1 << job2 << job3; return jobs; } //void JobRemindManager::CallUiOpenSchedule(const Job &job) TEST_F(test_jobremindmanager, CallUiOpenSchedule) { Stub stub; qDBusAbstractInterface_callWithArgumentList_stub(stub); jobRemindManager->CallUiOpenSchedule(createJobs().at(0)); } //void JobRemindManager::RemindJob(const Job &job) TEST_F(test_jobremindmanager, RemindJob) { Stub stub; qDBusAbstractInterface_callWithArgumentList_stub(stub); jobRemindManager->RemindJob(createJobs().at(0)); } //int JobRemindManager::GetRemindAdvanceDays(const QString &remind) TEST_F(test_jobremindmanager, GetRemindAdvanceDays) { const QString remind = "1,09:00"; jobRemindManager->GetRemindAdvanceDays(remind); } //void JobRemindManager::RemindJobLater(const Job &job) TEST_F(test_jobremindmanager, RemindJobLater) { jobRemindManager->RemindJobLater(createJobs().at(0), 1); } //void JobRemindManager::UpdateRemindJobs(const QList &jobs) TEST_F(test_jobremindmanager, UpdateRemindJobs) { jobRemindManager->UpdateRemindJobs(createJobs()); } dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_jobremindmanager.h000066400000000000000000000022241423264401600274160ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_JOBREMINDMANAGER_H #define TEST_JOBREMINDMANAGER_H #include "jobremindmanager.h" #include "gtest/gtest.h" #include class test_jobremindmanager : public QObject, public::testing::Test { public: test_jobremindmanager(); ~test_jobremindmanager(); protected: JobRemindManager *jobRemindManager = nullptr; }; #endif // TEST_JOBREMINDMANAGER_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_lunarandfestival/000077500000000000000000000000001423264401600273035ustar00rootroot00000000000000test_method_interface.cpp000066400000000000000000000172021423264401600342710ustar00rootroot00000000000000dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_lunarandfestival/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "test_method_interface.h" #include #include #include test_method_interface::test_method_interface() { } //QString GetLunarMonthName(int lunarmonthname, bool isleap) TEST_F(test_method_interface, GetLunarMonthName) { // 腊月 int lunarmonthname = 12; bool isleap = false; QString lunarMName = GetLunarMonthName(lunarmonthname, isleap); assert("腊月" == lunarMName); // 闰腊月 isleap = true; lunarMName = GetLunarMonthName(lunarmonthname, isleap); assert("闰腊月" == lunarMName); } //QString GetLunarDayName(int lundayname) TEST_F(test_method_interface, GetLunarDayName) { // "初八" int lundayname = 8; QString lunarDayName = GetLunarDayName(lundayname); //qInfo() << lunarDayName; assert("初八" == lunarDayName); // "廿五" lundayname = 25; lunarDayName = GetLunarDayName(lundayname); //qInfo() << lunarDayName; assert("廿五" == lunarDayName); } //QString GetLunarDayFestival(int monthname, int lunarday, int lunarmonthdays, int solarterm) TEST_F(test_method_interface, GetLunarDayFestival) { // "除夕" int monthname = 12; int lunarday = 30; int lunarmonthdays = 30; int solarterm = 1; QString dayFestival = GetLunarDayFestival(monthname, lunarday, lunarmonthdays, solarterm); //qInfo() << dayFestival; assert("除夕" == dayFestival); // "清明节" monthname = 4; lunarday = 2; lunarmonthdays = 23; solarterm = 1; dayFestival = GetLunarDayFestival(monthname, lunarday, lunarmonthdays, solarterm); //qInfo() << dayFestival; assert("清明节" == dayFestival); // "" monthname = 5; lunarday = 1; lunarmonthdays = 13; solarterm = 0; dayFestival = GetLunarDayFestival(monthname, lunarday, lunarmonthdays, solarterm); //qInfo() << dayFestival; assert("" == dayFestival); } //QString GetSolarTermName(int order) TEST_F(test_method_interface, GetSolarTermName) { // "小满" int order = 4; QString stName = GetSolarTermName(order); //qInfo() << stName; assert("小满" == stName); // "" order = 24; stName = GetSolarTermName(order); //qInfo() << stName; assert("" == stName); } //QString GetGanZhiMonth(int year, int monthzhi) TEST_F(test_method_interface, GetGanZhiMonth) { // "戊子" int year = 2020; int month = 12; QString ganzhi = GetGanZhiMonth(year, month); //qInfo() << ganzhi; assert("戊子" == ganzhi); } //QString GetGanZhiYear(int lunaryear) TEST_F(test_method_interface, GetGanZhiYear) { // "庚子" int lunaryear = 2020; QString ganzhi = GetGanZhiYear(lunaryear); //qInfo() << ganzhi; assert("庚子" == ganzhi); } //QString GetGanZhiDay(int year, int month, int day) TEST_F(test_method_interface, GetGanZhiDay) { // "己丑" int year = 2020;; int month = 12; int day = 12; QString ganzhi = GetGanZhiDay(year, month, day); assert("己丑" == ganzhi); } //QString GetYearZodiac(int lunaryear) TEST_F(test_method_interface, GetYearZodiac) { // "鼠" int lunaryear = 2020; QString Zodiac = GetYearZodiac(lunaryear); //qInfo() << Zodiac; assert("鼠" == Zodiac); // "猪" lunaryear = 2019; Zodiac = GetYearZodiac(lunaryear); //qInfo() << Zodiac; assert("猪" == Zodiac); } //QVector get25SolarTermJDs(int year, int start) TEST_F(test_method_interface, get25SolarTermJDs) { int year = 0; int start = 0; QVector jds = get25SolarTermJDs(year, start); // TODO } //double GetSolarTermJD(int year, int order) TEST_F(test_method_interface, GetSolarTermJD) { int year = 2020; int order = 0; //春分 3月20日 double jd = GetSolarTermJD(year, order); assert(2.45893e+06 > jd); } //bool IsLeapYear(int year) TEST_F(test_method_interface, IsLeapYear) { int leapYear = 2020; // 闰年 int notLeapYear = 2019; // 非闰年 assert(true == IsLeapYear(leapYear) && false == IsLeapYear(notLeapYear)); } // int GetSolarMonthDays(int year, int month) TEST_F(test_method_interface, GetSolarMonthDays) { int year = 2020; int month = 2; int a = GetSolarMonthDays(year, month); assert(29 == a); } //int GetWeekday(int y, int m, int d) TEST_F(test_method_interface, GetWeekday) { int y = 2020; int m = 2; int d = 29; int a = GetWeekday(y, m, d); assert(6 == a); } //double DmsToDegrees(int degrees, int mintues, double seconds) TEST_F(test_method_interface, DmsToDegrees) { int degrees = 4; int mintues = 3; double seconds = 7200; double degress = DmsToDegrees(degrees, mintues, seconds); assert(qAbs(6.05 - degress) < 0.001); } //double DmsToSeconds(int d, int m, double s) TEST_F(test_method_interface, DmsToSeconds) { int d = 4; int m = 3; double s = 7200; double degress = DmsToSeconds(d, m, s); assert(qAbs(21780 - degress) < 0.001); } //double DmsToRadians(int d, int m, int s) TEST_F(test_method_interface, DmsToRadians) { int d = 4; int m = 3; int s = 7200; double degress = DmsToRadians(d, m, s); assert(0.105592 <= degress); } //QDateTime GetDateTimeFromJulianDay(double jd) TEST_F(test_method_interface, GetDateTimeFromJulianDay) { int year = 2020; int order = 0; //春分 3月20日 double jd = GetSolarTermJD(year, order); QString strJulianDay = "周五 3月 20 03:49:33 2020 GMT"; QDateTime julianDay = GetDateTimeFromJulianDay(jd); //qInfo() << julianDay.toString(); assert(strJulianDay.contains(julianDay.toString())); } //double GetDeltaT(int year, int month) TEST_F(test_method_interface, GetDeltaT) { const int count = 15; const int year[count] = {-501, 0, 1599, 1699, 1799, 1859, 1899, 1919, 1940, 1960, 1985, 2004, 2049, 2149, 2150 }; const int mouth = 6; for (int i = 0; i < count; ++i) { GetDeltaT(year[i], mouth); } } //double JDBeijingTime2UTC(double bjtJD) TEST_F(test_method_interface, JDBeijingTime2UTC) { double bjtJD = 1.01; double utc = JDBeijingTime2UTC(bjtJD); assert(0.67667 > utc); } //QString GetSolarDayFestival(int year, int month, int day) TEST_F(test_method_interface, GetSolarDayFestival) { int year = 2020; // 建军节 int month = 8; int day = 1; QString getFesStr = GetSolarDayFestival(year, month, day); assert("建军节" == getFesStr); // 儿童节 month = 6; day = 1; getFesStr = GetSolarDayFestival(year, month, day); assert("儿童节" == getFesStr); } //double CalcEarthObliquityNutation(double dt) TEST_F(test_method_interface, CalcEarthObliquityNutation) { double julianDay = 1; double dt = GetJulianCentury(julianDay); CalcEarthObliquityNutation(dt); //qInfo() << ceon; } //double lightAberration() TEST_F(test_method_interface, lightAberration) { lightAberration(); //qInfo() << lightAb; } dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_lunarandfestival/test_method_interface.h000066400000000000000000000020711423264401600340130ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 TEST_METHOD_INTERFACE_H #define TEST_METHOD_INTERFACE_H #include "method_interface.h" #include "gtest/gtest.h" #include class test_method_interface : public QObject, public::testing::Test { public: test_method_interface(); }; #endif // TEST_METHOD_INTERFACE_H dde-calendar-5.9.1/tests/dde-calendar-service-test/src/test_main.cpp000066400000000000000000000023341423264401600253730ustar00rootroot00000000000000/* * Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd. * * Author: hejinghai * * Maintainer: hejinghai * * 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 "gtest/gtest.h" #if defined(CMAKE_SAFETYTEST_ARG_ON) #include #endif #include int main(int argc, char **argv) { qputenv("QT_QPA_PLATFORM", "offscreen"); QCoreApplication application(argc, argv); ::testing::InitGoogleTest(&argc, argv); int ret = RUN_ALL_TESTS(); #if defined(CMAKE_SAFETYTEST_ARG_ON) __sanitizer_set_report_path("asan.log"); #endif return ret; } dde-calendar-5.9.1/tests/test-prj-running.sh000066400000000000000000000020701423264401600207560ustar00rootroot00000000000000#!/bin/bash builddir=build reportdir=build-ut rm -r $builddir rm -r ../$builddir rm -r $reportdir rm -r ../$reportdir mkdir ../$builddir mkdir ../$reportdir cd ../$builddir #编译 cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_SAFETYTEST_ARG="CMAKE_SAFETYTEST_ARG_ON" .. make -j8 #生成asan日志和ut测试xml结果 ./tests/dde-calendar-client-test/dde-calendar-test --gtest_output=xml:./report/report_dde-calendar-client.xml sleep 5 ./tests/dde-calendar-service-test/dde-calendar-service-test --gtest_output=xml:./report/report_dde-calendar-service.xml workdir=$(cd ../$(dirname $0)/$builddir; pwd) mkdir -p report #统计代码覆盖率并生成html报告 lcov -d $workdir -c -o ./coverage.info lcov --extract ./coverage.info '*/src/*' -o ./coverage.info lcov --remove ./coverage.info '*/tests/*' -o ./coverage.info genhtml -o ./html ./coverage.info mv ./html/index.html ./html/cov_dde-calendar.html #对asan、ut、代码覆盖率结果收集至指定文件夹 cp -r html ../$reportdir/ cp -r report ../$reportdir/ cp -r asan*.log* ../$reportdir/asan_dde-calendar.log exit 0 dde-calendar-5.9.1/tests/third-party_stub/000077500000000000000000000000001423264401600205015ustar00rootroot00000000000000dde-calendar-5.9.1/tests/third-party_stub/addr_pri.h000066400000000000000000000243641423264401600224470ustar00rootroot00000000000000#ifndef __ADDR_PRI_H__ #define __ADDR_PRI_H__ #include #include //base on C++11 /********************************************************** access private function **********************************************************/ namespace std { template using enable_if_t = typename enable_if::type; template using remove_reference_t = typename remove_reference::type; } // std // Unnamed namespace is used to avoid duplicate symbols if the macros are used namespace { namespace private_access_detail { // @tparam TagType, used to declare different "get" funciton overloads for // different members/statics template struct private_access { // Normal lookup cannot find in-class defined (inline) friend functions. friend PtrType get(TagType) { return PtrValue; } }; } // namespace private_access_detail } // namespace // Used macro naming conventions: // The "namespace" of this macro library is PRIVATE_ACCESS, i.e. all // macro here has this prefix. // All implementation macro, which are not meant to be used directly have the // PRIVATE_ACCESS_DETAIL prefix. // Some macros have the ABCD_IMPL form, which means they contain the // implementation details for the specific ABCD macro. #define PRIVATE_ACCESS_DETAIL_CONCATENATE_IMPL(x, y) x##y #define PRIVATE_ACCESS_DETAIL_CONCATENATE(x, y) \ PRIVATE_ACCESS_DETAIL_CONCATENATE_IMPL(x, y) // @param PtrTypeKind E.g if we have "class A", then it can be "A::*" in case of // members, or it can be "*" in case of statics. #define PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE(Tag, Class, Type, Name, \ PtrTypeKind) \ namespace { \ namespace private_access_detail { \ /* Tag type, used to declare different get funcitons for different \ * members \ */ \ struct Tag {}; \ /* Explicit instantiation */ \ template struct private_access; \ /* We can build the PtrType only with two aliases */ \ /* E.g. using PtrType = int(int) *; would be illformed */ \ using PRIVATE_ACCESS_DETAIL_CONCATENATE(Alias_, Tag) = Type; \ using PRIVATE_ACCESS_DETAIL_CONCATENATE(PtrType_, Tag) = \ PRIVATE_ACCESS_DETAIL_CONCATENATE(Alias_, Tag) PtrTypeKind; \ /* Declare the friend function, now it is visible in namespace scope. \ * Note, \ * we could declare it inside the Tag type too, in that case ADL would \ * find \ * the declaration. By choosing to declare it here, the Tag type remains \ * a \ * simple tag type, it has no other responsibilities. */ \ PRIVATE_ACCESS_DETAIL_CONCATENATE(PtrType_, Tag) get(Tag); \ } \ } #define PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_FIELD(Tag, Class, Type, Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE(Tag, Class, Type, Name, Class::*) \ namespace { \ namespace access_private_field { \ Type &Class##Name(Class &&t) { return t.*get(private_access_detail::Tag{}); } \ Type &Class##Name(Class &t) { return t.*get(private_access_detail::Tag{}); } \ /* The following usings are here to avoid duplicate const qualifier \ * warnings \ */ \ using PRIVATE_ACCESS_DETAIL_CONCATENATE(X, Tag) = Type; \ using PRIVATE_ACCESS_DETAIL_CONCATENATE(Y, Tag) = \ const PRIVATE_ACCESS_DETAIL_CONCATENATE(X, Tag); \ PRIVATE_ACCESS_DETAIL_CONCATENATE(Y, Tag) & Class##Name(const Class &t) {\ return t.*get(private_access_detail::Tag{}); \ } \ } \ } #define PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_FUN(Tag, Class, Type, Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE(Tag, Class, Type, Name, Class::*) \ namespace { \ namespace call_private_fun { \ /* We do perfect forwarding, but we want to restrict the overload set \ * only for objects which have the type Class. */ \ template , \ Class>::value> * = nullptr, \ typename... Args> \ auto Class##Name(Obj &&o, Args &&... args) -> decltype( \ (std::forward(o).* \ get(private_access_detail::Tag{}))(std::forward(args)...)) { \ return (std::forward(o).*get(private_access_detail::Tag{}))( \ std::forward(args)...); \ } \ } \ namespace get_private_fun { \ auto Class##Name() -> decltype( \ get(private_access_detail::Tag{})) { \ return (get(private_access_detail::Tag{})); \ } \ } \ } #define PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_STATIC_FIELD(Tag, Class, Type, \ Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE(Tag, Class, Type, Name, *) \ namespace { \ namespace access_private_static_field { \ namespace Class { \ Type &Class##Name() { return *get(private_access_detail::Tag{}); } \ } \ } \ } #define PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_STATIC_FUN(Tag, Class, Type, \ Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE(Tag, Class, Type, Name, *) \ namespace { \ namespace call_private_static_fun { \ namespace Class { \ template \ auto Class##Name(Args &&... args) -> decltype( \ get(private_access_detail::Tag{})(std::forward(args)...)) { \ return get(private_access_detail::Tag{})( \ std::forward(args)...); \ } \ } \ } \ namespace get_private_static_fun { \ namespace Class { \ auto Class##Name() -> decltype(get(private_access_detail::Tag{})) { \ return get(private_access_detail::Tag{}); \ } \ } \ } \ } #define PRIVATE_ACCESS_DETAIL_UNIQUE_TAG \ PRIVATE_ACCESS_DETAIL_CONCATENATE(PrivateAccessTag, __COUNTER__) #define ACCESS_PRIVATE_FIELD(Class, Type, Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_FIELD(PRIVATE_ACCESS_DETAIL_UNIQUE_TAG, \ Class, Type, Name) #define ACCESS_PRIVATE_FUN(Class, Type, Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_FUN(PRIVATE_ACCESS_DETAIL_UNIQUE_TAG, \ Class, Type, Name) #define ACCESS_PRIVATE_STATIC_FIELD(Class, Type, Name) \ Type Class::Name; \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_STATIC_FIELD( \ PRIVATE_ACCESS_DETAIL_UNIQUE_TAG, Class, Type, Name) #define ACCESS_PRIVATE_STATIC_FUN(Class, Type, Name) \ PRIVATE_ACCESS_DETAIL_ACCESS_PRIVATE_STATIC_FUN( \ PRIVATE_ACCESS_DETAIL_UNIQUE_TAG, Class, Type, Name) #endif dde-calendar-5.9.1/tests/third-party_stub/stub.h000066400000000000000000000236621423264401600216400ustar00rootroot00000000000000#ifndef __STUB_H__ #define __STUB_H__ #ifdef _WIN32 //windows #include #include #else //linux #include #include #endif //c #include #include //c++ #include #define ADDR(CLASS_NAME,MEMBER_NAME) (&CLASS_NAME::MEMBER_NAME) /********************************************************** replace function **********************************************************/ #ifdef _WIN32 #define CACHEFLUSH(addr, size) FlushInstructionCache(GetCurrentProcess(), addr, size) #else #define CACHEFLUSH(addr, size) __builtin___clear_cache(addr, addr + size) #endif #if defined(__aarch64__) || defined(_M_ARM64) #define CODESIZE 16U #define CODESIZE_MIN 16U #define CODESIZE_MAX CODESIZE // ldr x9, +8 // br x9 // addr #define REPLACE_FAR(t, fn, fn_stub)\ ((uint32_t*)fn)[0] = 0x58000040 | 9;\ ((uint32_t*)fn)[1] = 0xd61f0120 | (9 << 5);\ *(long long *)(fn + 8) = (long long )fn_stub;\ CACHEFLUSH((char *)fn, CODESIZE); #define REPLACE_NEAR(t, fn, fn_stub) REPLACE_FAR(t, fn, fn_stub) #elif defined(__arm__) || defined(_M_ARM) #define CODESIZE 8U #define CODESIZE_MIN 8U #define CODESIZE_MAX CODESIZE // ldr pc, [pc, #-4] #define REPLACE_FAR(t, fn, fn_stub)\ ((uint32_t*)fn)[0] = 0xe51ff004;\ ((uint32_t*)fn)[1] = (uint32_t)fn_stub;\ CACHEFLUSH((char *)fn, CODESIZE); #define REPLACE_NEAR(t, fn, fn_stub) REPLACE_FAR(t, fn, fn_stub) #elif defined(__mips64) #define CODESIZE 80U #define CODESIZE_MIN 80U #define CODESIZE_MAX CODESIZE //MIPS has no PC pointer, so you need to manually enter and exit the stack //120000ce0: 67bdffe0 daddiu sp, sp, -32 //enter the stack //120000ce4: ffbf0018 sd ra, 24(sp) //120000ce8: ffbe0010 sd s8, 16(sp) //120000cec: ffbc0008 sd gp, 8(sp) //120000cf0: 03a0f025 move s8, sp //120000d2c: 03c0e825 move sp, s8 //exit the stack //120000d30: dfbf0018 ld ra, 24(sp) //120000d34: dfbe0010 ld s8, 16(sp) //120000d38: dfbc0008 ld gp, 8(sp) //120000d3c: 67bd0020 daddiu sp, sp, 32 //120000d40: 03e00008 jr ra #define REPLACE_FAR(t, fn, fn_stub)\ ((uint32_t *)fn)[0] = 0x67bdffe0;\ ((uint32_t *)fn)[1] = 0xffbf0018;\ ((uint32_t *)fn)[2] = 0xffbe0010;\ ((uint32_t *)fn)[3] = 0xffbc0008;\ ((uint32_t *)fn)[4] = 0x03a0f025;\ *(uint16_t *)(fn + 20) = (long long)fn_stub >> 32;\ *(fn + 22) = 0x19;\ *(fn + 23) = 0x24;\ ((uint32_t *)fn)[6] = 0x0019cc38;\ *(uint16_t *)(fn + 28) = (long long)fn_stub >> 16;\ *(fn + 30) = 0x39;\ *(fn + 31) = 0x37;\ ((uint32_t *)fn)[8] = 0x0019cc38;\ *(uint16_t *)(fn + 36) = (long long)fn_stub;\ *(fn + 38) = 0x39;\ *(fn + 39) = 0x37;\ ((uint32_t *)fn)[10] = 0x0320f809;\ ((uint32_t *)fn)[11] = 0x00000000;\ ((uint32_t *)fn)[12] = 0x00000000;\ ((uint32_t *)fn)[13] = 0x03c0e825;\ ((uint32_t *)fn)[14] = 0xdfbf0018;\ ((uint32_t *)fn)[15] = 0xdfbe0010;\ ((uint32_t *)fn)[16] = 0xdfbc0008;\ ((uint32_t *)fn)[17] = 0x67bd0020;\ ((uint32_t *)fn)[18] = 0x03e00008;\ ((uint32_t *)fn)[19] = 0x00000000;\ CACHEFLUSH((char *)fn, CODESIZE); #define REPLACE_NEAR(t, fn, fn_stub) REPLACE_FAR(t, fn, fn_stub) #elif defined(__thumb__) || defined(_M_THUMB) #error "Thumb is not supported" #else //__i386__ _x86_64__ _M_IX86 _M_X64 #define CODESIZE 13U #define CODESIZE_MIN 5U #define CODESIZE_MAX CODESIZE //13 byte(jmp m16:64) //movabs $0x102030405060708,%r11 //jmpq *%r11 #define REPLACE_FAR(t, fn, fn_stub)\ *fn = 0x49;\ *(fn + 1) = 0xbb;\ *(long long *)(fn + 2) = (long long)fn_stub;\ *(fn + 10) = 0x41;\ *(fn + 11) = 0xff;\ *(fn + 12) = 0xe3;\ //CACHEFLUSH((char *)fn, CODESIZE); //5 byte(jmp rel32) #define REPLACE_NEAR(t, fn, fn_stub)\ *fn = 0xE9;\ *(int *)(fn + 1) = (int)(fn_stub - fn - CODESIZE_MIN);\ //CACHEFLUSH((char *)fn, CODESIZE); #endif struct func_stub { char *fn; unsigned char code_buf[CODESIZE]; bool far_jmp; }; class Stub { public: Stub() { #ifdef _WIN32 SYSTEM_INFO sys_info; GetSystemInfo(&sys_info); m_pagesize = sys_info.dwPageSize; #else m_pagesize = sysconf(_SC_PAGE_SIZE); #endif if (m_pagesize < 0) { m_pagesize = 4096; } } ~Stub() { std::map::iterator iter; struct func_stub *pstub; for(iter=m_result.begin(); iter != m_result.end(); iter++) { pstub = iter->second; #ifdef _WIN32 DWORD lpflOldProtect; if(0 != VirtualProtect(pageof(pstub->fn), m_pagesize * 2, PAGE_EXECUTE_READWRITE, &lpflOldProtect)) #else if (0 == mprotect(pageof(pstub->fn), m_pagesize * 2, PROT_READ | PROT_WRITE | PROT_EXEC)) #endif { if(pstub->far_jmp) { std::memcpy(pstub->fn, pstub->code_buf, CODESIZE_MAX); } else { std::memcpy(pstub->fn, pstub->code_buf, CODESIZE_MIN); } #if defined(__aarch64__) || defined(_M_ARM64) CACHEFLUSH(pstub->fn, CODESIZE); #elif defined(__arm__) || defined(_M_ARM) CACHEFLUSH(pstub->fn, CODESIZE); #elif defined(__mips64) CACHEFLUSH(pstub->fn, CODESIZE); #else //__i386__ _x86_64__ _M_IX86 _M_X64 //CACHEFLUSH(pstub->fn, CODESIZE); #endif #ifdef _WIN32 VirtualProtect(pageof(pstub->fn), m_pagesize * 2, PAGE_EXECUTE_READ, &lpflOldProtect); #else mprotect(pageof(pstub->fn), m_pagesize * 2, PROT_READ | PROT_EXEC); #endif } iter->second = NULL; delete pstub; } return; } template void set(T addr, S addr_stub) { char * fn; char * fn_stub; fn = addrof(addr); fn_stub = addrof(addr_stub); struct func_stub *pstub; pstub = new func_stub; //start reset(fn); // pstub->fn = fn; if(distanceof(fn, fn_stub)) { pstub->far_jmp = true; std::memcpy(pstub->code_buf, fn, CODESIZE_MAX); } else { pstub->far_jmp = false; std::memcpy(pstub->code_buf, fn, CODESIZE_MIN); } #ifdef _WIN32 DWORD lpflOldProtect; if(0 == VirtualProtect(pageof(pstub->fn), m_pagesize * 2, PAGE_EXECUTE_READWRITE, &lpflOldProtect)) #else if (-1 == mprotect(pageof(pstub->fn), m_pagesize * 2, PROT_READ | PROT_WRITE | PROT_EXEC)) #endif { throw("stub set memory protect to w+r+x faild"); } if(pstub->far_jmp) { REPLACE_FAR(this, fn, fn_stub); } else { REPLACE_NEAR(this, fn, fn_stub); } #ifdef _WIN32 if(0 == VirtualProtect(pageof(pstub->fn), m_pagesize * 2, PAGE_EXECUTE_READ, &lpflOldProtect)) #else if (-1 == mprotect(pageof(pstub->fn), m_pagesize * 2, PROT_READ | PROT_EXEC)) #endif { throw("stub set memory protect to r+x failed"); } m_result.insert(std::pair(fn,pstub)); return; } template void reset(T addr) { char * fn; fn = addrof(addr); std::map::iterator iter = m_result.find(fn); if (iter == m_result.end()) { return; } struct func_stub *pstub; pstub = iter->second; #ifdef _WIN32 DWORD lpflOldProtect; if(0 == VirtualProtect(pageof(pstub->fn), m_pagesize * 2, PAGE_EXECUTE_READWRITE, &lpflOldProtect)) #else if (-1 == mprotect(pageof(pstub->fn), m_pagesize * 2, PROT_READ | PROT_WRITE | PROT_EXEC)) #endif { throw("stub reset memory protect to w+r+x faild"); } if(pstub->far_jmp) { std::memcpy(pstub->fn, pstub->code_buf, CODESIZE_MAX); } else { std::memcpy(pstub->fn, pstub->code_buf, CODESIZE_MIN); } #if defined(__aarch64__) || defined(_M_ARM64) CACHEFLUSH(pstub->fn, CODESIZE); #elif defined(__arm__) || defined(_M_ARM) CACHEFLUSH(pstub->fn, CODESIZE); #elif defined(__mips64) CACHEFLUSH(pstub->fn, CODESIZE); #else //__i386__ _x86_64__ _M_IX86 _M_X64 //CACHEFLUSH(pstub->fn, CODESIZE); #endif #ifdef _WIN32 if(0 == VirtualProtect(pageof(pstub->fn), m_pagesize * 2, PAGE_EXECUTE_READ, &lpflOldProtect)) #else if (-1 == mprotect(pageof(pstub->fn), m_pagesize * 2, PROT_READ | PROT_EXEC)) #endif { throw("stub reset memory protect to r+x failed"); } m_result.erase(iter); delete pstub; return; } private: char *pageof(char* addr) { #ifdef _WIN32 return (char *)((unsigned long long)addr & ~(m_pagesize - 1)); #else return (char *)((unsigned long)addr & ~(m_pagesize - 1)); #endif } template char* addrof(T addr) { union { T _s; char* _d; }ut; ut._s = addr; return ut._d; } bool distanceof(char* addr, char* addr_stub) { std::ptrdiff_t diff = addr_stub >= addr ? addr_stub - addr : addr - addr_stub; if((sizeof(addr) > 4) && (((diff >> 31) - 1) > 0)) { return true; } return false; } private: #ifdef _WIN32 //LLP64 long long m_pagesize; #else //LP64 long m_pagesize; #endif std::map m_result; }; #endif dde-calendar-5.9.1/translations/000077500000000000000000000000001423264401600165545ustar00rootroot00000000000000dde-calendar-5.9.1/translations/dde-calendar-service_am_ET.ts000066400000000000000000000044761423264401600241450ustar00rootroot00000000000000 JobRemindManager One day before start አንድ ቀን ከ መጀመሩ በፊት Close button መዝጊያ Remind me tomorrow ነገ አስታውሰኝ Remind me later በኋላ አስታውሰኝ Schedule Reminder አስታዋሽ ማሰናጃ %1 to %2 %1 እስከ %2 Today ዛሬ Tomorrow ነገ dde-calendar-5.9.1/translations/dde-calendar-service_ar.ts000066400000000000000000000044261423264401600235550ustar00rootroot00000000000000 JobRemindManager One day before start يوم قبل البداية Close button إغلاق Remind me tomorrow ذكرني غدا Remind me later ذكرني لاحقا Schedule Reminder تذكير بالبرنامج %1 to %2 Today اليوم Tomorrow غدا dde-calendar-5.9.1/translations/dde-calendar-service_az.ts000066400000000000000000000071441423264401600235650ustar00rootroot00000000000000 JobRemindManager One day before start Başlamadan bir gün əvvəl Close button Bağlayın Remind me tomorrow Sabah mənə xatırlat Remind me later Sonra mənə xatırlat 15 mins later 15 dəq sonra 1 hour later 1 saat sonra 4 hours later 4 saat sonra Schedule Reminder Xatırlatma cədvəli %1 to %2 %1 ilə %2 arası Today Bu gün Tomorrow Sabah SchedulerDatabase Work İş Life Həyat Other Başqa dde-calendar-5.9.1/translations/dde-calendar-service_bo.ts000066400000000000000000000050241423264401600235460ustar00rootroot00000000000000 JobRemindManager One day before start ཉིན་1སྔོན་ལ་དྲན་སྐུལ་བྱེད་པ། Close button ཁ་རྒྱག Remind me tomorrow སང་ཉིན་དྲན་སྐུལ་བྱེད། Remind me later ཏོག་ཙམ་ནས་དྲན་སྐུལ་བྱེད། Schedule Reminder ཉིན་རེའི་ལས་རིམ་དྲན་སྐུལ། %1 to %2 %1 ནས་ %2བར། Today དེ་རིང་། Tomorrow སང་ཉིན། dde-calendar-5.9.1/translations/dde-calendar-service_ca.ts000066400000000000000000000071601423264401600235340ustar00rootroot00000000000000 JobRemindManager One day before start Un dia abans de l'inici Close button Tanca Remind me tomorrow Recorda-m'ho demà Remind me later Recorda-m'ho més tard 15 mins later 15 minuts més tard 1 hour later 1 hora més tard 4 hours later 4 hores més tard Schedule Reminder Programació del recordatori %1 to %2 de %1 a %2 Today Avui Tomorrow Demà SchedulerDatabase Work Feina Life Vida Other Altres dde-calendar-5.9.1/translations/dde-calendar-service_cs.ts000066400000000000000000000044241423264401600235560ustar00rootroot00000000000000 JobRemindManager One day before start Jeden den před začátkem Close button Zavřít Remind me tomorrow Připomenout zítra Remind me later Připomenout později Schedule Reminder Připomínání naplánovaného %1 to %2 %1 až %2 Today Dnes Tomorrow Zítra dde-calendar-5.9.1/translations/dde-calendar-service_da.ts000066400000000000000000000043701423264401600235350ustar00rootroot00000000000000 JobRemindManager One day before start En dag før start Close button Luk Remind me tomorrow Påmind mig i morgen Remind me later Påmind mig senere Schedule Reminder Planlæg påmindelse %1 to %2 Today I dag Tomorrow I morgen dde-calendar-5.9.1/translations/dde-calendar-service_de.ts000066400000000000000000000044031423264401600235360ustar00rootroot00000000000000 JobRemindManager One day before start Einen Tag vor Beginn Close button Schließen Remind me tomorrow Erinnere mich morgen Remind me later Erinnere mich später Schedule Reminder Terminerinnerung %1 to %2 %1 bis %2 Today Heute Tomorrow Morgen dde-calendar-5.9.1/translations/dde-calendar-service_el.ts000066400000000000000000000045751423264401600235600ustar00rootroot00000000000000 JobRemindManager One day before start Μια μέρα πριν την έναρξη Close button Κλείσιμο Remind me tomorrow Υπενθύμισέ μου αύριο Remind me later Υπενθύμισέ μου αργότερα Schedule Reminder Προγραμματισμένη υπενθύμιση %1 to %2 %1 εως %2 Today Σήμερα Tomorrow Αύριο dde-calendar-5.9.1/translations/dde-calendar-service_en.ts000066400000000000000000000070761423264401600235610ustar00rootroot00000000000000 JobRemindManager One day before start One day before start Close button Close Remind me tomorrow Remind me tomorrow Remind me later Remind me later 15 mins later 15 mins later 1 hour later 1 hour later 4 hours later 4 hours later Schedule Reminder Schedule Reminder %1 to %2 %1 to %2 Today Today Tomorrow Tomorrow SchedulerDatabase Work Work Life Life Other Other dde-calendar-5.9.1/translations/dde-calendar-service_en_AU.ts000066400000000000000000000043701423264401600241400ustar00rootroot00000000000000 JobRemindManager One day before start One day before start Close button Close Remind me tomorrow Remind me tomorrow Remind me later Remind me later Schedule Reminder Schedule Reminder %1 to %2 Today Today Tomorrow Tomorrow dde-calendar-5.9.1/translations/dde-calendar-service_en_US.ts000066400000000000000000000072151423264401600241630ustar00rootroot00000000000000 JobRemindManager One day before start One day before start Close button Close Remind me tomorrow Remind me tomorrow Remind me later Remind me later 15 mins later 1 hour later 4 hours later Schedule Reminder Schedule Reminder %1 to %2 %1 to %2 Today Today Tomorrow Tomorrow SchedulerDatabase Work Life Other dde-calendar-5.9.1/translations/dde-calendar-service_es.ts000066400000000000000000000044101423264401600235530ustar00rootroot00000000000000 JobRemindManager One day before start El día anterior al evento Close button Cerrar Remind me tomorrow Recuérdeme mañana Remind me later Recuérdeme más tarde Schedule Reminder Programar recordatorio %1 to %2 %1 a %2 Today Hoy Tomorrow Mañana dde-calendar-5.9.1/translations/dde-calendar-service_fa.ts000066400000000000000000000044651423264401600235440ustar00rootroot00000000000000 JobRemindManager One day before start یک روز قبل از شروع Close button بستن Remind me tomorrow فردا یادم بنداز Remind me later بعدا ً به من یادآوری کن Schedule Reminder یادآور برنامه %1 to %2 Today امروز Tomorrow فردا dde-calendar-5.9.1/translations/dde-calendar-service_fi.ts000066400000000000000000000044011423264401600235420ustar00rootroot00000000000000 JobRemindManager One day before start Yksi päivä ennen alkua Close button Sulje Remind me tomorrow Muistuta huomenna Remind me later Muistuta myöhemmin Schedule Reminder Ajasta muistutus %1 to %2 %1 - %2 Today Tänään Tomorrow Huomenna dde-calendar-5.9.1/translations/dde-calendar-service_fr.ts000066400000000000000000000044321423264401600235570ustar00rootroot00000000000000 JobRemindManager One day before start Un jour avant le départ Close button Fermer Remind me tomorrow Rappelez-le moi demain Remind me later Rappelez-le moi plus tard Schedule Reminder Rappel de planification %1 to %2 %1 à %2 Today Aujourd'hui Tomorrow Demain dde-calendar-5.9.1/translations/dde-calendar-service_gl_ES.ts000066400000000000000000000044041423264401600241400ustar00rootroot00000000000000 JobRemindManager One day before start Un día antes do comezo Close button Pechar Remind me tomorrow Lembrarme mañá Remind me later Lembrarme máis tarde Schedule Reminder Programar recordatorio %1 to %2 %1 a %2 Today Hoxe Tomorrow Mañá dde-calendar-5.9.1/translations/dde-calendar-service_hi_IN.ts000066400000000000000000000046771423264401600241510ustar00rootroot00000000000000 JobRemindManager One day before start आरंभ से पूर्व एक दिन Close button बंद करें Remind me tomorrow कल पुनः सूचित करें Remind me later बाद में पुनः सूचित करें Schedule Reminder कार्यक्रम अनुस्मारक %1 to %2 %1 से %2 तक Today आज Tomorrow आने वाला कल dde-calendar-5.9.1/translations/dde-calendar-service_hr.ts000066400000000000000000000071131423264401600235600ustar00rootroot00000000000000 JobRemindManager One day before start Dan prije početka Close button Zatvori Remind me tomorrow Podsjeti me sutra Remind me later Podsjeti me kasnije 15 mins later 15 minuta kasnije 1 hour later 1 sat kasnije 4 hours later 4 sata kasnije Schedule Reminder Podsjetnik rasporeda %1 to %2 %1 do %2 Today Danas Tomorrow Sutra SchedulerDatabase Work Posao Life Život Other Ostalo dde-calendar-5.9.1/translations/dde-calendar-service_hu.ts000066400000000000000000000071451423264401600235700ustar00rootroot00000000000000 JobRemindManager One day before start Egy nappal kezdés előtt Close button Bezárás Remind me tomorrow Emlékeztessen holnap Remind me later Emlékeztessen később 15 mins later 15 perc múlva 1 hour later 1 óra múlva 4 hours later 4 óra múlva Schedule Reminder Ütemezési emlékeztető %1 to %2 %1-től %2-ig Today Ma Tomorrow Holnap SchedulerDatabase Work Munka Life Magénélet Other Egyéb dde-calendar-5.9.1/translations/dde-calendar-service_it.ts000066400000000000000000000044241423264401600235650ustar00rootroot00000000000000 JobRemindManager One day before start Un giorno prima dell'inizio Close button Chiudi Remind me tomorrow Ricordamelo domani Remind me later Ricordamelo più tardi Schedule Reminder Pianifica promemoria %1 to %2 dalle %1 alle %2 Today Oggi Tomorrow Domani dde-calendar-5.9.1/translations/dde-calendar-service_ka.ts000066400000000000000000000046521423264401600235470ustar00rootroot00000000000000 JobRemindManager One day before start დაწყებამდე 1 დღით ადრე Close button დახურვა Remind me tomorrow შემახსენე ხვალ Remind me later შემახსენე მოგვიანებით Schedule Reminder შეხსენების დაგეგმვა %1 to %2 %1 დან %2 Today დღეს Tomorrow ხვალ dde-calendar-5.9.1/translations/dde-calendar-service_kab.ts000066400000000000000000000043741423264401600237120ustar00rootroot00000000000000 JobRemindManager One day before start Yiwen wass send beddu Close button Mdel Remind me tomorrow Smekti-yi-d azekka Remind me later Smekti-yi-d ticki Schedule Reminder Asmekti s usɣiwes %1 to %2 %1 ɣer %2 Today Ass-a Tomorrow Azekka dde-calendar-5.9.1/translations/dde-calendar-service_ko.ts000066400000000000000000000043521423264401600235620ustar00rootroot00000000000000 JobRemindManager One day before start 시작 하루 전 Close button 닫기 Remind me tomorrow 내일 알림 Remind me later 나중에 알림 Schedule Reminder 일정 알림 %1 to %2 Today 오늘 Tomorrow 내일 dde-calendar-5.9.1/translations/dde-calendar-service_lt.ts000066400000000000000000000044061423264401600235700ustar00rootroot00000000000000 JobRemindManager One day before start Vieną dieną prieš pradžią Close button Užverti Remind me tomorrow Priminti rytoj Remind me later Priminti vėliau Schedule Reminder Planuoti priminimą %1 to %2 %1 iki %2 Today Šiandien Tomorrow Rytoj dde-calendar-5.9.1/translations/dde-calendar-service_ms.ts000066400000000000000000000044141423264401600235670ustar00rootroot00000000000000 JobRemindManager One day before start Satu hari sebelum mula Close button Tutup Remind me tomorrow Ingatkan saya esok hari Remind me later Ingatkan saya kemudian Schedule Reminder Peringatan Berjadual %1 to %2 %1 hingga %2 Today Hari ini Tomorrow Esok dde-calendar-5.9.1/translations/dde-calendar-service_nl.ts000066400000000000000000000071171423264401600235640ustar00rootroot00000000000000 JobRemindManager One day before start Eén dag van tevoren Close button Sluiten Remind me tomorrow Herinner me morgen Remind me later Herinner me later 15 mins later 15 min. later 1 hour later 1 uur later 4 hours later 4 uur later Schedule Reminder Herinnering inplannen %1 to %2 van %1 tot %2 Today Vandaag Tomorrow Morgen SchedulerDatabase Work Zakelijk Life Privé Other Overig dde-calendar-5.9.1/translations/dde-calendar-service_pl.ts000066400000000000000000000071421423264401600235640ustar00rootroot00000000000000 JobRemindManager One day before start Dzień przed startem Close button Zamknij Remind me tomorrow Przypomnij mi jutro Remind me later Przypomnij mi później 15 mins later 15 minut później 1 hour later 1 godzinę później 4 hours later 4 godziny później Schedule Reminder Zaplanuj przypomnienie %1 to %2 %1 do %2 Today Dzisiaj Tomorrow Jutro SchedulerDatabase Work Praca Life Życie Other Inne dde-calendar-5.9.1/translations/dde-calendar-service_pt.ts000066400000000000000000000044001423264401600235660ustar00rootroot00000000000000 JobRemindManager One day before start Um dia antes do início Close button Fechar Remind me tomorrow Lembra-me amanhã Remind me later Lembrar-me mais tarde Schedule Reminder Agendar lembrete %1 to %2 %1 até %2 Today Hoje Tomorrow Amanhã dde-calendar-5.9.1/translations/dde-calendar-service_pt_BR.ts000066400000000000000000000044011423264401600241520ustar00rootroot00000000000000 JobRemindManager One day before start Um dia antes do início Close button Fechar Remind me tomorrow Lembre-me amanhã Remind me later Lembre-me mais tarde Schedule Reminder Agendar Lembrete %1 to %2 %1 às %2 Today Hoje Tomorrow Amanhã dde-calendar-5.9.1/translations/dde-calendar-service_ro.ts000066400000000000000000000044131423264401600235670ustar00rootroot00000000000000 JobRemindManager One day before start O zi înainte de a începe Close button Închidere Remind me tomorrow Reaminteşte mâine Remind me later Reaminteşte mai târziu Schedule Reminder Programare Reminder %1 to %2 %1 la %2 Today Azi Tomorrow Mâine dde-calendar-5.9.1/translations/dde-calendar-service_ru.ts000066400000000000000000000045361423264401600236030ustar00rootroot00000000000000 JobRemindManager One day before start За день до начала Close button Закрыть Remind me tomorrow Напомни мне завтра Remind me later Напомни мне позже Schedule Reminder Напоминание о расписании %1 to %2 от 1% до %2 Today Сегодня Tomorrow Завтра dde-calendar-5.9.1/translations/dde-calendar-service_si.ts000066400000000000000000000046601423264401600235660ustar00rootroot00000000000000 JobRemindManager One day before start ආරම්භ කිරීමට ඇත්තේ එක් දිනක් පමණි Close button වසා දමන්න Remind me tomorrow මට හෙට මතක් කරන්න Remind me later මට පසුව මතක් කරන්න Schedule Reminder මතක් කිරීමක් සකසන්න %1 to %2 Today අද Tomorrow හෙට dde-calendar-5.9.1/translations/dde-calendar-service_sk.ts000066400000000000000000000044051423264401600235650ustar00rootroot00000000000000 JobRemindManager One day before start Jeden deň pred začiatkom Close button Zavrieť Remind me tomorrow Pripomenúť zajtra Remind me later Pripomenúť neskôr Schedule Reminder Nastaviť pripomienku %1 to %2 Today Dnes Tomorrow Zajtra dde-calendar-5.9.1/translations/dde-calendar-service_sl.ts000066400000000000000000000043621423264401600235700ustar00rootroot00000000000000 JobRemindManager One day before start Dan pred začetkom Close button Zapri Remind me tomorrow Spomni me jutri Remind me later Spomni me kasneje Schedule Reminder Terminski opomnik %1 to %2 %1 do %2 Today Danes Tomorrow Jutri dde-calendar-5.9.1/translations/dde-calendar-service_sq.ts000066400000000000000000000043731423264401600235770ustar00rootroot00000000000000 JobRemindManager One day before start Një ditë para fillimit Close button Mbylle Remind me tomorrow Kujtoma nesër Remind me later Kujtoma më vonë Schedule Reminder Kujtues Planesh %1 to %2 %1 deri më %2 Today Sot Tomorrow Nesër dde-calendar-5.9.1/translations/dde-calendar-service_sr.ts000066400000000000000000000045071423264401600235770ustar00rootroot00000000000000 JobRemindManager One day before start Један дан пре пчетка Close button Затвори Remind me tomorrow Подсети ме сутра Remind me later Подсети касније Schedule Reminder Подсетник догађаја %1 to %2 %1 до %2 Today Данас Tomorrow Сутра dde-calendar-5.9.1/translations/dde-calendar-service_tr.ts000066400000000000000000000071251423264401600235770ustar00rootroot00000000000000 JobRemindManager One day before start Başlamadan bir gün önce Close button Kapat Remind me tomorrow Bana yarın hatırlat Remind me later Sonra hatırlat 15 mins later 15 dakika sonra 1 hour later 1 saat sonra 4 hours later 4 saat sonra Schedule Reminder Zamanlamalı Hatırlatıcı %1 to %2 %1 ile %2 Today Bugün Tomorrow Yarın SchedulerDatabase Work İş Life Yaşam Other Diğer dde-calendar-5.9.1/translations/dde-calendar-service_ug.ts000066400000000000000000000045301423264401600235620ustar00rootroot00000000000000 JobRemindManager One day before start 1 كۈن بۇرۇن ئەسكەرتىش Close button تاقاش Remind me tomorrow ئەتە ئەسكەرتسۇن Remind me later ھېلىغىچە ئەسكەرتسۇن Schedule Reminder كۈنتەرتىپ ئەسكەرتىشى %1 to %2 %1 دىن %2 گىچە Today بۈگۈن Tomorrow ئەتە dde-calendar-5.9.1/translations/dde-calendar-service_uk.ts000066400000000000000000000073261423264401600235740ustar00rootroot00000000000000 JobRemindManager One day before start За день до початку Close button Закрити Remind me tomorrow Нагадати мені завтра Remind me later Нагадати мені пізніше 15 mins later За 15 хвилин 1 hour later За 1 годину 4 hours later За 4 години Schedule Reminder Планування нагадування %1 to %2 з %1 до %2 Today Сьогодні Tomorrow Взавтра SchedulerDatabase Work Робота Life Життя Other Інше dde-calendar-5.9.1/translations/dde-calendar-service_vi.ts000066400000000000000000000044351423264401600235710ustar00rootroot00000000000000 JobRemindManager One day before start Một ngày trước khi bắt đầu Close button Đóng lại Remind me tomorrow Nhắc tôi ngày mai Remind me later Nhắc tôi sau Schedule Reminder Lịch trình nhắc nhở %1 to %2 Today Hôm nay Tomorrow Ngày mai dde-calendar-5.9.1/translations/dde-calendar-service_zh_CN.ts000066400000000000000000000070571423264401600241570ustar00rootroot00000000000000 JobRemindManager One day before start 提前1天提醒 Close button 关 闭 Remind me tomorrow 明天提醒 Remind me later 稍后提醒 15 mins later 15分钟后 1 hour later 1小时后 4 hours later 4小时后 Schedule Reminder 日程提醒 %1 to %2 %1 至 %2 Today 今天 Tomorrow 明天 SchedulerDatabase Work 工作 Life 生活 Other 其他 dde-calendar-5.9.1/translations/dde-calendar-service_zh_HK.ts000066400000000000000000000070571423264401600241610ustar00rootroot00000000000000 JobRemindManager One day before start 提前1天提醒 Close button 關 閉 Remind me tomorrow 明天提醒 Remind me later 稍後提醒 15 mins later 15分鐘後 1 hour later 1小時後 4 hours later 4小時後 Schedule Reminder 日程提醒 %1 to %2 %1 至 %2 Today 今天 Tomorrow 明天 SchedulerDatabase Work 工作 Life 生活 Other 其他 dde-calendar-5.9.1/translations/dde-calendar-service_zh_TW.ts000066400000000000000000000070571423264401600242110ustar00rootroot00000000000000 JobRemindManager One day before start 提前1天提醒 Close button 關 閉 Remind me tomorrow 明天提醒 Remind me later 稍後提醒 15 mins later 15分鐘後 1 hour later 1小時後 4 hours later 4小時後 Schedule Reminder 日程提醒 %1 to %2 %1 至 %2 Today 今天 Tomorrow 明天 SchedulerDatabase Work 工作 Life 生活 Other 其他 dde-calendar-5.9.1/translations/dde-calendar_ar.ts000066400000000000000000000755211423264401600221230ustar00rootroot00000000000000 CDayMonthView Monday الاثنين Tuesday الثلاثاء Wednesday الأربعاء Thursday الخميس Friday الجمعة Saturday السبت Sunday الأحد CDayWindow Y السنة M الشهر D اليوم CGraphicsView New Event حدث جديد CMonthScheduleNumItem %1 more 1% أكثر CMonthView New event حدث جديد New Event حدث جديد CMonthWindow Y السنة CMyScheduleView My Event الحدث الخاص بي OK button موافق Delete button حذف Edit button تحرير CScheduleDlg New Event لا أحداث Edit Event تعديل الأحداث End time must be greater than start time يجب أن يكون وقت الانتهاء أكبر من وقت البدء OK button حسنا Never أبدا At time of event في وقت الحدث 15 minutes before 15 دقيقة قبل 30 minutes before 30 دقيقة قبل 1 hour before 1 ساعة قبل 1 day before 1 يوم قبل 2 days before “2“يومين قبل 1 week before 1 أسبوع قبل On start day (9:00 AM) في يوم البَدْء (9:00 صباحا) Type: النوع: Description: الوصف: All Day: طوال اليوم: Starts: يبدأ: Ends: ينتهي: Remind Me: ذكرني: Repeat: تكرار End Repeat: نهاية التكرار Type النوع Work العمل Life الحياة الخاصة Other أمر آخر Description الوصف All Day طوال اليوم Starts يبدأ Ends ينتهي Remind Me ذكرني Repeat تكرار Daily يوميا Weekdays أيام الأسبوع Weekly أسبوعيا Monthly شهريا Yearly سنويا End Repeat نهاية التكرار After بعد On تشغيل time(s) الوقت(ج) Cancel button إلغاء Save button حفظ CScheduleOperation All occurrences of a repeating event must have the same all-day status. يجب أن يكون لجميع حالات تكرار الحدث نفس الوضع طوال اليوم. Do you want to change all occurrences? هل تريد تغيير كل الأحداث؟ Change All تغيير الكل You are changing the repeating rule of this event. أنت تغير قاعدة التكرار لهذا الحدث. You are deleting an event. أنت تقوم بحذف حدث. Are you sure you want to delete this event? هل أنت متأكد من أنك تريد حذف هذا الحدث؟ Cancel button إلغاء Delete button حذف Do you want to delete all occurrences of this event, or only the selected occurrence? هل تريد حذف جميع حالات هذا الحدث، أو فقط الأحداث المحددة؟ Delete All حذف الكل Delete Only This Event حذف هذا الحدث فقط Do you want to delete this and all future occurrences of this event, or only the selected occurrence? هل تريد حذف هذا وجميع الحالات المستقبلية لهذا الحدث، أو فقط الأحداث المحددة؟ Delete All Future Events حذف جميع الأحداث المستقبلية You are changing a repeating event. أنت تقوم بتغيير حدث متكرر. Do you want to change only this occurrence of the event, or all occurrences? هل تريد تغيير هذا الحدث فقط، أو كل الأحداث؟ All الجميع Only This Event هذا الحدث فقط Do you want to change only this occurrence of the event, or this and all future occurrences? هل تريد تغيير هذا الحدث فقط، أو هذا وكل الأحداث المستقبلية؟ All Future Events كل الأحداث المستقبلية CScheduleSearchDateItem Y سنة M شهر D يوم CScheduleSearchItem Edit تعديل Delete حذف All Day طوال اليوم CScheduleSearchView No search results لا توجد نتائج بحث CScheduleView ALL DAY طوال اليوم CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y سنة M شهر W أسبوع D يوم CWeekWindow Week الأسبوع Y السنة CYearScheduleView All Day طوال اليوم No event لا يوجد حدث CYearWindow Y السنة CalendarWindow Calendar التقويم Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. التقويم هو برنامج لعرض التواريخ وللتخطيط الذكي لجميع الأشياء في الحياة Calendarmainwindow Calendar التقويم CenterWidget All Day طوال اليوم DragInfoGraphicsView Edit تحرير Delete حذف New event حدث جديد New Event حدث جديد Return Today Return اليوم Return Today Today Return Today اليوم Shortcut Help مساعدة Delete event حذف حدث Copy نسخ Cut قص Paste لصق Delete حذف Select all تحديد الكل YearFrame Y السنة today Today Today اليوم dde-calendar-5.9.1/translations/dde-calendar_az.ts000066400000000000000000001136751423264401600221360ustar00rootroot00000000000000 CColorPickerWidget Color Rəng Cancel button İmtina Save button Saxlayın Cancel Save CDayMonthView Monday Bazar ertəsi Tuesday Çərşənbə axşamı Wednesday Çərşənbə Thursday Cümə axşamı Friday Cümə Saturday Şənbə Sunday Bazar CDayWindow Y İl M Ay D G CGraphicsView New Event Yeni tədbir CMonthScheduleNumItem %1 more %1 daha çox CMonthView New event Yeni tədbir New Event Yeni tədbir CMonthWindow Y İl CMyScheduleView My Event Mənim tədbirim OK button OLDU Delete button Silin Edit button Düzəliş edin CPushButton New event type Yeni tədbir növü CScheduleDlg New Event Yeni tədbir Edit Event Tədbirə düzəliş etmək End time must be greater than start time Bitmə tarixi başlama tarixindən böyük olmalıdır OK button OK Never Heç vaxt At time of event Tədbir zamanı 15 minutes before 15 dəqiqə əvvəl 30 minutes before 30 dəqiqə əvvəl 1 hour before 1 saat əvvəl 1 day before 1 gün əvvəl 2 days before 2 gün əvvəl 1 week before 1 həftə əvvəl On start day (9:00 AM) Başlanğıc günü (9:00) Enter a name please Lütfən adı daxil edin The name can not only contain whitespaces Ad təkcə ara boşluqlarından ibarət ola bilməz The name already exists Ad artıq mövcuddur Type: Növ: Description: Təsviri: All Day: Bütün gün: Starts: Başlayır: Ends: Başa çatır: Remind Me: Mənə xatırlat: Repeat: Təkrar: End Repeat: Təkrarın sonu: Type Növ Work İş Life Həyat Other Digər Description Təsviri All Day Bütün gün Time: Vaxt: Time Vaxt Solar Günəş Lunar Ay Starts Başlayır Ends Başa çatır Remind Me Mənə xatırlat Repeat Təkrar Daily Hər gün Weekdays Həftənin günləri Weekly Həftə Monthly Ay Yearly İl End Repeat Təkrarın sonu After Sonra On Açıq time(s) vaxt(lar) Cancel button İmtina Save button Saxlayın CScheduleOperation All occurrences of a repeating event must have the same all-day status. Təkrarlanan tədbirlərin bütün hadisələri gün boyu eyni statusa malik olmalıdır. Do you want to change all occurrences? Bütün hadisələrə dəyişmək istəyrisiniz? Change All Hamısını dəyişmək You are changing the repeating rule of this event. Siz bu tədbirin təkrarlanma qaydasını dəyişirsiniz. You are deleting an event. Siz tədbiri silirsiniz. Are you sure you want to delete this event? Bu tədbiri silmək istədiyinizə əminsiniz? Cancel button İmtina Delete button Silmək Do you want to delete all occurrences of this event, or only the selected occurrence? Siz bu tədbirin bütün hadisələrini, yoxsa yalnız seçilmiş hadisəsini silmək istəyirsiniz? Delete All Hamısını silin Delete Only This Event Yalnız bu tədbiri silin Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Siz bu tədbirin bütün gələcək hadisələrini, yoxsa yalnız seçilmiş hadisəsini silmək istəyirsiniz? Delete All Future Events Bütün gələcək tədbirləri silin You are changing a repeating event. Siz təkrarlanan tədbiri dəyişirsiniz. Do you want to change only this occurrence of the event, or all occurrences? Siz bu tədbirin yalnız bu hadisəsini, yoxsa bütün hadisələrini silmək istəyirsiniz? All Hamısını Only This Event Yalnız bu tədbiri Do you want to change only this occurrence of the event, or this and all future occurrences? Siz tədbirin yalnız bu hadisəsini yoxsa, bu və bütün gələcək hadisələrini silmək istəyirsiniz? All Future Events Bütün gələcək tədbirlər You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y İl M Ay D G CScheduleSearchItem Edit Düzəliş edin Delete Silin All Day Bütün gün CScheduleSearchView No search results Axtarış nəticəsiz oldu CScheduleView ALL DAY BÜTÜN GÜN CTimeEdit (%1 mins) (%1 dəqiqə) (%1 hour) (%1 saat) (%1 hours) (%1 saat) CTitleWidget Y İl M Ay W H D G CWeekWindow Week Həftə Y İl CYearScheduleView All Day Bütün gün No event Tədbir yoxdur CYearWindow Y İl CalendarWindow Calendar Təqvim Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Təqvim tarixləri göstərən və həmçinin gündəlik həyatınızdakı gələcək işlərinizi planlamaq üçün bir gündəlikdir. Calendarmainwindow Calendar Təqvim Manage İdarə edin CenterWidget All Day Bütün gün DragInfoGraphicsView Edit Düzəlt Delete Sil New event Yeni tədbir New Event Yeni tədbir JobTypeListView You are deleting an event type. Siz tədbir növünü silirsiniz. All events under this type will be deleted and cannot be recovered. Bu qəbildən bütün tədbirlər silinəcəklər və bərpa oluna bilməzlər. Cancel button İmtina Delete button Silin QObject Manage calendar Təqvimi idarə edin Event types Tədbirin növləri Return Today Return Bu gün Return Today Today Return Today Bu gün ScheduleTypeEditDlg New event type Yeni tədbir növü Edit event type Tədbir növünü dəyişin Name: Ad: Color: Rəng: Cancel button İmtina Save button Saxla Enter a name please Lütfən adı daxil edin The name can not only contain whitespaces Ad təkcə ara boşluqlarından ibarət ola bilməz The name already exists Ad artıq mövcuddur Shortcut Help Kömək Delete event Tədbiri silmək Copy Kopyala Cut Kəsmək Paste Əlavə et Delete Sil Select all Hamısını seçmək YearFrame Y İl today Today Today Bu gün dde-calendar-5.9.1/translations/dde-calendar_bo.ts000066400000000000000000001054651423264401600221220ustar00rootroot00000000000000 CDayMonthView Monday གཟའ་ཟླ་བ། Tuesday གཟའ་མིག་དམར། Wednesday གཟའ་ལྷག་པ། Thursday གཟའ་ཕུར་བུ། Friday གཟའ་པ་སངས། Saturday གཟའ་སྤེན་པ། Sunday གཟའ་ཉི་མ། CDayWindow Y ལོ། M ཟླ། D ཚེས། CGraphicsView New Event ལས་རིམ་གསར་པ། CMonthScheduleNumItem %1 more ད་དུང་%1ཡོད། CMonthView New event ལས་རིམ་གསར་པ། New Event ལས་རིམ་གསར་པ། CMonthWindow Y ལོ། CMyScheduleView My Event ངའི་ལས་རིམ། OK button གཏན་ཁེལ། Delete button སུབ་པ། Edit button རྩོམ་སྒྲིག CScheduleDlg New Event ལས་རིམ་གསར་པ། Edit Event ལས་རིམ་རྩོམ་སྒྲིག End time must be greater than start time མཇུག་འགྲིལ་བའི་དུས་ཚོད་འགོ་འཛུགས་དུས་ཚོད་ལས་འཕྱི་བ་དགོས། OK button གཏན་ཁེལ། Never ནམ་ཡང་མིན། At time of event ལས་རིམ་འགོ་འཛུགས་དུས། 15 minutes before སྐར་མ་15སྔོན་ལ། 30 minutes before སྐར་མ་30སྔོན་ལ། 1 hour before ཆུ་ཚོད་1སྔོན་ལ། 1 day before ཉིན་1སྔོན་ལ། 2 days before ཉིན་2སྔོན་ལ། 1 week before གཟའ་འཁོར་1སྔོན་ལ། On start day (9:00 AM) ལས་རིམ་འགོ་ཚུགས་པའི་ཉིན།(9:00སྔ་དྲོའི་ཆུ་ཚོད།) Type: རིགས་གྲས། Description: ནང་དོན། All Day: ཉིན་གང་། Starts: འགོ་འཛུགས་དུས་ཚོད། Ends: མཇུག་སྒྲིལ་དུས་ཚོད། Remind Me: དྲན་སྐུལ། Repeat: བསྐྱར་ཟློས། End Repeat: བསྐྱར་ཟློས་མཇུག་འགྲིལ་བ། Type རིགས་གྲས། Work ལས་ཀ Life འཆོ་བ། Other གཞན་དག Description ནང་དོན། All Day ཉིན་གང་། Starts འགོ་འཛུགས་དུས་ཚོད། Ends མཇུག་སྒྲིལ་དུས་ཚོད། Remind Me དྲན་སྐུལ། Repeat བསྐྲར་ཟློས། Daily ཉིན་རེ། Weekdays ལས་ཀའི་ཉིན་གྲངས། Weekly བདུན་རེ། Monthly ཟླ་རེ། Yearly ལོ་རེ། End Repeat བསྐྱར་ཟློས་མཇུག་འགྲིལ་བ། After རྗེས་ལ། On ལ། time(s) ཐེངས་གྲངས།(ཐེངས) Cancel button ཕྱིར་འཐེན། Save button ཉར་གསོག་ CScheduleOperation All occurrences of a repeating event must have the same all-day status. བསྐྱར་ཟློས་ཀྱི་ཉིན་རེའི་ལས་རིམ་གྱི་བསྐྱར་ཟློས་ཚང་མར་ཉིན་ཧྲིལ་པོའི་རྣམ་པ་གཅིག་མཚུངས་ཡོད་དགོས། Do you want to change all occurrences? ཁྱོད་ཀྱིས་བསྐྱར་ཟློས་ཚང་མ་བཟོ་བཅོས་བྱེད་རྒྱུ་ཡིན་ནམ། Change All ཚང་མ་བཟོ་བཅོས་བྱེད། You are changing the repeating rule of this event. ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་གྱི་བསྐྱར་ཟློས་ཀྱི་སྒྲིག་སྲོལ་བཟོ་བཅོས་བྱེད་བཞིན་ཡོད། You are deleting an event. ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་བསུབ་བཞིན་ཡོད། Are you sure you want to delete this event? ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་འདི་བསུབ་རྒྱུ་ཡིན་པ་གཏན་འཁེལ་ལམ། Cancel button ཕྱིར་འཐེན། Delete button སུབ་པ། Do you want to delete all occurrences of this event, or only the selected occurrence? ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་འདིའི་བསྐྱར་ཟློས་ཚང་མ་བསུབ་རྒྱུ་ཡིན་ནམ། ཡང་ན་བདམས་ཡོད་པའི་བསྐྱར་ཟློས་དག་བསུབ་རྒྱུ་ཡིན། Delete All ཚང་མ་སུབ་པ། Delete Only This Event ཉིན་རེའི་ལས་རིམ་འདི་སུབ་པ། Do you want to delete this and all future occurrences of this event, or only the selected occurrence? ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་འདིའི་བསྐྱར་ཟློས་འདི་དང་མ་འོངས་ཀྱི་བསྐྱར་ཟློས་ཚང་མ་བསུབ་རྒྱུ་ཡིན་ནམ། ཡང་ན་བདམས་ཡོད་པའི་བསྐྱར་ཟློས་དག་བསུབ་རྒྱུ་ཡིན། Delete All Future Events མ་འོངས་ཀྱི་ཉིན་རེའི་ལས་རིམ་ཚང་མ་སུབ་པ། You are changing a repeating event. ཁྱོད་ཀྱིས་བསྐྱར་ཟློས་ཀྱི་ཉིན་རེའི་ལས་རིམ་དག་བཟོ་བཅོས་བྱེད་བཞིན་ཡོད། Do you want to change only this occurrence of the event, or all occurrences? ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་འདིའི་བསྐྱར་ཟློས་འདི་བཟོ་བཅོས་བྱེད་རྒྱུ་ཡིན་ནམ། ཡང་ན་དེའི་བསྐྱར་ཟློས་ཚང་མ་བཟོ་བཅོས་བྱེད་རྒྱུ་ཡིན། All ཉིན་རེའི་ལས་རིམ་ཆ་ཚང་། Only This Event ཉིན་རེའི་ལས་རིམ་འདི་ཉིད། Do you want to change only this occurrence of the event, or this and all future occurrences? ཁྱོད་ཀྱིས་ཉིན་རེའི་ལས་རིམ་འདིའི་བསྐྱར་ཟློས་འདི་དང་མ་འོངས་ཀྱི་བསྐྱར་ཟློས་ཚང་མ་བཟོ་བཅོས་བྱེད་རྒྱུ་ཡིན་ནམ། ཡང་ན་བདམས་ཡོད་པའི་བསྐྱར་ཟློས་དག་བཟོ་བཅོས་བྱེད་རྒྱུ་ཡིན། All Future Events མ་འོངས་ཀྱི་ཉིན་རེའི་ལས་རིམ་ཚང་མ། CScheduleSearchDateItem Y ལོ། M ཟླ། D ཚེས། CScheduleSearchItem Edit རྩོམ་སྒྲིག Delete སུབ་པ། All Day ཉིན་གང་། CScheduleSearchView No search results འཚོལ་ཞིབ་བྱས་འབྲས་མེད། CScheduleView ALL DAY ཉིན་གང་། CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y ལོ། M ཟླ། W གཟའ། D ཚེས། CWeekWindow Week གཟའ་འཁོར། Y ལོ། CYearScheduleView All Day ཉིན་གང་། No event ལས་རིམ་མེད། CYearWindow Y ལོ། CalendarWindow Calendar ལོ་ཐོ། Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. ལོ་ཐོ་ནི་ཚེས་གྲངས་བལྟ་བ་དང་ལས་རིམ་དོ་དམ་བྱེད་པའི་ཡོ་བྱད་ཆུང་ཆུང་ཞིག་རེད། Calendarmainwindow Calendar ལོ་ཐོ། CenterWidget All Day ཉིན་གང་། DragInfoGraphicsView Edit རྩོམ་སྒྲིག Delete སུབ་པ། New event ལས་རིམ་གསར་པ། New Event ལས་རིམ་གསར་པ། Return Today Return དེ་རིང་། Return Today Today Return Today དེ་རིང་། Shortcut Help རོགས་རམ། Delete event ལས་རིམ་སུབ་པ། Copy མཁོ་ཕབ། Cut དྲས་གཏུབ། Paste སྦྱར་བ། Delete སུབ་པ། Select all ཡོངས་འདེམས། YearFrame Y ལོ། today Today Today དེ་རིང་། dde-calendar-5.9.1/translations/dde-calendar_ca.ts000066400000000000000000001137401423264401600221000ustar00rootroot00000000000000 CColorPickerWidget Color Color Cancel button Cancel·la Save button Desa-ho Cancel Save CDayMonthView Monday Dilluns Tuesday Dimarts Wednesday Dimecres Thursday Dijous Friday Divendres Saturday Dissabte Sunday Diumenge CDayWindow Y any M mes D D CGraphicsView New Event Esdeveniment nou CMonthScheduleNumItem %1 more %1 més CMonthView New event Nou esdeveniment New Event Esdeveniment nou CMonthWindow Y any CMyScheduleView My Event El meu esdeveniment OK button D'acord Delete button Elimina Edit button Edita CPushButton New event type Tipus d'esdeveniment nou CScheduleDlg New Event Esdeveniment nou Edit Event Edita l'esdeveniment End time must be greater than start time L'hora d'acabament ha de ser superior a l'hora d'inici. OK button D'acord Never Mai At time of event Al moment de l'esdeveniment 15 minutes before 15 minuts abans 30 minutes before 30 minuts abans 1 hour before 1 hora abans 1 day before 1 dia abans 2 days before 2 dies abans 1 week before 1 setmana abans On start day (9:00 AM) El dia d'inici (9:00) Enter a name please Escriviu un nom, si us plau. The name can not only contain whitespaces El nom no només pot contenir espais en blanc. The name already exists El nom ja existeix. Type: Tipus: Description: Descripció: All Day: Tot el dia: Starts: Comença: Ends: Acaba: Remind Me: Recorda-m'ho: Repeat: Repeteix: End Repeat: Acaba la repetició: Type Tipus Work Feina Life Vida Other Altres Description Descripció All Day Tot el dia Time: Hora: Time Hora Solar solar Lunar lunar Starts Comença Ends Acaba Remind Me Recorda-m'ho Repeat Repeteix Daily Diàriament Weekdays Els dies feiners Weekly Setmanalment Monthly Mensualment Yearly Anualment End Repeat Acaba la repetició After Després On Activat time(s) cop/s Cancel button Cancel·la Save button Desa CScheduleOperation All occurrences of a repeating event must have the same all-day status. Totes les ocurrències d'un esdeveniment repetitiu han de tenir el mateix estat de tot el dia. Do you want to change all occurrences? Voleu canviar-ne totes les ocurrències? Change All Canvia-les totes You are changing the repeating rule of this event. Canvieu la regla de repetició d'aquest esdeveniment. You are deleting an event. Elimineu un esdeveniment. Are you sure you want to delete this event? Segur que voleu eliminar aquest esdeveniment? Cancel button Cancel·la Delete button Elimina Do you want to delete all occurrences of this event, or only the selected occurrence? Voleu eliminar totes les ocurrències d'aquest esdeveniment o només la seleccionada? Delete All Elimina-les totes Delete Only This Event Elimina només aquest esdeveniment Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Voleu eliminar aquesta i totes les ocurrències futures d'aquest esdeveniment o només la seleccionada? Delete All Future Events Elimina tots els esdeveniments futurs You are changing a repeating event. Canvieu un esdeveniment repetitiu. Do you want to change only this occurrence of the event, or all occurrences? Voleu canviar només aquesta ocurrència de l'esdeveniment o totes? All Totes Only This Event Només aquest esdeveniment Do you want to change only this occurrence of the event, or this and all future occurrences? Voleu canviar només aquesta ocurrència de l'esdeveniment, o aquesta i totes les ocurrències futures? All Future Events Tots els esdeveniments futurs You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y A M M D D CScheduleSearchItem Edit Edita Delete Elimina All Day Tot el dia CScheduleSearchView No search results No hi ha resultats de la cerca. CScheduleView ALL DAY TOT EL DIA CTimeEdit (%1 mins) (%1 min) (%1 hour) (%1 hora) (%1 hours) (%1 hores) CTitleWidget Y any M mes W setmana D dia CWeekWindow Week Setmana Y any CYearScheduleView All Day Tot el dia No event Cap esdeveniment CYearWindow Y any CalendarWindow Calendar Calendari Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. El Calendari és una eina per veure dates i també un planificador diari intel·ligent per programar totes les coses de la vida. Calendarmainwindow Calendar Calendari Manage Gestiona CenterWidget All Day Tot el dia DragInfoGraphicsView Edit Edita Delete Elimina New event Esdeveniment nou New Event Esdeveniment nou JobTypeListView You are deleting an event type. Elimineu un tipus d'esdeveniment. All events under this type will be deleted and cannot be recovered. Tots els esdeveniments d'aquest tipus s'eliminaran i no es podran recuperar. Cancel button Cancel·la Delete button Elimina QObject Manage calendar Gestiona el calendari Event types Tipus d'esdeveniment Return Today Return Avui Return Today Today Return Today Avui ScheduleTypeEditDlg New event type Tipus d'esdeveniment nou Edit event type Edita el tipus d'esdeveniment Name: Nom: Color: Color: Cancel button Cancel·la Save button Desa-ho Enter a name please Escriviu un nom, si us plau. The name can not only contain whitespaces El nom no només pot contenir espais en blanc. The name already exists El nom ja existeix. Shortcut Help Ajuda Delete event Suprimeix l'esdeveniment Copy Copia Cut Retalla Paste Enganxa Delete Elimina Select all Selecciona-ho tot YearFrame Y any today Today Today Avui dde-calendar-5.9.1/translations/dde-calendar_cs.ts000066400000000000000000001124321423264401600221170ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Save button Cancel Save CDayMonthView Monday pondělí Tuesday úterý Wednesday středa Thursday čtvrtek Friday pátek Saturday sobota Sunday neděle CDayWindow Y R M M D D CGraphicsView New Event Nová událost CMonthScheduleNumItem %1 more %1 další CMonthView New event Nová událost New Event Nová událost CMonthWindow Y R CMyScheduleView My Event Moje událost OK button OK Delete button Smazat Edit button Upravit CPushButton New event type CScheduleDlg New Event Nová událost Edit Event Upravit událost End time must be greater than start time Je třeba, aby okamžik konce následoval až po okamžiku začátku OK button OK Never Nikdy At time of event V okamžiku události 15 minutes before 15 minut před 30 minutes before 30 minut před 1 hour before 1 hodinu před 1 day before 1 den před 2 days before 2 dny před 1 week before 1 týden před On start day (9:00 AM) V den začátku (9:00 dop.) Enter a name please The name can not only contain whitespaces The name already exists Type: Typ: Description: Popis: All Day: Celý den: Starts: Začíná: Ends: Končí: Remind Me: Připomenout: Repeat: Opakovat: End Repeat: Ukončit opakování: Type Typ Work Práce Life Soukromé Other Ostatní Description Popis All Day Celý den Time: Time Solar Lunar Starts Začíná Ends Končí Remind Me Připomenout Repeat Opakování Daily Denně Weekdays Všední dny Weekly Týdně Monthly Měsíčně Yearly Ročně End Repeat Ukončit opakování After Po On Zapnuto time(s) krát Cancel button Zrušit Save button Uložit CScheduleOperation All occurrences of a repeating event must have the same all-day status. Je třeba, aby všechny výskyty opakující se události měly stejný stav „celý den“. Do you want to change all occurrences? Chcete změnit všechny výskyty? Change All Změnit vše You are changing the repeating rule of this event. Měníte pravidlo opakování této události. You are deleting an event. Mažete událost. Are you sure you want to delete this event? Opravdu chcete tuto událost smazat? Cancel button Zrušit Delete button Smazat Do you want to delete all occurrences of this event, or only the selected occurrence? Chcete smazat všechny výskyty této události, nebo jen vybraný výskyt? Delete All Smazat vše Delete Only This Event Smazat jen tuto událost Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Chcete smazat tento a všechny budoucí výskyty této události, nebo jen ten vybraný? Delete All Future Events Smazat všechny budoucí události You are changing a repeating event. Měníte pravidlo opakující se události. Do you want to change only this occurrence of the event, or all occurrences? Chcete změnit jen tento výskyt události, nebo všechny výskyty? All Vše Only This Event Jen tato událost Do you want to change only this occurrence of the event, or this and all future occurrences? Chcete změnit jen tento výskyt události, nebo tento a všechny budoucí výskyty? All Future Events Všechny budoucí události You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y R M M D D CScheduleSearchItem Edit Upravit Delete Smazat All Day Celý den CScheduleSearchView No search results Nic nenalezeno CScheduleView ALL DAY CELÝ DEN CTimeEdit (%1 mins) (%1 min.) (%1 hour) (%1 hod) (%1 hours) (%1 hod.) CTitleWidget Y R M M W T D D CWeekWindow Week Týden Y R CYearScheduleView All Day Celý den No event Žádná událost CYearWindow Y R CalendarWindow Calendar Kalendář Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalendář slouží k zobrazování datumů a také jako chytrý každodenní plánovač všeho v životě. Calendarmainwindow Calendar Kalendář Manage CenterWidget All Day Celý den DragInfoGraphicsView Edit Upravit Delete Smazat New event Nová událost New Event Nová událost JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Dnes Return Today Today Return Today Dnes ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Nápověda Delete event Smazat událost Copy Kopírovat Cut Vyjmout Paste Vložit Delete Smazat Select all Vybrat vše YearFrame Y R today Today Today Dnes dde-calendar-5.9.1/translations/dde-calendar_da.ts000066400000000000000000000741051423264401600221020ustar00rootroot00000000000000 CDayMonthView Monday Mandag Tuesday Tirsdag Wednesday Onsdag Thursday Torsdag Friday Fredag Saturday Lørdag Sunday Søndag CDayWindow Y Å M M D D CGraphicsView New Event Ny begivenhed CMonthScheduleNumItem %1 more %1 mere CMonthView New event Ny begivenhed New Event Ny begivenhed CMonthWindow Y Å CMyScheduleView My Event Min begivenhed OK button OK Delete button Slet Edit button Rediger CScheduleDlg New Event Ny begivenhed Edit Event Rediger begivenhed End time must be greater than start time Sluttidspunktet skal være større end starttidspunktet OK button OK Never Aldrig At time of event På tidspunktet for begivenheden 15 minutes before 15 minutter før 30 minutes before 30 minutter før 1 hour before 1 time før 1 day before 1 dag før 2 days before 2 dage før 1 week before 1 uge før On start day (9:00 AM) På starten af dagen (9:00) Type: Type: Description: Beskrivelse: All Day: Hele dagen: Starts: Starter: Ends: Slutter: Remind Me: Påmind mig: Repeat: Gentag: End Repeat: Slut gentag: Type Type Work Arbejde Life Leve Other Andre Description Beskrivelse All Day Hele dagen Starts Ends Remind Me Repeat Gentag Daily Dagligt Weekdays Ugedage Weekly Ugentligt Monthly Månedligt Yearly Årligt End Repeat After Efter On Til time(s) gang(e) Cancel button Annuller Save button Gem CScheduleOperation All occurrences of a repeating event must have the same all-day status. Alle forekomster af en begivenhed som gentages skal have den samme hele dagen-status. Do you want to change all occurrences? Vil du ændre alle forekomster? Change All Ændr alle You are changing the repeating rule of this event. Du er ved at ændre gentagelsesreglen for begivenheden. You are deleting an event. Du er ved at slette en begivenhed. Are you sure you want to delete this event? Er du sikker på, at du vil slette begivenheden? Cancel button Annuller Delete button Slet Do you want to delete all occurrences of this event, or only the selected occurrence? Vil du slette alle forekomster af begivenheden eller kun den valgte forekomst? Delete All Slet alle Delete Only This Event Slet kun denne begivenhed Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Vil du slette denne og alle fremtidige forekomster af begivenheden eller kun den valgte forekomst? Delete All Future Events Slet alle fremtidige begivenheder You are changing a repeating event. Du er ved at ændre en begivenhed som gentages. Do you want to change only this occurrence of the event, or all occurrences? Vil du kun ændre denne forekomst for begivenheden, eller alle forekomster? All Alle Only This Event Kun denne begivenhed Do you want to change only this occurrence of the event, or this and all future occurrences? Vil du kun ændre denne forekomst for begivenheden, eller denne og alle fremtidige forekomster? All Future Events Alle fremtidige begivenheder CScheduleSearchDateItem Y Å M M D D CScheduleSearchItem Edit Rediger Delete Slet All Day Hele dagen CScheduleSearchView No search results Ingen søgeresultater CScheduleView ALL DAY HELE DAGEN CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Å M M W W D D CWeekWindow Week Uge Y Å CYearScheduleView All Day Hele dagen No event Ingen begivenhed CYearWindow Y Å CalendarWindow Calendar Kalender Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalender er et værktøj til at vise datoer, og er også en smart dagsplanlægger til alt i dit liv. Calendarmainwindow Calendar Kalender CenterWidget All Day Hele dagen DragInfoGraphicsView Edit Rediger Delete Slet New event Ny begivenhed New Event Ny begivenhed Return Today Return I dag Return Today Today Return Today I dag Shortcut Help Hjælp Delete event Slet begivenhed Copy Kopiér Cut Klip Paste Indsæt Delete Slet Select all Vælg alle YearFrame Y Å today Today Today I dag dde-calendar-5.9.1/translations/dde-calendar_de.ts000066400000000000000000001126351423264401600221070ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Save button Cancel Save CDayMonthView Monday Montag Tuesday Dienstag Wednesday Mittwoch Thursday Donnerstag Friday Freitag Saturday Samstag Sunday Sonntag CDayWindow Y J M M D T CGraphicsView New Event Neuer Termin CMonthScheduleNumItem %1 more %1 weitere CMonthView New event Neuer Termin New Event Neuer Termin CMonthWindow Y J CMyScheduleView My Event Mein Termin OK button OK Delete button Löschen Edit button Bearbeiten CPushButton New event type CScheduleDlg New Event Neuer Termin Edit Event Termin bearbeiten End time must be greater than start time Endzeit muss größer als Startzeit sein OK button OK Never Nie At time of event Zum Zeitpunkt des Termins 15 minutes before 15 Minuten vorher 30 minutes before 30 Minuten vorher 1 hour before 1 Stunde vorher 1 day before 1 Tag vorher 2 days before 2 Tage vorher 1 week before 1 Woche vorher On start day (9:00 AM) Am Starttag (9:00 Uhr) Enter a name please The name can not only contain whitespaces The name already exists Type: Typ: Description: Beschreibung: All Day: Ganztägig: Starts: Beginnt: Ends: Endet: Remind Me: Erinnere mich: Repeat: Wiederholung: End Repeat: Wiederholung beenden: Type Typ Work Arbeit Life Leben Other Andere Description Beschreibung All Day Ganztägig Time: Time Solar Lunar Starts Beginnt Ends Endet Remind Me Erinnere mich Repeat Wiederholung Daily Täglich Weekdays Wochentage Weekly Wöchentlich Monthly Monatlich Yearly Jährlich End Repeat Wiederholung beenden After Nach On Am time(s) mal Cancel button Abbrechen Save button Speichern CScheduleOperation All occurrences of a repeating event must have the same all-day status. Alle Vorkommen eines sich wiederholenden Termins müssen den gleichen Ganztagsstatus haben. Do you want to change all occurrences? Möchten Sie alle Vorkommen ändern? Change All Alle ändern You are changing the repeating rule of this event. Sie ändern die Wiederholungsregel dieses Termins. You are deleting an event. Sie löschen einen Termin. Are you sure you want to delete this event? Sind Sie sicher, dass Sie diesen Termin löschen möchten? Cancel button Abbrechen Delete button Löschen Do you want to delete all occurrences of this event, or only the selected occurrence? Möchten Sie alle Vorkommen dieses Termins löschen oder nur das ausgewählte Vorkommen? Delete All Alle löschen Delete Only This Event Nur diesen Termin löschen Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Möchten Sie diesen und alle zukünftigen Vorkommen dieses Termins löschen, oder nur das ausgewählte Vorkommen? Delete All Future Events Alle zukünftigen Termine löschen You are changing a repeating event. Sie ändern einen sich wiederholenden Termin. Do you want to change only this occurrence of the event, or all occurrences? Möchten Sie nur dieses Vorkommen des Termins oder alle Vorkommnisse ändern? All Alle Only This Event Nur diesen Termin Do you want to change only this occurrence of the event, or this and all future occurrences? Möchten Sie nur dieses Ereignis oder dieses und alle zukünftigen Ereignisse ändern? All Future Events Alle zukünftigen Termine You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y J M M D T CScheduleSearchItem Edit Bearbeiten Delete Löschen All Day Ganztägig CScheduleSearchView No search results Keine Suchergebnisse CScheduleView ALL DAY GANZTÄGIG CTimeEdit (%1 mins) (%1 Minuten) (%1 hour) (%1 Stunde) (%1 hours) (%1 Stunden) CTitleWidget Y J M M W W D T CWeekWindow Week Woche Y J CYearScheduleView All Day Ganztägig No event Kein Termin CYearWindow Y J CalendarWindow Calendar Kalender Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Der Kalender ist ein Werkzeug zum Anzeigen von Terminen und auch ein intelligenter Tagesplaner, um alle Dinge im Leben zu planen. Calendarmainwindow Calendar Kalender Manage CenterWidget All Day Ganztägig DragInfoGraphicsView Edit Bearbeiten Delete Löschen New event Neuer Termin New Event Neuer Termin JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Heute Return Today Today Return Today Heute ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Hilfe Delete event Termin löschen Copy Kopieren Cut Ausschneiden Paste Einfügen Delete Löschen Select all Alles auswählen YearFrame Y J today Today Today Heute dde-calendar-5.9.1/translations/dde-calendar_el.ts000066400000000000000000000775601423264401600221260ustar00rootroot00000000000000 CDayMonthView Monday Δευτέρα Tuesday Τρίτη Wednesday Τετάρτη Thursday Πέμπτη Friday Παρασκευή Saturday Σάββατο Sunday Κυριακή CDayWindow Y Ε M Μ D Η CGraphicsView New Event Νέο Συμβάν CMonthScheduleNumItem %1 more %1 περισσότερο-α CMonthView New event Νέο συμβάν New Event Νέο Συμβάν CMonthWindow Y Y CMyScheduleView My Event Το συμβάν μου OK button ΟΚ Delete button Διαγραφή Edit button Επεξεργασία CScheduleDlg New Event Νέο συμβάν Edit Event Επεξεργασία συμβάντος End time must be greater than start time Ο χρόνος λήξης πρέπει να είναι μεγαλύτερος του χρόνου έναρξης OK button OK Never Ποτέ At time of event Την ώρα του συμβάντος 15 minutes before 15 λεπτά πριν 30 minutes before 30 λεπτά πριν 1 hour before 1 ώρα πριν 1 day before 1 ημέρα πριν 2 days before 2 ημέρες πριν 1 week before 1 εβδομάδα πριν On start day (9:00 AM) Στην έναρξη της ημέρας (9:00 ΠΜ) Type: Τύπος: Description: Περιγραφή: All Day: Ολοήμερο: Starts: Αρχίζει: Ends: Τελειώνει: Remind Me: Υπενθύμισέ μου: Repeat: Επανάληψη: End Repeat: Τέλος Επανάληψης: Type Τύπος Work Εργασία Life Ζωή Other Άλλο Description Περιγραφή All Day Ολοήμερο Starts Αρχίζει Ends Τελειώνει Remind Me Υπενθύμισέ μου Repeat Επανάληψη Daily Ημερήσιο Weekdays Εργάσιμες Weekly Εβδομαδιαίο Monthly Μηνιαίο Yearly Ετήσιο End Repeat Τέλος Επανάληψης After Μετά On Ενεργό time(s) φορά(ές) Cancel button Ακύρωση Save button Αποθήκευση CScheduleOperation All occurrences of a repeating event must have the same all-day status. Όλες οι εμφανίσεις ενός επαναλαμβανόμενου συμβάντος πρέπει να έχουν την ίδια ολοήμερη κατάσταση. Do you want to change all occurrences? Θέλετε να αλλάξετε όλες τις εμφανίσεις; Change All Αλλαγή Όλων You are changing the repeating rule of this event. Αλλάζεις τον κανόνα επανάληψης αυτού του συμβάντος. You are deleting an event. Διαγράφεις ένα συμβάν Are you sure you want to delete this event? Είστε σίγουρος ότι θέλετε να διαγράψετε αυτό το συμβάν; Cancel button Ακύρωση Delete button Διαγραφή Do you want to delete all occurrences of this event, or only the selected occurrence? Θέλετε να διαγράψετε όλες τις εμφανίσεις αυτού του συμβάντος ή μόνο την επιλεγμένη εμφάνιση; Delete All Διαγραφή όλων Delete Only This Event Διαγραφή Μόνο Αυτού του Συμβάντος Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Θέλετε να διαγράψετε αυτήν και όλες τις μελλοντικές εμφανίσεις αυτού του συμβάντος ή μόνο την επιλεγμένη εμφάνιση; Delete All Future Events Διαγραφή Όλων των Μελλοντικών Συμβάντων You are changing a repeating event. Αλλάζεις ένα επαναλαμβανόμενο συμβάν. Do you want to change only this occurrence of the event, or all occurrences? Θέλετε να αλλάξετε μόνο αυτήν την εμφάνιση του συμβάντος ή όλες τις εμφανίσεις; All Όλα Only This Event Μόνο Αυτό το Συμβάν Do you want to change only this occurrence of the event, or this and all future occurrences? Θέλετε να αλλάξετε μόνο αυτήν την εμφάνιση του συμβάντος ή αυτήν και όλες τις μελλοντικές εμφανίσεις; All Future Events Όλα τα Μελλοντικά Συμβάντα CScheduleSearchDateItem Y Ε M Μ D Η CScheduleSearchItem Edit Επεξεργασία Delete Διαγραφή All Day Ολοήμερο CScheduleSearchView No search results Χωρίς αποτελέσματα αναζήτησης CScheduleView ALL DAY ΟΛΟΗΜΕΡΟ CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Ε M Μ W Β D Η CWeekWindow Week Εβδομάδα Y Y CYearScheduleView All Day Ολοήμερο No event Χωρίς συμβάν CYearWindow Y Y CalendarWindow Calendar Ημερολόγιο Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Το Ημερολόγιο είναι ένα εργαλείο για να δεις ημερομηνίες, αλλα και επίσης ένας εξύπνος σχεδιαστής ημέρας για να προγραμματίσεις όλα τα πράγματα στην ζωή. Calendarmainwindow Calendar Ημερολόγιο CenterWidget All Day Ολοήμερο DragInfoGraphicsView Edit Επεξεργασία Delete Διαγραφή New event Νέο συμβάν New Event Νέο Συμβάν Return Today Return Σήμερα Return Today Today Return Today Σήμερα Shortcut Help Βοήθεια Delete event Διαγραφή συμβάντος Copy Αντιγραφή Cut Αποκοπή Paste Επικόλληση Delete Διαγραφή Select all Επιλογή όλων YearFrame Y Y today Today Today Σήμερα dde-calendar-5.9.1/translations/dde-calendar_en.ts000066400000000000000000001127121423264401600221150ustar00rootroot00000000000000 CColorPickerWidget Color Color Cancel button Cancel Save button Save Cancel Save CDayMonthView Monday Monday Tuesday Tuesday Wednesday Wednesday Thursday Thursday Friday Friday Saturday Saturday Sunday Sunday CDayWindow Y Y M M D D CGraphicsView New Event New Event CMonthScheduleNumItem %1 more %1 more CMonthView New event New event New Event New Event CMonthWindow Y Y CMyScheduleView My Event My Event OK button OK Delete button Delete Edit button Edit CPushButton New event type New event type CScheduleDlg New Event New Event Edit Event Edit Event End time must be greater than start time End time must be greater than start time OK button OK Never Never At time of event At time of event 15 minutes before 15 minutes before 30 minutes before 30 minutes before 1 hour before 1 hour before 1 day before 1 day before 2 days before 2 days before 1 week before 1 week before On start day (9:00 AM) On start day (9:00 AM) Enter a name please Enter a name please The name can not only contain whitespaces The name can not only contain whitespaces The name already exists The name already exists Type: Type: Description: Description: All Day: All Day: Starts: Starts: Ends: Ends: Remind Me: Remind Me: Repeat: Repeat: End Repeat: End Repeat: Type Type Work Work Life Life Other Other Description Description All Day All Day Time: Time: Time Time Solar Solar Lunar Lunar Starts Starts Ends Ends Remind Me Remind Me Repeat Repeat Daily Daily Weekdays Weekdays Weekly Weekly Monthly Monthly Yearly Yearly End Repeat End Repeat After After On On time(s) time(s) Cancel button Cancel Save button Save CScheduleOperation All occurrences of a repeating event must have the same all-day status. All occurrences of a repeating event must have the same all-day status. Do you want to change all occurrences? Do you want to change all occurrences? Change All Change All You are changing the repeating rule of this event. You are changing the repeating rule of this event. You are deleting an event. You are deleting an event. Are you sure you want to delete this event? Are you sure you want to delete this event? Cancel button Cancel Delete button Delete Do you want to delete all occurrences of this event, or only the selected occurrence? Do you want to delete all occurrences of this event, or only the selected occurrence? Delete All Delete All Delete Only This Event Delete Only This Event Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Delete All Future Events Delete All Future Events You are changing a repeating event. You are changing a repeating event. Do you want to change only this occurrence of the event, or all occurrences? Do you want to change only this occurrence of the event, or all occurrences? All All Only This Event Only This Event Do you want to change only this occurrence of the event, or this and all future occurrences? Do you want to change only this occurrence of the event, or this and all future occurrences? All Future Events All Future Events You have selected a leap month, and will be reminded according to the rules of the lunar calendar. You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button OK CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Edit Delete Delete All Day All Day CScheduleSearchView No search results No search results CScheduleView ALL DAY ALL DAY CTimeEdit (%1 mins) (%1 mins) (%1 hour) (%1 hour) (%1 hours) (%1 hours) CTitleWidget Y Y M M W W D D CWeekWindow Week Week Y Y CYearScheduleView All Day All Day No event No event CYearWindow Y Y CalendarWindow Calendar Calendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendarmainwindow Calendar Calendar Manage Manage CenterWidget All Day All Day DragInfoGraphicsView Edit Edit Delete Delete New event New event New Event New Event JobTypeListView You are deleting an event type. You are deleting an event type. All events under this type will be deleted and cannot be recovered. All events under this type will be deleted and cannot be recovered. Cancel button Cancel Delete button Delete QObject Manage calendar Manage calendar Event types Event types Return Today Return Today Return Today Today Return Today Today ScheduleTypeEditDlg New event type New event type Edit event type Edit event type Name: Name: Color: Color: Cancel button Cancel Save button Save Enter a name please Enter a name please The name can not only contain whitespaces The name can not only contain whitespaces The name already exists The name already exists Shortcut Help Help Delete event Delete event Copy Copy Cut Cut Paste Paste Delete Delete Select all Select all YearFrame Y Y today Today Today Today dde-calendar-5.9.1/translations/dde-calendar_en_AU.ts000066400000000000000000000736251423264401600225130ustar00rootroot00000000000000 CDayMonthView Monday Monday Tuesday Tuesday Wednesday Wednesday Thursday Thursday Friday Friday Saturday Saturday Sunday Sunday CDayWindow Y Y M M D D CGraphicsView New Event New Event CMonthScheduleNumItem %1 more %1 more CMonthView New event New event New Event New Event CMonthWindow Y Y CMyScheduleView My Event My Event OK button OK Delete button Delete Edit button Edit CScheduleDlg New Event New Event Edit Event Edit Event End time must be greater than start time End time must be greater than start time OK button OK Never Never At time of event At time of event 15 minutes before 15 minutes before 30 minutes before 30 minutes before 1 hour before 1 hour before 1 day before 1 day before 2 days before 2 days before 1 week before 1 week before On start day (9:00 AM) On start day (9:00 AM) Type: Type: Description: Description: All Day: All Day: Starts: Starts: Ends: Ends: Remind Me: Remind Me: Repeat: Repeat: End Repeat: End Repeat: Type Type Work Work Life Life Other Other Description Description All Day All Day Starts Starts Ends Ends Remind Me Remind Me Repeat Repeat Daily Daily Weekdays Weekdays Weekly Weekly Monthly Monthly Yearly Yearly End Repeat End Repeat After After On On time(s) time(s) Cancel button Cancel Save button Save CScheduleOperation All occurrences of a repeating event must have the same all-day status. All occurrences of a repeating event must have the same all-day status. Do you want to change all occurrences? Do you want to change all occurrences? Change All Change All You are changing the repeating rule of this event. You are changing the repeating rule of this event. You are deleting an event. You are deleting an event. Are you sure you want to delete this event? Are you sure you want to delete this event? Cancel button Cancel Delete button Delete Do you want to delete all occurrences of this event, or only the selected occurrence? Do you want to delete all occurrences of this event, or only the selected occurrence? Delete All Delete All Delete Only This Event Delete Only This Event Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Delete All Future Events Delete All Future Events You are changing a repeating event. You are changing a repeating event. Do you want to change only this occurrence of the event, or all occurrences? Do you want to change only this occurrence of the event, or all occurrences? All All Only This Event Only This Event Do you want to change only this occurrence of the event, or this and all future occurrences? Do you want to change only this occurrence of the event, or this and all future occurrences? All Future Events All Future Events CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Edit Delete Delete All Day All Day CScheduleSearchView No search results No search results CScheduleView ALL DAY ALL DAY CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Y M M W W D D CWeekWindow Week Week Y Y CYearScheduleView All Day All Day No event No event CYearWindow Y Y CalendarWindow Calendar Calendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendarmainwindow Calendar Calendar CenterWidget All Day All Day DragInfoGraphicsView Edit Edit Delete Delete New event New event New Event New Event Return Today Return Today Return Today Today Return Today Today Shortcut Help Help Delete event Delete event Copy Copy Cut Cut Paste Paste Delete Delete Select all Select all YearFrame Y Y today Today Today Today dde-calendar-5.9.1/translations/dde-calendar_en_GB.ts000066400000000000000000000736121423264401600224720ustar00rootroot00000000000000 CDayMonthView Monday Monday Tuesday Tuesday Wednesday Wednesday Thursday Thursday Friday Friday Saturday Saturday Sunday Sunday CDayWindow Y Y M M D D CGraphicsView New Event New Event CMonthScheduleNumItem %1 more %1 more CMonthView New event New event New Event New Event CMonthWindow Y Y CMyScheduleView My Event My Event OK button OK Delete button Delete Edit button Edit CScheduleDlg New Event New Event Edit Event Edit Event End time must be greater than start time End time must be greater than start time OK button OK Never Never At time of event At time of event 15 minutes before 15 minutes before 30 minutes before 30 minutes before 1 hour before 1 hour before 1 day before 1 day before 2 days before 2 days before 1 week before 1 week before On start day (9:00 AM) On start day (9:00 AM) Type: Type: Description: Description: All Day: All Day: Starts: Starts: Ends: Ends: Remind Me: Remind Me: Repeat: Repeat: End Repeat: End Repeat: Type Type Work Work Life Life Other Other Description Dscription All Day All Day Starts Starts Ends Ends Remind Me Remind Me Repeat Repeat Daily Daily Weekdays Weekdays Weekly Weekly Monthly Monthly Yearly Yearly End Repeat End Repeat After After On On time(s) time(s) Cancel button Cancel Save button Save CScheduleOperation All occurrences of a repeating event must have the same all-day status. All occurrences of a repeating event must have the same all-day status. Do you want to change all occurrences? Do you want to change all occurrences? Change All Change All You are changing the repeating rule of this event. You are changing the repeating rule of this event. You are deleting an event. You are deleting an event. Are you sure you want to delete this event? Are you sure you want to delete this event? Cancel button Cancel Delete button Delete Do you want to delete all occurrences of this event, or only the selected occurrence? Do you want to delete the occurrence of this event, or the selected occurrence? Delete All Delete All Delete Only This Event Delete Only This Event Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Delete All Future Events Delete All Future Events You are changing a repeating event. You are changing a repeating event. Do you want to change only this occurrence of the event, or all occurrences? Do you want to change only this occurrence of the event, or all occurrences? All All Only This Event Only This Event Do you want to change only this occurrence of the event, or this and all future occurrences? Do you want to change the occurrence of the event, or this and all future occurrences All Future Events All Future Events CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Edit Delete Delete All Day All Day CScheduleSearchView No search results No search results CScheduleView ALL DAY ALL DAY CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Y M M W W D D CWeekWindow Week Week Y Y CYearScheduleView All Day All Day No event No event CYearWindow Y Y CalendarWindow Calendar Calendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendarmainwindow Calendar Calendar CenterWidget All Day All Day DragInfoGraphicsView Edit Edit Delete Delete New event New event New Event New Event Return Today Return Today Return Today Today Return Today Today Shortcut Help Help Delete event Delete event Copy Copy Cut Cut Paste Paste Delete Delete Select all Select all YearFrame Y Y today Today Today Today dde-calendar-5.9.1/translations/dde-calendar_en_US.ts000066400000000000000000001131141423264401600225210ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Cancel Save button Save Cancel Cancel Save Save CDayMonthView Monday Monday Tuesday Tuesday Wednesday Wednesday Thursday Thursday Friday Friday Saturday Saturday Sunday Sunday CDayWindow Y Y M M D D CGraphicsView New Event New Event CMonthScheduleNumItem %1 more %1 more CMonthView New event New event New Event New Event CMonthWindow Y Y CMyScheduleView My Event My Event OK button OK Delete button Delete Edit button Edit CPushButton New event type CScheduleDlg New Event New Event Edit Event Edit Event End time must be greater than start time End time must be greater than start time OK button OK Never Never At time of event At time of event 15 minutes before 15 minutes before 30 minutes before 30 minutes before 1 hour before 1 hour before 1 day before 1 day before 2 days before 2 days before 1 week before 1 week before On start day (9:00 AM) On start day (9:00 AM) Enter a name please The name can not only contain whitespaces The name already exists Type: Type: Description: Description: All Day: All Day: Starts: Starts: Ends: Ends: Remind Me: Remind Me: Repeat: Repeat: End Repeat: End Repeat: Type Type Work Work Life Life Other Other Description Description All Day All Day Time: Time Solar Lunar Starts Starts Ends Ends Remind Me Remind Me Repeat Repeat Daily Daily Weekdays Weekdays Weekly Weekly Monthly Monthly Yearly Yearly End Repeat End Repeat After After On On time(s) time(s) Cancel button Cancel Save button Save CScheduleOperation All occurrences of a repeating event must have the same all-day status. All occurrences of a repeating event must have the same all-day status. Do you want to change all occurrences? Do you want to change all occurrences? Change All Change All You are changing the repeating rule of this event. You are changing the repeating rule of this event. You are deleting an event. You are deleting an event. Are you sure you want to delete this event? Are you sure you want to delete this event? Cancel button Cancel Delete button Delete Do you want to delete all occurrences of this event, or only the selected occurrence? Do you want to delete all occurrences of this event, or only the selected occurrence? Delete All Delete All Delete Only This Event Delete Only This Event Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Delete All Future Events Delete All Future Events You are changing a repeating event. You are changing a repeating event. Do you want to change only this occurrence of the event, or all occurrences? Do you want to change only this occurrence of the event, or all occurrences? All All Only This Event Only This Event Do you want to change only this occurrence of the event, or this and all future occurrences? Do you want to change only this occurrence of the event, or this and all future occurrences? All Future Events All Future Events You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button OK CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Edit Delete Delete All Day All Day CScheduleSearchView No search results No search results CScheduleView ALL DAY ALL DAY CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Y M M W W D D CWeekWindow Week Week Y Y CYearScheduleView All Day All Day No event No event CYearWindow Y Y CalendarWindow Calendar Calendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendarmainwindow Calendar Calendar Manage CenterWidget All Day All Day DragInfoGraphicsView Edit Edit Delete Delete New event New event New Event New Event JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Cancel Delete button Delete QObject Manage calendar Event types Return Today Return Today Return Today Today Return Today Today ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Cancel Save button Save Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Help Delete event Delete event Copy Copy Cut Cut Paste Paste Delete Delete Select all Select all YearFrame Y Y today Today Today Today dde-calendar-5.9.1/translations/dde-calendar_es.ts000066400000000000000000001125611423264401600221240ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Save button Cancel Save CDayMonthView Monday lunes Tuesday martes Wednesday miércoles Thursday jueves Friday viernes Saturday sábado Sunday domingo CDayWindow Y A M M D D CGraphicsView New Event Nuevo evento CMonthScheduleNumItem %1 more %1 más CMonthView New event Nuevo evento New Event Nuevo evento CMonthWindow Y A CMyScheduleView My Event Mi evento OK button Aceptar Delete button Borrar Edit button Editar CPushButton New event type CScheduleDlg New Event Nuevo evento Edit Event Editar evento End time must be greater than start time El tiempo final debe ser mayor que el tiempo inicial OK button Aceptar Never Nunca At time of event En el momento del evento. 15 minutes before 15 minutos antes 30 minutes before 30 minutos antes 1 hour before 1 hora antes 1 day before 1 día antes 2 days before 2 días antes 1 week before 1 semana antes On start day (9:00 AM) El día de inicio (9:00 a.m.) Enter a name please The name can not only contain whitespaces The name already exists Type: Tipo: Description: Descripción: All Day: Todo el día: Starts: Inicia: Ends: Termina: Remind Me: Recordarme: Repeat: Repetir: End Repeat: Fin de repetición: Type Tipo Work Trabajo Life Personal Other Otro Description Descripción All Day Todo el día Time: Time Solar Lunar Starts Inicia Ends Termina Remind Me Recordarme Repeat Repetir Daily Diariamente Weekdays Días laborables Weekly Semanalmente Monthly Mensualmente Yearly Anualmente End Repeat Fin de repetición After Después On Encendido time(s) hora(s) Cancel button Cancelar Save button Guardar CScheduleOperation All occurrences of a repeating event must have the same all-day status. Todas las instancias de un evento repetido debe tener el mismo estado todo el día. Do you want to change all occurrences? ¿Desea cambiar todas las instancias? Change All Cambiar todos You are changing the repeating rule of this event. Está cambiando la regla de repetición de este evento. You are deleting an event. Esta borrando un evento Are you sure you want to delete this event? ¿Está seguro que desea borrar este evento? Cancel button Cancelar Delete button Borrar Do you want to delete all occurrences of this event, or only the selected occurrence? ¿Desea borrar todas las instancias de este evento, o solo la instancia seleccionada? Delete All Eliminar todo Delete Only This Event Borrar solo este evento Do you want to delete this and all future occurrences of this event, or only the selected occurrence? ¿Desea eliminar este y todas las instancias futuras de este evento, o solo la instancia seleccionada? Delete All Future Events Borrar todos los eventos futuros You are changing a repeating event. Esta cambiando una repetición de un evento. Do you want to change only this occurrence of the event, or all occurrences? ¿Desea cambiar solo la instancia de este evento, o todas las instancias? All Todos Only This Event Solo este evento Do you want to change only this occurrence of the event, or this and all future occurrences? ¿Desea cambiar solo este acontecimiento del evento, o este y todos los acontecimientos futuros? All Future Events Todos los eventos futuros You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Editar Delete Eliminar All Day Todo el día CScheduleSearchView No search results Sin resultados CScheduleView ALL DAY EVENTOS CTimeEdit (%1 mins) (%1 mins) (%1 hour) (%1 hora) (%1 hours) (%1 horas) CTitleWidget Y Y M M W W D D CWeekWindow Week Semana Y A CYearScheduleView All Day Todo el día No event No hay eventos CYearWindow Y A CalendarWindow Calendar Calendario Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendario de Deepin es una herramienta para consultar fechas, y un conveniente planificador para agendar sus reuniones y eventos. Calendarmainwindow Calendar Calendario Manage CenterWidget All Day Todo el día DragInfoGraphicsView Edit Editar Delete Borrar New event Nuevo evento New Event Nuevo evento JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Hoy Return Today Today Return Today Hoy ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Ayuda Delete event Borrar evento Copy Duplicar Cut Cortar Paste Pegar Delete Borrar Select all Seleccionar todo YearFrame Y A today Today Today Hoy dde-calendar-5.9.1/translations/dde-calendar_fi.ts000066400000000000000000001124651423264401600221160ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Save button Cancel Save CDayMonthView Monday Maanantai Tuesday Tiistai Wednesday Keskiviikko Thursday Torstai Friday Perjantai Saturday Lauantai Sunday Sunnuntai CDayWindow Y V M K D P CGraphicsView New Event Uusi tapahtuma CMonthScheduleNumItem %1 more %1 lisää CMonthView New event Uusi tapahtuma New Event Uusi tapahtuma CMonthWindow Y V CMyScheduleView My Event Tapahtuma OK button OK Delete button Poista Edit button Muokkaa CPushButton New event type CScheduleDlg New Event Uusi tapahtuma Edit Event Muokkaa tapahtumaa End time must be greater than start time Lopetusajan on oltava pidempi kuin aloitusaika OK button OK Never Ei koskaan At time of event Tapahtuman aikaan 15 minutes before 15 min ennen 30 minutes before 30 min ennen 1 hour before 1 tunti ennen 1 day before 1 päivä ennen 2 days before 2 päivää ennen 1 week before 1 viikko ennen On start day (9:00 AM) Aloituspäivänä (9:00) Enter a name please The name can not only contain whitespaces The name already exists Type: Tyyppi: Description: Kuvaus: All Day: Koko päivä: Starts: Alkaa: Ends: Loppuu: Remind Me: Muistuta minua: Repeat: Toista: End Repeat: Lopeta toisto: Type Tyyppi Work Työ Life Oma Other Muut Description Kuvaus All Day Koko päivä Time: Time Solar Lunar Starts Alkaa Ends Loppuu Remind Me Muistuta minua Repeat Toista Daily Päivittäin Weekdays Arkisin Weekly Viikoittain Monthly Kuukausittain Yearly Vuosittain End Repeat Lopeta toisto After Jälkeen On Päällä time(s) kertaa Cancel button Peruuta Save button Tallenna CScheduleOperation All occurrences of a repeating event must have the same all-day status. Kaikilla toistuvilla tapahtumilla on oltava sama koko päivän tila. Do you want to change all occurrences? Haluatko muuttaa kaikkia tapahtumia? Change All Vaihda kaikki You are changing the repeating rule of this event. Olet muuttamassa tämän tapahtuman toistuvaa sääntöä. You are deleting an event. Olet poistamassa tapahtumaa. Are you sure you want to delete this event? Haluatko varmasti poistaa tämän tapahtuman? Cancel button Peruuta Delete button Poista Do you want to delete all occurrences of this event, or only the selected occurrence? Haluatko poistaa kaikki tämän tapahtuman esiintymät vai vain valitun tapahtuman? Delete All Poista kaikki Delete Only This Event Poista vain tämä tapahtuma Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Haluatko poistaa tämän ja kaikki tämän tapahtuman tulevat esiintymät vai vain valitun tapahtuman? Delete All Future Events Poista kaikki tulevat tapahtumat You are changing a repeating event. Olet vaihtamassa toistuvaa tapahtumaa. Do you want to change only this occurrence of the event, or all occurrences? Haluatko muuttaa vain tämän tapahtuman vai kaikki tapahtumat? All Kaikki Only This Event Vain tämä tapahtuma Do you want to change only this occurrence of the event, or this and all future occurrences? Haluatko muuttaa vain tämän tapahtuman vai tätä ja kaikkia tulevia tapahtumia? All Future Events Kaikki tulevat tapahtumat You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y V M K D P CScheduleSearchItem Edit Muokkaa Delete Poista All Day Koko päivä CScheduleSearchView No search results Ei hakutuloksia CScheduleView ALL DAY AIKA CTimeEdit (%1 mins) (%1 min) (%1 hour) (%1 tunti) (%1 hours) (%1 tuntia) CTitleWidget Y V M KK W VK D PV CWeekWindow Week Viikko Y V CYearScheduleView All Day Koko päivä No event Ei tapahtumaa CYearWindow Y V CalendarWindow Calendar Kalenteri Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalenteri on työkalu almanakan tarkasteluun ja voit myös tehdä hälytykset ja muistutukset kalenteriin. Calendarmainwindow Calendar Kalenteri Manage CenterWidget All Day Koko päivä DragInfoGraphicsView Edit Muokkaa Delete Poista New event Uusi tapahtuma New Event Uusi tapahtuma JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Tänään Return Today Today Return Today Tänään ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Ohje Delete event Poista tapahtuma Copy Kopioi Cut Leikkaa Paste Liitä Delete Poista Select all Valitse kaikki YearFrame Y V today Today Today Tänään dde-calendar-5.9.1/translations/dde-calendar_fr.ts000066400000000000000000000751041423264401600221250ustar00rootroot00000000000000 CDayMonthView Monday Lundi Tuesday Mardi Wednesday Mercredi Thursday Jeudi Friday Vendredi Saturday Samedi Sunday Dimanche CDayWindow Y A M M D J CGraphicsView New Event Nouvel événement CMonthScheduleNumItem %1 more %1 de plus CMonthView New event Nouvel événement New Event Nouvel événement CMonthWindow Y A CMyScheduleView My Event Mon événement OK button OK Delete button Supprimer Edit button Editer CScheduleDlg New Event Nouvel évènement Edit Event Modifier l'événement End time must be greater than start time L'heure de fin doit être supérieure à l'heure de début OK button OK Never Jamais At time of event Au moment de l'événement 15 minutes before 15 minutes avant 30 minutes before 30 minutes avant 1 hour before 1 heure avant 1 day before 1 jour avant 2 days before 2 jours avant 1 week before 1 semaine avant On start day (9:00 AM) Le jour de début (9h00) Type: Type : Description: Description : All Day: Toute la journée : Starts: Débuts : Ends: Fin : Remind Me: Rappelle moi : Repeat: Répéter : End Repeat: Fin de la répétition : Type Type Work Travail Life Vie Other Autre Description Description All Day Toute la journée Starts Débuts Ends Fin Remind Me Rappelle moi Repeat Répéter Daily Journalier Weekdays Jours de la semaine Weekly Hebdomadaire Monthly Mensuel Yearly Annuel End Repeat Terminer la répétition After Après On Sur time(s) heure(s) Cancel button Annuler Save button Sauvegarder CScheduleOperation All occurrences of a repeating event must have the same all-day status. Toutes les occurrences d'un événement répétitif doivent avoir le même statut toute la journée. Do you want to change all occurrences? Voulez-vous modifier toutes les occurrences ? Change All Tout changer You are changing the repeating rule of this event. Vous modifiez la règle de répétition de cet événement. You are deleting an event. Vous êtes en train de supprimer un événement. Are you sure you want to delete this event? Êtes-vous sûr de vouloir supprimer cet événement ? Cancel button Annuler Delete button Supprimer Do you want to delete all occurrences of this event, or only the selected occurrence? Voulez-vous supprimer toutes les occurrences de cet événement ou uniquement l'occurrence sélectionnée ? Delete All Tout supprimer Delete Only This Event Supprimer uniquement cet événement Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Voulez-vous supprimer cet événement et toutes les occurrences futures de cet événement, ou uniquement l'occurrence sélectionnée ? Delete All Future Events Supprimer tous les événements futurs You are changing a repeating event. Vous modifiez un événement récurrent. Do you want to change only this occurrence of the event, or all occurrences? Voulez-vous modifier uniquement cette occurrence de l'événement ou toutes les occurrences ? All Tout Only This Event Seulement cet événement Do you want to change only this occurrence of the event, or this and all future occurrences? Voulez-vous modifier uniquement cette occurrence de l'événement, ou cette occurrence et toutes les occurrences futures ? All Future Events Tous les événements futurs CScheduleSearchDateItem Y A M M D J CScheduleSearchItem Edit Éditer Delete Supprimer All Day Toute la journée CScheduleSearchView No search results Aucun résultat trouvé CScheduleView ALL DAY TOUTE LA JOURNÉE CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y A M M W W D J CWeekWindow Week Semaine Y A CYearScheduleView All Day Toute la journée No event Pas d'évènement CYearWindow Y A CalendarWindow Calendar Calendrier Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Le calendrier est un outil pour afficher les dates, et aussi un planificateur quotidien intelligent pour planifier toutes les choses de la vie. Calendarmainwindow Calendar Calendrier CenterWidget All Day Toute la journée DragInfoGraphicsView Edit Éditer Delete Supprimer New event Nouvel événement New Event Nouvel événement Return Today Return Aujourd'hui Return Today Today Return Today Aujourd'hui Shortcut Help Aide Delete event Supprimer l'événement Copy Copier Cut Couper Paste Coller Delete Supprimer Select all Tout sélectionner YearFrame Y A today Today Today Aujourd'hui dde-calendar-5.9.1/translations/dde-calendar_gl_ES.ts000066400000000000000000000742231423264401600225100ustar00rootroot00000000000000 CDayMonthView Monday Luns Tuesday Martes Wednesday Mércores Thursday Xoves Friday Venres Saturday Sábado Sunday Domingo CDayWindow Y Y M M D D CGraphicsView New Event Novo evento CMonthScheduleNumItem %1 more %1 máis CMonthView New event Novo evento New Event Novo evento CMonthWindow Y Y CMyScheduleView My Event O meu evento OK button Aceptar Delete button Eliminar Edit button Editar CScheduleDlg New Event Novo evento Edit Event Editar evento End time must be greater than start time O tempo de finalización ten de ser maior que o de inicio OK button Aceptar Never Nunca At time of event Na hora do evento 15 minutes before 15 minutos antes 30 minutes before 30 minutos antes 1 hour before 1 hora antes 1 day before 1 día antes 2 days before 2 días antes 1 week before 1 semana antes On start day (9:00 AM) Ao comezo do día (9:00 AM) Type: Tipo: Description: Descrición: All Day: Todo o día: Starts: Comeza: Ends: Remata: Remind Me: Lembrarme: Repeat: Repetir: End Repeat: Fin da repetición: Type Tipo Work Traballo Life Persoal Other Outro Description Descrición All Day Todo o día Starts Comeza Ends Remata Remind Me Lembrarme Repeat Repetir Daily Diariamente Weekdays Días da semana Weekly Semanalmente Monthly Mensualmente Yearly Anualmente End Repeat Finalizar a repetición After Despois On O time(s) vez(ces) Cancel button Cancelar Save button Gardar CScheduleOperation All occurrences of a repeating event must have the same all-day status. Todas as ocorrencias dun evento repetitivo teñen de ter o mesmo estado durante todo o día. Do you want to change all occurrences? Queres cambiar todas as ocorrencias? Change All Cambiar todo You are changing the repeating rule of this event. Estás a cambiar a regra de repetición deste evento. You are deleting an event. Estás eliminando un evento. Are you sure you want to delete this event? Tes a certeza de querer eliminar este evento? Cancel button Cancelar Delete button Eliminar Do you want to delete all occurrences of this event, or only the selected occurrence? Queres eliminar todas as ocorrencias deste evento, ou só a ocorrencia seleccionada? Delete All Eliminar todo Delete Only This Event Eliminar só este evento Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Queres eliminar esta e todas as vindeiras ocorrencias deste evento, ou só a ocorrencia seleccionada? Delete All Future Events Eliminar todo os eventos futuros You are changing a repeating event. Estás a cambiar un evento repetitivo. Do you want to change only this occurrence of the event, or all occurrences? Queres cambiar só esta ocorrencia deste evento, ou todas as ocorrencias? All Todo Only This Event Só este evento Do you want to change only this occurrence of the event, or this and all future occurrences? Queres cambiar só esta ocorrencia deste evento, ou esta e todas as vindeiras ocorrencias? All Future Events Todos os eventos futuros CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Editar Delete Eliminar All Day Todo o día CScheduleSearchView No search results Sen resultados CScheduleView ALL DAY TODO O DÍA CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Y M M W W D D CWeekWindow Week Semana Y Y CYearScheduleView All Day Todo o día No event Sen evento CYearWindow Y Y CalendarWindow Calendar Calendario Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. O calendario é unha ferramenta para ver as datas e tamén un planificador diario intelixente para programar todas as cousas da vida. Calendarmainwindow Calendar Calendario CenterWidget All Day Todo o día DragInfoGraphicsView Edit Editar Delete Eliminar New event Novo evento New Event Novo evento Return Today Return Hoxe Return Today Today Return Today Hoxe Shortcut Help Axuda Delete event Eliminar evento Copy Copiar Cut Cortar Paste Pegar Delete Eliminar Select all Seleccionar todo YearFrame Y Y today Today Today Hoxe dde-calendar-5.9.1/translations/dde-calendar_hr.ts000066400000000000000000000727361423264401600221370ustar00rootroot00000000000000 CDayMonthView Monday Ponedjeljak Tuesday Utorak Wednesday Srijeda Thursday Četvrtak Friday Petak Saturday Subota Sunday Nedjelja CDayWindow Y Y M M D D CGraphicsView New Event Novi događaj CMonthScheduleNumItem %1 more CMonthView New event Novi događaj New Event Novi događaj CMonthWindow Y Y CMyScheduleView My Event Moj događaj OK button U redu Delete button Obriši Edit button Uredi CScheduleDlg New Event Novi događaj Edit Event Uredi događaj End time must be greater than start time Vrijeme završetka mora biti veće od vremena početka OK button U redu Never Nikada At time of event U vrijeme događaja 15 minutes before 15 minuta prije 30 minutes before 30 minuta prije 1 hour before 1 sat prije 1 day before 1 dan prije 2 days before 2 dana prije 1 week before 1 tjedan prije On start day (9:00 AM) Na dan početka (9:00 AM) Type: Vrsta: Description: Opis: All Day: Cijeli dan: Starts: Započinje: Ends: Završava: Remind Me: Podsjeti me: Repeat: Ponovi: End Repeat: Type Vrsta Work Posao Life Život Other Ostalo Description Opis All Day Cijeli dan Starts Počinje Ends Završava Remind Me Podsjeti me Repeat Ponovi Daily Dnevno Weekdays Dani vikenda Weekly Tjedno Monthly Mjesečno Yearly Godišnje End Repeat After Poslije On Uključeno time(s) Cancel button Otkaži Save button Spremi CScheduleOperation All occurrences of a repeating event must have the same all-day status. Do you want to change all occurrences? Change All Promijeni sve You are changing the repeating rule of this event. You are deleting an event. Brišete događaj. Are you sure you want to delete this event? Jeste li sigurni da želite izbrisati ovaj događaj? Cancel button Otkaži Delete button Obriši Do you want to delete all occurrences of this event, or only the selected occurrence? Delete All Obrišite sve Delete Only This Event Obrišite samo ovaj događaj Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Delete All Future Events Obriši sve buduće događaje You are changing a repeating event. Do you want to change only this occurrence of the event, or all occurrences? All Sve Only This Event Samo ovaj događaj Do you want to change only this occurrence of the event, or this and all future occurrences? All Future Events Svi budući događaji CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Uredi Delete Obriši All Day Cijeli dan CScheduleSearchView No search results Nema rezultata pretrage CScheduleView ALL DAY CIJELI DAN CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Y M M W D D CWeekWindow Week Tjedan Y Y CYearScheduleView All Day Cijeli dan No event Nema događaja CYearWindow Y Y CalendarWindow Calendar Kalendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendarmainwindow Calendar Kalendar CenterWidget All Day Cijeli dan DragInfoGraphicsView Edit Uredi Delete Obriši New event Novi događaj New Event Novi događaj Return Today Return Danas Return Today Today Return Today Danas Shortcut Help Pomoć Delete event Izbriši događaj Copy Kopiraj Cut Izreži Paste Zalijepi Delete Obriši Select all Odaberi sve YearFrame Y Y today Today Today Danas dde-calendar-5.9.1/translations/dde-calendar_hu.ts000066400000000000000000001136501423264401600221310ustar00rootroot00000000000000 CColorPickerWidget Color Szín Cancel button Mégsem Save button Mentés Cancel Save CDayMonthView Monday Hétfő Tuesday Kedd Wednesday Szerda Thursday Csütörtök Friday Péntek Saturday Szombat Sunday Vasárnap CDayWindow Y Éves M Havi D Napi CGraphicsView New Event Új esemény CMonthScheduleNumItem %1 more %1 továbbiak CMonthView New event Új esemény New Event Új esemény CMonthWindow Y Év CMyScheduleView My Event Eseményeim OK button OK Delete button Törlés Edit button Szerkesztés CPushButton New event type Új esemény típusa CScheduleDlg New Event Új esemény Edit Event Esemény szerkesztése End time must be greater than start time A befejezés időpontjának a kezdés időpontjánál későbbre kell esnie OK button OK Never Soha At time of event Az esemény időpontjában 15 minutes before 15 perccel előtte 30 minutes before 30 perccel előtte 1 hour before 1 órával előtte 1 day before 1 nappal előtte 2 days before 2 nappal előtte 1 week before 1 héttel előtte On start day (9:00 AM) Esemény kezdete napján (De. 09:00) Enter a name please Kérjük adjon meg egy nevet The name can not only contain whitespaces A név nem tartalmazhat csak szóközöket The name already exists Ez a név már létezik Type: Típus: Description: Leírás: All Day: Egész nap: Starts: Kezdés: Ends: Befejezés: Remind Me: Emlékeztessen: Repeat: Ismétlés: End Repeat: Ismétlés vége: Type Típus Work Munka Life Magénélet Other Egyéb Description Leírás All Day Egész nap Time: Idő: Time Idő Solar Nap Lunar Hold Starts Kezdés Ends Befejezés Remind Me Emlékeztessen Repeat Ismétlés Daily Naponta Weekdays Hétköznapokon Weekly Hetente Monthly Havonta Yearly Évente End Repeat Ismétlés vége After Utána On Ekkor time(s) Időpont(ok) Cancel button Mégsem Save button Mentés CScheduleOperation All occurrences of a repeating event must have the same all-day status. Az ismétlődő események valamennyiének "egész nap" állapotúnak kell lennie. Do you want to change all occurrences? Minden alkalmat módosítani szeretne? Change All Összes módosítása You are changing the repeating rule of this event. Módosítja az esemény ismétlődési szabályát. You are deleting an event. Ön töröl egy eseményt. Are you sure you want to delete this event? Biztosan törli ezt az eseményt? Cancel button Mégsem Delete button Törlés Do you want to delete all occurrences of this event, or only the selected occurrence? Törlöni szeretné az esemény összes előfordulását, vagy csak a kiválasztott eseményt? Delete All Összes törlése Delete Only This Event Csak ezen esemény törlése Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Törölni szeretné ezt, és az esemény összes jövőbeli előfordulását, vagy csak a kiválasztott eseményt? Delete All Future Events Összes jövőbeli esemény törlése You are changing a repeating event. Ön egy ismétlődő eseményt módosít. Do you want to change only this occurrence of the event, or all occurrences? Csak az esemény ezen előfordulását akarja megváltoztatni, vagy az összes jövőbeni eseményt? All Összes Only This Event Csak ezen esemény Do you want to change only this occurrence of the event, or this and all future occurrences? Csak az esemény ezen előfordulását akarja megváltoztatni, vagy ezt és az összes jövőbeni eseményt? All Future Events Összes jövőbeli esemény You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y Év M Hónap D Nap CScheduleSearchItem Edit Szerkesztés Delete Törlés All Day Egész nap CScheduleSearchView No search results Nincs keresési eredmény CScheduleView ALL DAY Egész nap CTimeEdit (%1 mins) (%1 perc) (%1 hour) (%1 óra) (%1 hours) (%1 óra) CTitleWidget Y Éves M Havi W Heti D Napi CWeekWindow Week Hét Y Év CYearScheduleView All Day Egész nap No event Nincs esemény CYearWindow Y Év CalendarWindow Calendar Naptár Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. A Naptár egy eszköz a dátumok megtekintésére, valamint egy intelligens napi tervező az élet minden dolgának ütemezéséhez. Calendarmainwindow Calendar Naptár Manage Kezelés CenterWidget All Day Egész nap DragInfoGraphicsView Edit Szerkesztés Delete Törlés New event Új esemény New Event Új esemény JobTypeListView You are deleting an event type. Ön töröl egy eseménytípust. All events under this type will be deleted and cannot be recovered. Az összes ilyen típusú esemény törlődik, és nem állítható helyre. Cancel button Mégsem Delete button Törlés QObject Manage calendar Naptár kezelése Event types Esemény típusok Return Today Return Ma Return Today Today Return Today Ma ScheduleTypeEditDlg New event type Új esemény típusa Edit event type Eseménytípus szerkesztése Name: Név: Color: Szín: Cancel button Mégsem Save button Mentés Enter a name please Kérjük adjon meg egy nevet The name can not only contain whitespaces A név nem tartalmazhat csak szóközöket The name already exists Ez a név már létezik Shortcut Help Segítség Delete event Esemény törlése Copy Másolás Cut Kivágás Paste Beillesztés Delete Törlés Select all Összes kijelölése YearFrame Y Év today Today Today Ma dde-calendar-5.9.1/translations/dde-calendar_it.ts000066400000000000000000000744561423264401600221430ustar00rootroot00000000000000 CDayMonthView Monday Lunedì Tuesday Martedì Wednesday Mercoledì Thursday Giovedì Friday Venerdì Saturday Sabato Sunday Domenica CDayWindow Y Y M M D D CGraphicsView New Event Nuovo evento CMonthScheduleNumItem %1 more %1 in più CMonthView New event Nuovo evento New Event Nuovo evento CMonthWindow Y Y CMyScheduleView My Event I miei eventi OK button OK Delete button Elimina Edit button Modifica CScheduleDlg New Event Nuovo evento Edit Event Modifica evento End time must be greater than start time La data di fine deve essere maggiore di quella di inizio OK button OK Never Mai At time of event All'ora dell'evento 15 minutes before 15 minuti prima 30 minutes before 30 minuti prima 1 hour before 1 ora prima 1 day before 1 giorno prima 2 days before 2 giorni prima 1 week before 1 settimana prima On start day (9:00 AM) All'inizio della giornata (9:00 AM) Type: Tipo: Description: Descrizione: All Day: Tutto il giorno: Starts: Inizio: Ends: Fine: Remind Me: Promemoria: Repeat: Ripetizione: End Repeat: Fine ripetizione: Type Tipo Work Lavoro Life Personale Other Altro Description Descrizione All Day Tutto il giorno Starts Inizio Ends Fine Remind Me Promemoria Repeat Ripetizione Daily Giornaliera Weekdays Giorni della settimana Weekly Settimanale Monthly Mensile Yearly Annuale End Repeat Fine ripetizione After Dopo On Acceso time(s) volta(e) Cancel button Annulla Save button Salva CScheduleOperation All occurrences of a repeating event must have the same all-day status. Tutte le occorrenze di una ripetizione devono avere i medesimi parametri. Do you want to change all occurrences? Desideri modificare tutte le occorrenze? Change All Cambia tutte You are changing the repeating rule of this event. Stai cambiando le regole di pianificazione di questo evento. You are deleting an event. Stai eliminando un evento. Are you sure you want to delete this event? Sicuro di voler eliminare questo evento? Cancel button Annulla Delete button Elimina Do you want to delete all occurrences of this event, or only the selected occurrence? Desideri eliminare tutte le occorrenze di questo evento, oppure solo quella selezionata? Delete All Eliminale tutte Delete Only This Event Elimina solo questo evento Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Desideri eliminare questa e tutte le occorrenze successive di questo evento, oppure solo quella selezionata? Delete All Future Events Tutte le occorrenze future You are changing a repeating event. Stai modificando un evento ripetitivo Do you want to change only this occurrence of the event, or all occurrences? Desideri modificare solo questa occorrenza dell'evento, o tutte quelle ad esso associate? All Tutti Only This Event Solo questo evento Do you want to change only this occurrence of the event, or this and all future occurrences? Desideri modificare solo il singolo evento,oppure tutte le future ripetizioni? All Future Events Tutte le future ripetizioni CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Modifica Delete Elimina All Day Tutto il giorno CScheduleSearchView No search results Nessun risultato disponibile CScheduleView ALL DAY Tutto il giorno CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y A M M W S D G CWeekWindow Week Settimana Y Y CYearScheduleView All Day Tutto il giorno No event Nessun evento CYearWindow Y Y CalendarWindow Calendar Calendario Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendario è uno strumento per visualizzare il calendario ma anche per pianificare in modo intelligente tutti gli eventi della propria vita quotidiana. Localizzazione italiana a cura di Massimo A. Carofano. Calendarmainwindow Calendar Calendario CenterWidget All Day Tutto il giorno DragInfoGraphicsView Edit Modifica Delete Elimina New event Nuovo evento New Event Nuovo evento Return Today Return Oggi Return Today Today Return Today Oggi Shortcut Help Aiuto Delete event Elimina evento Copy Copia Cut Taglia Paste Incolla Delete Elimina Select all Seleziona tutto YearFrame Y Y today Today Today Oggi dde-calendar-5.9.1/translations/dde-calendar_ja.ts000066400000000000000000000735631423264401600221170ustar00rootroot00000000000000 CDayMonthView Monday 月曜日 Tuesday 火曜日 Wednesday 水曜日 Thursday 木曜日 Friday 金曜日 Saturday 土曜日 Sunday 日曜日 CDayWindow Y M D CGraphicsView New Event 新規イベント CMonthScheduleNumItem %1 more CMonthView New event 新規イベント New Event 新規イベント CMonthWindow Y CMyScheduleView My Event イベント OK button OK Delete button 削除 Edit button 編集 CScheduleDlg New Event 新しイベント Edit Event イベントを編集 End time must be greater than start time 開始時間より前の時間を設定して下さい OK button OK Never しない At time of event イベント時 15 minutes before 15分前 30 minutes before 30分前 1 hour before 1時間前 1 day before 一日前 2 days before 2日前 1 week before 1週間前 On start day (9:00 AM) 開始日 (9:00) に Type: 種類: Description: 説明: All Day: 終日: Starts: 開始: Ends: 終了: Remind Me: 通知: Repeat: 繰り返し: End Repeat: 繰り返し終了: Type 種類 Work 仕事 Life 生活 Other その他 Description 説明 All Day 終日 Starts 開始 Ends 終了 Remind Me 通知 Repeat 繰り返す Daily 毎日 Weekdays 平日 Weekly 毎週 Monthly 毎月 Yearly 毎年 End Repeat 繰り返し終了 After On オン time(s) 回後 Cancel button キャンセル Save button 保存 CScheduleOperation All occurrences of a repeating event must have the same all-day status. Do you want to change all occurrences? Change All すべて変更 You are changing the repeating rule of this event. このイベントの繰り返しルールを変更しています。 You are deleting an event. イベントを削除しています。 Are you sure you want to delete this event? イベントを削除してもよろしいですか? Cancel button キャンセル Delete button 削除 Do you want to delete all occurrences of this event, or only the selected occurrence? Delete All 全て削除 Delete Only This Event このイベントのみ削除 Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Delete All Future Events 今後のイベントをすべて削除 You are changing a repeating event. 繰り返しイベントを変更しています。 Do you want to change only this occurrence of the event, or all occurrences? All すべて Only This Event このイベントのみ Do you want to change only this occurrence of the event, or this and all future occurrences? All Future Events 今後のすべてのイベント CScheduleSearchDateItem Y M D CScheduleSearchItem Edit 編集 Delete 削除 All Day 終日 CScheduleSearchView No search results 検索結果なし CScheduleView ALL DAY 終日 CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y M W D CWeekWindow Week Y CYearScheduleView All Day 終日 No event イベントなし CYearWindow Y CalendarWindow Calendar カレンダー Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. カレンダーは、日付を表示するツールであり、また生活のあらゆることをスケジューリングするスマートデイリープランナーです。 Calendarmainwindow Calendar カレンダー CenterWidget All Day 終日 DragInfoGraphicsView Edit 編集 Delete 削除 New event 新規イベント New Event 新規イベント Return Today Return 今日 Return Today Today Return Today 今日 Shortcut Help ヘルプ Delete event イベントを削除 Copy コピー Cut 切り取り Paste 貼り付け Delete 削除 Select all すべて選択 YearFrame Y today Today Today 今日 dde-calendar-5.9.1/translations/dde-calendar_ka.ts000066400000000000000000001006641423264401600221110ustar00rootroot00000000000000 CDayMonthView Monday ორშაბათი Tuesday სამშაბათი Wednesday ოთხშაბათი Thursday ხუთშაბათი Friday პარასკევი Saturday შაბათი Sunday კვირა CDayWindow Y M D CGraphicsView New Event ახალი ივენთი CMonthScheduleNumItem %1 more %1 მეტი CMonthView New event ახალი ივენთი New Event ახალი ივენთი CMonthWindow Y CMyScheduleView My Event ჩემი ივენთები OK button OK Delete button წაშლა Edit button რედაქტირება CScheduleDlg New Event ჩემი ივენთები Edit Event ივენთის რედაქტირება End time must be greater than start time დასრულების დრო უნდა აღემატებოდეს დაწყების დროს OK button OK Never არასდროს At time of event ივენთის სრული დრო 15 minutes before 15 წუთით ადრე 30 minutes before 30 წუთით ადრე 1 hour before 1 საათით ადრე 1 day before 1 დღით ადრე 2 days before 2 დღით ადრე 1 week before 1 კვირით ადრე On start day (9:00 AM) დრის დასაწყისში (9:00 AM) Type: ტიპი: Description: აღწერა: All Day: მთელი დღე: Starts: დასაწყისი: Ends: დასასრული: Remind Me: შემახსენე: Repeat: გამეორება: End Repeat: გამეორების დასასრული: Type ტიპი Work სამსახური Life ცხოვრება Other სხვა Description აღწერა All Day ყველა დღე Starts დასაწყისი Ends დასასრული Remind Me შემახსენე Repeat განმეორება Daily დღიური Weekdays ვიქენდი Weekly კვირეული Monthly თვიური Yearly წლიური End Repeat განმეორების დასასრული After შემდეგ On ზე time(s) ჯერ Cancel button გაუქმება Save button შენახვა CScheduleOperation All occurrences of a repeating event must have the same all-day status. ყველა განმეორებად მოვლენებს უნდა ჰქონდეს ყველა დღის სტატუს Do you want to change all occurrences? გსურთი მოვლენების შეცვლა? Change All ყველას შეცვლა You are changing the repeating rule of this event. თქვენ ცვლით განმეორების რულებს აღნიშნული ივენთისთვის You are deleting an event. თქვენ შლით ივენთს Are you sure you want to delete this event? დაწრმუნებული ხართ, რომ გსურთ ამ ივენთის წაშლა? Cancel button გაუქმება Delete button წაშლა Do you want to delete all occurrences of this event, or only the selected occurrence? გსრუთ აღნიშნული მოვლენების ივენთიდან ამოშლა? Delete All ყველას წაშლა Delete Only This Event მხოლოდ ამ ივენთის წაშლა Do you want to delete this and all future occurrences of this event, or only the selected occurrence? გსურთ წაშალოთ ყველა შემდგომი მოვლენა, თუ მხოლოდ არჩეული მოვლენები? Delete All Future Events ყველა მომდევნო მოვლენის წაშლა You are changing a repeating event. თქვენ ცვლით განმეორებად ივენთს Do you want to change only this occurrence of the event, or all occurrences? გსრუთ ყველა მოვლენის შეცვლა, თუ მხოლოდ მონიშნულის? All ყველა Only This Event მხოლოდ ეს ივენთი Do you want to change only this occurrence of the event, or this and all future occurrences? მხოლოდ ამ ერთი მოვლენის შეცვლა, თუ ყველა მომდევნო მოვლენის შეცვლა? All Future Events ყველა მომდევნო ივენთი CScheduleSearchDateItem Y M D CScheduleSearchItem Edit რედაქტირება Delete წაშლა All Day ყველა დღე CScheduleSearchView No search results არ არის ძებნის რეზულტატი CScheduleView ALL DAY ყველა დღე CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y M W D CWeekWindow Week კვირა Y CYearScheduleView All Day ყველა დღე No event არ არის ივენთი CYearWindow Y CalendarWindow Calendar კალენდარი Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. კალენდარი არის ხელსაწყო თარიღების სანახავად და გრაფიკის დასაგეგმად Calendarmainwindow Calendar კალენდარი CenterWidget All Day ყველა დღე DragInfoGraphicsView Edit რედაქტირება Delete წაშლა New event ახალი ივენთი New Event ახალი ივენთი Return Today Return დღეს Return Today Today Return Today დღეს Shortcut Help დახმარება Delete event ივენთის წაშლა Copy კოპირება Cut ამოჭრა Paste ჩასმა Delete წაშლა Select all ყველას მონიშნვა YearFrame Y today Today Today დღეს dde-calendar-5.9.1/translations/dde-calendar_kab.ts000066400000000000000000000742151423264401600222550ustar00rootroot00000000000000 CDayMonthView Monday Arim Tuesday Aram Wednesday Ahad Thursday Amhad Friday Sem Saturday Sed Sunday Acer CDayWindow Y Aseggas M Ayyur D Ass CGraphicsView New Event Tadyant tamaynut CMonthScheduleNumItem %1 more Ugar n 1% CMonthView New event Tadyant tamaynut New Event Tadyant tamaynut CMonthWindow Y Aseggas CMyScheduleView My Event Tadyant-iw OK button IH Delete button Kkes Edit button Ẓreg CScheduleDlg New Event Tadyant tamaynut Edit Event Ẓreg tadyant End time must be greater than start time Akud n taggara yezmer d netta ara igerrzen ɣef wakud n tazwara OK button IH Never Werǧin At time of event Deg wakud n tedyant 15 minutes before 15 tesdatin send 30 minutes before 30 tesdatin send 1 hour before 1 usrag send 1 day before 1 wass send 2 days before 2 wussan send 1 week before 1 dduṛt send On start day (9:00 AM) Deg tazwara n wass (9:00 SRG) Type: Anaw: Description: Aglam: All Day: Yal ass: Starts: Yebda Ends: Yekfa Remind Me: Smekti-yi-d: Repeat: Ales End Repeat: Taggara n wallus: Type Anaw Work Amahil Life Tudert Other Wayeḍ Description Aglam All Day Meṛṛa ass Starts Yebda Ends Yekfa Remind Me Smekti-yi-d Repeat Ales Daily S wass Weekdays Ussan n yimalas Weekly S yimalas Monthly S wayyur Yearly S useggas End Repeat Taggara n wallus After Seld On Ɣef time(s) Akud (akuden) Cancel button Sefsex Save button Sekles CScheduleOperation All occurrences of a repeating event must have the same all-day status. Meṛṛa timeḍriwin n tedyant i d-yettuɣalen ilaq ad sɛunt yiwen waddad i wass kamel. Do you want to change all occurrences? Tebɣiḍ ad tesnefleḍ meṛṛa timeḍriwin? Change All Senfel kullec You are changing the repeating rule of this event. Tbeddleḍ alugen i d-yettuɣalen n tedyant-a. You are deleting an event. Tekkseḍ yiwet tedyant. Are you sure you want to delete this event? D tidet tebɣiḍ ad tekkseḍ tadyant-a? Cancel button Sefsex Delete button Kkes Do you want to delete all occurrences of this event, or only the selected occurrence? Tebɣiḍ ad tekkseḍ meṛṛa timeḍriwin n tedyant-a neɣ tid kan i d-yettwafernen? Delete All Kkes kullec Delete Only This Event Kkes kan tadyant-a Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Tebɣiḍ ad tekkseḍ timeḍriwt-a d tid meṛṛa i d-iteddun, neɣ d tid kan i d-yettufernen? Delete All Future Events Kkes meṛṛa tidyanin i d-iteddun You are changing a repeating event. Tbeddleḍ tadyant i d-yettuɣalen. Do you want to change only this occurrence of the event, or all occurrences? Tebɣiḍ ad tbeddleḍ timeḍriwt-agi kan n tedyant, neɣ meṛṛa timeḍriwen? All Meṛṛa Only This Event Tadyant-agi kan Do you want to change only this occurrence of the event, or this and all future occurrences? Tebɣiḍ ad tbeddleḍ timeḍriwt-a n tedyant, neɣ tagi d meṛṛa timeḍriwen i d-iteddun? All Future Events Tidyanin akk i d-iteddun CScheduleSearchDateItem Y Aseggas M Ayyur D Ass CScheduleSearchItem Edit Ẓreg Delete Kkes All Day Meṛṛa ass CScheduleSearchView No search results Ulac igmaḍ n unadi CScheduleView ALL DAY YAL ASS CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Aseggas M Ayyur W Imalas D Ass CWeekWindow Week Dduṛt Y Aseggas CYearScheduleView All Day Meṛṛa ass No event Ulac tadyant CYearWindow Y Aseggas CalendarWindow Calendar Awitay Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Awitay d afecku i uskan n wazemz akked daɣen d aɣawas n yal ass i usɣiwes n wayen akk ara tgeḍ deg tudert. Calendarmainwindow Calendar Awitay CenterWidget All Day Yal ass DragInfoGraphicsView Edit Ẓreg Delete Kkes New event Tadyant tamaynut New Event Tadyant tamaynut Return Today Return Ass-a Return Today Today Return Today Ass-a Shortcut Help Tallalt Delete event Kkes tadyant Copy Nɣel Cut Gzem Paste Senteḍ Delete Kkes Select all Fren kullec YearFrame Y Aseggas today Today Today Ass-a dde-calendar-5.9.1/translations/dde-calendar_km_KH.ts000066400000000000000000001023331423264401600225020ustar00rootroot00000000000000 CDayMonthView Monday ថ្ងៃចន្ទ Tuesday ថ្ងៃអង្គារ Wednesday ថ្ងៃពុធ Thursday ថ្ងៃព្រហស្បតិ៍ Friday ថ្ងៃសុក្រ Saturday ថ្ងៃសៅរ៍ Sunday ថ្ងៃអាទិត្យ CDayWindow Y ឆ្នាំ M ខែ D ថ្ងៃ CGraphicsView New Event ព្រឹត្តិការណ៍ថ្មី CMonthScheduleNumItem %1 more CMonthView New event ព្រឹត្តិការណ៍ថ្មី New Event ព្រឹត្តិការណ៍ថ្មី CMonthWindow Y ឆ្នាំ CMyScheduleView My Event ព្រឹត្តិការណ៍របស់ខ្ញុំ OK button យល់ព្រម Delete button លុប Edit button កែសម្រួល CScheduleDlg New Event ព្រឹត្តិការណ៍ថ្មី Edit Event កែព្រឹត្តិការណ៍ End time must be greater than start time OK button យល់ព្រម Never មិនដែល At time of event នៅពេលព្រឹត្តិការណ៍ 15 minutes before 15 នាទីមុន 30 minutes before 30 នាទីមុន 1 hour before 1 ម៉ោងមុន 1 day before 1 ថ្ងៃមុន 2 days before 2 ថ្ងៃមុន 1 week before 1 សប្តាហ៍មុន On start day (9:00 AM) នៅថ្ងៃចាប់ផ្តើម (9:00 ព្រឹក) Type: ប្រភេទ: Description: ការពិពណ៌នាសង្ខេប: All Day: ពេញមួយថ្ងៃ៖ Starts: ចាប់ផ្តើម៖ Ends: បញ្ចប់៖ Remind Me: រំឭក​ខ្ញុំ: Repeat: ធ្វើម្តងទៀត៖ End Repeat: បញ្ចប់ម្តងទៀត៖ Type Work ធ្វើការ Life ជីវិត Other ផ្សេងទៀត Description All Day ពេញមួយថ្ងៃ Starts Ends Remind Me Repeat Daily រាល់ថ្ងៃ Weekdays ថ្ងៃធ្វើការ Weekly ប្រចាំសប្តាហ៍ Monthly ប្រចាំខែ Yearly ប្រចាំឆ្នាំ End Repeat After បន្ទាប់ពី On បើក time(s) ដង() Cancel button បោះបង់ Save button រក្សាទុក CScheduleOperation All occurrences of a repeating event must have the same all-day status. រាល់ការកើតឡើងនៃព្រឹត្តិការណ៍ដដែលៗត្រូវតែមានស្ថានភាពពេញមួយថ្ងៃ។ Do you want to change all occurrences? តើអ្នកចង់ផ្លាស់ប្តូរការកើតឡើងទាំងអស់ទេ? Change All ផ្លាស់ប្តូរទាំងអស់ You are changing the repeating rule of this event. អ្នកកំពុងផ្លាស់ប្តូរវិធានដដែលៗនៃព្រឹត្តិការណ៍នេះ។ You are deleting an event. អ្នកកំពុងលុបព្រឹត្តិការណ៍មួយ។ Are you sure you want to delete this event? តើអ្នកប្រាកដជាចង់លុបព្រឹត្តិការណ៍នេះឬ? Cancel button បោះបង់ Delete button លុប Do you want to delete all occurrences of this event, or only the selected occurrence? តើអ្នកចង់លុបរាល់ការកើតឡើងនៃព្រឹត្តិការណ៍នេះឬតែការកើតឡើងដែលបានជ្រើសរើសទេ? Delete All លុបទាំងអស់ Delete Only This Event លុបតែព្រឹត្តិការណ៍នេះ Do you want to delete this and all future occurrences of this event, or only the selected occurrence? តើអ្នកចង់លុបវានិងការកើតឡើងនាពេលអនាគតនៃព្រឹត្តិការណ៍នេះឬមានតែការកើតឡើងដែលបានជ្រើសរើសទេ? Delete All Future Events លុបព្រឹត្តិការណ៍អនាគតទាំងអស់ You are changing a repeating event. អ្នកកំពុងផ្លាស់ប្តូរព្រឹត្តិការណ៍ដដែលៗ។ Do you want to change only this occurrence of the event, or all occurrences? តើអ្នកចង់ផ្លាស់ប្តូរតែការកើតឡើងនៃព្រឹត្តិការណ៍នេះឬការកើតឡើងទាំងអស់ទេ? All ទាំងអស់ Only This Event តែព្រឹត្តិការណ៍នេះទេ Do you want to change only this occurrence of the event, or this and all future occurrences? តើអ្នកចង់ផ្លាស់ប្តូរតែការកើតឡើងនៃព្រឹត្តិការណ៍នេះឬព្រឹត្តិការណ៍នេះនិងការកើតឡើងនាពេលអនាគតទេ? All Future Events ព្រឹត្តិការណ៍អនាគតទាំងអស់ CScheduleSearchDateItem Y ឆ្នាំ M ខែ D ថ្ងៃ CScheduleSearchItem Edit កែសម្រួល Delete លុប All Day ពេញមួយថ្ងៃ CScheduleSearchView No search results គ្មានលទ្ធផលស្វែងរកទេ CScheduleView ALL DAY ពេញមួយថ្ងៃ CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y ឆ្នាំ M ខែ W សប្ដាហ៍ D ថ្ងៃ CWeekWindow Week សប្ដាហ៍ Y ឆ្នាំ CYearScheduleView All Day ពេញមួយថ្ងៃ No event គ្មានព្រឹត្តិការណ៍ CYearWindow Y ឆ្នាំ CalendarWindow Calendar ប្រតិទិន Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. ប្រតិទិនគឺជាឧបករណ៍សម្រាប់មើលកាលបរិច្ឆេទហើយក៏ជាអ្នករៀបចំផែនការប្រចាំថ្ងៃដ៏ឆ្លាតវៃផងដែរដើម្បីរៀបចំកាលវិភាគទាំងអស់ក្នុងជីវិត។ Calendarmainwindow Calendar ប្រតិទិន CenterWidget All Day ពេញមួយថ្ងៃ DragInfoGraphicsView Edit កែសម្រួល Delete លុប New event ព្រឹត្តិការណ៍ថ្មី New Event ព្រឹត្តិការណ៍ថ្មី Return Today Return ថ្ងៃនេះ Return Today Today Return Today ថ្ងៃនេះ Shortcut Help ជំនួយ Delete event លុបព្រឹត្តិការណ៍ Copy ចម្លង Cut កាត់ Paste បិទភ្ជាប់ Delete លុប Select all ជ្រើស​យក​ទាំងអស់ YearFrame Y ឆ្នាំ today Today Today ថ្ងៃនេះ dde-calendar-5.9.1/translations/dde-calendar_ko.ts000066400000000000000000000745211423264401600221310ustar00rootroot00000000000000 CDayMonthView Monday 월요일 Tuesday 화요일 Wednesday 수요일 Thursday 목요일 Friday 금요일 Saturday 토요일 Sunday 일요일 CDayWindow Y M D CGraphicsView New Event 새 이벤트 CMonthScheduleNumItem %1 more %1 더 CMonthView New event 새 이벤트 New Event 새 이벤트 CMonthWindow Y CMyScheduleView My Event 나의 이벤트 OK button 확인 Delete button 삭제 Edit button 편집 CScheduleDlg New Event 새 이벤트 Edit Event 이벤트 편집 End time must be greater than start time 종료 시간은 시작 시간보다 커야 합니다. OK button 확인 Never 없음 At time of event 이벤트 시 15 minutes before 15분 전 30 minutes before 30분 전 1 hour before 1시간 전 1 day before 1일 전 2 days before 2일 전 1 week before 1주일 전 On start day (9:00 AM) 시작일 (오전 9:00) Type: 종류: Description: 설명: All Day: 하루 종일: Starts: 시작: Ends: 종료 Remind Me: 알림 메시지: Repeat: 반복: End Repeat: 종료 반복: Type 타입 Work 작업 Life 생활 Other 기타 Description 설명 All Day 하루 종일 Starts 시작 Ends 종료 Remind Me 알림 Repeat 다시 Daily 매일 Weekdays 요일 Weekly 매주 Monthly 매달 Yearly 매년 End Repeat 반복 종료 After 이후 On 진행 time(s) 시간 Cancel button 취소 Save button 저장 CScheduleOperation All occurrences of a repeating event must have the same all-day status. 반복 이벤트의 모든 발생은 하루 종일 동일한 상태를 가져야 합니다. Do you want to change all occurrences? 모든 항목을 변경하시겠습니까? Change All 모두 변경 You are changing the repeating rule of this event. 이 이벤트의 반복 규칙을 변경하고 있습니다. You are deleting an event. 이벤트를 삭제하는 중. Are you sure you want to delete this event? 이 이벤트를 삭제하시겠습니까? Cancel button 취소 Delete button 삭제 Do you want to delete all occurrences of this event, or only the selected occurrence? 이 이벤트의 모든 발생 항목을 삭제하시겠습니까, 아니면 선택한 발생 항목만 삭제하시겠습니까? Delete All 모두 삭제 Delete Only This Event 이 이벤트만 삭제 Do you want to delete this and all future occurrences of this event, or only the selected occurrence? 이 이벤트와 이 이벤트의 모든 향후 발생 항목을 삭제하시겠습니까? 아니면 선택한 발생 항목만 삭제하시겠습니까? Delete All Future Events 모든 향후 이벤트 삭제 You are changing a repeating event. 반복 이벤트를 변경하는 중입니다. Do you want to change only this occurrence of the event, or all occurrences? 이벤트의 이 발생만 변경하시겠습니까, 아니면 모든 발생을 변경하시겠습니까? All 모두 Only This Event 이 이벤트만 Do you want to change only this occurrence of the event, or this and all future occurrences? 이벤트의 이 발생만 변경하시겠습니까, 아니면 이 발생과 향후 모든 발생만 변경하시겠습니까? All Future Events 모든 향후 이벤트 CScheduleSearchDateItem Y M D CScheduleSearchItem Edit 편집 Delete 삭제 All Day 하루 종일 CScheduleSearchView No search results 검색결과가 없습니다. CScheduleView ALL DAY 하루 종일 CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y M W D CWeekWindow Week 일주일 Y CYearScheduleView All Day 하루 종일 No event 이벤트 없음 CYearWindow Y CalendarWindow Calendar 달력 Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. 캘린더는 날짜를 볼 수있는 도구이며, 일상의 모든 것을 예약 할 수있는 현명한 일일 플래너입니다 Calendarmainwindow Calendar 달력 CenterWidget All Day 하루 종일 DragInfoGraphicsView Edit 편집 Delete 삭제 New event 새 이벤트 New Event 새 이벤트 Return Today Return 오늘 Return Today Today Return Today 오늘 Shortcut Help 도움말 Delete event 이벤트 삭제 Copy 복사 Cut 잘라내기 Paste 붙여넣기 Delete 삭제 Select all 전체 선택 YearFrame Y today Today Today 오늘 dde-calendar-5.9.1/translations/dde-calendar_lv.ts000066400000000000000000000742101423264401600221340ustar00rootroot00000000000000 CDayMonthView Monday Pirmdiena Tuesday Otrdiena Wednesday Trešdiena Thursday Ceturtdiena Friday Piektdiena Saturday Sestdiena Sunday Svētdiena CDayWindow Y G M M D D CGraphicsView New Event Jauns notikums CMonthScheduleNumItem %1 more %1 vairāk CMonthView New event Jauns notikums New Event Jauns notikums CMonthWindow Y G CMyScheduleView My Event Mans notikums OK button Labi Delete button Dzēst Edit button Rediģēt CScheduleDlg New Event Jauns notikums Edit Event Rediģēt notikumu End time must be greater than start time Beigu laikam ir jābūt vēlākam kā sākuma laikam OK button Labi Never Nekad At time of event Notikuma laikā 15 minutes before 15 minūtes pirms 30 minutes before 30 minūtes pirms 1 hour before 1 Stundu pirms 1 day before 1 Dienu pirms 2 days before 2 Dienas pirms 1 week before 1 Nedēļu pirms On start day (9:00 AM) Dienas sākumā (9:00) Type: Veids: Description: Apraksts: All Day: Visu dienu: Starts: Sākas: Ends: Beidzas: Remind Me: Atgādināt: Repeat: Atkārtot: End Repeat: Beigt atkārtošanu: Type Veids Work Darbs Life Dzīve Other Cits Description Apraksts All Day Visu dienu Starts Sākas Ends Beidzas Remind Me Atgādināt Repeat Atkārtot Daily Katru dienu Weekdays Darba dienās Weekly Katru nedēļu Monthly Katru mēnesi Yearly Katru gadu End Repeat Beigt atkārtošanu After Pēc On Līdz time(s) reize(s) Cancel button Atcelt Save button Saglabāt CScheduleOperation All occurrences of a repeating event must have the same all-day status. Visiem periodiska notikuma atkārtojumiem ir jābūt identiskam visas dienas statusam Do you want to change all occurrences? Vai vēlaties mainīt visus periodiskos atkārtojumus? Change All Mainīt visus You are changing the repeating rule of this event. Jūs maināt notikuma periodiskas atkārtošanās iestatījumus You are deleting an event. Jūs dzēšat notikumu Are you sure you want to delete this event? Vai esat drošs, ka vēlaties dzēst šo notikumu? Cancel button Atcelt Delete button Dzēst Do you want to delete all occurrences of this event, or only the selected occurrence? Jūs vēlaties dzēst visus periodiskos notikumus vai tikai atlasīto notikumu? Delete All Dzēst visu Delete Only This Event Dzēst Tikai Šo Notikumu Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Jūs vēlaties dzēst šo un turpmākos notikums vai tikai šo notikumu? Delete All Future Events Dzēst visus nākotnes notikums You are changing a repeating event. Jūs maināt periodisku notikumu. Do you want to change only this occurrence of the event, or all occurrences? Jūs vēlaties mainīt tikai šo notikumu vai visus periodiskos notikumus? All Visi Only This Event Tikai Šo Notikumu Do you want to change only this occurrence of the event, or this and all future occurrences? Jūs vēlaties mainīt tikai šo notikumu vai šo un visus turpmākos notikumus? All Future Events Visus Turpmākos Notikumus CScheduleSearchDateItem Y G M M D D CScheduleSearchItem Edit Rediģēt Delete Dzēst All Day Visu dienu CScheduleSearchView No search results Nav atrasts neviens rezultāts CScheduleView ALL DAY VISU DIENU CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y G M M W N D D CWeekWindow Week Nedēļa Y G CYearScheduleView All Day Visu dienu No event Nav notikumu CYearWindow Y G CalendarWindow Calendar Kalendārs Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalendārs ir palīgs ikdienas dzīvē kas palīdz sakārtot tavu laiku. Calendarmainwindow Calendar Kalendārs CenterWidget All Day Visu dienu DragInfoGraphicsView Edit Rediģēt Delete Dzēst New event Jauns notikums New Event Jauns notikums Return Today Return Šodiena Return Today Today Return Today Šodiena Shortcut Help Palīdzība Delete event Dzēst notikumu Copy Kopēt Cut Izgriezt Paste Ielīmēt Delete Dzēst Select all Izvēlēties visus YearFrame Y G today Today Today Šodiena dde-calendar-5.9.1/translations/dde-calendar_ms.ts000066400000000000000000000742631423264401600221420ustar00rootroot00000000000000 CDayMonthView Monday Isnin Tuesday Selasa Wednesday Rabu Thursday Khamis Friday Jumaat Saturday Sabtu Sunday Ahad CDayWindow Y T M B D H CGraphicsView New Event Peristiwa Baharu CMonthScheduleNumItem %1 more %1 lagi CMonthView New event Peristiwa baharu New Event Peristiwa Baharu CMonthWindow Y T CMyScheduleView My Event Peristiwa Saya OK button OK Delete button Padam Edit button Sunting CScheduleDlg New Event Peristiwa Baharu Edit Event Sunting Peristiwa End time must be greater than start time Masa tamat mesti lebih besar dari masa mula OK button OK Never Tidak sesekali At time of event Semua tempoh peristiwa 15 minutes before 15 minit sebelum 30 minutes before 30 minit sebelum 1 hour before 1 jam sebelum 1 day before 1 hari sebelum 2 days before 2 hari sebelum 1 week before 1 minggu sebelum On start day (9:00 AM) Pada hari mula (9:00 AM) Type: Jenis: Description: Keterangan: All Day: Sepanjang Hari: Starts: Mula: Ends: Tamat: Remind Me: Ingatkan Saya: Repeat: Ulang: End Repeat: Tamat Ulang: Type Jenis Work Kerja Life Lapang Other Lain-lain Description Keterangan All Day Sepanjang Hari Starts Mula Ends Tamat Remind Me Ingatkan Saya Repeat Ulang Daily Harian Weekdays Hari Bekerja Weekly Mingguan Monthly Bulanan Yearly Tahunan End Repeat Tamat Ulang After Selepas On Pada time(s) kali Cancel button Batal Save button Simpan CScheduleOperation All occurrences of a repeating event must have the same all-day status. Semua kemunculan bagi peristiwa berulang mesti mempunyai status sepanjang-hari yang sama. Do you want to change all occurrences? Anda pasti mahu mengubah semua kemunculan? Change All Ubah Semua You are changing the repeating rule of this event. Anda mengubah peraturan berulang bagi peristiwa ini. You are deleting an event. Anda telah memadam satu peristiwa. Are you sure you want to delete this event? Anda pasti mahu memadam peristiwa ini? Cancel button Batal Delete button Padam Do you want to delete all occurrences of this event, or only the selected occurrence? Anda pasti mahu memadam semua kemunculan peristiwa ini, atau hanya kemunculan terpilih? Delete All Padam Semua Delete Only This Event Hanya Padam Peristiwa Ini Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Anda pasti mahu memadam semua kemunculan peristiwa ini dan akan datang, atau hanya kemunculan terpilih? Delete All Future Events Padam Semua Peristiwa Akan Datang You are changing a repeating event. Anda mengubah satu peristiwa berulang. Do you want to change only this occurrence of the event, or all occurrences? Anda pasti mahu mengubah hanya kemunculan peristiwa ini, atau semua kemunculan? All Semua Only This Event Hanya Peristiwa Ini Do you want to change only this occurrence of the event, or this and all future occurrences? Anda pasti mahu mengubah hanya kemunculan peristiwa ini, atau ini dan semua kemunculan masa hadapan? All Future Events Semua Peristiwa Masa Hadapan CScheduleSearchDateItem Y T M B D H CScheduleSearchItem Edit Sunting Delete Padam All Day Sepanjang Hari CScheduleSearchView No search results Tiada keputusan gelintar CScheduleView ALL DAY SEPANJANG HARI CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y T M B W M D H CWeekWindow Week Minggu Y T CYearScheduleView All Day Sepanjang Hari No event Tiada peristiwa CYearWindow Y T CalendarWindow Calendar Kalendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalendar ialah sebuah alat untuk melihat tarikh, dan juga satu perancang harian pintar yang dapat menjadualkan semua perkara dalam hidup ini. Calendarmainwindow Calendar Kalendar CenterWidget All Day Sepanjang Hari DragInfoGraphicsView Edit Sunting Delete Padam New event Peristiwa baharu New Event Peristiwa Baharu Return Today Return Hari ini Return Today Today Return Today Hari ini Shortcut Help Bantuan Delete event Padam peristiwa Copy Salin Cut Potong Paste Tampal Delete Padam Select all Pilih semua YearFrame Y T today Today Today Hari ini dde-calendar-5.9.1/translations/dde-calendar_nl.ts000066400000000000000000001131671423264401600221310ustar00rootroot00000000000000 CColorPickerWidget Color Kleur Cancel button Annuleren Save button Opslaan Cancel Save CDayMonthView Monday Maandag Tuesday Dinsdag Wednesday Woensdag Thursday Donderdag Friday Vrijdag Saturday Zaterdag Sunday Zondag CDayWindow Y J M M D D CGraphicsView New Event Nieuwe afspraak CMonthScheduleNumItem %1 more Nog %1 andere CMonthView New event Nieuwe afspraak New Event Nieuwe afspraak CMonthWindow Y J CMyScheduleView My Event Mijn afspraak OK button Oké Delete button Verwijderen Edit button Bewerken CPushButton New event type Nieuw afspraaktype CScheduleDlg New Event Nieuwe afspraak Edit Event Afspraak bewerken End time must be greater than start time De eindtijd moet later zijn dan de begintijd OK button Oké Never Nooit At time of event Bij aanvang 15 minutes before 15 minuten van tevoren 30 minutes before 30 minuten van tevoren 1 hour before 1 uur van tevoren 1 day before 1 dag van tevoren 2 days before 2 dagen van tevoren 1 week before 1 week van tevoren On start day (9:00 AM) Op de dag van de afspraak (9:00 AM) Enter a name please Voer een naam in The name can not only contain whitespaces De naam mag niet alleen bestaan uit spaties The name already exists Deze naam is al in gebruik Type: Soort: Description: Omschrijving: All Day: Hele dag: Starts: Begint om: Ends: Eindigt om: Remind Me: Herinneren: Repeat: Herhalen: End Repeat: Herhaling eindigt op: Type Soort Work Zakelijk Life Persoonlijk Other Overig Description Omschrijving All Day Hele dag Time: Tijdstip: Time Tijdstip Solar Zon Lunar Maan Starts Begint om Ends Eindigt om Remind Me Herinneren Repeat Herhalen Daily Dagelijks Weekdays Weekdagen Weekly Wekelijks Monthly Maandelijks Yearly Jaarlijks End Repeat Herhaling eindigt op After Na On Op time(s) keer Cancel button Annuleren Save button Opslaan CScheduleOperation All occurrences of a repeating event must have the same all-day status. Alle afspraken in reeks moeten voorzien zijn van de status 'hele dag'. Do you want to change all occurrences? Wil je alle afspraken in de reeks bewerken? Change All Reeks bewerken You are changing the repeating rule of this event. Je past de herhaalinstellingen van deze afspraak aan. You are deleting an event. Je verwijdert een afspraak. Are you sure you want to delete this event? Weet je zeker dat je deze afspraak wilt verwijderen? Cancel button Annuleren Delete button Verwijderen Do you want to delete all occurrences of this event, or only the selected occurrence? Wil je alle afspraken in de reeks verwijderen of enkel deze? Delete All Reeks verwijderen Delete Only This Event Deze afspraak verwijderen Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Wil je deze en toekomstige afspraken verwijderen of enkel de deze? Delete All Future Events Toekomstige afspraken verwijderen You are changing a repeating event. Je past een reeks afspraken aan. Do you want to change only this occurrence of the event, or all occurrences? Wil je deze en toekomstige afspraken aanpassen of enkel deze? All Reeks Only This Event Deze afspraak Do you want to change only this occurrence of the event, or this and all future occurrences? Wil je deze en toekomstige afspraken aanpassen of enkel deze? All Future Events Toekomstige afspraken You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y J M M D D CScheduleSearchItem Edit Bewerken Delete Verwijderen All Day Hele dag CScheduleSearchView No search results Geen zoekresultaten CScheduleView ALL DAY HELE DAG CTimeEdit (%1 mins) (%1 min.) (%1 hour) (%1 uur) (%1 hours) (%1 uur) CTitleWidget Y J M M W W D D CWeekWindow Week Week Y J CYearScheduleView All Day Hele dag No event Geen afspraak CYearWindow Y J CalendarWindow Calendar Kalender Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Met Kalender kun je je afspraken en planning beheren, zowel werk als privé. Calendarmainwindow Calendar Kalender Manage Beheren CenterWidget All Day Hele dag DragInfoGraphicsView Edit Aanpassen Delete Verwijderen New event Nieuwe afspraak New Event Nieuwe afspraak JobTypeListView You are deleting an event type. Je staat op het punt om een afspraaktype te verwijderen. All events under this type will be deleted and cannot be recovered. Alle bijbehorende afspraken worden verwijderd en kunnen niet worden hersteld. Cancel button Annuleren Delete button Verwijderen QObject Manage calendar Agenda beheren Event types Afspraaktypes Return Today Return Vandaag Return Today Today Return Today Vandaag ScheduleTypeEditDlg New event type Nieuw afspraaktype Edit event type Afspraaktype bewerken Name: Naam: Color: Kleur: Cancel button Annuleren Save button Opslaan Enter a name please Voer een naam in The name can not only contain whitespaces De naam mag niet alleen bestaan uit spaties The name already exists Deze naam is al in gebruik Shortcut Help Hulp Delete event Afspraak verwijderen Copy Kopiëren Cut Knippen Paste Plakken Delete Verwijderen Select all Alles selecteren YearFrame Y J today Today Today Vandaag dde-calendar-5.9.1/translations/dde-calendar_pl.ts000066400000000000000000001134131423264401600221250ustar00rootroot00000000000000 CColorPickerWidget Color Kolor Cancel button Anuluj Save button Zapisz Cancel Save CDayMonthView Monday Poniedziałek Tuesday Wtorek Wednesday Środa Thursday Czwartek Friday Piątek Saturday Sobota Sunday Niedziela CDayWindow Y R M M D D CGraphicsView New Event Nowe wydarzenie CMonthScheduleNumItem %1 more jeszcze 1% CMonthView New event Nowe wydarzenie New Event Nowe wydarzenie CMonthWindow Y R CMyScheduleView My Event Moje wydarzenie OK button OK Delete button Usuń Edit button Edytuj CPushButton New event type Nowy typ wydarzenia CScheduleDlg New Event Nowe wydarzenie Edit Event Edytuj wydarzenie End time must be greater than start time Czas zakończenia musi być późniejszy niż czas rozpoczęcia OK button OK Never Nigdy At time of event W czasie wydarzenia 15 minutes before 15 minut przed 30 minutes before 30 minut przed 1 hour before 1 godzinę przed 1 day before 1 dzień przed 2 days before 2 dni przed 1 week before 1 tydzień przed On start day (9:00 AM) W dniu rozpoczęcia (9:00) Enter a name please Wprowadź nazwę The name can not only contain whitespaces Nazwa nie może zawierać tylko znaków spacji The name already exists Taka nazwa już istnieje Type: Typ: Description: Opis: All Day: Cały dzień: Starts: Początek: Ends: Koniec: Remind Me: Przypomnij mi: Repeat: Powtórz: End Repeat: Zakończ powtarzanie: Type Typ Work Praca Life Życie Other Inne Description Opis All Day Cały dzień Time: Data: Time Data Solar Słoneczny Lunar Księżycowy Starts Początek Ends Koniec Remind Me Przypomnij mi Repeat Powtórz Daily Codziennie Weekdays W dni robocze Weekly Co tydzień Monthly Co miesiąc Yearly Co rok End Repeat Zakończ Powtarzanie After Po On time(s) raz(y) Cancel button Anuluj Save button Zapisz CScheduleOperation All occurrences of a repeating event must have the same all-day status. Wszystkie wystąpienia powtarzającego się wydarzenia muszą zawierać ten sam stan całodniowy. Do you want to change all occurrences? Czy chcesz zmienić wszystkie wystąpienia? Change All Zmień wszystkie You are changing the repeating rule of this event. Zmieniasz regułę powtarzania tego wydarzenia. You are deleting an event. Usuwasz wydarzenie. Are you sure you want to delete this event? Czy na pewno chcesz usunąć to wydarzenie? Cancel button Anuluj Delete button Usuń Do you want to delete all occurrences of this event, or only the selected occurrence? Czy chcesz usunąć wszystkie wystąpienia tego zdarzenia, czy tylko wybrane wystąpienie? Delete All Usuń wszystko Delete Only This Event Usuń tylko to wydarzenie Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Czy chcesz usunąć to i wszystkie przyszłe wystąpienia tego wydarzenia, czy tylko wybrane wystąpienie? Delete All Future Events Usuń wszystkie przyszłe wydarzenia You are changing a repeating event. Zmieniasz powtarzające się wydarzenie. Do you want to change only this occurrence of the event, or all occurrences? Czy chcesz zmienić tylko to wystąpienie wydarzenia, czy wszystkie wydarzenia? All Wszystko Only This Event Tylko to wydarzenie Do you want to change only this occurrence of the event, or this and all future occurrences? Czy chcesz zmienić tylko to wystąpienie wydarzenia, czy to i wszystkie przyszłe wydarzenia? All Future Events Wszystkie przyszłe wydarzenia You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y R M M D D CScheduleSearchItem Edit Edytuj Delete Usuń All Day Cały dzień CScheduleSearchView No search results Brak wyników wyszukiwania CScheduleView ALL DAY CAŁY DZIEŃ CTimeEdit (%1 mins) (%1 minut) (%1 hour) (%1 godzina) (%1 hours) (%1 godzin) CTitleWidget Y R M M W T D D CWeekWindow Week Tydzień Y Y CYearScheduleView All Day Cały dzień No event Brak wydarzeń CYearWindow Y Y CalendarWindow Calendar Kalendarz Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalendarz to narzędzie do przeglądania dat, a także inteligentny planer dzienny do planowania wszystkich rzeczy w życiu. Calendarmainwindow Calendar Kalendarz Manage Zarządzaj CenterWidget All Day Cały dzień DragInfoGraphicsView Edit Edytuj Delete Usuń New event Nowe wydarzenie New Event Nowe wydarzenie JobTypeListView You are deleting an event type. Usuwasz typ wydarzenia. All events under this type will be deleted and cannot be recovered. Wszystkie wydarzenia skatalogowane pod tym typem zostaną usunięte i nie będzie można ich przywrócić. Cancel button Anuluj Delete button Usuń QObject Manage calendar Zarządzaj kalendarzem Event types Typy wydarzeń Return Today Return Dzisiaj Return Today Today Return Today Dzisiaj ScheduleTypeEditDlg New event type Nowy typ wydarzenia Edit event type Edytuj typ wydarzenia Name: Nazwa: Color: Kolor: Cancel button Anuluj Save button Zapisz Enter a name please Wprowadź nazwę The name can not only contain whitespaces Nazwa nie może zawierać tylko znaków spacji The name already exists Taka nazwa już istnieje Shortcut Help Pomoc Delete event Usuń wydarzenie Copy Kopiuj Cut Wytnij Paste Wklej Delete Usuń Select all Zaznacz wszystko YearFrame Y Y today Today Today Dzisiaj dde-calendar-5.9.1/translations/dde-calendar_pt.ts000066400000000000000000001124541423264401600221410ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Save button Cancel Save CDayMonthView Monday Seg Tuesday Ter Wednesday Qua Thursday Qui Friday Sex Saturday Sáb Sunday Dom CDayWindow Y A M M D D CGraphicsView New Event Novo evento CMonthScheduleNumItem %1 more mais %1 CMonthView New event Novo evento New Event Novo evento CMonthWindow Y A CMyScheduleView My Event O meu evento OK button Aceitar Delete button Eliminar Edit button Editar CPushButton New event type CScheduleDlg New Event Novo evento Edit Event Editar evento End time must be greater than start time A hora de fim deve ser maior do que a hora de início OK button Aceitar Never Nunca At time of event Na hora do evento 15 minutes before 15 minutos antes 30 minutes before 30 minutos antes 1 hour before 1 hora antes 1 day before 1 dia antes 2 days before 2 dias antes 1 week before 1 semana antes On start day (9:00 AM) No início do dia (9:00 AM) Enter a name please The name can not only contain whitespaces The name already exists Type: Tipo: Description: Descrição: All Day: Dia todo: Starts: Inicia: Ends: Termina: Remind Me: Lembrar-me: Repeat: Repetir: End Repeat: Fim de repetição: Type Tipo Work Trabalho Life Vida Other Outros Description Descrição All Day Dia todo Time: Time Solar Lunar Starts Inicia Ends Termina Remind Me Lembrar-me Repeat Repetir Daily Diário Weekdays Dias da semana Weekly Semanal Monthly Mensal Yearly Anual End Repeat Fim da repetição After Depois On Em time(s) vez(es) Cancel button Cancelar Save button Guardar CScheduleOperation All occurrences of a repeating event must have the same all-day status. Todas as ocorrências de um evento repetido devem ter o mesmo estado durante todo o dia. Do you want to change all occurrences? Deseja alterar todas as ocorrências? Change All Alterar tudo You are changing the repeating rule of this event. Está a alterar a regra da repetição deste evento. You are deleting an event. Está a eliminar um evento. Are you sure you want to delete this event? Tem a certeza que deseja eliminar este evento? Cancel button Cancelar Delete button Eliminar Do you want to delete all occurrences of this event, or only the selected occurrence? Deseja eliminar todas as ocorrências deste evento ou apenas a ocorrência selecionada? Delete All Eliminar tudo Delete Only This Event Eliminar apenas este evento Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Deseja eliminar esta e todas as ocorrências futuras deste evento ou apenas a ocorrência selecionada? Delete All Future Events Eliminar todos os eventos futuros You are changing a repeating event. Está a alterar um evento repetido. Do you want to change only this occurrence of the event, or all occurrences? Deseja alterar apenas esta ocorrência do evento, ou todas as ocorrências? All Tudo Only This Event Apenas este evento Do you want to change only this occurrence of the event, or this and all future occurrences? Deseja alterar apenas esta ocorrência do evento ou esta e todas as ocorrências futuras? All Future Events Todos os eventos futuros You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y A M M D D CScheduleSearchItem Edit Editar Delete Eliminar All Day Dia todo CScheduleSearchView No search results Sem resultados de pesquisa CScheduleView ALL DAY DIA TODO CTimeEdit (%1 mins) (%1 mins) (%1 hour) (%1 hora) (%1 hours) (%1 horas) CTitleWidget Y A M M W S D D CWeekWindow Week Semana Y A CYearScheduleView All Day Dia todo No event Nenhum evento CYearWindow Y A CalendarWindow Calendar Calendário Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. O Calendário é uma ferramenta para visualizar datas e também uma agenda diária inteligente para agendar todas as coisas na vida. Calendarmainwindow Calendar Calendário Manage CenterWidget All Day Dia todo DragInfoGraphicsView Edit Editar Delete Eliminar New event Novo evento New Event Novo evento JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Hoje Return Today Today Return Today Hoje ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Ajuda Delete event Eliminar evento Copy Copiar Cut Cortar Paste Colar Delete Eliminar Select all Selecionar tudo YearFrame Y A today Today Today Hoje dde-calendar-5.9.1/translations/dde-calendar_pt_BR.ts000066400000000000000000000740641423264401600225300ustar00rootroot00000000000000 CDayMonthView Monday Segunda-feira Tuesday Terça-feira Wednesday Quarta-feira Thursday Quinta-feira Friday Sexta-feira Saturday Sábado Sunday Domingo CDayWindow Y A M M D D CGraphicsView New Event Novo Evento CMonthScheduleNumItem %1 more %1 mais CMonthView New event Novo evento New Event Novo Evento CMonthWindow Y A CMyScheduleView My Event Evento OK button OK Delete button Excluir Edit button Editar CScheduleDlg New Event Novo Evento Edit Event Editar Evento End time must be greater than start time O tempo de término deve ser maior que o tempo de início OK button OK Never Nunca At time of event No momento do evento 15 minutes before 15 minutos antes 30 minutes before 30 minutos antes 1 hour before 1 hora antes 1 day before 1 dia antes 2 days before 2 dias antes 1 week before 1 semana antes On start day (9:00 AM) No dia de início (9:00 AM) Type: Tipo: Description: Descrição: All Day: Dia Inteiro: Starts: Inicia em: Ends: Termina em: Remind Me: Lembre-me: Repeat: Repetir: End Repeat: Termina em: Type Tipo Work Trabalho Life Vida Pessoal Other Outro Description Descrição All Day Dia Inteiro Starts Inicia em Ends Termina em Remind Me Lembre-me Repeat Repetir Daily Diariamente Weekdays Dias úteis Weekly Semanalmente Monthly Mensalmente Yearly Anualmente End Repeat Termina em After Depois On Ativo time(s) vez(es) Cancel button Cancelar Save button Salvar CScheduleOperation All occurrences of a repeating event must have the same all-day status. Todas as ocorrências de um evento repetitivo devem ter o mesmo status durante o dia inteiro. Do you want to change all occurrences? Alterar todas as ocorrências? Change All Alterar Tudo You are changing the repeating rule of this event. A regra de repetição deste evento será alterada. You are deleting an event. Um evento será excluído. Are you sure you want to delete this event? Excluir este evento? Cancel button Cancelar Delete button Excluir Do you want to delete all occurrences of this event, or only the selected occurrence? Excluir todas as ocorrências deste evento; ou apenas a ocorrência selecionada? Delete All Excluir Tudo Delete Only This Event Excluir Apenas Este Evento Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Excluir este evento e todas as suas ocorrências futuras; ou apenas a ocorrência selecionada? Delete All Future Events Excluir Todos os Eventos Futuros You are changing a repeating event. Um evento repetido será alterado. Do you want to change only this occurrence of the event, or all occurrences? Alterar apenas esta ocorrência do evento; ou todas as ocorrências? All Tudo Only This Event Apenas Este Evento Do you want to change only this occurrence of the event, or this and all future occurrences? Alterar apenas esta ocorrência do evento; ou esta e todas as ocorrências futuras? All Future Events Todos os Eventos Futuros CScheduleSearchDateItem Y A M M D D CScheduleSearchItem Edit Editar Delete Excluir All Day Dia Inteiro CScheduleSearchView No search results Nenhum resultado encontrado CScheduleView ALL DAY DIA INTEIRO CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y A M M W S D D CWeekWindow Week Semana Y A CYearScheduleView All Day Dia Inteiro No event Nenhum evento CYearWindow Y A CalendarWindow Calendar Calendário Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. O Calendário é uma ferramenta que permite agendar e visualizar eventos. Calendarmainwindow Calendar Calendário CenterWidget All Day Dia Inteiro DragInfoGraphicsView Edit Editar Delete Excluir New event Novo evento New Event Novo Evento Return Today Return Hoje Return Today Today Return Today Hoje Shortcut Help Ajuda Delete event Excluir evento Copy Copiar Cut Recortar Paste Colar Delete Excluir Select all Selecionar Tudo YearFrame Y A today Today Today Hoje dde-calendar-5.9.1/translations/dde-calendar_ro.ts000066400000000000000000000745041423264401600221410ustar00rootroot00000000000000 CDayMonthView Monday Luni Tuesday Marţi Wednesday Miercuri Thursday Joi Friday Vineri Saturday Sâmbătă Sunday Duminică CDayWindow Y Y M l D z CGraphicsView New Event Eveniment nou CMonthScheduleNumItem %1 more %1 mai mult CMonthView New event Eveniment nou New Event Eveniment nou CMonthWindow Y A CMyScheduleView My Event Evenimentul meu OK button Ok Delete button Ștergeți Edit button Editare CScheduleDlg New Event Eveniment nou Edit Event Editare eveniment End time must be greater than start time Ora de încheiere trebuie să fie mai mare decât ora de început OK button Ok Never Niciodată At time of event La momentul evenimentului 15 minutes before Cu 15 minute înainte 30 minutes before Cu 30 minute înainte 1 hour before Cu 1 oră înainte 1 day before Cu 1 zi înainte 2 days before Cu 2 zile înainte 1 week before Cu 1 săptămână înainte On start day (9:00 AM) Începutul zilei (9:00 AM) Type: Tip: Description: Descriere: All Day: Toată ziua: Starts: Începe: Ends: Se termină: Remind Me: Aminteşte-mi: Repeat: Repetă: End Repeat: Repetarea se termină: Type Tip Work Serviciu Life Viaţă Other Altul Description Descriere All Day Toată ziua Starts Începe Ends Se termină Remind Me Aminteşte-mi Repeat Repetă Daily Zilnic Weekdays Zilele saptămânii Weekly Săptămânal Monthly Lunar Yearly Anual End Repeat Opreşte repetarea After După On Pornire time(s) ori Cancel button Anulează Save button Salvare CScheduleOperation All occurrences of a repeating event must have the same all-day status. Toate aparițiile unui eveniment repetat trebuie să aibă același statut toată ziua. Do you want to change all occurrences? Doriți să schimbați toate aparițiile? Change All Schimbă tot You are changing the repeating rule of this event. Modificați regula de repetare a acestui eveniment. You are deleting an event. Ştergeţi un eveniment. Are you sure you want to delete this event? Sigur doriţi să ştergeţi acest eveniment? Cancel button Anulează Delete button Ștergeți Do you want to delete all occurrences of this event, or only the selected occurrence? Doriți să ștergeți toate aparițiile acestui eveniment sau doar evenimentul selectat? Delete All Şterge tot Delete Only This Event Şterge doar acest eveniment Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Doriți să ștergeți toate aparițiile acestui eveniment sau doar evenimentul selectat? Delete All Future Events Şterge toate evenimentele viitoare You are changing a repeating event. Modificați un eveniment care se repetă. Do you want to change only this occurrence of the event, or all occurrences? Doriți să schimbați doar această apariție a evenimentului sau toate evenimentele? All Tot Only This Event Doar acest eveniment Do you want to change only this occurrence of the event, or this and all future occurrences? Doriți să schimbați doar această apariție a evenimentului sau aceasta și toate evenimentele viitoare? All Future Events Toate evenimentele viitoare CScheduleSearchDateItem Y A M L D Z CScheduleSearchItem Edit Editează Delete Șterge All Day Toată ziua CScheduleSearchView No search results Niciun rezultat la căutare CScheduleView ALL DAY TOATĂ ZIUA CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y A M L W S D Z CWeekWindow Week Săptămână Y A CYearScheduleView All Day Toată ziua No event Nici un eveniment CYearWindow Y A CalendarWindow Calendar Calendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Calendarul este un instrument pentru a vizualiza datele și, de asemenea, un planificator inteligent zilnic pentru a programa toate lucrurile din viață. Calendarmainwindow Calendar Calendar CenterWidget All Day Toată ziua DragInfoGraphicsView Edit Editare Delete Ștergeți New event Eveniment nou New Event Eveniment nou Return Today Return Astăzi Return Today Today Return Today Astăzi Shortcut Help Ajutor Delete event Ştergere eveniment Copy Copiere Cut Tăiere Paste Lipire Delete Ștergeți Select all Selectează totul YearFrame Y A today Today Today Astăzi dde-calendar-5.9.1/translations/dde-calendar_ru.ts000066400000000000000000001155051423264401600221440ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Save button Cancel Save CDayMonthView Monday Понедельник Tuesday Вторник Wednesday Среда Thursday Четверг Friday Пятница Saturday Суббота Sunday Воскресенье CDayWindow Y Г M М D Д CGraphicsView New Event Новое Событие CMonthScheduleNumItem %1 more более %1 CMonthView New event Новое событие New Event Новое Событие CMonthWindow Y Г CMyScheduleView My Event Моё событие OK button OK Delete button Удалить Edit button Редактировать CPushButton New event type CScheduleDlg New Event Новое событие Edit Event Редактировать событие End time must be greater than start time Время окончания должно быть больше времени начала OK button OK Never Никогда At time of event Во время события 15 minutes before За 15 минут до этого 30 minutes before За 30 минут до этого 1 hour before За 1 час до этого 1 day before За 1 день до этого 2 days before За 2 дня до этого 1 week before За 1 неделю до этого On start day (9:00 AM) В день начала (9:00) Enter a name please The name can not only contain whitespaces The name already exists Type: Тип: Description: Описание: All Day: Весь день: Starts: Начинается: Ends: Заканчивается: Remind Me: Напомнить: Repeat: Повторять: End Repeat: Повторять до: Type Тип Work Работа Life Жизнь Other Другое Description Описание All Day Весь день Time: Time Solar Lunar Starts Начало Ends Конец Remind Me Напомнить Repeat Повторять Daily Ежедневно Weekdays По будням Weekly Еженедельно Monthly Ежемесячно Yearly Ежегодно End Repeat Повторять до: After После On Вкл. time(s) раз(а) Cancel button Отмена Save button Сохранить CScheduleOperation All occurrences of a repeating event must have the same all-day status. Все экземпляры повторяющегося события должны иметь одинаковый статус в течение всего дня. Do you want to change all occurrences? Вы хотите изменить все экземпляры? Change All Изменить все You are changing the repeating rule of this event. Вы изменяете правило повторения этого события. You are deleting an event. Вы удаляете событие. Are you sure you want to delete this event? Вы действительно хотите удалить событие? Cancel button Отмена Delete button Удалить Do you want to delete all occurrences of this event, or only the selected occurrence? Вы хотите удалить все экземпляры данного события или только выбранного экземпляра? Delete All Удалить все Delete Only This Event Удалить только это событие Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Вы хотите удалить только это и будущие проявления события или только выбранные проявления? Delete All Future Events Удалить Все Будущие События You are changing a repeating event. Вы изменяете повторяющееся событие Do you want to change only this occurrence of the event, or all occurrences? Вы хотите изменить только это проявление события или все проявления. All Все Only This Event Только Это Событие Do you want to change only this occurrence of the event, or this and all future occurrences? Вы хотите изменить только это проявление данного события или всё событие и все будущие проявления? All Future Events Только Будущие События You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y Г M М D Д CScheduleSearchItem Edit Правка Delete Удалить All Day Весь День CScheduleSearchView No search results Поиск результатов не дал CScheduleView ALL DAY ВЕСЬ ДЕНЬ CTimeEdit (%1 mins) (%1 минут) (%1 hour) (%1 час) (%1 hours) (%1 часов) CTitleWidget Y Г M М W Н D Д CWeekWindow Week Неделя Y Г CYearScheduleView All Day Весь День No event Нет события CYearWindow Y Г CalendarWindow Calendar Календарь Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Календарь - это инструмент для просмотра дат, а также умный ежедневник для планирования всех событий вашей повседневной жизни. Calendarmainwindow Calendar Календарь Manage CenterWidget All Day Весь День: DragInfoGraphicsView Edit Редактировать Delete Удалить New event Новое событие New Event Новое Событие JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Сегодня Return Today Today Return Today Сегодня ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Помощь Delete event Удалить событие Copy Копировать Cut Вырезать Paste Вставить Delete Удалить Select all Выбрать всё YearFrame Y Г today Today Today Сегодня dde-calendar-5.9.1/translations/dde-calendar_si.ts000066400000000000000000001022301423264401600221200ustar00rootroot00000000000000 CDayMonthView Monday සඳුදා Tuesday අඟහරුවාදා Wednesday බදාදා Thursday බ්‍රහස්පතින්දා Friday සිකුරාදා Saturday සෙනසුරාදා Sunday ඉරිදා CDayWindow Y වස M මස D දින CGraphicsView New Event නව හමුවක් CMonthScheduleNumItem %1 more තවත් %1 CMonthView New event නව සිදුවීමක් New Event නව හමුවක් CMonthWindow Y වස CMyScheduleView My Event මගේ හමුව OK button හරි Delete button මකා දමන්න Edit button සංස්කරණය කරන්න CScheduleDlg New Event නව හමුවක් Edit Event හමුව සංස්කරණය කරන්න End time must be greater than start time අවසන් කෙරෙන වේලාව ආරම්භ කෙරෙන වේලාවට වඩා වැඩි විය යුතුය OK button හරි Never කිසිදා නැත At time of event හමුව යොදාගත් වේලාවේදී 15 minutes before මිනිත්තු 15 කට පෙර 30 minutes before මින්ත්තු 30 කට පෙර 1 hour before පැය 1 කට පෙර 1 day before දින 1 කට පෙර 2 days before දින 2 කට පෙර 1 week before සති 1 කට පෙර On start day (9:00 AM) ඇරඹෙන දින (පෙ.ව 9.00) Type: වර්ගය: Description: විස්තරය: All Day: දිනය පුරාම: Starts: අ‍ාරම්භය: Ends: අවසානය: Remind Me: මට මතක් කරන්න: Repeat: නැවත කරන්න: End Repeat: පුනරාවර්තනය අවසන් කරන්න: Type වර්ගය Work කාර්යය Life ජීවිතය Other වෙනත් Description විස්තරය All Day දිනය පුරාම Starts ආරම්භය Ends අවසානය Remind Me මට මතක් කරන්න Repeat පුනරාවර්තන Daily දිනපතා Weekdays සතියේ දින Weekly සති පතා Monthly මාසිකව Yearly වාර්ෂිකව End Repeat පුනරාවර්තනය අවසන් කරන්න After පසුව On මත time(s) වේලාව (න්) Cancel button අවලංගු කරන්න Save button සුරකින්න CScheduleOperation All occurrences of a repeating event must have the same all-day status. පුනරාවර්තන හමුවන්ගේ සියලු හමුවන් දිනය පුරා තත්වයේ තිබිය යුතුය. Do you want to change all occurrences? ඔබට සියලු පුනරාවර්ථනයන් වෙනස් කිරීමද අවශ්‍යද? Change All සියල්ල වෙනස් කරන්න You are changing the repeating rule of this event. ඔබ මෙම හමුවේ පුනරාවර්තන රීතීන් වෙනස් කරමින් සිටී. You are deleting an event. ඔබ හමුවක් මකා දමයි. Are you sure you want to delete this event? මෙම හමුව මකා දැමීමට අවශ්‍ය බව ඔබට විශ්වාසද? Cancel button අවලංගු කරන්න Delete button මකා දමන්න Do you want to delete all occurrences of this event, or only the selected occurrence? මෙම හමුවේ සියලුම පුනරාවර්තනයන් මකා දැමීමට ඔබට අවශ්‍යද, නැතහොත් තෝරාගත් හමුව පමණක්ද? Delete All සියල්ල මකා දමන්න Delete Only This Event මෙම හමුව පමණක් මකා දමන්න Do you want to delete this and all future occurrences of this event, or only the selected occurrence? ඔබට මෙම හමුව සහ මෙම හමුවේ සැලසුම් කල සියලු හමුවන් මකා දැමීමට අවශ්‍යද, නැතහොත් මෙම තෝරාගත් හමුව පමණද? Delete All Future Events සියලු යොදාගත් හමුවන් මකා දමන්න You are changing a repeating event. ඔබ පුනරාවර්තන හමුවක් වෙනස් කරමින් සිටී. Do you want to change only this occurrence of the event, or all occurrences? ඔබට මෙම පුනරාවර්තන හමුවේ මෙම හමුව පමණක් වෙනස් කිරීමට අවශ්‍යද, නැතිනම් සියලු පුනරාවර්තනයන් වෙනස් කල යුතුද? All සියල්ලම Only This Event මෙම හමුව පමණි Do you want to change only this occurrence of the event, or this and all future occurrences? ඔබට මෙම හමුව සහ මෙම හමුවේ සැලසුම් කල සියලු හමුවන් වෙනස් කිරීමට අවශ්‍යද, නැතහොත් මෙම තෝරාගත් හමුව පමණද? All Future Events සියලුම අනාගත හමුවන් CScheduleSearchDateItem Y වස M මස D දින CScheduleSearchItem Edit සංස්කරණය කරන්න Delete මකා දමන්න All Day දිනය පුරාම CScheduleSearchView No search results සෙවුම් ප්‍රතිඵල නොමැත CScheduleView ALL DAY දිනය පුරාම CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y වස M මස W සති D දින CWeekWindow Week සතිය Y වර් CYearScheduleView All Day දිනය පුරාම No event හමුවන් නොමැත CYearWindow Y වර් CalendarWindow Calendar දින දසුන Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. දින දසුන යනු දිනයන් බැලීමට මෙන්ම ජීවිතයේ සෑම දෙයක්ම සැලසුම් කිරීමට ‍භාවිත කල හැකි දෛනික සැලසුම්කරන යෙදවුමකි. Calendarmainwindow Calendar දින දසුන CenterWidget All Day දිනය පුරාම DragInfoGraphicsView Edit සංස්කරණය කරන්න Delete මකා දමන්න New event නව සිදුවීමක් New Event නව හමුවක් Return Today Return අද Return Today Today Return Today අද Shortcut Help උදව් Delete event හමුව මකා දමන්න Copy පිටපත් කරන්න Cut කපන්න Paste අලවන්න Delete මකන්න Select all සියල්ල ලකුණු කරන්න YearFrame Y වර් today Today Today අද dde-calendar-5.9.1/translations/dde-calendar_sk.ts000066400000000000000000000741661423264401600221420ustar00rootroot00000000000000 CDayMonthView Monday Pondelok Tuesday Utorok Wednesday Streda Thursday Štvrtok Friday Piatok Saturday Sobota Sunday Nedeľa CDayWindow Y R M M D D CGraphicsView New Event Nová udalosť CMonthScheduleNumItem %1 more ešte %1 CMonthView New event Nová udalosť New Event Nová udalosť CMonthWindow Y R CMyScheduleView My Event Moja udalosť OK button OK Delete button Vymazať Edit button Upraviť CScheduleDlg New Event Nová udalosť Edit Event Upraviť udalosť End time must be greater than start time Čas ukončenia musí byť neskôr ako čas začiatku OK button OK Never Nikdy At time of event V čase udalosti 15 minutes before 15 minút pred 30 minutes before 30 minút pred 1 hour before 1 hodinu pred 1 day before 1 deň pred 2 days before 2 dni pred 1 week before 1 týždeň pred On start day (9:00 AM) V deň začiatku (9:00) Type: Typ: Description: Popis: All Day: Celý deň: Starts: Začína: Ends: Končí: Remind Me: Pripomenúť Repeat: Opakovať: End Repeat: Ukončiť opakovanie: Type Typ Work Práca Life Život Other Ostatné Description Popis All Day Celý deň Starts Začína Ends Končí Remind Me Pripomenúť Repeat Opakovať Daily Denne Weekdays Pracovné dni Weekly Týždenne Monthly Mesačne Yearly Ročne End Repeat Ukončiť opakovanie After Po On Zapnuté time(s) krát Cancel button Zrušiť Save button Uložiť CScheduleOperation All occurrences of a repeating event must have the same all-day status. Všetky výskyty opakujúcej sa udalosti musia mať rovnaký celodenný stav. Do you want to change all occurrences? Chcete zmeniť všetky výskyty? Change All Zmeniť všetky You are changing the repeating rule of this event. Meníte pravidlo opakovania tejto udalosti. You are deleting an event. Odstraňujete udalosť. Are you sure you want to delete this event? Naozaj chcete odstrániť túto udalosť? Cancel button Zrušiť Delete button Vymazať Do you want to delete all occurrences of this event, or only the selected occurrence? Chcete odstrániť všetky výskyty tejto udalosti alebo iba vybratú udalosť? Delete All Vymazať všetko Delete Only This Event Vymazať iba túto udalosť Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Chcete odstrániť tento a všetky budúce výskyty tejto udalosti alebo iba vybratú udalosť? Delete All Future Events Vymazať všetky budúce udalosti You are changing a repeating event. Meníte opakujúcu sa udalosť. Do you want to change only this occurrence of the event, or all occurrences? Chcete zmeniť iba tento výskyt udalosti alebo všetky jej výskyty? All Všetky Only This Event Iba táto udalosť Do you want to change only this occurrence of the event, or this and all future occurrences? Chcete zmeniť iba tento výskyt udalosti alebo túto a aj všetky budúce udalosti? All Future Events Všetky budúce udalosti CScheduleSearchDateItem Y R M M D D CScheduleSearchItem Edit Upraviť Delete Vymazať All Day Celý deň CScheduleSearchView No search results Žiadne výsledky vyhľadávania CScheduleView ALL DAY CELÝ DEŇ CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y R M M W T D D CWeekWindow Week Týždeň Y R CYearScheduleView All Day Celý deň No event Žiadna udalosť CYearWindow Y R CalendarWindow Calendar Kalendár Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalendár je nástroj na prezeranie dátumov a tiež inteligentný denný plánovač na plánovanie všetkých vecí v živote. Calendarmainwindow Calendar Kalendár CenterWidget All Day Celý deň DragInfoGraphicsView Edit Upraviť Delete Vymazať New event Nová udalosť New Event Nová udalosť Return Today Return Dnes Return Today Today Return Today Dnes Shortcut Help Nápoveda Delete event Vymazať udalosť Copy Kopírovať Cut Vystrihnúť Paste Prilepiť Delete Vymazať Select all Vybrať všetko YearFrame Y R today Today Today Dnes dde-calendar-5.9.1/translations/dde-calendar_sl.ts000066400000000000000000000736301423264401600221360ustar00rootroot00000000000000 CDayMonthView Monday Ponedeljek Tuesday Torek Wednesday Sreda Thursday Četrtek Friday Petek Saturday Sobota Sunday Nedelja CDayWindow Y L M M D D CGraphicsView New Event Nov dogodek CMonthScheduleNumItem %1 more %1 več CMonthView New event Nov dogodek New Event Nov dogodek CMonthWindow Y L CMyScheduleView My Event Moj dogodek OK button V redu Delete button Izbriši Edit button Uredi CScheduleDlg New Event Nov dogodek Edit Event Uredi dogodek End time must be greater than start time Končni čas mora biti kasnejši od začetnega OK button V redu Never Nikoli At time of event Ob času dogodka 15 minutes before 15 minut prej 30 minutes before 30 minut prej 1 hour before 1 uro prej 1 day before 1 dan prej 2 days before 2 dni prej 1 week before 1 teden prej On start day (9:00 AM) Na dan dogodka (9:00) Type: Vrsta: Description: Opis: All Day: Cel dan: Starts: Začetek: Ends: Konec: Remind Me: Opomnik: Repeat: Ponovi: End Repeat: Konec ponavljanj: Type Vrsta Work Delo Life Življenje Other Drugo Description Opis All Day Cel dan Starts Začetek Ends Konec Remind Me Opomnik Repeat Ponovitev Daily Dnevno Weekdays Ob dnevih Weekly Tedensko Monthly Mesečno Yearly Letno End Repeat Konec ponavljanj After Po On Na time(s) čas (s) Cancel button Prekini Save button Shrani CScheduleOperation All occurrences of a repeating event must have the same all-day status. Vsako pojavljanje ponavljajočega dogodka mora imeti enak celodnevni status. Do you want to change all occurrences? Želite spremeniti vsa pojavljanja? Change All Spremeni vse You are changing the repeating rule of this event. Spreminjate ponavljajoče se pravilo za ta dogodek. You are deleting an event. Brišete dogodek. Are you sure you want to delete this event? Želite res izbrisati ta dogodek? Cancel button Prekini Delete button Izbriši Do you want to delete all occurrences of this event, or only the selected occurrence? Želite izbrisati vsa pojavljanja tega dogodka, ali zgolj izbrana? Delete All Izbriši vse Delete Only This Event Izbriši le ta dogodek Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Želite izbrisati to in vsa ostala pojavljanja tega dogodka ali zgolj izbrana pojavljanja? Delete All Future Events Izbriši vse prihodnje dogodke You are changing a repeating event. Spreminjate ponavljajoči se dogodek. Do you want to change only this occurrence of the event, or all occurrences? Želite spremeniti le to pojavitev dogodka ali vsa pojavljanja? All Vse Only This Event Zgolj ta dogodek Do you want to change only this occurrence of the event, or this and all future occurrences? Ali želite spremeniti le ta pojav dogodka ali vse prihodnje pojave? All Future Events Vse prihodnje dogodke CScheduleSearchDateItem Y L M M D D CScheduleSearchItem Edit Uredi Delete Izbriši All Day Cel dan CScheduleSearchView No search results Ni rezultatov iskanja CScheduleView ALL DAY CEL DAN CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y L M M W T D D CWeekWindow Week Teden Y L CYearScheduleView All Day Cel dan No event Ni dogodka CYearWindow Y L CalendarWindow Calendar Koledar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Koledar je orodje za prikaz datumov, a tudi pametni terminski planer za načrtovanje življenjskih dogodkov. Calendarmainwindow Calendar Koledar CenterWidget All Day Cel dan DragInfoGraphicsView Edit Uredi Delete Izbriši New event Nov dogodek New Event Nov dogodek Return Today Return Danes Return Today Today Return Today Danes Shortcut Help Pomoč Delete event Izbriši dogodek Copy Kopiraj Cut Izreži Paste Prilepi Delete Izbriši Select all Izberi vse YearFrame Y Y today Today Today Danes dde-calendar-5.9.1/translations/dde-calendar_sq.ts000066400000000000000000001127301423264401600221360ustar00rootroot00000000000000 CColorPickerWidget Color Cancel button Cancel Save button Save CDayMonthView Monday E hënë Tuesday E martë Wednesday E mërkurë Thursday E enjte Friday E premte Saturday E shtunë Sunday E diel CDayWindow Y V M M D D CGraphicsView New Event Veprimtari e Re CMonthScheduleNumItem %1 more %1 më tepër CMonthView New event Veprimtari e re New Event Veprimtari e Re CMonthWindow Y V CMyScheduleView My Event Veprimtari e Imja OK button OK Delete button Fshije Edit button Përpunojeni CPushButton New event type CScheduleDlg New Event Veprimtari e Re Edit Event Përpunoni Veprimtari End time must be greater than start time Koha e përfundimit duhet të jetë më e madhe se koha e fillimit OK button OK You have selected a leap month, and will be reminded according to the rules of the lunar calendar. Never Kurrë At time of event Në kohën e veprimtarisë 15 minutes before 15 minuta para 30 minutes before 30 minuta para 1 hour before 1 orë para 1 day before 1 ditë para 2 days before 2 ditë para 1 week before 1 javë para On start day (9:00 AM) Ditën e fillimit (9:00 AM) Enter a name please The name can not only contain whitespaces The name already exists Type: Lloj: Description: Përshkrim: All Day: Tërë Ditën: Starts: Fillon më: Ends: Përfundon më: Remind Me: Kujtoma: Repeat: Përsërite: End Repeat: Përfundoje Përsëritjen më: Type Lloj Work Pune Life Jete Other Tjetër Description Përshkrim All Day Tërë Ditën Time: Time Solar Lunar Starts Fillon më Ends Përfundon më Remind Me Kujtoma më Repeat Përsërite Daily Ditore Weekdays Ditë të javës Weekly Javore Monthly Mujore Yearly Vjetore End Repeat Përfundoje Përsëritjen Më After Pas On time(s) kohë(ra) Cancel button Anuloje Save button Ruaje CScheduleOperation All occurrences of a repeating event must have the same all-day status. Krejt përsëritjet e një veprimtarie që përsëritet duhet të kenë të njëjtën gjendje gjithë-ditën. Do you want to change all occurrences? Doni të ndryshohen krejt përsëritjet? Change All Ndryshoji Krejt You are changing the repeating rule of this event. Po ndryshoni rregullin e përsëritjes së kësaj veprimtarie. You are deleting an event. Po fshini një veprimtari. Are you sure you want to delete this event? Jeni i sigurt se doni të fshihet kjo veprimtari? Cancel button Anuloje Delete button Fshije Do you want to delete all occurrences of this event, or only the selected occurrence? Doni të fshihen krejt përsëritjet e kësaj veprimtarie, apo vetëm përsëritjen e përzgjedhur? Delete All Fshiji Krejt Delete Only This Event Fshi Vetëm Këtë Veprimtari Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Doni të fshihet kjo dhe krejt përsëritjet në të ardhmen të kësaj veprimtarie, apo vetëm përsëritjen e përzgjedhur? Delete All Future Events Fshi Krejt Veprimtaritë e Ardhshme You are changing a repeating event. Po ndryshoni një veprimtari me përsëritje. Do you want to change only this occurrence of the event, or all occurrences? Doni të ndryshohet vetëm kjo përsëritje e veprimtarisë, apo krejt përsëritjet? All Krejt Only This Event Vetëm Këtë Veprimtari Do you want to change only this occurrence of the event, or this and all future occurrences? Doni të ndryshohet vetëm kjo përsëritje e veprimtarisë, apo këtë dhe krejt përsëritjet në të ardhmen? All Future Events Krejt Veprimtaritë e Ardhshme CScheduleSearchDateItem Y V M M D D CScheduleSearchItem Edit Përpunojeni Delete Fshije All Day Tërë Ditën CScheduleSearchView No search results S’ka përfundime kërkimi CScheduleView ALL DAY TËRË DITËN CTimeEdit (%1 mins) (%1 hour) (%1 orë) (%1 hours) (%1 orë) CTitleWidget Y V M M W J D D CWeekWindow Week Javë Y V CYearScheduleView All Day Tërë Ditën No event S’ka veprimtari CYearWindow Y V CalendarWindow Calendar Kalendar Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Kalendari është një mjet për parje datash, dhe gjithashtu edhe një planifikues i përditshëm për të vënë në plan krejt gjërat e jetës së përditshme. Calendarmainwindow Calendar Kalendar Manage CenterWidget All Day Tërë Ditën DragInfoGraphicsView Edit Përpunim Delete Fshije New event Veprimtari e re New Event Veprimtari e Re JobTypeListView You are deleting an event type. All events under this type will be deleted and cannot be recovered. Cancel button Delete button QObject Manage calendar Event types Return Today Return Sot Return Today Today Return Today Sot ScheduleTypeEditDlg New event type Edit event type Name: Color: Cancel button Save button Enter a name please The name can not only contain whitespaces The name already exists Shortcut Help Ndihmë Delete event Fshije veprimtarinë Copy Kopjoje Cut Prije Paste Ngjite Delete Fshije Select all Përzgjidhi krejt YearFrame Y V today Today Today Sot dde-calendar-5.9.1/translations/dde-calendar_sr.ts000066400000000000000000000761451423264401600221500ustar00rootroot00000000000000 CDayMonthView Monday Понедељак Tuesday Уторак Wednesday Среда Thursday Четвртак Friday Петак Saturday Субота Sunday Недеља CDayWindow Y Г M М D Д CGraphicsView New Event Нови догађај CMonthScheduleNumItem %1 more Још %1 CMonthView New event Нови догађај New Event Нови догађај CMonthWindow Y Г CMyScheduleView My Event Мој догађај OK button У реду Delete button Обриши Edit button Уреди CScheduleDlg New Event Нови догађај Edit Event Уреди догађај End time must be greater than start time Крајње време мора бити након почетног OK button У реду Never Никад At time of event У време догађаја 15 minutes before 15 минута раније 30 minutes before 30 минута раније 1 hour before 1 сат раније 1 day before 1 дан раније 2 days before 2 дана раније 1 week before 1 седмица раније On start day (9:00 AM) На дан почетка (9:00 АМ) Type: Врста: Description: Опис: All Day: Цео дан: Starts: Почетак: Ends: Крај: Remind Me: Подсетник: Repeat: Понови: End Repeat: Окончај: Type Врста Work Посао Life Живот Other Остало Description Опис All Day Цео дан Starts Почетак Ends Крај Remind Me Подсетник Repeat Понови Daily Свакодневно Weekdays Радним данима Weekly Седмично Monthly Месечно Yearly Годишње End Repeat Окончај After Након On Укључ. time(s) пут(а) Cancel button Откажи Save button Сачувај CScheduleOperation All occurrences of a repeating event must have the same all-day status. Све појаве понављајућег догађаја морају имати исти целодневни статус. Do you want to change all occurrences? Желите ли да промените све појаве? Change All Промени све You are changing the repeating rule of this event. Мењате правило понављања овог догађаја. You are deleting an event. Бришете догађај. Are you sure you want to delete this event? Заиста желите да обришете овај догађај? Cancel button Откажи Delete button Обриши Do you want to delete all occurrences of this event, or only the selected occurrence? Да ли желите да обришете све појаве овог догађаја или само изабрану ставку? Delete All Обриши све Delete Only This Event Обриши само овај догађај Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Желите ли да обришете ову и све будуће појаве овог догађаја или само изабрану ставку? Delete All Future Events Обриши све будуће догађаје You are changing a repeating event. Мењате понаљајући догађај. Do you want to change only this occurrence of the event, or all occurrences? Желите ли да промените само ову појаву догађаја или све? All Све Only This Event Само овај догађај Do you want to change only this occurrence of the event, or this and all future occurrences? Желите ли да промените ову појаву догађаја или ову појаву и све будуће појаве? All Future Events Сви будући догађаји CScheduleSearchDateItem Y Г M М D Д CScheduleSearchItem Edit Уреди Delete Обриши All Day Цео дан CScheduleSearchView No search results Нема резултата претраге CScheduleView ALL DAY ЦЕО ДАН CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Г M М W С D Д CWeekWindow Week Седмица Y Г CYearScheduleView All Day Цео дан No event Нема догађаја CYearWindow Y Г CalendarWindow Calendar Календар Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Календар је алат за приказ датума и паметани роковник за подсећање на све догађаје у животу. Calendarmainwindow Calendar Календар CenterWidget All Day Цео дан DragInfoGraphicsView Edit Уреди Delete Обриши New event Нови догађај New Event Нови догађај Return Today Return Данас Return Today Today Return Today Данас Shortcut Help Помоћ Delete event Обриши догађај Copy Копирај Cut Исеци Paste Убаци Delete Обриши Select all Изабери све YearFrame Y Г today Today Today Данас dde-calendar-5.9.1/translations/dde-calendar_th.ts000066400000000000000000001011571423264401600221270ustar00rootroot00000000000000 CDayMonthView Monday วันจันทร์ Tuesday วันอังคาร Wednesday วันพุธ Thursday วันพฤหัสบดี Friday วันศุกร์ Saturday วันศุกร์ Sunday วันอาทิตย์ CDayWindow Y M D CGraphicsView New Event กิจกรรมใหม่ CMonthScheduleNumItem %1 more อีก 1% CMonthView New event เหตุการณ์ใหม่ New Event กิจกรรมใหม่ CMonthWindow Y CMyScheduleView My Event กิจกรรมของฉัน OK button ตกลง Delete button ลบ Edit button แก้ไข CScheduleDlg New Event กิจกรรมใหม่ Edit Event แก้ไขกิจกรรม End time must be greater than start time เวลาสิ้นสุดต้องมากกว่าเวลาเริ่มต้น OK button ตกลง Never ไม่เคย At time of event ในช่วงเวลาของกิจกรรม 15 minutes before 15 นาทีก่อน 30 minutes before 30 นาทีก่อน 1 hour before 1 ชั่วโมงก่อน 1 day before 1 วันก่อน 2 days before 2 วันก่อน 1 week before 1 สัปดาห์ก่อน On start day (9:00 AM) ทําการในเวลา (09:00 น.) Type: ประเภท: Description: รายละเอียด: All Day: ทั้งวัน: Starts: เริ่ม: Ends: สิ้นสุด: Remind Me: เตือนฉัน: Repeat: ทำซ้ำ: End Repeat: สิ้นสุดการทำซ้ำ: Type ประเภท Work งาน Life ชีวิต Other อื่น ๆ Description รายละเอียด All Day ทั้งวัน Starts เริ่ม Ends สิ้นสุด Remind Me เตือนฉัน Repeat ทำซ้ำ Daily ประจำวัน Weekdays วันธรรมดา Weekly รายสัปดาห์ Monthly รายเดือน Yearly รายปี End Repeat สิ้นสุดการทำซ้ำ After หลังจาก On time(s) เวลา (s) Cancel button ยกเลิก Save button บันทึก CScheduleOperation All occurrences of a repeating event must have the same all-day status. กิจกรรมที่เกิดขึ้นซ้ำทั้งหมดต้องมีสถานะตลอดทั้งวันเหมือนกัน Do you want to change all occurrences? คุณต้องการเปลี่ยนกิจกรรมทั้งหมดหรือไม่? Change All เปลี่ยนทั้งหมด You are changing the repeating rule of this event. คุณกำลังเปลี่ยนกฎการทำซ้ำของกิจกรรมนี้ You are deleting an event. คุณกำลังลบกิจกรรม Are you sure you want to delete this event? คุณแน่ใจหรือไม่ว่าคุณต้องการที่จะลบกิจกรรมนี้ Cancel button ยกเลิก Delete button ลบ Do you want to delete all occurrences of this event, or only the selected occurrence? คุณต้องการลบกิจกรรมทั้งหมดที่เกิดขึ้นหรือเฉพาะกิจกรรมที่เลือกไว้หรือไม่ ? Delete All ลบทั้งหมด Delete Only This Event ลบเฉพาะกิจกรรมนี้ Do you want to delete this and all future occurrences of this event, or only the selected occurrence? คุณต้องการลบกิจกรรมนี้และกิจกรรมที่จะเกิดขึ้นในอนาคตทั้งหมดหรือเฉพาะกิจกรรมที่เลือก ? Delete All Future Events ลบกิจกรรมในอนาคตทั้งหมด You are changing a repeating event. คุณกำลังเปลี่ยนกิจกรรมที่เกิดซ้ำ Do you want to change only this occurrence of the event, or all occurrences? คุณต้องการเปลี่ยนเฉพาะกิจกรรมนี้หรือกิจกรรมทั้งหมดหรือไม่ All ทั้งหมด Only This Event กิจกรรมนี้เท่านั้น Do you want to change only this occurrence of the event, or this and all future occurrences? คุณต้องการเปลี่ยนเฉพาะกิจกรรมที่เกิดขึ้นนี้หรือกิจกรรมนี้และกิจกรรมในอนาคตทั้งหมดหรือไม่ All Future Events กิจกรรมในอนาคตทั้งหมด CScheduleSearchDateItem Y M D CScheduleSearchItem Edit แก้ไข Delete ลบ All Day ทั้งวัน CScheduleSearchView No search results ไม่มีผลลัพธ์การค้นหา CScheduleView ALL DAY ทั้งวัน CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y M W D CWeekWindow Week สัปดาห์ Y CYearScheduleView All Day ทั้งวัน No event ไม่มีกิจกรรม CYearWindow Y CalendarWindow Calendar ปฏิทิน Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. ปฏิทินเป็นเครื่องมือในการดูวันที่และยังเป็นนักวางแผนรายวันที่ชาญฉลาดเพื่อกำหนดเวลาทุกสิ่งในชีวิต Calendarmainwindow Calendar ปฏิทิน CenterWidget All Day ทั้งวัน DragInfoGraphicsView Edit แก้ไข Delete ลบ New event กิจกรรมใหม่ New Event กิจกรรมใหม่ Return Today Return วันนี้ Return Today Today Return Today วันนี้ Shortcut Help วิธีใช้ Delete event ลบกิจกรรม Copy ทำสำเนา Cut ตัด Paste วาง Delete ลบ Select all เลือกทั้งหมด YearFrame Y today Today Today วันนี้ dde-calendar-5.9.1/translations/dde-calendar_tr.ts000066400000000000000000001134121423264401600221360ustar00rootroot00000000000000 CColorPickerWidget Color Renk Cancel button İptal Save button Kaydet Cancel Save CDayMonthView Monday Pazartesi Tuesday Salı Wednesday Çarşamba Thursday Perşembe Friday Cuma Saturday Cumartesi Sunday Pazar CDayWindow Y Y M A D G CGraphicsView New Event Yeni Etkinlik CMonthScheduleNumItem %1 more %1 daha fazla CMonthView New event Yeni etkinlik New Event Yeni Etkinlik CMonthWindow Y Y CMyScheduleView My Event Etkinliğim OK button Tamam Delete button Sil Edit button Düzenle CPushButton New event type Yeni etkinlik türü CScheduleDlg New Event Yeni Etkinlik Edit Event Etkinliği Düzenle End time must be greater than start time Bitiş zamanı başlangıç ​​zamanından büyük olmalıdır OK button Tamam Never Asla At time of event Etkinlik anında 15 minutes before 15 dakika önce 30 minutes before 30 dakika önce 1 hour before 1 saat önce 1 day before 1 gün önce 2 days before 2 gün önce 1 week before 1 hafta önce On start day (9:00 AM) Başlangıç ​​gününde (09:00) Enter a name please Lütfen bir ad girin The name can not only contain whitespaces Ad sadece boşluk karakterlerinden oluşamaz The name already exists Bu az zaten var Type: Tür: Description: Açıklama: All Day: Tüm Gün: Starts: Başlangıç: Ends: Bitiş: Remind Me: Hatırlat: Repeat: Tekrar: End Repeat: Tekrar Sonu: Type Tür Work İş Life Yaşam Other Diğer Description Açıklama All Day Tüm Gün Time: Zaman: Time Zaman Solar Güneş Lunar Ay Starts Başlangıç Ends Bitiş Remind Me Hatırlat Repeat Tekrar Daily Günlük Weekdays Hafta içi Weekly Haftalık Monthly Aylık Yearly Yıllık End Repeat Tekrar Sonu After Sonra On Açık time(s) zaman(lar) Cancel button İptal Save button Kaydet CScheduleOperation All occurrences of a repeating event must have the same all-day status. Tekrarlanan bir etkinliğin tüm tekrarlamaları, tüm gün boyunca aynı duruma sahip olmalıdır. Do you want to change all occurrences? Tüm tekrarlamaları değiştirmek ister misiniz? Change All Tümünü Değiştir You are changing the repeating rule of this event. Bu etkinliğin tekrarlama kuralını değiştiriyorsunuz. You are deleting an event. Bir etkinliği siliyorsunuz. Are you sure you want to delete this event? Bu etkinliği silmek istediğinizden emin misiniz? Cancel button İptal Delete button Sil Do you want to delete all occurrences of this event, or only the selected occurrence? Bu olayın tüm tekrarlarını mı yoksa yalnızca seçilen olayı mı silmek istiyorsun? Delete All Tümünü Sil Delete Only This Event Yalnızca Bu Etkinliği Sil Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Bunu ve bu olayın gelecekteki tüm tekrarlarını mı yoksa yalnızca seçilen olayı mı silmek istiyorsunuz? Delete All Future Events Gelecekteki Tüm Etkinlikleri Sil You are changing a repeating event. Tekrarlanan bir etkinliği değiştiriyorsunuz. Do you want to change only this occurrence of the event, or all occurrences? Etkinliğin yalnızca bu tekrarlamasını mı yoksa tüm tekrarlamalarını mı değiştirmek istiyorsunuz? All Tümü Only This Event Sadece Bu Etkinlik Do you want to change only this occurrence of the event, or this and all future occurrences? Yalnızca etkinliğin bu etkinliğini mi, yoksa bunu ve gelecekteki tüm etkinlikleri değiştirmek istiyorsunuz? All Future Events Gelecekteki Tüm Etkinlikler You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y Y M A D G CScheduleSearchItem Edit Düzenle Delete Sil All Day Tüm Gün CScheduleSearchView No search results Arama sonucu bulunamadı CScheduleView ALL DAY TÜM GÜN CTimeEdit (%1 mins) (%1 dakika) (%1 hour) (%1 saat) (%1 hours) (%1 saat) CTitleWidget Y Y M A W H D G CWeekWindow Week Hafta Y Y CYearScheduleView All Day Tüm Gün No event Etkinlik yok CYearWindow Y Y CalendarWindow Calendar Takvim Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Takvim tarihleri ​​görüntülemek için bir araçtır ve aynı zamanda hayattaki her şeyi planlamak için akıllı bir günlük planlayıcısıdır. Calendarmainwindow Calendar Takvim Manage Yönet CenterWidget All Day Tüm Gün DragInfoGraphicsView Edit Düzenle Delete Sil New event Yeni etkinlik New Event Yeni Etkinlik JobTypeListView You are deleting an event type. Bir etkinlik türünü siliyorsunuz. All events under this type will be deleted and cannot be recovered. Bu türün altındaki etkinlikler silinir ve geri getirilemez. Cancel button İptal Delete button Sil QObject Manage calendar Takvimi yönet Event types Etkinlik türleri Return Today Return Bugün Return Today Today Return Today Bugün ScheduleTypeEditDlg New event type Yeni etkinlik türü Edit event type Etkinlik türünü düzenle Name: Ad: Color: Renk: Cancel button İptal Save button Kaydet Enter a name please Lütfen bir ad girin The name can not only contain whitespaces Ad sadece boşluk karakterlerinden oluşamaz The name already exists Bu az zaten var Shortcut Help Yardım Delete event Etkinliği sil Copy Kopyala Cut Kes Paste Yapıştır Delete Sil Select all Tümünü seç YearFrame Y Y today Today Today Bugün dde-calendar-5.9.1/translations/dde-calendar_ug.ts000066400000000000000000000777761423264401600221520ustar00rootroot00000000000000 CDayMonthView Monday دۈشەنبە Tuesday سەيشەنبە Wednesday چارشەنبە Thursday پەيشەنبە Friday جۈمە Saturday شەنبە Sunday يەكشەنبە CDayWindow Y يىلى M ئاي D كۈنى CGraphicsView New Event يېڭى كۈنتەرتىپ قۇرۇش CMonthScheduleNumItem %1 more يەنە %1 تۈر بار CMonthView New event كۈنتەرتىپ قۇرۇش New Event يېڭى كۈنتەرتىپ قۇرۇش CMonthWindow Y يىلى CMyScheduleView My Event كۈنتەرتىپىم OK button تامام Delete button ئۆچۈرۈش Edit button تەھرىرلەش CScheduleDlg New Event كۈنتەرتىپ قۇرۇش Edit Event كۈنتەرتىپنى تەھرىرلەش End time must be greater than start time ئاخىرلىشىش ۋاقتى باشلىنىش ۋاقتىدىن كېيىن بولۇشى كېرەك OK button تامام Never ھەرگىز At time of event كۈتەرتىپ باشلانغاندا 15 minutes before 15 مىنۇت بۇرۇن 30 minutes before 30 مىنۇت بۇرۇن 1 hour before 1 سائەت بۇرۇن 1 day before 1 كۈن بۇرۇن 2 days before 2 كۈن بۇرۇن 1 week before 1 ھەپتە بۇرۇن On start day (9:00 AM) كۈنتەرتىپ باشلانغان كۈن (چۈشتىن بۇرۇن 9 دا) Type: تىپى: Description: مەزمۇنى: All Day: پۈتۈن كۈن: Starts: باشلىنىدىغان ۋاقىت: Ends: ئاخىرلىشىدىغان ۋاقىت: Remind Me: ئەسكەرتىش: Repeat: قايتىلاش: End Repeat: قايتىلاشنى ئاخىرلاشتۇرۇش: Type تىپ Work خىزمەت Life تۇرمۇش Other باشقا Description مەزمۇن All Day پۈتۈن كۈن Starts باشلىنىدىغان ۋاقىت Ends ئاخىرلىشىدىغان ۋاقىت Remind Me ئەسكەرتىش Repeat قايتىلاش Daily ھەر كۈنى Weekdays خىزمەت كۈنى Weekly ھەر ھەپتە Monthly ھەر ئاي Yearly ھەر يىلى End Repeat قايتىلاشنى ئاخىرلاشتۇرۇش After دىن On غىچە ۋاقىت time(s) ۋاقىت Cancel button بىكار قىلىش Save button ساقلاش CScheduleOperation All occurrences of a repeating event must have the same all-day status. تەكرارلانغان كۈنتەرتىپتىكى بارلىق تەكرارلىنىش چوقۇم پۈتۈن كۈنلۈك ھالەتتە بولۇشى كېرەك. Do you want to change all occurrences? بارلىق تەكرارلاشلارنى ئۆزگەرتمەكچىمۇ؟ Change All ھەممىنى ئۆزگەرتىش You are changing the repeating rule of this event. كۈنتەرتىپنىڭ تەكرارلىنىش قائىدىسىنى ئۆزگەرتىۋاتىسىز. You are deleting an event. كۈنتەرتىپنى ئۆچۈرۈۋاتىسىز. Are you sure you want to delete this event? بۇ كۈنتەرتىپنى ئۆچۈرمەكچىمۇ؟ Cancel button بىكار قىلىش Delete button ئۆچۈرۈش Do you want to delete all occurrences of this event, or only the selected occurrence? بۇ كۈنتەرتىپتىكى بارلىق تەكرارلىنىشىنى ئۆچۈرەمسىز ياكى پەقەت تاللانغان تەكرارلاشلارنىلا ئۆچۈرەمسىز؟ Delete All ھەممىنى ئۆچۈرۈش Delete Only This Event مۇشۇنىلا ئۆچۈرۈرش Do you want to delete this and all future occurrences of this event, or only the selected occurrence? بۇ كۈنتەرتىپتىكى تەكرارلانغان ۋە كەلگۈسىدە تەكرارلىنىدىغانلىرى ئۆچۈرەمسىز ياكى تاللانغان تەكرارلاشنىلا ئۆچۈرەمسىز؟ Delete All Future Events بارلىق كۈنتەرتىپنى ئۆچۈرۈش You are changing a repeating event. قايتىلىنىدىغان كۈنتەرتىپنى ئۆزگەرتىۋاتىسىز. Do you want to change only this occurrence of the event, or all occurrences? بۇ كۈنتەرتىپتىكى بارلىق تەكرارلىنىشىنى ئۆزگەرتەمسىز ياكى پەقەت تاللانغان تەكرارلاشلارنىلا ئۆزگەرتەمسىز؟ All ھەممىنى Only This Event تاللانغىنىنى Do you want to change only this occurrence of the event, or this and all future occurrences? بۇ كۈنتەرتىپتىكى تەكرارلانغان ۋە كەلگۈسىدە تەكرارلىنىدىغانلىرى ئۆزگەرتەمسىز ياكى تاللانغان تەكرارلاشنىلا ئۆزگەرتەمسىز؟ All Future Events بارلىق كۈنتەرتىپلەر CScheduleSearchDateItem Y يىل M ئاي D كۈن CScheduleSearchItem Edit تەھرىرلەش Delete ئۆچۈرۈش All Day پۈتۈن كۈن CScheduleSearchView No search results ئىزدەش نەتىجىسى تىپىلمىدى CScheduleView ALL DAY پۈتۈن كۈن CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y يىل M ئاي W ھەپتە D كۈن CWeekWindow Week ھەپتە Y يىلى CYearScheduleView All Day پۈتۈن كۈن No event كۈنتەرتىپ يوق CYearWindow Y يىلى CalendarWindow Calendar كالېندار Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. كالېندار چېسلا كۆرۈش، كۈنتەرتىپ باشقۇرۇشتا ئىشلىتىلىدىغان كىچىك قورال. Calendarmainwindow Calendar كالېندار CenterWidget All Day پۈتۈن كۈن DragInfoGraphicsView Edit تەھرىرلەش Delete ئۆچۈرۈش New event يېڭى كۈنتەرتىپ قۇرۇش New Event كۈنتەرتىپ قۇرۇش Return Today Return بۈگۈنگە قايتىش Return Today Today Return Today بۈگۈنگە قايتىش Shortcut Help ياردەم Delete event كۈنتەرتىپنى ئۆچۈرۈش Copy كۆچۈرۈش Cut كېسىش Paste چاپلاش Delete ئۆچۈرۈش Select all ھەممىنى تاللاش YearFrame Y يىلى today Today Today بۈگۈن dde-calendar-5.9.1/translations/dde-calendar_uk.ts000066400000000000000000001164731423264401600221420ustar00rootroot00000000000000 CColorPickerWidget Color Колір Cancel button Скасувати Save button Зберегти Cancel Save CDayMonthView Monday Понеділок Tuesday Вівторок Wednesday Середа Thursday Четвер Friday П'ятниця Saturday Субота Sunday Неділя CDayWindow Y Р M М D Д CGraphicsView New Event Нова подія CMonthScheduleNumItem %1 more і ще %1 CMonthView New event Нова подія New Event Нова подія CMonthWindow Y Р CMyScheduleView My Event Моя подія OK button Гаразд Delete button Вилучити Edit button Змінити CPushButton New event type Новий тип події CScheduleDlg New Event Нова подія Edit Event Редагування події End time must be greater than start time Кінцевий час не повинен передувати початковому часу OK button Гаразд Never Ніколи At time of event У момент події 15 minutes before За 15 хвилин до події 30 minutes before За 30 хвилин до події 1 hour before За годину до події 1 day before За день до події 2 days before За 2 дні до події 1 week before За тиждень до події On start day (9:00 AM) У день початку (9:00) Enter a name please Будь ласка, введіть назву The name can not only contain whitespaces Назва не може складатися лише з пробілів The name already exists Така назва вже існує Type: Тип: Description: Опис: All Day: Весь день: Starts: Починається: Ends: Завершується: Remind Me: Нагадати мені: Repeat: Повторення: End Repeat: Завершити повтори: Type Тип Work Робота Life Життя Other Інше Description Опис All Day Весь день Time: Час: Time Час Solar Сонячний Lunar Місячний Starts Починається Ends Кінці Remind Me Нагадати мені Repeat Повторення Daily Щодня Weekdays Дні тижня Weekly Щотижня Monthly Щомісяця Yearly Щорічно End Repeat Завершити повтори After Після On У time(s) раз(ів) Cancel button Скасувати Save button Зберегти CScheduleOperation All occurrences of a repeating event must have the same all-day status. В усіх повторень події має бути однаковий стан щодо заповнення подією усього дня. Do you want to change all occurrences? Хочете змінити усі повторення? Change All Змінити усі You are changing the repeating rule of this event. Ви змінюєте правило повторення цієї події. You are deleting an event. Ви вилучаєте запис події. Are you sure you want to delete this event? Ви впевнені, що бажаєте вилучити цей запис події? Cancel button Скасувати Delete button Вилучити Do you want to delete all occurrences of this event, or only the selected occurrence? Ви хочете вилучити усі повторення цієї події чи лише позначений запис? Delete All Вилучити всі Delete Only This Event Вилучити лише цей запис Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Ви хочете вилучити усі майбутні повторення цієї події чи лише позначені записи? Delete All Future Events Вилучити усі майбутні повторення You are changing a repeating event. Ви вносите зміни до повторюваної події. Do you want to change only this occurrence of the event, or all occurrences? Хочете змінити лише це повторення події чи усі повторення? All Усі Only This Event Лише цей запис Do you want to change only this occurrence of the event, or this and all future occurrences? Хочете змінити лише це повторення події чи усі майбутні повторення? All Future Events Усі майбутні повторення You have selected a leap month, and will be reminded according to the rules of the lunar calendar. OK button CScheduleSearchDateItem Y Р M М D Д CScheduleSearchItem Edit Змінити Delete Вилучити All Day Весь день CScheduleSearchView No search results Нічого не знайдено CScheduleView ALL DAY УВЕСЬ ДЕНЬ CTimeEdit (%1 mins) (%1 хв.) (%1 hour) (%1 год.) (%1 hours) (%1 год.) CTitleWidget Y Р M М W Т D Д CWeekWindow Week Тиждень Y Р CYearScheduleView All Day Весь день No event Немає події CYearWindow Y Р CalendarWindow Calendar Календар Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. «Календар» — інструмент для перегляду календаря дат, також чудовий планувальник для створення розкладів на кожен день. Calendarmainwindow Calendar Календар Manage Керувати CenterWidget All Day Весь день DragInfoGraphicsView Edit Редагувати Delete Видалити New event Нова подія New Event Нова подія JobTypeListView You are deleting an event type. Ви вилучаєте тип події. All events under this type will be deleted and cannot be recovered. Усі події цього типу буде вилучено, їх не можна буде відновити. Cancel button Скасувати Delete button Вилучити QObject Manage calendar Керувати календарем Event types Типи подій Return Today Return Сьогодні Return Today Today Return Today Сьогодні ScheduleTypeEditDlg New event type Новий тип події Edit event type Редагувати тип події Name: Назва: Color: Колір: Cancel button Скасувати Save button Зберегти Enter a name please Будь ласка, введіть назву The name can not only contain whitespaces Назва не може складатися лише з пробілів The name already exists Така назва вже існує Shortcut Help Допомога Delete event Вилучити подію Copy Копіювати Cut Вирізати Paste Вставити Delete Вилучити Select all Вибрати все YearFrame Y Р today Today Today Сьогодні dde-calendar-5.9.1/translations/dde-calendar_vi.ts000066400000000000000000000754201423264401600221350ustar00rootroot00000000000000 CDayMonthView Monday Thứ hai Tuesday Thứ ba Wednesday Thứ tư Thursday Thứ năm Friday Thứ sáu Saturday Thứ bảy Sunday Chủ nhật CDayWindow Y Y M M D D CGraphicsView New Event Sự kiện mới CMonthScheduleNumItem %1 more thêm %1 CMonthView New event Sự kiện mới New Event Sự kiện mới CMonthWindow Y Y CMyScheduleView My Event Sự kiện của Tôi OK button OK Delete button Xóa Edit button Chỉnh sửa CScheduleDlg New Event Sự kiện mới Edit Event Chỉnh sửa Sự kiện End time must be greater than start time Thời gian kết thúc phải lớn hơn thời gian bắt đầu OK button OK Never Không bao giờ At time of event Vào thời điểm sự kiện 15 minutes before trước 15 phút 30 minutes before trước 30 phút 1 hour before 1 giờ trước 1 day before 1 ngày trước 2 days before 2 ngày trước 1 week before 1 tuần trước On start day (9:00 AM) Bắt đầu lúc (9:00 AM) Type: Loại: Description: Mô tả: All Day: Tất cả các ngày: Starts: Bắt đầu: Ends: Kết thúc: Remind Me: Nhắc nhở tôi: Repeat: Lặp lại: End Repeat: Kết thúc lặp lại: Type Loại Work Công việc Life Cuộc sống Other Khác Description Mô tả All Day Tất cả các ngày Starts Bắt đầu Ends Kết thúc Remind Me Nhắc nhở tôi Repeat Lặp lại Daily Hằng ngày Weekdays Các ngày trong tuần Weekly Hàng tuần Monthly Hàng tháng Yearly Hàng năm End Repeat Kết thúc lặp lại After Sau On Mở time(s) thời gian(s) Cancel button Hủy Save button Lưu CScheduleOperation All occurrences of a repeating event must have the same all-day status. Tất cả các lần xuất hiện của một sự kiện lặp lại phải có cùng trạng thái ngày. Do you want to change all occurrences? Bạn có muốn thay đổi tất cả các lần xuất hiện? Change All Thay đổi tất cả You are changing the repeating rule of this event. Bạn đang thay đổi quy tắc lặp lại của sự kiện này. You are deleting an event. Bạn đã xóa một sự kiện Are you sure you want to delete this event? Bạn có muốn xóa sự kiện này không Cancel button Hủy Delete button Xóa Do you want to delete all occurrences of this event, or only the selected occurrence? Bạn có muốn xóa tất cả các lần xuất hiện của sự kiện này hay chỉ xảy ra sự kiện đã chọn? Delete All Xóa tất cả Delete Only This Event Chỉ xóa sự kiện này Do you want to delete this and all future occurrences of this event, or only the selected occurrence? Bạn có muốn xóa sự kiện này và tất cả các lần xuất hiện trong tương lai của sự kiện này hay chỉ xảy ra sự kiện đã chọn? Delete All Future Events Xóa tất cả các sự kiện trong tương lai You are changing a repeating event. Bạn đang thay đổi một sự kiện lặp lại. Do you want to change only this occurrence of the event, or all occurrences? Bạn có muốn chỉ thay đổi sự xuất hiện của sự kiện này hay tất cả các sự kiện? All Tất cả Only This Event Chỉ sự kiện này Do you want to change only this occurrence of the event, or this and all future occurrences? Bạn có muốn chỉ thay đổi sự xuất hiện của sự kiện này, hoặc tất cả các lần xuất hiện trong tương lai? All Future Events Tất cả các sự kiện trong tương lai CScheduleSearchDateItem Y Y M M D D CScheduleSearchItem Edit Chỉnh sửa Delete Xóa All Day Tất cả các ngày CScheduleSearchView No search results Không có kết quả tìm kiếm nào CScheduleView ALL DAY Tất cả các ngày CTimeEdit (%1 mins) (%1 hour) (%1 hours) CTitleWidget Y Y M M W W D D CWeekWindow Week Tuần Y Y CYearScheduleView All Day Tất cả các ngày No event Không có sự kiện nào CYearWindow Y Y CalendarWindow Calendar Lịch Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. Lịch là một công cụ để xem ngày, và cũng là công cụ sắp xếp kế hoạch, sự kiện hàng ngày thông minh. Calendarmainwindow Calendar Lịch CenterWidget All Day Tất cả các ngày DragInfoGraphicsView Edit Chỉnh sửa Delete Xóa New event Sự kiện mới New Event Sự kiện mới Return Today Return Hôm nay Return Today Today Return Today Hôm nay Shortcut Help Giúp đỡ Delete event Xóa sự kiện Copy Sao chép Cut Cắt Paste Dán Delete Xóa Select all Chọn tất cả YearFrame Y Y today Today Today Hôm nay dde-calendar-5.9.1/translations/dde-calendar_zh_CN.ts000066400000000000000000001127401423264401600225150ustar00rootroot00000000000000 CColorPickerWidget Color 颜色 Cancel button 取 消 Save button 保 存 Cancel Save CDayMonthView Monday 星期一 Tuesday 星期二 Wednesday 星期三 Thursday 星期四 Friday 星期五 Saturday 星期六 Sunday 星期日 CDayWindow Y M D CGraphicsView New Event 新建日程 CMonthScheduleNumItem %1 more 还有%1项 CMonthView New event 新建日程 New Event 新建日程 CMonthWindow Y CMyScheduleView My Event 我的日程 OK button 确 定 Delete button 删 除 Edit button 编 辑 CPushButton New event type 新增日程类型 CScheduleDlg New Event 新建日程 Edit Event 编辑日程 End time must be greater than start time 结束时间需晚于开始时间 OK button 确 定 Never 从不 At time of event 日程开始时 15 minutes before 15分钟前 30 minutes before 30分钟前 1 hour before 1小时前 1 day before 1天前 2 days before 2天前 1 week before 1周前 On start day (9:00 AM) 日程发生当天(上午9点) Enter a name please 名称不能为空 The name can not only contain whitespaces 名称不能设置为全空格,请修改 The name already exists 名称不能重复,请修改 Type: 类型: Description: 内容: All Day: 全天: Starts: 开始时间: Ends: 结束时间: Remind Me: 提醒: Repeat: 重复: End Repeat: 结束重复: Type 类型 Work 工作 Life 生活 Other 其他 Description 内容 All Day 全天 Time: 时间: Time 时间 Solar 公历 Lunar 农历 Starts 开始时间 Ends 结束时间 Remind Me 提醒 Repeat 重复 Daily 每天 Weekdays 工作日 Weekly 每周 Monthly 每月 Yearly 每年 End Repeat 结束重复 After On 于日期 time(s) 次后 Cancel button 取 消 Save button 保 存 CScheduleOperation All occurrences of a repeating event must have the same all-day status. 重复日程的所有重复必须具有相同的全天状态。 Do you want to change all occurrences? 您要更改所有重复吗? Change All 全部更改 You are changing the repeating rule of this event. 您正在更改日程的重复规则。 You are deleting an event. 您正在删除日程。 Are you sure you want to delete this event? 您确定要删除此日程吗? Cancel button 取 消 Delete button 删 除 Do you want to delete all occurrences of this event, or only the selected occurrence? 您要删除此日程的所有重复,还是只删除所选重复? Delete All 全部删除 Delete Only This Event 仅删除此日程 Do you want to delete this and all future occurrences of this event, or only the selected occurrence? 您要删除此日程的这个重复和所有将来重复,还是只删除所选重复? Delete All Future Events 删除所有将来日程 You are changing a repeating event. 您正在更改重复日程。 Do you want to change only this occurrence of the event, or all occurrences? 您要更改此日程的仅这一个重复,还是更改它的所有重复? All 全部日程 Only This Event 仅此日程 Do you want to change only this occurrence of the event, or this and all future occurrences? 您要更改此日程的这个重复和所有将来重复,还是只更改所选重复? All Future Events 所有将来日程 You have selected a leap month, and will be reminded according to the rules of the lunar calendar. 您选择的是闰月,将按照农历规则提醒 OK button 确 定 CScheduleSearchDateItem Y M D CScheduleSearchItem Edit 编辑 Delete 删除 All Day 全天 CScheduleSearchView No search results 无搜索结果 CScheduleView ALL DAY 全天 CTimeEdit (%1 mins) (%1分钟) (%1 hour) (%1小时) (%1 hours) (%1小时) CTitleWidget Y M W D CWeekWindow Week Y CYearScheduleView All Day 全天 No event 无日程 CYearWindow Y CalendarWindow Calendar 日历 Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. 日历是一款查看日期、管理日程的小工具。 Calendarmainwindow Calendar 日历 Manage 管理 CenterWidget All Day 全天 DragInfoGraphicsView Edit 编辑 Delete 删除 New event 新建日程 New Event 新建日程 JobTypeListView You are deleting an event type. 您正在删除日程类型。 All events under this type will be deleted and cannot be recovered. 此日程类型下的所有日程都会删除且不可恢复。 Cancel button 取 消 Delete button 删 除 QObject Manage calendar 日历管理 Event types 日程类型 Return Today Return 返回今天 Return Today Today Return Today 返回今天 ScheduleTypeEditDlg New event type 新增日程类型 Edit event type 编辑日程类型 Name: 名称: Color: 颜色: Cancel button 取 消 Save button 保 存 Enter a name please 名称不能为空 The name can not only contain whitespaces 名称不能设置为全空格,请修改 The name already exists 名称不能重复,请修改 Shortcut Help 帮助 Delete event 删除日程 Copy 复制 Cut 剪切 Paste 粘贴 Delete 删除 Select all 全选 YearFrame Y today Today Today 今天 dde-calendar-5.9.1/translations/dde-calendar_zh_HK.ts000066400000000000000000001127321423264401600225200ustar00rootroot00000000000000 CColorPickerWidget Color 顏色 Cancel button 取 消 Save button 保 存 Cancel Save CDayMonthView Monday 星期一 Tuesday 星期二 Wednesday 星期三 Thursday 星期四 Friday 星期五 Saturday 星期六 Sunday 星期日 CDayWindow Y M D CGraphicsView New Event 新建日程 CMonthScheduleNumItem %1 more 還有%1項 CMonthView New event 新建日程 New Event 新建日程 CMonthWindow Y CMyScheduleView My Event 我的日程 OK button 確 定 Delete button 刪 除 Edit button 更 改 CPushButton New event type 新增日程類型 CScheduleDlg New Event 新建日程 Edit Event 更改日程 End time must be greater than start time 結束時間需晚於開始時間 OK button 確 定 Never 永不 At time of event 日程開始時 15 minutes before 15分鐘前 30 minutes before 30分鐘前 1 hour before 1小時前 1 day before 1天前 2 days before 2天前 1 week before 1週前 On start day (9:00 AM) 日程發生當天(上午9點) Enter a name please 名稱不能為空 The name can not only contain whitespaces 名稱不能設置為全空格,請修改 The name already exists 名稱不能重複,請修改 Type: 類型: Description: 描述: All Day: 全天: Starts: 開始時間: Ends: 結束時間: Remind Me: 提醒: Repeat: 重複: End Repeat: 結束重複: Type 類型 Work 工作 Life 生活 Other 其他 Description 描述 All Day 全天 Time: 時間: Time 時間 Solar 公曆 Lunar 農曆 Starts 開始時間 Ends 結束時間 Remind Me 提醒 Repeat 重複 Daily 每天 Weekdays 工作日 Weekly 每週 Monthly 每月 Yearly 每年 End Repeat 結束重複 After On 於日期 time(s) 次後 Cancel button 取 消 Save button 保 存 CScheduleOperation All occurrences of a repeating event must have the same all-day status. 重複日程的所有重複必須具有相同的全天狀態。 Do you want to change all occurrences? 您要更改所有重複嗎? Change All 全部更改 You are changing the repeating rule of this event. 您正在更改日程的重複規則。 You are deleting an event. 您正在刪除日程。 Are you sure you want to delete this event? 您確定要刪除此日程嗎? Cancel button 取 消 Delete button 刪 除 Do you want to delete all occurrences of this event, or only the selected occurrence? 您要刪除此日程的所有重複,還是只刪除所選重複? Delete All 全部刪除 Delete Only This Event 僅刪除此日程 Do you want to delete this and all future occurrences of this event, or only the selected occurrence? 您要刪除此日程的這個重複和所有將來重複,還是只刪除所選重複? Delete All Future Events 刪除所有將來日程 You are changing a repeating event. 您正在更改重複日程。 Do you want to change only this occurrence of the event, or all occurrences? 您要更改此日程的僅這一個重複,還是更改它的所有重複? All 全部日程 Only This Event 僅此日程 Do you want to change only this occurrence of the event, or this and all future occurrences? 您要更改此日程的這個重複和所有將來重複,還是只更改所選重複? All Future Events 所有將來日程 You have selected a leap month, and will be reminded according to the rules of the lunar calendar. 您選擇的是閏月,將按照農曆規則提醒 OK button 確 定 CScheduleSearchDateItem Y M D CScheduleSearchItem Edit 更改 Delete 刪除 All Day 全天 CScheduleSearchView No search results 無搜索結果 CScheduleView ALL DAY 全天 CTimeEdit (%1 mins) (%1分鐘) (%1 hour) (%1小時) (%1 hours) (%1小時) CTitleWidget Y M W D CWeekWindow Week Y CYearScheduleView All Day 全天 No event 無日程 CYearWindow Y CalendarWindow Calendar 日曆 Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. 日曆是一款查看日期、管理日程的小工具。 Calendarmainwindow Calendar 日曆 Manage 管理 CenterWidget All Day 全天 DragInfoGraphicsView Edit 更改 Delete 删除 New event 新建日程 New Event 新建日程 JobTypeListView You are deleting an event type. 您正在刪除日程類型。 All events under this type will be deleted and cannot be recovered. 此日程類型下的所有日程都會刪除且不可恢復。 Cancel button 取 消 Delete button 刪 除 QObject Manage calendar 日曆管理 Event types 日程類型 Return Today Return 今天 Return Today Today Return Today 今天 ScheduleTypeEditDlg New event type 新增日程類型 Edit event type 編輯日程類型 Name: 名稱: Color: 顏色: Cancel button 取 消 Save button 保 存 Enter a name please 名稱不能為空 The name can not only contain whitespaces 名稱不能設置為全空格,請修改 The name already exists 名稱不能重複,請修改 Shortcut Help 幫助 Delete event 刪除日程 Copy 複製 Cut 剪下 Paste 黏貼 Delete 刪除 Select all 選擇全部 YearFrame Y today Today Today 今天 dde-calendar-5.9.1/translations/dde-calendar_zh_TW.ts000066400000000000000000001127241423264401600225510ustar00rootroot00000000000000 CColorPickerWidget Color 顏色 Cancel button 取 消 Save button 儲 存 Cancel Save CDayMonthView Monday 星期一 Tuesday 星期二 Wednesday 星期三 Thursday 星期四 Friday 星期五 Saturday 星期六 Sunday 星期日 CDayWindow Y M D CGraphicsView New Event 建立日程 CMonthScheduleNumItem %1 more 還有%1項 CMonthView New event 建立日程 New Event 建立日程 CMonthWindow Y CMyScheduleView My Event 我的日程 OK button 確 定 Delete button 刪 除 Edit button 編 輯 CPushButton New event type 新增日程類型 CScheduleDlg New Event 建立日程 Edit Event 編輯日程 End time must be greater than start time 結束時間需晚於開始時間 OK button 確 定 Never 從不 At time of event 日程開始時 15 minutes before 15分鐘前 30 minutes before 30分鐘前 1 hour before 1小時前 1 day before 1天前 2 days before 2天前 1 week before 1週前 On start day (9:00 AM) 日程發生當天(上午9點) Enter a name please 名稱不能為空 The name can not only contain whitespaces 名稱不能設置為全空格,請修改 The name already exists 名稱不能重複,請修改 Type: 類型: Description: 內容: All Day: 全天: Starts: 開始時間: Ends: 結束時間: Remind Me: 提醒: Repeat: 重複: End Repeat: 結束重複: Type 類型 Work 工作 Life 生活 Other 其他 Description 內容 All Day 全天 Time: 時間: Time 時間 Solar 公曆 Lunar 農曆 Starts 開始時間 Ends 結束時間 Remind Me 提醒 Repeat 重複 Daily 每天 Weekdays 工作日 Weekly 每週 Monthly 每月 Yearly 每年 End Repeat 結束重複 After On 於日期 time(s) 次後 Cancel button 取 消 Save button 儲 存 CScheduleOperation All occurrences of a repeating event must have the same all-day status. 重複日程的所有重複必須具有相同的全天狀態。 Do you want to change all occurrences? 您要更改所有重複嗎? Change All 全部更改 You are changing the repeating rule of this event. 您正在更改日程的重複規則。 You are deleting an event. 您正在刪除日程。 Are you sure you want to delete this event? 您確定要刪除此日程嗎? Cancel button 取 消 Delete button 刪 除 Do you want to delete all occurrences of this event, or only the selected occurrence? 您要刪除此日程的所有重複,還是只刪除所選重複? Delete All 全部刪除 Delete Only This Event 僅刪除此日程 Do you want to delete this and all future occurrences of this event, or only the selected occurrence? 您要刪除此日程的這個重複和所有將來重複,還是只刪除所選重複? Delete All Future Events 刪除所有將來日程 You are changing a repeating event. 您正在更改重複日程。 Do you want to change only this occurrence of the event, or all occurrences? 您要更改此日程的僅這一個重複,還是更改它的所有重複? All 全部日程 Only This Event 僅此日程 Do you want to change only this occurrence of the event, or this and all future occurrences? 您要更改此日程的這個重複和所有將來重複,還是只更改所選重複? All Future Events 所有將來日程 You have selected a leap month, and will be reminded according to the rules of the lunar calendar. 您選擇的是閏月,將按照農曆規則提醒 OK button 確 定 CScheduleSearchDateItem Y M D CScheduleSearchItem Edit 編輯 Delete 刪除 All Day 全天 CScheduleSearchView No search results 找不到結果 CScheduleView ALL DAY 全天 CTimeEdit (%1 mins) (%1分鐘) (%1 hour) (%1小時) (%1 hours) (%1小時) CTitleWidget Y M W D CWeekWindow Week Y CYearScheduleView All Day 全天 No event 無日程 CYearWindow Y CalendarWindow Calendar 日曆 Calendar is a tool to view dates, and also a smart daily planner to schedule all things in life. 日曆是一款查看日期、管理日程的小工具。 Calendarmainwindow Calendar 日曆 Manage 管理 CenterWidget All Day 全天 DragInfoGraphicsView Edit 編輯 Delete 刪除 New event 建立日程 New Event 建立日程 JobTypeListView You are deleting an event type. 您正在刪除日程類型。 All events under this type will be deleted and cannot be recovered. 此日程類型下的所有日程都會刪除且不可恢復。 Cancel button 取 消 Delete button 刪 除 QObject Manage calendar 日曆管理 Event types 日程類型 Return Today Return 今天 Return Today Today Return Today 今天 ScheduleTypeEditDlg New event type 新增日程類型 Edit event type 編輯日程類型 Name: 名稱: Color: 顏色: Cancel button 取 消 Save button 儲 存 Enter a name please 名稱不能為空 The name can not only contain whitespaces 名稱不能設置為全空格,請修改 The name already exists 名稱不能重複,請修改 Shortcut Help 說明 Delete event 刪除日程 Copy 複製 Cut 剪下 Paste 貼上 Delete 刪除 Select all 全選 YearFrame Y today Today Today 今天 dde-calendar-5.9.1/translations/desktop/000077500000000000000000000000001423264401600202255ustar00rootroot00000000000000dde-calendar-5.9.1/translations/desktop/desktop.ts000066400000000000000000000010521423264401600222440ustar00rootroot00000000000000desktopCalendarCalendarCalendar is a date tool.Calendar is a date tool.Deepin CalendarDeepin Calendardde-calendar-5.9.1/translations/desktop/desktop_am_ET.ts000066400000000000000000000011151423264401600233110ustar00rootroot00000000000000desktopCalendarቀን መቁጠሪያCalendar is a date tool.ቀን መቁጠሪያDeepin Calendarዲፕኢን ቀን መቁጠሪያdde-calendar-5.9.1/translations/desktop/desktop_ar.ts000066400000000000000000000011221423264401600227240ustar00rootroot00000000000000desktopCalendarالتقويمCalendar is a date tool.التقويم هو أداة عرض التاريخ .Deepin Calendarتقويم ديبينdde-calendar-5.9.1/translations/desktop/desktop_ast.ts000066400000000000000000000010741423264401600231170ustar00rootroot00000000000000desktopCalendarCalendariuCalendar is a date tool.Calendariu ye una ferramienta de dates.Deepin CalendarDeepin Calendardde-calendar-5.9.1/translations/desktop/desktop_az.ts000066400000000000000000000010541423264401600227400ustar00rootroot00000000000000desktopCalendarKalendarCalendar is a date tool.Kalendar tarix alətidirDeepin CalendarDeepin Kalendarıdde-calendar-5.9.1/translations/desktop/desktop_bg.ts000066400000000000000000000011711423264401600227160ustar00rootroot00000000000000desktopCalendarКалендарCalendar is a date tool.Календарът е приложение за показване на датата.Deepin CalendarDeepin Календарdde-calendar-5.9.1/translations/desktop/desktop_bn.ts000066400000000000000000000012251423264401600227250ustar00rootroot00000000000000desktopCalendarক্যালেন্ডারCalendar is a date tool.ক্যালেন্ডার একটি তারিখ টুলDeepin Calendarডিপিন ক্যালেন্ডারdde-calendar-5.9.1/translations/desktop/desktop_bo.ts000066400000000000000000000013231423264401600227250ustar00rootroot00000000000000desktopCalendarལོ་ཐོ།Calendar is a date tool.ལོ་ཐོ་ནི་ཚེས་གྲངས་ལྟ་བའི་ཡོ་བྱད་ཆུང་ཆུང་ཞིག་རེད།Deepin Calendarགྲ་རྒྱས་པའི་ལོ་ཐོ།dde-calendar-5.9.1/translations/desktop/desktop_ca.ts000066400000000000000000000010731423264401600227120ustar00rootroot00000000000000desktopCalendarCalendariCalendar is a date tool.El calendari és una eina de cites.Deepin CalendarCalendari del Deepindde-calendar-5.9.1/translations/desktop/desktop_cs.ts000066400000000000000000000011011423264401600227240ustar00rootroot00000000000000desktopCalendarKalendářCalendar is a date tool.Kalendář je nástroj pro práci s datumy.Deepin CalendarDeepin kalendářdde-calendar-5.9.1/translations/desktop/desktop_da.ts000066400000000000000000000010571423264401600227150ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalender er et datoværktøj.Deepin CalendarDeepin kalenderdde-calendar-5.9.1/translations/desktop/desktop_de.ts000066400000000000000000000010621423264401600227150ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalender ist ein Datumswerkzeug.Deepin CalendarDeepin Kalenderdde-calendar-5.9.1/translations/desktop/desktop_el.ts000066400000000000000000000011221423264401600227220ustar00rootroot00000000000000desktopCalendarΗμερολόγιοCalendar is a date tool.Εφαρμογή Ημερολογίου Deepin CalendarΗμερολόγιο Deepindde-calendar-5.9.1/translations/desktop/desktop_en_AU.ts000066400000000000000000000010551423264401600233160ustar00rootroot00000000000000desktopCalendarCalendarCalendar is a date tool.Calendar is a date tool.Deepin CalendarDeepin Calendardde-calendar-5.9.1/translations/desktop/desktop_en_GB.ts000066400000000000000000000010541423264401600233000ustar00rootroot00000000000000desktopCalendarCalendarCalendar is a date tool.Calendar is a date toolDeepin CalendarDeepin Calendardde-calendar-5.9.1/translations/desktop/desktop_en_US.ts000066400000000000000000000010551423264401600233400ustar00rootroot00000000000000desktopCalendarCalendarCalendar is a date tool.Calendar is a date tool.Deepin CalendarDeepin Calendardde-calendar-5.9.1/translations/desktop/desktop_eo.ts000066400000000000000000000010531423264401600227300ustar00rootroot00000000000000desktopCalendarKalendaroCalendar is a date tool.Kalendaro estas datilo.Deepin CalendarDeepin kalendarodde-calendar-5.9.1/translations/desktop/desktop_es.ts000066400000000000000000000011161423264401600227340ustar00rootroot00000000000000desktopCalendarCalendarioCalendar is a date tool.Calendario de Deepin es una herramienta de gestión de eventos.Deepin CalendarCalendariodde-calendar-5.9.1/translations/desktop/desktop_et.ts000066400000000000000000000010631423264401600227360ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalender on kuupäeva tööriist.Deepin CalendarDeepin Kalenderdde-calendar-5.9.1/translations/desktop/desktop_fa.ts000066400000000000000000000011031423264401600227070ustar00rootroot00000000000000desktopCalendarتقویمCalendar is a date tool.تقویم یک ابزار تاریخ است.Deepin Calendarتقویم Deepindde-calendar-5.9.1/translations/desktop/desktop_fi.ts000066400000000000000000000010711423264401600227230ustar00rootroot00000000000000desktopCalendarKalenteriCalendar is a date tool.Kalenteri on ajankäytön apuohjelma.Deepin CalendarDeepin kalenteridde-calendar-5.9.1/translations/desktop/desktop_fr.ts000066400000000000000000000010501423264401600227310ustar00rootroot00000000000000desktopCalendarCalendrierCalendar is a date tool.Simple calendrier.Deepin CalendarCalendrier Deepindde-calendar-5.9.1/translations/desktop/desktop_gl_ES.ts000066400000000000000000000011051423264401600233140ustar00rootroot00000000000000desktopCalendarCalendarioCalendar is a date tool.O calendario é unha ferramenta de datas.Deepin CalendarCalendario do Deepindde-calendar-5.9.1/translations/desktop/desktop_hi_IN.ts000066400000000000000000000012401423264401600233110ustar00rootroot00000000000000desktopCalendarदिनदर्शिकाCalendar is a date tool.दिनदर्शिका तिथि हेतु एक साधन है।Deepin Calendarडीपिन दिनदर्शिकाdde-calendar-5.9.1/translations/desktop/desktop_hr.ts000066400000000000000000000010661423264401600227420ustar00rootroot00000000000000desktopCalendarKalendarCalendar is a date tool.Kalendar je alat za rad sa vremenom.Deepin CalendarDeepin kalendardde-calendar-5.9.1/translations/desktop/desktop_hu.ts000066400000000000000000000010751423264401600227450ustar00rootroot00000000000000desktopCalendarNaptárCalendar is a date tool.A Naptár egy dátum megjelenítő eszköz.Deepin CalendarDeepin® Naptárdde-calendar-5.9.1/translations/desktop/desktop_id.ts000066400000000000000000000010771423264401600227270ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalender adalah sebuah peralatan penanggalan.Deepin CalendarKalender Deepindde-calendar-5.9.1/translations/desktop/desktop_it.ts000066400000000000000000000011671423264401600227470ustar00rootroot00000000000000desktopCalendarCalendarioCalendar is a date tool.Calendario è un tool calendario. Localizzazione italiana a cura di Carofano Massimo Antonio.Deepin CalendarCalendario di Deepindde-calendar-5.9.1/translations/desktop/desktop_ja.ts000066400000000000000000000011121423264401600227130ustar00rootroot00000000000000desktopCalendarカレンダーCalendar is a date tool.カレンダーは日付ツールです。Deepin CalendarDeepin カレンダーdde-calendar-5.9.1/translations/desktop/desktop_ka.ts000066400000000000000000000012471423264401600227250ustar00rootroot00000000000000desktopCalendarკალენდარიCalendar is a date tool.კალენდარი არის თარიღებთან სამუშაო ხელსაწყოDeepin Calendarკალენდარიdde-calendar-5.9.1/translations/desktop/desktop_kab.ts000066400000000000000000000010521423264401600230610ustar00rootroot00000000000000desktopCalendarAwitayCalendar is a date tool.Awitay d afecku n wazemz.Deepin CalendarAwitay n Deepindde-calendar-5.9.1/translations/desktop/desktop_km_KH.ts000066400000000000000000000012171423264401600233200ustar00rootroot00000000000000desktopCalendarប្រតិទិនCalendar is a date tool.ប្រតិទិនគឺជាឧបករណ៍កាលបរិច្ឆេទ។Deepin Calendarប្រតិទិន Deepindde-calendar-5.9.1/translations/desktop/desktop_ko.ts000066400000000000000000000010571423264401600227420ustar00rootroot00000000000000desktopCalendar달력Calendar is a date tool.달력은 날짜 도구입니다.Deepin CalendarDeepin 달력dde-calendar-5.9.1/translations/desktop/desktop_ku.ts000066400000000000000000000010611423264401600227430ustar00rootroot00000000000000desktopCalendarSalnameCalendar is a date tool.Salname navgîneke tarîxê ye.Deepin CalendarSalnameya Deepindde-calendar-5.9.1/translations/desktop/desktop_ku_IQ.ts000066400000000000000000000011141423264401600233330ustar00rootroot00000000000000desktopCalendarSalnameCalendar is a date tool.ساڵنامە ئامرازێکی بەروارەDeepin Calendarساڵنامەی Deepindde-calendar-5.9.1/translations/desktop/desktop_lt.ts000066400000000000000000000010671423264401600227510ustar00rootroot00000000000000desktopCalendarKalendoriusCalendar is a date tool.Kalendorius yra datų įrankis.Deepin CalendarDeepin kalendoriusdde-calendar-5.9.1/translations/desktop/desktop_lv.ts000066400000000000000000000010611423264401600227450ustar00rootroot00000000000000desktopCalendarKalendārsCalendar is a date tool.Kalendārs ir datumu rīks.Deepin CalendarDeepin kalendārsdde-calendar-5.9.1/translations/desktop/desktop_ml.ts000066400000000000000000000011711423264401600227360ustar00rootroot00000000000000desktopCalendarകലണ്ടർCalendar is a date tool.കലണ്ടർ ഒരു തീയതി ഉപകരണം ആണ് Deepin Calendarഡീപിൻ കലണ്ടർdde-calendar-5.9.1/translations/desktop/desktop_mn.ts000066400000000000000000000011441423264401600227400ustar00rootroot00000000000000desktopCalendarХуанлиCalendar is a date tool.Хуанли нь огноо, цагалбарын хэрэгсэл.Deepin CalendarДеепин Хуанлиdde-calendar-5.9.1/translations/desktop/desktop_ms.ts000066400000000000000000000010611423264401600227430ustar00rootroot00000000000000desktopCalendarKalendarCalendar is a date tool.Kalendar merupakan alat tarikh.Deepin CalendarKalendar Deepindde-calendar-5.9.1/translations/desktop/desktop_nb.ts000066400000000000000000000011371423264401600227270ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalander er et redskap for å organisere hendelser etter dato og klokkeslett.Deepin CalendarDeepin Kalenderdde-calendar-5.9.1/translations/desktop/desktop_ne.ts000066400000000000000000000012231423264401600227260ustar00rootroot00000000000000desktopCalendarक्यालेन्डरCalendar is a date tool.क्यालेन्डर एक मिति उपकरण हो।Deepin Calendarडिपिन क्यालेन्डरdde-calendar-5.9.1/translations/desktop/desktop_nl.ts000066400000000000000000000011161423264401600227360ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalender is een hulpmiddel voor het bijhouden van afspraken.Deepin CalendarDeepin Kalenderdde-calendar-5.9.1/translations/desktop/desktop_pa.ts000066400000000000000000000011501423264401600227230ustar00rootroot00000000000000desktopCalendarਕੈਲੰਡਰCalendar is a date tool.ਕੈਲੰਡਰ ਤਾਰੀਖ ਸਾਧਨ ਹੈ।Deepin Calendarਡੀਪਿਨ ਕੈਲੰਡਰdde-calendar-5.9.1/translations/desktop/desktop_pl.ts000066400000000000000000000011031423264401600227340ustar00rootroot00000000000000desktopCalendarKalendarzCalendar is a date tool.Kalendarz to narzędzie do zarządzania czasem.Deepin CalendarKalendarz Deepindde-calendar-5.9.1/translations/desktop/desktop_pt.ts000066400000000000000000000011001423264401600227410ustar00rootroot00000000000000desktopCalendarCalendárioCalendar is a date tool.O Calendário é uma ferramenta de data.Deepin CalendarCalendário Deepindde-calendar-5.9.1/translations/desktop/desktop_pt_BR.ts000066400000000000000000000011441423264401600233340ustar00rootroot00000000000000desktopCalendarCalendárioCalendar is a date tool.O Calendário é uma ferramenta que permite agendar e visualizar eventos.Deepin Calendardeepin Calendáriodde-calendar-5.9.1/translations/desktop/desktop_ro.ts000066400000000000000000000010751423264401600227510ustar00rootroot00000000000000desktopCalendarCalendarCalendar is a date tool.Calendarul este un instrument pentru dateDeepin CalendarCalendarul Deepindde-calendar-5.9.1/translations/desktop/desktop_ru.ts000066400000000000000000000012351423264401600227550ustar00rootroot00000000000000desktopCalendarКалендарьCalendar is a date tool.Календарь является приложением для планирования Вашего времени.Deepin CalendarКалендарь Deepindde-calendar-5.9.1/translations/desktop/desktop_si.ts000066400000000000000000000011451423264401600227420ustar00rootroot00000000000000desktopCalendarදින දසුනCalendar is a date tool.දින දසුන දින මෙවලමකි.Deepin CalendarDeepin දින දසුනdde-calendar-5.9.1/translations/desktop/desktop_sk.ts000066400000000000000000000010651423264401600227450ustar00rootroot00000000000000desktopCalendarKalendárCalendar is a date tool.Kalendár je dátumový nástroj.Deepin CalendarDeepin Kalendárdde-calendar-5.9.1/translations/desktop/desktop_sl.ts000066400000000000000000000010661423264401600227470ustar00rootroot00000000000000desktopCalendarKoledarCalendar is a date tool.Koledar je orodje za urejanje datumov.Deepin CalendarDeepin koledardde-calendar-5.9.1/translations/desktop/desktop_sq.ts000066400000000000000000000010651423264401600227530ustar00rootroot00000000000000desktopCalendarKalendarCalendar is a date tool.Kalendari është një mjet datash.Deepin CalendarKalendar Deepindde-calendar-5.9.1/translations/desktop/desktop_sr.ts000066400000000000000000000011561423264401600227550ustar00rootroot00000000000000desktopCalendarКалендарCalendar is a date tool.Календар је алат за приказивање датума.Deepin CalendarДипин Календарdde-calendar-5.9.1/translations/desktop/desktop_sv.ts000066400000000000000000000010601423264401600227530ustar00rootroot00000000000000desktopCalendarKalenderCalendar is a date tool.Kalender är ett datumverktyg.Deepin CalendarDeepin kalenderdde-calendar-5.9.1/translations/desktop/desktop_sw.ts000066400000000000000000000010561423264401600227610ustar00rootroot00000000000000desktopCalendarKalendaCalendar is a date tool.Kalenda ni chombo ya tareheDeepin CalendarKalenda ya Deepindde-calendar-5.9.1/translations/desktop/desktop_tr.ts000066400000000000000000000010731423264401600227540ustar00rootroot00000000000000desktopCalendarTakvimCalendar is a date tool.Takvim, tarihi görüntüleyen bir araçtır.Deepin CalendarDeepin Takvimdde-calendar-5.9.1/translations/desktop/desktop_ug.ts000066400000000000000000000011621423264401600227410ustar00rootroot00000000000000desktopCalendarكالېندارCalendar is a date tool.كالېندار ۋاقىتنى تەكشۈرىدىغان كىچىك قورالDeepin CalendarDeepin كالېندارىdde-calendar-5.9.1/translations/desktop/desktop_uk.ts000066400000000000000000000010621423264401600227440ustar00rootroot00000000000000desktopCalendarКалендарCalendar is a date tool.КалендарDeepin CalendarКалендар Deepindde-calendar-5.9.1/translations/desktop/desktop_vi.ts000066400000000000000000000010671423264401600227500ustar00rootroot00000000000000desktopCalendarLịchCalendar is a date tool.Lịch là một công cụ ngày tháng.Deepin CalendarLịch Deepindde-calendar-5.9.1/translations/desktop/desktop_zh_CN.ts000066400000000000000000000010721423264401600233270ustar00rootroot00000000000000desktopCalendar日历Calendar is a date tool.日历是一款查看日期的小工具。Deepin Calendar深度日历dde-calendar-5.9.1/translations/desktop/desktop_zh_HK.ts000066400000000000000000000010721423264401600233310ustar00rootroot00000000000000desktopCalendar日曆Calendar is a date tool.日曆是一款查看日期的小工具。Deepin Calendar深度日曆dde-calendar-5.9.1/translations/desktop/desktop_zh_TW.ts000066400000000000000000000010511423264401600233560ustar00rootroot00000000000000desktopCalendar日曆Calendar is a date tool.簡易日期顯示工具Deepin CalendarDeepin 日曆